<?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>154160</bug_id>
          
          <creation_ts>2016-02-12 01:33:14 -0800</creation_ts>
          <short_desc>Update ICU header files to version 52</short_desc>
          <delta_ts>2016-02-12 12:15:44 -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>Text</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>
          
          <blocked>147605</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andy</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1164062</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2016-02-12 01:33:14 -0800</bug_when>
    <thetext>We are using the header files from ICU 4.6.1. To implement Intl.NumberFormat, we need to use UNUM_CURRENCY_ISO and UNUM_CURRENCY_PLURAL, which are only available in ICU 4.8+. It seems that we have already included a header file from ICU 52 (unumsys.h) and are using some functions in it. So, we should update every header file to version 52.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164066</commentid>
    <comment_count>1</comment_count>
      <attachid>271151</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2016-02-12 01:48:38 -0800</bug_when>
    <thetext>Created attachment 271151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164158</commentid>
    <comment_count>2</comment_count>
      <attachid>271151</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-12 08:54:04 -0800</bug_when>
    <thetext>Comment on attachment 271151
Patch

http://opensource.apple.com/release/os-x-1010/ indicates that Yosemite has ICU 53, so this shouldn&apos;t cause any problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164178</commentid>
    <comment_count>3</comment_count>
      <attachid>271151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-12 09:43:49 -0800</bug_when>
    <thetext>Comment on attachment 271151
Patch

Rejecting attachment 271151 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 271151, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
0-ab3c-d52691b4dbfc ...
Currently at 196476 = 9041759358723908a9cd68bcdaa669d21174f33a
r196478 = 2b0e56e1aa40601f61bb66848dd64c0c05cadda5
r196479 = 83cdc5b3ac8ec8bcdcf74312f84541bd24522413
r196480 = 603c92044c256d6e24e55339da42b99d537fa607
r196481 = e6eb0eabb64d9e1f2480492b5b881754bc992491
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/820031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164224</commentid>
    <comment_count>4</comment_count>
      <attachid>271193</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2016-02-12 11:25:27 -0800</bug_when>
    <thetext>Created attachment 271193
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164254</commentid>
    <comment_count>5</comment_count>
      <attachid>271193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-12 12:15:40 -0800</bug_when>
    <thetext>Comment on attachment 271193
Patch for landing

Clearing flags on attachment: 271193

Committed r196492: &lt;http://trac.webkit.org/changeset/196492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1164255</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-12 12:15:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271151</attachid>
            <date>2016-02-12 01:48:38 -0800</date>
            <delta_ts>2016-02-12 11:25:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154160-20160212015118.patch</filename>
            <type>text/plain</type>
            <size>1551722</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MGI3YmMzOGEyMDIyY2Y2M2UwZmYzY2Q3YzgxZGZkN2Y1NTQ1ODZkLi41ZTJmMmJiODI2MzJjMjM2
NjVkYzc2ZWViZDJiNzRlNDI1ZTk3ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxNi0wMi0xMiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgSUNVIGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQxNjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
SUNVIGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUyIHRvIGFsbG93IHRoZSB1c2Ugb2YgbmV3ZXIg
QVBJcy4KKworICAgICAgICAqIGljdS91bmljb2RlL2xvY2FscG9pbnRlci5oOgorICAgICAgICAq
IGljdS91bmljb2RlL3BsYXRmb3JtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvcHR5cGVzLmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvcHV0aWwuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
Y2FsLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNoYXIuaDoKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91Y252Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbC5oOgorICAgICAgICAqIGlj
dS91bmljb2RlL3Vjb25maWcuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGF0Lmg6CisgICAg
ICAgICogaWN1L3VuaWNvZGUvdWRhdHBnLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWRpc3Bs
YXljb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIGljdS91bmljb2RlL3VlbnVtLmg6CisgICAg
ICAgICogaWN1L3VuaWNvZGUvdWZvcm1hdHRhYmxlLmg6IEFkZGVkLgorICAgICAgICAqIGljdS91
bmljb2RlL3VpdGVyLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWxvYy5oOgorICAgICAgICAq
IGljdS91bmljb2RlL3VtYWNoaW5lLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdW5vcm0yLmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvdW51bS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3Vy
ZW5hbWUuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91c2NyaXB0Lmg6CisgICAgICAgICogaWN1
L3VuaWNvZGUvdXNldC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VzdHJpbmcuaDoKKyAgICAg
ICAgKiBpY3UvdW5pY29kZS91dGYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGYxNi5oOgor
ICAgICAgICAqIGljdS91bmljb2RlL3V0ZjguaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGZf
b2xkLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXR5cGVzLmg6CisgICAgICAgICogaWN1L3Vu
aWNvZGUvdXZlcm51bS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V2ZXJzaW9uLmg6CisKIDIw
MTYtMDItMTEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogUmVtb3RlSW5zcGVjdG9yJ3MgbGlzdGluZ3Mgc2hvdWxkIGluY2x1ZGUgd2hldGhl
ciBhbiBBdXRvbWF0aW9uVGFyZ2V0IGlzIHBhaXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiZDUyNmVjZjk2MzliNTczMWNl
NzhjYzljYmEzYWM3OGQ1ZGQ4ZWNkLi5iMzQ1NTM3NjQ4NmQ0MzQ4MmJjZmFmMTUxY2NhMWY1YzAw
NzgxMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE2LTAyLTEyICBTdWtvbHNhayBTYWtzaHV3
b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBJQ1UgaGVhZGVyIGZp
bGVzIHRvIHZlcnNpb24gNTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NDE2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSBJQ1UgaGVhZGVyIGZpbGVzIHRvIHZlcnNpb24gNTIgdG8gYWxsb3cg
dGhlIHVzZSBvZiBuZXdlciBBUElzLgorCisgICAgICAgICogaWN1L3VuaWNvZGUvYnl0ZXN0cmVh
bS5oOgorICAgICAgICAqIGljdS91bmljb2RlL2xvY2FscG9pbnRlci5oOgorICAgICAgICAqIGlj
dS91bmljb2RlL3BsYXRmb3JtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvcHR5cGVzLmg6Cisg
ICAgICAgICogaWN1L3VuaWNvZGUvcHV0aWwuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9yZXAu
aDoKKyAgICAgICAgKFJlcGxhY2VhYmxlOjpSZXBsYWNlYWJsZSk6CisgICAgICAgICogaWN1L3Vu
aWNvZGUvc3RkX3N0cmluZy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3N0cmVudW0uaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS9zdHJpbmdwaWVjZS5oOgorICAgICAgICAqIGljdS91bmljb2Rl
L3VjaGFyLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNudi5oOgorICAgICAgICAqIGljdS91
bmljb2RlL3Vjb2wuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91Y29uZmlnLmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvdWVudW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91aXRlci5oOgor
ICAgICAgICAqIGljdS91bmljb2RlL3Vsb2MuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bWFj
aGluZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VuaXN0ci5oOgorICAgICAgICAoVW5pY29k
ZVN0cmluZzo6VW5pY29kZVN0cmluZyk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpvcGVyYXRv
cj09ICk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKToKKyAgICAgICAgKFVu
aWNvZGVTdHJpbmc6OnNldFRvKToKKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OnJlbW92ZSk6Cisg
ICAgICAgIChVbmljb2RlU3RyaW5nOjpyZXBsYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKFVuaWNv
ZGVTdHJpbmc6OmV4dHJhY3QpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Y2hh
cjMyQXQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0Q2hhcjMyU3RhcnQp
OiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0Q2hhcjMyTGltaXQpOiBEZWxl
dGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0VGVybWluYXRlZEJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChVbmljb2RlU3RyaW5nOjphcHBlbmQpOiBEZWxldGVkLgorICAgICAgICAo
VW5pY29kZVN0cmluZzo6dHJ1bmNhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGljdS91bmljb2Rl
L3Vub3JtMi5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VvYmplY3QuaDoKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS91cmVuYW1lLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXNjcmlwdC5oOgor
ICAgICAgICAqIGljdS91bmljb2RlL3VzZXQuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91c3Ry
aW5nLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmLmg6CisgICAgICAgICogaWN1L3VuaWNv
ZGUvdXRmMTYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGY4Lmg6CisgICAgICAgICogaWN1
L3VuaWNvZGUvdXRmX29sZC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0eXBlcy5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3V2ZXJudW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dmVy
c2lvbi5oOgorCiAyMDE2LTAyLTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBOZWVkIFdURkNyYXNoIHdvcmthcm91bmQgZm9yIHNoaXBwaW5nIFNhZmFyaUZvcldl
YktpdERldmVsb3BtZW50IGJpbmFyaWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4OWVlMDBlNjFiNzFjMGM3
OTE5ZDQ2MWY0NTcwNjhkMDE5Y2Y0ZWEuLjkzNmFhZTU0MmVjMDNhNDJhNzk1ZTRjOTI2NTgwZDMy
ZmI5N2Y4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxNi0wMi0xMiAgU3Vrb2xz
YWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgSUNV
IGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQxNjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgSUNVIGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUy
IHRvIGFsbG93IHRoZSB1c2Ugb2YgbmV3ZXIgQVBJcy4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS9ieXRlc3RyZWFtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hhcml0ZXIuaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaDoKKyAgICAgICAgKiBpY3UvdW5pY29k
ZS9wbGF0Zm9ybS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3B0eXBlcy5oOgorICAgICAgICAq
IGljdS91bmljb2RlL3B1dGlsLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvcmVwLmg6CisgICAg
ICAgIChSZXBsYWNlYWJsZTo6UmVwbGFjZWFibGUpOgorICAgICAgICAqIGljdS91bmljb2RlL3N0
ZF9zdHJpbmcuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zdHJlbnVtLmg6CisgICAgICAgICog
aWN1L3VuaWNvZGUvc3RyaW5ncGllY2UuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91YnJrLmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNoYXIuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
Y252Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbC5oOgorICAgICAgICAqIGljdS91bmlj
b2RlL3Vjb2xlaXRyLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbmZpZy5oOgorICAgICAg
ICAqIGljdS91bmljb2RlL3Vjc2RldC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VlbnVtLmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvdWlkbmEuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
aXRlci5oOgorICAgICAgICAqIGljdS91bmljb2RlL3Vsb2MuaDoKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91bWFjaGluZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VuaXN0ci5oOgorICAgICAg
ICAoVW5pY29kZVN0cmluZzo6VW5pY29kZVN0cmluZyk6CisgICAgICAgIChVbmljb2RlU3RyaW5n
OjpvcGVyYXRvcj09ICk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKToKKyAg
ICAgICAgKFVuaWNvZGVTdHJpbmc6OnNldFRvKToKKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OnJl
bW92ZSk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpyZXBsYWNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFVuaWNvZGVTdHJpbmc6OmV4dHJhY3QpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0
cmluZzo6Y2hhcjMyQXQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0Q2hh
cjMyU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0Q2hhcjMyTGlt
aXQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0VGVybWluYXRlZEJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgIChVbmljb2RlU3RyaW5nOjphcHBlbmQpOiBEZWxldGVkLgor
ICAgICAgICAoVW5pY29kZVN0cmluZzo6dHJ1bmNhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGlj
dS91bmljb2RlL3Vub3JtMi5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VvYmplY3QuaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS91cmVuYW1lLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXNj
cmlwdC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VzZWFyY2guaDoKKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91c2V0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXNoYXBlLmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvdXN0cmluZy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0ZXh0Lmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRm
MTYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGY4Lmg6CisgICAgICAgICogaWN1L3VuaWNv
ZGUvdXRmX29sZC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0eXBlcy5oOgorICAgICAgICAq
IGljdS91bmljb2RlL3V2ZXJudW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dmVyc2lvbi5o
OgorCiAyMDE2LTAyLTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIE9wdGltaXplIHRleHR1cmUtY29tcGxldGUgY2hlY2tzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggYjAxOTI4MDM1NzhjNzdlOTdiNThhODgyMmIzZDQ5ODhhZGI0MjhjOC4uM2I4ZTZhOTZhZTk5
YjY4ZjljZTdmNWE1NmNkMjlkN2ExNjUyMTZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDE2LTAyLTEyICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwu
Y29tPgorCisgICAgICAgIFVwZGF0ZSBJQ1UgaGVhZGVyIGZpbGVzIHRvIHZlcnNpb24gNTIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDE2MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBJQ1Ug
aGVhZGVyIGZpbGVzIHRvIHZlcnNpb24gNTIgdG8gYWxsb3cgdGhlIHVzZSBvZiBuZXdlciBBUElz
LgorCisgICAgICAgICogaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmg6CisgICAgICAgICogaWN1
L3VuaWNvZGUvcGxhdGZvcm0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9wdHlwZXMuaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS9wdXRpbC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VjaGFy
Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbmZpZy5oOgorICAgICAgICAqIGljdS91bmlj
b2RlL3VpZG5hLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWl0ZXIuaDoKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS91bWFjaGluZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3Vub3JtMi5oOgor
ICAgICAgICAqIGljdS91bmljb2RlL3VyZW5hbWUuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
c2NyaXB0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXN0cmluZy5oOgorICAgICAgICAqIGlj
dS91bmljb2RlL3V0Zi5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0ZjE2Lmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvdXRmOC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0Zl9vbGQuaDoK
KyAgICAgICAgKiBpY3UvdW5pY29kZS91dHlwZXMuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
dmVybnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXZlcnNpb24uaDoKKwogMjAxNi0wMi0x
MSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRWRpdGluZ1Jhbmdl
SXNSZWxhdGl2ZVRvOjpEb2N1bWVudCBhbmQgTlNSYW5nZUlzUmVsYXRpdmVUbzo6RG9jdW1lbnQg
c2hvdWxkIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL2xv
Y2FscG9pbnRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL2xvY2FscG9p
bnRlci5oCmluZGV4IGI3NmExZjg1NjI5OTIzYmRkYjg0NmU5OGEwODQ4MzM0N2NhNGVlNGEuLmUz
Y2NiMjU4MTU0Y2MyMTYwOThlYmMyNzM5ZmI3YjY4MjIwNTljOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmgKQEAgLTEsNyArMSw3IEBA
CiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAy
MDA5LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKQEAgLTE0NCw2ICsxNDQsMTAgQEAgcHVibGljOgogICAgICAgICBwdHI9cDsKICAgICB9
CiBwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogQWN0dWFsIHBvaW50ZXIuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCiAgICAgVCAqcHRyOwogcHJpdmF0ZToKICAgICAvLyBObyBjb21wYXJp
c29uIG9wZXJhdG9ycyB3aXRoIG90aGVyIExvY2FsUG9pbnRlckJhc2VzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3BsYXRmb3JtLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaAppbmRleCAzZGU0MGQyNTY1NTNjNGFh
ZjFlYzA0ODMxZTk5YzU1M2ZkN2M0NmU5Li4xYjJhYjMwNmVhMzM3ODI5ZmQ5OWIyYzBmMjgyNzBk
MjljN2JiMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUv
cGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvcGxhdGZv
cm0uaApAQCAtMSwxNSArMSwxMSBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiBOb3RlOiBhdXRvY29uZiBjcmVhdGVzIHBs
YXRmb3JtLmggZnJvbSBwbGF0Zm9ybS5oLmluIGF0IGNvbmZpZ3VyZSB0aW1lLgotKgotKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCi0qCiAqICBGSUxFIE5BTUUgOiBwbGF0Zm9ybS5oCiAqCiAqICAgRGF0
ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KQEAgLTIzLDM3OSArMTksNzM3IEBACiAj
aWZuZGVmIF9QTEFURk9STV9ICiAjZGVmaW5lIF9QTEFURk9STV9ICiAKKyNpbmNsdWRlICJ1bmlj
b2RlL3Vjb25maWcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V2ZXJudW0uaCIKKwogLyoqCi0gKiBc
ZmlsZSAKLSAqIFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtIAorICogXGZpbGUK
KyAqIFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtLgorICoKKyAqIFRoaXMgZmls
ZSB1c2VkIHRvIGJlIGdlbmVyYXRlZCBieSBhdXRvY29uZi9jb25maWd1cmUuCisgKiBTdGFydGlu
ZyB3aXRoIElDVSA0OSwgcGxhdGZvcm0uaCBpcyBhIG5vcm1hbCBzb3VyY2UgZmlsZSwKKyAqIHRv
IHNpbXBsaWZ5IGNyb3NzLWNvbXBpbGluZyBhbmQgd29ya2luZyB3aXRoIG5vbi1hdXRvY29uZi9t
YWtlIGJ1aWxkIHN5c3RlbXMuCisgKgorICogV2hlbiBhIHZhbHVlIGluIHRoaXMgZmlsZSBkb2Vz
IG5vdCB3b3JrIG9uIGEgcGxhdGZvcm0sIHRoZW4gcGxlYXNlCisgKiB0cnkgdG8gZGVyaXZlIGl0
IGZyb20gdGhlIFVfUExBVEZPUk0gdmFsdWUKKyAqIChmb3Igd2hpY2ggd2UgbWlnaHQgbmVlZCBh
IG5ldyB2YWx1ZSBjb25zdGFudCBpbiByYXJlIGNhc2VzKQorICogYW5kL29yIGZyb20gb3RoZXIg
bWFjcm9zIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlIGNvbXBpbGVyCisgKiBvciBkZWZpbmVk
IGluIHN0YW5kYXJkIChQT1NJWCBvciBwbGF0Zm9ybSBvciBjb21waWxlcikgaGVhZGVycy4KKyAq
CisgKiBBcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLCB5b3UgY2FuIGFkZCBhbiBleHBsaWNpdCA8
Y29kZT4jZGVmaW5lPC9jb2RlPiBmb3Igc29tZSBtYWNyb3MKKyAqIGJlZm9yZSBpdCBpcyBmaXJz
dCB0ZXN0ZWQsIG9yIGFkZCBhbiBlcXVpdmFsZW50IC1EIG1hY3JvIGRlZmluaXRpb24KKyAqIHRv
IHRoZSBjb21waWxlcidzIGNvbW1hbmQgbGluZS4KKyAqCisgKiBOb3RlOiBTb21lIGNvbXBpbGVy
cyBwcm92aWRlIHdheXMgdG8gc2hvdyB0aGUgcHJlZGVmaW5lZCBtYWNyb3MuCisgKiBGb3IgZXhh
bXBsZSwgd2l0aCBnY2MgeW91IGNhbiBjb21waWxlIGFuIGVtcHR5IC5jIGZpbGUgYW5kIGhhdmUg
dGhlIGNvbXBpbGVyCisgKiBwcmludCB0aGUgcHJlZGVmaW5lZCBtYWNyb3Mgd2l0aAorICogXGNv
ZGUKKyAqIGdjYyAtRSAtZE0gLXggYyAvZGV2L251bGwgfCBzb3J0CisgKiBcZW5kY29kZQorICog
KFlvdSBjYW4gcHJvdmlkZSBhbiBhY3R1YWwgZW1wdHkgLmMgZmlsZSByYXRoZXIgdGhhbiAvZGV2
L251bGwuCisgKiA8Y29kZT4teCBjKys8L2NvZGU+IGlzIGZvciBDKysuKQogICovCiAKLS8qIFRo
aXMgZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgYmVmb3JlIHV2ZXJudW0uaC4gKi8KLSNpZiBkZWZp
bmVkKFVWRVJOVU1fSCkKLSMgZXJyb3IgRG8gbm90IGluY2x1ZGUgdW5pY29kZS91dmVybnVtLmgg
YmVmb3JlICNpbmNsdWRpbmcgdW5pY29kZS9wbGF0Zm9ybS5oLiAgSW5zdGVhZCBvZiB1bmljb2Rl
L3V2ZXJudW0uaCwgI2luY2x1ZGUgdW5pY29kZS91dmVyc2lvbi5oCi0jZW5kaWYKLQogLyoqCi0g
KiBEZXRlcm1pbmUgd2hldGVyIHRvIGVuYWJsZSBhdXRvIGNsZWFudXAgb2YgbGlicmFyaWVzLiAK
KyAqIERlZmluZSBzb21lIHRoaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlIGRvY3VtZW50ZWQuCiAg
KiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAotI2RlZmluZSBV
Q0xOX05PX0FVVE9fQ0xFQU5VUCAxCi0jZW5kaWYKLQotLyogTmVlZCBwbGF0Zm9ybS5oIHdoZW4g
dXNpbmcgQ1lHV0lOTVNWQyB0byBnZXQgZGVmaW5pdGlvbnMgYWJvdmUuIElnbm9yZSBldmVyeXRo
aW5nIGVsc2UuICovCi0jaWZuZGVmIENZR1dJTk1TVkMKKyNpZmRlZiBVX0lOX0RPWFlHRU4KKy8q
CisgKiBQcm9ibGVtOiAicGxhdGZvcm0uaDozMzU6IHdhcm5pbmc6IGRvY3VtZW50YXRpb24gZm9y
IHVua25vd24gZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIGZvdW5kLiIgbWVhbnMgdGhhdCBVX0hB
VkVfU1REX1NUUklORyBpcyBub3QgZG9jdW1lbnRlZC4KKyAqIFNvbHV0aW9uOiAjZGVmaW5lIGFu
eSBkZWZpbmVzIGZvciBub24gQGludGVybmFsIEFQSSBoZXJlLCBzbyB0aGF0IHRoZXkgYXJlIHZp
c2libGUgaW4gdGhlIGRvY3MuICBJZiB5b3UganVzdCBzZXQgUFJFREVGSU5FRCBpbiBEb3h5Zmls
ZS5pbiwgIHRoZXkgd29uJ3QgYmUgZG9jdW1lbnRlZC4KKyAqLwogCi0vKiogRGVmaW5lIHRoZSBw
bGF0Zm9ybSB3ZSdyZSBvbi4gKi8KLSNpZm5kZWYgVV9EQVJXSU4KLSNkZWZpbmUgVV9EQVJXSU4K
Ky8qIE5vbmUgZm9yIG5vdy4gKi8KICNlbmRpZgogCiAvKioKLSAqIFxkZWYgVV9IQVZFX0RJUkVO
VF9ICi0gKiBEZWZpbmUgd2hldGhlciBkaXJlbnQuaCBpcyBhdmFpbGFibGUgCisgKiBcZGVmIFVf
UExBVEZPUk0KKyAqIFRoZSBVX1BMQVRGT1JNIG1hY3JvIGRlZmluZXMgdGhlIHBsYXRmb3JtIHdl
J3JlIG9uLgorICoKKyAqIFdlIHVzZWQgdG8gZGVmaW5lIG9uZSBkaWZmZXJlbnQsIHZhbHVlLWxl
c3MgbWFjcm8gcGVyIHBsYXRmb3JtLgorICogVGhhdCBtYWRlIGl0IGhhcmQgdG8ga25vdyB0aGUg
c2V0IG9mIHJlbGV2YW50IHBsYXRmb3JtcyBhbmQgbWFjcm9zLAorICogYW5kIGhhcmQgdG8gZGVh
bCB3aXRoIHZhcmlhbnRzIG9mIHBsYXRmb3Jtcy4KKyAqCisgKiBTdGFydGluZyB3aXRoIElDVSA0
OSwgd2UgZGVmaW5lIHBsYXRmb3JtcyBhcyBudW1lcmljIG1hY3JvcywKKyAqIHdpdGggcmFuZ2Vz
IG9mIHZhbHVlcyBmb3IgcmVsYXRlZCBwbGF0Zm9ybXMgYW5kIHRoZWlyIHZhcmlhbnRzLgorICog
VGhlIFVfUExBVEZPUk0gbWFjcm8gaXMgc2V0IHRvIG9uZSBvZiB0aGVzZSB2YWx1ZXMuCisgKgor
ICogSGlzdG9yaWNhbCBub3RlIGZyb20gdGhlIFNvbGFyaXMgV2lraXBlZGlhIGFydGljbGU6Cisg
KiBBVCZUIGFuZCBTdW4gY29sbGFib3JhdGVkIG9uIGEgcHJvamVjdCB0byBtZXJnZSB0aGUgbW9z
dCBwb3B1bGFyIFVuaXggdmFyaWFudHMKKyAqIG9uIHRoZSBtYXJrZXQgYXQgdGhhdCB0aW1lOiBC
U0QsIFN5c3RlbSBWLCBhbmQgWGVuaXguCisgKiBUaGlzIGJlY2FtZSBVbml4IFN5c3RlbSBWIFJl
bGVhc2UgNCAoU1ZSNCkuCisgKgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9IQVZFX0RJ
UkVOVF9ICi0jZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAxCi0jZW5kaWYKIAotLyoqIERlZmluZSB3
aGV0aGVyIGludHR5cGVzLmggaXMgYXZhaWxhYmxlICovCi0jaWZuZGVmIFVfSEFWRV9JTlRUWVBF
U19ICi0jZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKy8qKiBVbmtub3duIHBsYXRmb3JtLiBA
aW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9VTktOT1dOIDAKKy8qKiBXaW5kb3dzIEBpbnRlcm5h
bCAqLworI2RlZmluZSBVX1BGX1dJTkRPV1MgMTAwMAorLyoqIE1pbkdXLiBXaW5kb3dzLCBjYWxs
cyB0byBXaW4zMiBBUEksIGJ1dCB1c2luZyBHTlUgZ2NjIGFuZCBiaW51dGlscy4gQGludGVybmFs
ICovCisjZGVmaW5lIFVfUEZfTUlOR1cgMTgwMAorLyoqCisgKiBDeWd3aW4uIFdpbmRvd3MsIGNh
bGxzIHRvIGN5Z3dpbjEuZGxsIGZvciBQb3NpeCBmdW5jdGlvbnMsCisgKiB1c2luZyBNU1ZDIG9y
IEdOVSBnY2MgYW5kIGJpbnV0aWxzLgorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVV9QRl9D
WUdXSU4gMTkwMAorLyogUmVzZXJ2ZSAyMDAwIGZvciBVX1BGX1VOSVg/ICovCisvKiogSFAtVVgg
aXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gVi4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfSFBV
WCAyMTAwCisvKiogU29sYXJpcyBpcyBhIFVuaXggb3BlcmF0aW5nIHN5c3RlbSBiYXNlZCBvbiBT
VlI0LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9TT0xBUklTIDI2MDAKKy8qKiBCU0QgaXMg
YSBVTklYIG9wZXJhdGluZyBzeXN0ZW0gZGVyaXZhdGl2ZS4gQGludGVybmFsICovCisjZGVmaW5l
IFVfUEZfQlNEIDMwMDAKKy8qKiBBSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gViBSZWxlYXNl
cyBhbmQgNC4zIEJTRC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQUlYIDMxMDAKKy8qKiBJ
UklYIGlzIGJhc2VkIG9uIFVOSVggU3lzdGVtIFYgd2l0aCBCU0QgZXh0ZW5zaW9ucy4gQGludGVy
bmFsICovCisjZGVmaW5lIFVfUEZfSVJJWCAzMjAwCisvKioKKyAqIERhcndpbiBpcyBhIFBPU0lY
LWNvbXBsaWFudCBvcGVyYXRpbmcgc3lzdGVtLCBjb21wb3NlZCBvZiBjb2RlIGRldmVsb3BlZCBi
eSBBcHBsZSwKKyAqIGFzIHdlbGwgYXMgY29kZSBkZXJpdmVkIGZyb20gTmVYVFNURVAsIEJTRCwg
YW5kIG90aGVyIHByb2plY3RzLAorICogYnVpbHQgYXJvdW5kIHRoZSBNYWNoIGtlcm5lbC4KKyAq
IERhcndpbiBmb3JtcyB0aGUgY29yZSBzZXQgb2YgY29tcG9uZW50cyB1cG9uIHdoaWNoIE1hYyBP
UyBYLCBBcHBsZSBUViwgYW5kIGlPUyBhcmUgYmFzZWQuCisgKiAoT3JpZ2luYWwgZGVzY3JpcHRp
b24gbW9kaWZpZWQgZnJvbSBXaWtpUGVkaWEuKQorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUg
VV9QRl9EQVJXSU4gMzUwMAorLyoqIGlQaG9uZSBPUyAoaU9TKSBpcyBhIGRlcml2YXRpdmUgb2Yg
TWFjIE9TIFguIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0lQSE9ORSAzNTUwCisvKiogUU5Y
IGlzIGEgY29tbWVyY2lhbCBVbml4LWxpa2UgcmVhbC10aW1lIG9wZXJhdGluZyBzeXN0ZW0gcmVs
YXRlZCB0byBCU0QuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1FOWCAzNzAwCisvKiogTGlu
dXggaXMgYSBVbml4LWxpa2Ugb3BlcmF0aW5nIHN5c3RlbS4gQGludGVybmFsICovCisjZGVmaW5l
IFVfUEZfTElOVVggNDAwMAorLyoqIEFuZHJvaWQgaXMgYmFzZWQgb24gTGludXguIEBpbnRlcm5h
bCAqLworI2RlZmluZSBVX1BGX0FORFJPSUQgNDA1MAorLyoqICJDbGFzc2ljIiBNYWMgT1MgKDE5
ODQtMjAwMSkgQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQ0xBU1NJQ19NQUNPUyA4MDAwCisv
Kiogei9PUyBpcyB0aGUgc3VjY2Vzc29yIHRvIE9TLzM5MCB3aGljaCB3YXMgdGhlIHN1Y2Nlc3Nv
ciB0byBNVlMuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX09TMzkwIDkwMDAKKy8qKiAiSUJN
IGkiIGlzIHRoZSBjdXJyZW50IG5hbWUgb2Ygd2hhdCB1c2VkIHRvIGJlIGk1L09TIGFuZCBlYXJs
aWVyIE9TLzQwMC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfT1M0MDAgOTQwMAorCisjaWZk
ZWYgVV9QTEFURk9STQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlm
IGRlZmluZWQoX19NSU5HVzMyX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9NSU5HVwor
I2VsaWYgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQ1lH
V0lOCisjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChX
SU42NCkgfHwgZGVmaW5lZChfV0lONjQpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9XSU5E
T1dTCisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVf
UEZfQU5EUk9JRAorICAgIC8qIEFuZHJvaWQgd2NoYXJfdCBzdXBwb3J0IGRlcGVuZHMgb24gdGhl
IEFQSSBsZXZlbC4gKi8KKyMgICBpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgorI2VsaWYg
ZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19saW51eCkK
KyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0xJTlVYCisjZWxpZiBkZWZpbmVkKF9fQVBQTEVf
XykgJiYgZGVmaW5lZChfX01BQ0hfXykKKyMgICBpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMu
aD4KKyMgICBpZiBkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmIFRBUkdFVF9PU19JUEhPTkUg
IC8qIHZhcmlhbnQgb2YgVEFSR0VUX09TX01BQyAqLworIyAgICAgICBkZWZpbmUgVV9QTEFURk9S
TSBVX1BGX0lQSE9ORQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9E
QVJXSU4KKyMgICBlbmRpZgorI2VsaWYgZGVmaW5lZChCU0QpIHx8IGRlZmluZWQoX19GcmVlQlNE
X18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18p
IHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19NaXJCU0RfXykKKyMgICBkZWZp
bmUgVV9QTEFURk9STSBVX1BGX0JTRAorI2VsaWYgZGVmaW5lZChzdW4pIHx8IGRlZmluZWQoX19z
dW4pCisgICAgLyogQ2hlY2sgZGVmaW5lZChfX1NWUjQpIHx8IGRlZmluZWQoX19zdnI0X18pIHRv
IGRpc3Rpbmd1aXNoIFNvbGFyaXMgZnJvbSBTdW5PUz8gKi8KKyMgICBkZWZpbmUgVV9QTEFURk9S
TSBVX1BGX1NPTEFSSVMKKyMgICBpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgICAgICAvKiBTb2xh
cmlzL0dDQyBuZWVkcyB0aGlzIGhlYWRlciBmaWxlIHRvIGdldCB0aGUgcHJvcGVyIGVuZGlhbm5l
c3MuIE5vcm1hbGx5LCB0aGlzCisgICAgICAgICAqIGhlYWRlciBmaWxlIGlzIGluY2x1ZGVkIHdp
dGggc3RkZGVmLmggYnV0IG9uIFNvbGFpcnMvR0NDLCB0aGUgR0NDIHZlcnNpb24gb2Ygc3RkZGVm
LmgKKyAgICAgICAgICogIGlzIGluY2x1ZGVkIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgdGhpcyBo
ZWFkZXIgZmlsZS4KKyAgICAgICAgICovCisjICAgICAgIGluY2x1ZGUgPHN5cy9pc2FfZGVmcy5o
PgorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9BSVgpIHx8IGRlZmluZWQoX19UT1NfQUlYX18p
CisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9BSVgKKyNlbGlmIGRlZmluZWQoX2hwdXgpIHx8
IGRlZmluZWQoaHB1eCkgfHwgZGVmaW5lZChfX2hwdXgpCisjICAgZGVmaW5lIFVfUExBVEZPUk0g
VV9QRl9IUFVYCisjZWxpZiBkZWZpbmVkKHNnaSkgfHwgZGVmaW5lZChfX3NnaSkKKyMgICBkZWZp
bmUgVV9QTEFURk9STSBVX1BGX0lSSVgKKyNlbGlmIGRlZmluZWQobWFjaW50b3NoKQorIyAgIGRl
ZmluZSBVX1BMQVRGT1JNIFVfUEZfQ0xBU1NJQ19NQUNPUworI2VsaWYgZGVmaW5lZChfX1FOWF9f
KSB8fCBkZWZpbmVkKF9fUU5YTlRPX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9RTlgK
KyNlbGlmIGRlZmluZWQoX19UT1NfTVZTX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9P
UzM5MAorI2VsaWYgZGVmaW5lZChfX09TNDAwX18pIHx8IGRlZmluZWQoX19UT1NfT1M0MDBfXykK
KyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX09TNDAwCisjZWxzZQorIyAgIGRlZmluZSBVX1BM
QVRGT1JNIFVfUEZfVU5LTk9XTgogI2VuZGlmCiAKIC8qKgotICogRGVmaW5lIHdoYXQgc3VwcG9y
dCBmb3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxlLgotICogICAgIElmIFVfSU9TVFJFQU1fU09V
UkNFIGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0O2lvc3RyZWFtJmd0OyBpcyBhdmFpbGFibGUK
LSAqICgxOTk3NzExIGlzIHRoZSBkYXRlIHRoZSBJU08vSUVDIEMrKyBGRElTIHdhcyBwdWJsaXNo
ZWQpLCBhbmQgdGhlbgotICogb25lIHNob3VsZCBxdWFsaWZ5IHN0cmVhbXMgdXNpbmcgdGhlIHN0
ZCBuYW1lc3BhY2UgaW4gSUNVIGhlYWRlcgotICogZmlsZXMuCi0gKiAgICAgSWYgVV9JT1NUUkVB
TV9TT1VSQ0UgaXMgc2V0IHRvIDE5ODUwNiwgdGhlbiAmbHQ7aW9zdHJlYW0uaCZndDsgaXMKLSAq
IGF2YWlsYWJsZSBpbnN0ZWFkICgxOTg1MDYgaXMgdGhlIGRhdGUgd2hlbiBTdHJvdXN0cnVwIHB1
Ymxpc2hlZAotICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5IGZvciBDKysiIGF0IHRoZSBz
dW1tZXIgVVNFTklYIGNvbmZlcmVuY2UpLgotICogICAgIElmIFVfSU9TVFJFQU1fU09VUkNFIGlz
IDAsIHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCi0gKiBzdXBwb3J0IGZv
ciB0aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCi0gKgorICogXGRlZiBD
WUdXSU5NU1ZDCisgKiBEZWZpbmVkIGlmIHRoaXMgaXMgV2luZG93cyB3aXRoIEN5Z3dpbiwgYnV0
IHVzaW5nIE1TVkMgcmF0aGVyIHRoYW4gZ2NjLgorICogT3RoZXJ3aXNlIHVuZGVmaW5lZC4KKyAq
IEBpbnRlcm5hbAogICovCi0KLSNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKLSNkZWZpbmUgVV9J
T1NUUkVBTV9TT1VSQ0UgMTk5NzExCisvKiBDb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBpcyBh
bHJlYWR5IHNldCBpbiBtaC1jeWd3aW4tbXN2YworI2lmIFVfUExBVEZPUk0gPT0gVV9QRl9DWUdX
SU4gJiYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgQ1lHV0lOTVNWQwogI2VuZGlmCisq
LwogCiAvKioKLSAqIFxkZWYgVV9IQVZFX1NURF9TVFJJTkcKLSAqIERlZmluZSB3aGV0aGVyIHRo
ZSBzdGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsgaGVhZGVyIGlzIGF2YWlsYWJsZS4K
LSAqIEZvciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgdXNlIHBsYXRmb3JtLmggYW5kIGRvIG5vdCBk
ZWZpbmUgdGhpcyBjb25zdGFudAotICogaW4gdGhlaXIgcGxhdGZvcm0tc3BlY2lmaWMgaGVhZGVy
cywgc3RkX3N0cmluZy5oIGRlZmF1bHRzCi0gKiBVX0hBVkVfU1REX1NUUklORyB0byAxLgorICog
XGRlZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAqIERlZmluZXMgd2hldGhlciB0
aGUgcGxhdGZvcm0gdXNlcyBvbmx5IHRoZSBXaW4zMiBBUEkuCisgKiBTZXQgdG8gMSBmb3IgV2lu
ZG93cy9NU1ZDIGFuZCBNaW5HVyBidXQgbm90IEN5Z3dpbi4KICAqIEBpbnRlcm5hbAogICovCi0j
aWZuZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0jZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEKKyNp
ZmRlZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiAoVV9QRl9XSU5ET1dTIDw9IFVfUExBVEZPUk0gJiYgVV9Q
TEFURk9STSA8PSBVX1BGX01JTkdXKSB8fCBkZWZpbmVkKENZR1dJTk1TVkMpCisjICAgZGVmaW5l
IFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSAxCisjZWxzZQorICAgIC8qIEN5Z3dpbiBp
bXBsZW1lbnRzIFBPU0lYLiAqLworIyAgIGRlZmluZSBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4z
Ml9BUEkgMAogI2VuZGlmCiAKLS8qKiBAeyBEZXRlcm1pbmVzIHdoZXRoZXIgc3BlY2lmaWMgdHlw
ZXMgYXJlIGF2YWlsYWJsZSAqLwotI2lmbmRlZiBVX0hBVkVfSU5UOF9UCi0jZGVmaW5lIFVfSEFW
RV9JTlQ4X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICogRGVm
aW5lcyB3aGV0aGVyIHRoZSBXaW4zMiBBUEkgaXMgYXZhaWxhYmxlIG9uIHRoZSBwbGF0Zm9ybS4K
KyAqIFNldCB0byAxIGZvciBXaW5kb3dzL01TVkMsIE1pbkdXIGFuZCBDeWd3aW4uCisgKiBAaW50
ZXJuYWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUEZfV0lORE9XUyA8PSBVX1BMQVRGT1JN
ICYmIFVfUExBVEZPUk0gPD0gVV9QRl9DWUdXSU4KKyMgICBkZWZpbmUgVV9QTEFURk9STV9IQVNf
V0lOMzJfQVBJIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSAw
CiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDhfVAotI2RlZmluZSBVX0hBVkVfVUlOVDhf
VCAwCisvKioKKyAqIFxkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgKiBEZWZpbmVz
IHdoZXRoZXIgdGhlIHBsYXRmb3JtIGltcGxlbWVudHMgKG1vc3Qgb2YpIHRoZSBQT1NJWCBBUEku
CisgKiBTZXQgdG8gMSBmb3IgQ3lnd2luIGFuZCBtb3N0IG90aGVyIHBsYXRmb3Jtcy4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgICAgLyog
VXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlf
V0lOMzJfQVBJIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisjICAgZGVmaW5l
IFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAwCisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRG
T1JNX0lNUExFTUVOVFNfUE9TSVggMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDE2X1QK
LSNkZWZpbmUgVV9IQVZFX0lOVDE2X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSVNfTElO
VVhfQkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaXMgTGludXggb3Igb25l
IG9mIGl0cyBkZXJpdmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9S
TV9JU19MSU5VWF9CQVNFRAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIFVfUEZfTElOVVggPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfQU5EUk9J
RAorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VEIDEKKyNlbHNlCisjICAgZGVm
aW5lIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQgMAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZF
X1VJTlQxNl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMTZfVCAwCisvKioKKyAqIFxkZWYgVV9QTEFU
Rk9STV9JU19EQVJXSU5fQkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaXMg
RGFyd2luIG9yIG9uZSBvZiBpdHMgZGVyaXZhdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lm
ZGVmIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VECisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgVV9QRl9EQVJXSU4gPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JN
IDw9IFVfUEZfSVBIT05FCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIDEK
KyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIDAKICNlbmRpZgog
Ci0jaWZuZGVmIFVfSEFWRV9JTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9JTlQzMl9UIDEKKy8qKgor
ICogXGRlZiBVX0hBVkVfU1RESU5UX0gKKyAqIERlZmluZXMgd2hldGhlciBzdGRpbnQuaCBpcyBh
dmFpbGFibGUuIEl0IGlzIGEgQzk5IHN0YW5kYXJkIGhlYWRlci4KKyAqIFdlIHVzZWQgdG8gaW5j
bHVkZSBpbnR0eXBlcy5oIHdoaWNoIGluY2x1ZGVzIHN0ZGludC5oIGJ1dCB3ZSB1c3VhbGx5IGRv
IG5vdCBuZWVkCisgKiB0aGUgYWRkaXRpb25hbCBkZWZpbml0aW9ucyBmcm9tIGludHR5cGVzLmgu
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9TVERJTlRfSAorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMy
X0FQSQorIyAgIGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBVX1BMQVRGT1JNID09IFVfUEZf
TUlOR1cgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPj0xNjAwKQorICAgICAgICAv
KiBXaW5kb3dzIFZpc3VhbCBTdHVkaW8gOSBhbmQgYmVsb3cgZG8gbm90IGhhdmUgc3RkaW50Lmgg
JiBpbnR0eXBlcy5oLCBidXQgVlMgMjAxMCBhZGRzIHRoZW0uICovCisjICAgICAgIGRlZmluZSBV
X0hBVkVfU1RESU5UX0ggMQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9TVERJTlRf
SCAwCisjICAgZW5kaWYKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisgICAgLyog
U29sYXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBV
X0hBVkVfU1RESU5UX0ggMAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWCAmJiAhZGVmaW5l
ZChfQUlYNTEpICYmIGRlZmluZWQoX1BPV0VSKQorICAgIC8qIFBQQyBBSVggPD0gNC4zIGhhcyBp
bnR0eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERJTlRf
SCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMQogI2VuZGlmCiAKLSNpZm5k
ZWYgVV9IQVZFX1VJTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMzJfVCAwCisvKioKKyAqIFxk
ZWYgVV9IQVZFX0lOVFRZUEVTX0gKKyAqIERlZmluZXMgd2hldGhlciBpbnR0eXBlcy5oIGlzIGF2
YWlsYWJsZS4gSXQgaXMgYSBDOTkgc3RhbmRhcmQgaGVhZGVyLgorICogV2UgaW5jbHVkZSBpbnR0
eXBlcy5oIHdoZXJlIGl0IGlzIGF2YWlsYWJsZSBidXQgc3RkaW50LmggaXMgbm90LgorICogQGlu
dGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisgICAg
LyogU29sYXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmlu
ZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYICYmICFk
ZWZpbmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9XRVIpCisgICAgLyogUFBDIEFJWCA8PSA0LjMg
aGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX0lO
VFRZUEVTX0ggMQorI2Vsc2UKKyAgICAvKiBNb3N0IHBsYXRmb3JtcyBoYXZlIGJvdGggaW50dHlw
ZXMuaCBhbmQgc3RkaW50LmgsIG9yIG5laXRoZXIuICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRU
WVBFU19IIFVfSEFWRV9TVERJTlRfSAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDY0X1QK
LSNkZWZpbmUgVV9IQVZFX0lOVDY0X1QgMQorLyoqCisgKiBcZGVmIFVfSU9TVFJFQU1fU09VUkNF
CisgKiBEZWZpbmVzIHdoYXQgc3VwcG9ydCBmb3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxlLgor
ICoKKyAqIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0O2lv
c3RyZWFtJmd0OyBpcyBhdmFpbGFibGUKKyAqICh0aGUgSVNPL0lFQyBDKysgRkRJUyB3YXMgcHVi
bGlzaGVkIGluIE5vdmVtYmVyIDE5OTcpLCBhbmQgdGhlbgorICogb25lIHNob3VsZCBxdWFsaWZ5
IHN0cmVhbXMgdXNpbmcgdGhlIHN0ZCBuYW1lc3BhY2UgaW4gSUNVIGhlYWRlcgorICogZmlsZXMu
CisgKiBTdGFydGluZyB3aXRoIElDVSA0OSwgdGhpcyBpcyB0aGUgb25seSBzdXBwb3J0ZWQgdmVy
c2lvbi4KKyAqCisgKiBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2LCB0aGVu
ICZsdDtpb3N0cmVhbS5oJmd0OyBpcworICogYXZhaWxhYmxlIGluc3RlYWQgKGluIEp1bmUgMTk4
NSBTdHJvdXN0cnVwIHB1Ymxpc2hlZAorICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5IGZv
ciBDKysiIGF0IHRoZSBzdW1tZXIgVVNFTklYIGNvbmZlcmVuY2UpLgorICogU3RhcnRpbmcgd2l0
aCBJQ1UgNDksIHRoaXMgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGFueSBtb3JlLgorICoKKyAq
IElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIDAgKG9yIGFueSB2YWx1ZSBsZXNzIHRoYW4gMTk5NzEx
KSwKKyAqIHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCisgKiBzdXBwb3J0
IGZvciB0aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCisgKgorICogQGlu
dGVybmFsCisgKi8KKyNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKKyNkZWZpbmUgVV9JT1NUUkVB
TV9TT1VSQ0UgMTk5NzExCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDY0X1QKLSNkZWZp
bmUgVV9IQVZFX1VJTlQ2NF9UIDAKKy8qKgorICogXGRlZiBVX0hBVkVfU1REX1NUUklORworICog
RGVmaW5lcyB3aGV0aGVyIHRoZSBzdGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsgaGVh
ZGVyIGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURF9T
VFJJTkcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQorIyAgIGRl
ZmluZSBVX0hBVkVfU1REX1NUUklORyAxCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KIC8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KIC8qKiBAeyBDb21waWxlciBhbmQgZW52aXJvbm1lbnQgZmVhdHVyZXMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ki8KIAotLyogRGVmaW5lIHdoZXRoZXIgbmFtZXNwYWNlIGlzIHN1cHBvcnRlZCAqLwotI2lm
bmRlZiBVX0hBVkVfTkFNRVNQQUNFCi0jZGVmaW5lIFVfSEFWRV9OQU1FU1BBQ0UgMQotI2VuZGlm
Ci0KLS8qIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtCi0gICBJdCdz
IGRvbmUgdGhpcyB3YXkgaW4gY2FzZSBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGFyZSBiZWluZyBi
dWlsdCBhdCBvbmNlLgotICAgRm9yIGV4YW1wbGUsIERhcndpbiBzdXBwb3J0cyBmYXQgYmluYXJp
ZXMsIHdoaWNoIGNhbiBiZSBib3RoIFBQQyBhbmQgeDg2IGJhc2VkLiAqLwotI2lmIGRlZmluZWQo
QllURV9PUkRFUikgJiYgZGVmaW5lZChCSUdfRU5ESUFOKQotI2RlZmluZSBVX0lTX0JJR19FTkRJ
QU4gKEJZVEVfT1JERVIgPT0gQklHX0VORElBTikKKy8qKgorICogXGRlZiBVX0dDQ19NQUpPUl9N
SU5PUgorICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlzIGdjYyAodGVzdCBmb3Ig
IT0gMCksCisgKiBhbmQgaWYgc28sIGNvbnRhaW5zIGl0cyBtYWpvciAodGltZXMgMTAwKSBhbmQg
bWlub3IgdmVyc2lvbiBudW1iZXJzLgorICogSWYgdGhlIGNvbXBpbGVyIGlzIG5vdCBnY2MsIHRo
ZW4gVV9HQ0NfTUFKT1JfTUlOT1IgPT0gMC4KKyAqCisgKiBGb3IgZXhhbXBsZSwgZm9yIHRlc3Rp
bmcgZm9yIHdoZXRoZXIgd2UgaGF2ZSBnY2MsIGFuZCB3aGV0aGVyIGl0J3MgNC42IG9yIGhpZ2hl
ciwKKyAqIHVzZSAiI2lmIFVfR0NDX01BSk9SX01JTk9SID49IDQwNiIuCisgKiBAaW50ZXJuYWwK
KyAqLworI2lmZGVmIF9fR05VQ19fCisjICAgZGVmaW5lIFVfR0NDX01BSk9SX01JTk9SIChfX0dO
VUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fKQogI2Vsc2UKLSNkZWZpbmUgVV9JU19CSUdfRU5E
SUFOIDEKKyMgICBkZWZpbmUgVV9HQ0NfTUFKT1JfTUlOT1IgMAogI2VuZGlmCiAKLS8qIDEgb3Ig
MCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aHJlYWRzLiAgSWYgdW5kZWZpbmVkLCBkZWZhdWx0IGlz
OiBlbmFibGUgdGhyZWFkcy4gKi8KLSNpZm5kZWYgSUNVX1VTRV9USFJFQURTIAotI2RlZmluZSBJ
Q1VfVVNFX1RIUkVBRFMgMQotI2VuZGlmCi0KLS8qIE9uIHN0cm9uZyBtZW1vcnkgbW9kZWwgQ1BV
cyAoZS5nLiB4ODYgQ1BVcyksIHdlIHVzZSBhIHNhZmUgJiBxdWljayBkb3VibGUgY2hlY2sgbG9j
ay4gKi8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwgZGVm
aW5lZChfX3g4Nl82NF9fKSkKLSNkZWZpbmUgVU1UWF9TVFJPTkdfTUVNT1JZX01PREVMIDEKLSNl
bmRpZgotCi0jaWZuZGVmIFVfREVCVUcKLSNkZWZpbmUgVV9ERUJVRyAwCi0jZW5kaWYKLQotI2lm
bmRlZiBVX1JFTEVBU0UKLSNkZWZpbmUgVV9SRUxFQVNFIDEKKy8qKgorICogXGRlZiBVX0lTX0JJ
R19FTkRJQU4KKyAqIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtLgor
ICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0lTX0JJR19FTkRJQU4KKyAgICAvKiBVc2UgdGhl
IHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKEJZVEVfT1JERVIpICYmIGRlZmlu
ZWQoQklHX0VORElBTikKKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChCWVRFX09SREVSID09
IEJJR19FTkRJQU4pCisjZWxpZiBkZWZpbmVkKF9fQllURV9PUkRFUl9fKSAmJiBkZWZpbmVkKF9f
T1JERVJfQklHX0VORElBTl9fKQorICAgIC8qIGdjYyAqLworIyAgIGRlZmluZSBVX0lTX0JJR19F
TkRJQU4gKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9fKQorI2VsaWYgZGVm
aW5lZChfX0JJR19FTkRJQU5fXykgfHwgZGVmaW5lZChfQklHX0VORElBTikKKyMgICBkZWZpbmUg
VV9JU19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pIHx8IGRl
ZmluZWQoX0xJVFRMRV9FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAwCisjZWxp
ZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAgfHwgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwIHx8
IGRlZmluZWQoX19zMzkwX18pIHx8IGRlZmluZWQoX19zMzkweF9fKQorICAgIC8qIFRoZXNlIHBs
YXRmb3JtcyBkbyBub3QgYXBwZWFyIHRvIHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3Mu
ICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisjZWxpZiBkZWZpbmVkKF9QQV9SSVND
MV8wKSB8fCBkZWZpbmVkKF9QQV9SSVNDMV8xKSB8fCBkZWZpbmVkKF9QQV9SSVNDMl8wKQorICAg
IC8qIEhQUEEgZG8gbm90IGFwcGVhciB0byBwcmVkZWZpbmUgYW55IGVuZGlhbm5lc3MgbWFjcm9z
LiAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChzcGFyYykg
fHwgZGVmaW5lZChfX3NwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmNfXykKKyAgICAvKiBTb21lIHNw
YXJjIGJhc2VkIHN5c3RlbXMgKGUuZy4gTGludXgpIGRvIG5vdCBwcmVkZWZpbmUgYW55IGVuZGlh
bm5lc3MgbWFjcm9zLiAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2Vsc2UKKyMg
ICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDAKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhl
ciB0byBkaXNhYmxlIHJlbmFtaW5nIG9yIG5vdC4gVGhpcyBvdmVycmlkZXMgdGhlCi0gICBzZXR0
aW5nIGluIHVtYWNoaW5lLmggd2hpY2ggaXMgZm9yIGFsbCBwbGF0Zm9ybXMuICovCi0jaWZuZGVm
IFVfRElTQUJMRV9SRU5BTUlORwotI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMQorLyoqCisg
KiBcZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gb3Zl
cnJpZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuCisgKiBAc3RhYmxlIElDVSAy
LjYKKyAqLworI2lmZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgICAgLyogVXNlIHRoZSBwcmVk
ZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgZGVmaW5l
IFVfSEFWRV9QTEFDRU1FTlRfTkVXIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QTEFDRU1F
TlRfTkVXIDEKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBvdmVycmlkZSBuZXcg
YW5kIGRlbGV0ZS4gKi8KLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmlu
ZSBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotLyogRGV0ZXJtaW5lIHdoZXRo
ZXIgdG8gb3ZlcnJpZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuICovCi0jaWZu
ZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCi0jZGVmaW5lIFVfSEFWRV9QTEFDRU1FTlRfTkVXIDEK
Ky8qKgorICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIAorICogRGVmaW5lIHRoaXMg
dG8gZGVmaW5lIHRoZSBNRkMgZGVidWcgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IgbmV3LgorICoK
KyAqIEBzdGFibGUgSUNVIDMuNAorICovCisjaWZkZWYgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05F
VworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX01T
Q19WRVIpCisjICAgZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMQorI2Vsc2UKKyMg
ICBkZWZpbmUgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAwCiAjZW5kaWYKIAotLyogRGV0ZXJt
aW5lIHdoZXRoZXIgdG8gZW5hYmxlIHRyYWNpbmcuICovCi0jaWZuZGVmIFVfRU5BQkxFX1RSQUNJ
TkcKLSNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAxCisvKiBDb21wYXRpYmlsaXR5IHdpdGggbm9u
IGNsYW5nIGNvbXBpbGVycyAqLworI2lmbmRlZiBfX2hhc19hdHRyaWJ1dGUKKyMgICAgZGVmaW5l
IF9faGFzX2F0dHJpYnV0ZSh4KSAwCiAjZW5kaWYKIAogLyoqCi0gKiBXaGV0aGVyIHRvIGVuYWJs
ZSBEeW5hbWljIGxvYWRpbmcgaW4gSUNVCisgKiBcZGVmIFVfTUFMTE9DX0FUVFIKKyAqIEF0dHJp
YnV0ZSB0byBtYXJrIGZ1bmN0aW9ucyBhcyBtYWxsb2MtbGlrZQogICogQGludGVybmFsCiAgKi8K
LSNpZm5kZWYgVV9FTkFCTEVfRFlMT0FECi0jZGVmaW5lIFVfRU5BQkxFX0RZTE9BRCAxCisjaWYg
ZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18+PTMKKyMgICAgZGVmaW5lIFVfTUFMTE9DX0FU
VFIgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKQorI2Vsc2UKKyMgICAgZGVmaW5lIFVfTUFM
TE9DX0FUVFIKICNlbmRpZgogCiAvKioKLSAqIFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxvYWRp
bmcgYXMgYW4gT1MgY2FwYWJpbHR5CisgKiBcZGVmIFVfQUxMT0NfU0laRV9BVFRSCisgKiBBdHRy
aWJ1dGUgdG8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciBmb3IgbWFs
bG9jLWxpa2UgZnVuY3Rpb25zCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0NIRUNLX0RZ
TE9BRAotI2RlZmluZSBVX0NIRUNLX0RZTE9BRCAxCi0jZW5kaWYKLQotCi0vKiogRG8gd2UgYWxs
b3cgSUNVIHVzZXJzIHRvIHVzZSB0aGUgZHJhZnQgQVBJcyBieSBkZWZhdWx0PyAqLwotI2lmbmRl
ZiBVX0RFRkFVTFRfU0hPV19EUkFGVAotI2RlZmluZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAxCisj
aWYgKGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQg
JiYgX19HTlVDX01JTk9SX18gPj0gMykpKSB8fCBfX2hhc19hdHRyaWJ1dGUoYWxsb2Nfc2l6ZSkK
KyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIoWCkgX19hdHRyaWJ1dGVfXyAoKGFsbG9jX3Np
emUoWCkpKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUjIoWCxZKSBfX2F0dHJpYnV0ZV9f
ICgoYWxsb2Nfc2l6ZShYLFkpKSkKKyNlbHNlCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRS
KFgpCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSMihYLFkpCiAjZW5kaWYKIAogLyoqIEB9
ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0eXBl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
CisvKiogQHsgQ2hhcmFjdGVyIGRhdGEgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiAo
KGRlZmluZWQoT1MzOTApICYmICghZGVmaW5lZChfX0NIQVJTRVRfTElCKSB8fCAhX19DSEFSU0VU
X0xJQikpKSB8fCBkZWZpbmVkKE9TNDAwKQotIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIDEK
Ky8qKgorICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhl
IHBsYXRmb3JtIGlzIGFuIEFTQ0lJIGJhc2VkIHBsYXRmb3JtLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KKyNkZWZpbmUgVV9BU0NJSV9GQU1JTFkgMAorCisvKioKKyAqIFVfQ0hBUlNFVF9GQU1J
TFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBFQkNESUMg
YmFzZWQgcGxhdGZvcm0uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2RlZmluZSBVX0VCQ0RJ
Q19GQU1JTFkgMQorCisvKioKKyAqIFxkZWYgVV9DSEFSU0VUX0ZBTUlMWQorICoKKyAqIDxwPlRo
ZXNlIGRlZmluaXRpb25zIGFsbG93IHRvIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHRleHQKKyAq
IGluIHRoZSBjaGFyIGRhdGEgdHlwZSBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybSBhbmQgdGhl
IGNvbXBpbGVyLgorICogSXQgaXMgZW5vdWdoIHRvIGRldGVybWluZSB0aGUgY29kZSBwb2ludCB2
YWx1ZXMgb2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiwKKyAqIHdoaWNoIGFyZSB0aGUgb25lcyBz
aGFyZWQgYnkgYWxsIGVuY29kaW5ncyB0aGF0IGFyZSBpbiB1c2UKKyAqIG9uIGEgZ2l2ZW4gcGxh
dGZvcm0uPC9wPgorICoKKyAqIDxwPlRob3NlICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgc2hvdWxk
IGJlIGFsbCB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UKKyAqIGxhdGluIGxldHRlcnMsIHRo
ZSBkaWdpdHMsIHRoZSBzcGFjZSwgYW5kICJiYXNpYyBwdW5jdHVhdGlvbiIuCisgKiBBbHNvLCAn
XFxuJywgJ1xccicsICdcXHQnIHNob3VsZCBiZSBhdmFpbGFibGUuPC9wPgorICoKKyAqIDxwPlRo
ZSBsaXN0IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgaXM6PGJyPgorICogXGNvZGUKKyAqICAg
IEEtWiAgYS16ICAwLTkgIFNQQUNFICAiICAlICAmYW1wOyAgJyAgKCAgKSAgKiAgKyAgLCAgLSAg
LiAgLyAgOiAgOyAgPCAgPSAgPiAgPyAgXworICogXGVuZGNvZGUKKyAqIDxicj4KKyAqICg1MiBs
ZXR0ZXJzICsgMTAgbnVtYmVycyArIDIwIHB1bmMvc3ltL3NwYWNlID0gODIgdG90YWwpPC9wPgor
ICoKKyAqIDxwPlRoaXMgbWF0Y2hlcyB0aGUgSUJNIFN5bnRhY3RpYyBDaGFyYWN0ZXIgU2V0IChD
UyA2NDApLjwvcD4KKyAqCisgKiA8cD5JbiBvdGhlciB3b3JkcywgYWxsIHRoZSBncmFwaGljIGNo
YXJhY3RlcnMgaW4gNy1iaXQgQVNDSUkgc2hvdWxkCisgKiBiZSBzYWZlbHkgYWNjZXNzaWJsZSBl
eGNlcHQgdGhlIGZvbGxvd2luZzo8L3A+CisgKgorICogXGNvZGUKKyAqICAgICdcJyA8YmFja3Ns
YXNoPgorICogICAgJ1snIDxsZWZ0IGJyYWNrZXQ+CisgKiAgICAnXScgPHJpZ2h0IGJyYWNrZXQ+
CisgKiAgICAneycgPGxlZnQgYnJhY2U+CisgKiAgICAnfScgPHJpZ2h0IGJyYWNlPgorICogICAg
J14nIDxjaXJjdW1mbGV4PgorICogICAgJ34nIDx0aWxkZT4KKyAqICAgICchJyA8ZXhjbGFtYXRp
b24gbWFyaz4KKyAqICAgICcjJyA8bnVtYmVyIHNpZ24+CisgKiAgICAnfCcgPHZlcnRpY2FsIGxp
bmU+CisgKiAgICAnJCcgPGRvbGxhciBzaWduPgorICogICAgJ0AnIDxjb21tZXJjaWFsIGF0Pgor
ICogICAgJ2AnIDxncmF2ZSBhY2NlbnQ+CisgKiBcZW5kY29kZQorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KKyNpZmRlZiBVX0NIQVJTRVRfRkFNSUxZCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICghZGVmaW5lZChf
X0NIQVJTRVRfTElCKSB8fCAhX19DSEFSU0VUX0xJQikKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0ZB
TUlMWSBVX0VCQ0RJQ19GQU1JTFkKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCAmJiAh
ZGVmaW5lZChfX1VURjMyX18pCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgVV9FQkNESUNf
RkFNSUxZCisjZWxzZQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfQVNDSUlfRkFNSUxZ
CisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfQ0hBUlNFVF9JU19VVEY4CisgKgorICogSGFyZGNv
ZGUgdGhlIGRlZmF1bHQgY2hhcnNldCB0byBVVEYtOC4KKyAqCisgKiBJZiB0aGlzIGlzIHNldCB0
byAxLCB0aGVuCisgKiAtIElDVSB3aWxsIGFzc3VtZSB0aGF0IGFsbCBub24taW52YXJpYW50IGNo
YXIqLCBTdHJpbmdQaWVjZSwgc3RkOjpzdHJpbmcgZXRjLgorICogICBjb250YWluIFVURi04IHRl
eHQsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc3lzdGVtIEFQSSB1c2VzCisgKiAtIHNvbWUgSUNV
IGNvZGUgd2lsbCB1c2UgZmFzdCBmdW5jdGlvbnMgbGlrZSB1X3N0ckZyb21VVEY4KCkKKyAqICAg
cmF0aGVyIHRoYW4gdGhlIG1vcmUgZ2VuZXJhbCBhbmQgbW9yZSBoZWF2eS13ZWlnaHQgY29udmVy
c2lvbiBBUEkgKHVjbnYuaCkKKyAqIC0gdWNudl9nZXREZWZhdWx0TmFtZSgpIGFsd2F5cyByZXR1
cm5zICJVVEYtOCIKKyAqIC0gdWNudl9zZXREZWZhdWx0TmFtZSgpIGlzIGRpc2FibGVkIGFuZCB3
aWxsIG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgY2hhcnNldAorICogLSBzdGF0aWMgYnVpbGRzIG9m
IElDVSBhcmUgc21hbGxlcgorICogLSBtb3JlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHdp
dGggdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZC10aW1lCisgKiAgIGNvbmZpZ3VyYXRp
b24gb3B0aW9uIChzZWUgdW5pY29kZS91Y29uZmlnLmgpCisgKiAtIHRoZSBVQ09ORklHX05PX0NP
TlZFUlNJT04gYnVpbGQgb3B0aW9uIGluIHVjb25maWcuaCBpcyBtb3JlIHVzYWJsZQorICoKKyAq
IEBzdGFibGUgSUNVIDQuMgorICogQHNlZSBVQ09ORklHX05PX0NPTlZFUlNJT04KKyAqLworI2lm
ZGVmIFVfQ0hBUlNFVF9JU19VVEY4CisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAq
LworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgfHwgVV9QTEFURk9STV9JU19EQVJX
SU5fQkFTRUQKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0lTX1VURjggMQorI2Vsc2UKKyMgICBkZWZp
bmUgVV9DSEFSU0VUX0lTX1VURjggMAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IEluZm9ybWF0
aW9uIGFib3V0IHdjaGFyIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9I
Ci0jZGVmaW5lIFVfSEFWRV9XQ0hBUl9IICAgICAgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9XQ0hB
Ul9ICisgKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4gaXMgYXZhaWxhYmxlICgxKSBvciBu
b3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICov
CisjaWZkZWYgVV9IQVZFX1dDSEFSX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUu
ICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCAmJiBfX0FORFJPSURfQVBJX18g
PCA5CisgICAgLyoKKyAgICAgKiBBbmRyb2lkIGJlZm9yZSBHaW5nZXJicmVhZCAoQW5kcm9pZCAy
LjMsIEFQSSBsZXZlbCA5KSBkaWQgbm90IHN1cHBvcnQgd2NoYXJfdC4KKyAgICAgKiBUaGUgdHlw
ZSBhbmQgaGVhZGVyIGV4aXN0ZWQsIGJ1dCB0aGUgbGlicmFyeSBmdW5jdGlvbnMgZGlkIG5vdCB3
b3JrIGFzIGV4cGVjdGVkLgorICAgICAqIFRoZSBzaXplIG9mIHdjaGFyX3Qgd2FzIDEgYnV0IEwi
eHl6IiBzdHJpbmcgbGl0ZXJhbHMgaGFkIDMyLWJpdCB1bml0cyBhbnl3YXkuCisgICAgICovCisj
ICAgZGVmaW5lIFVfSEFWRV9XQ0hBUl9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9XQ0hB
Ul9IIDEKICNlbmRpZgogCi0jaWZuZGVmIFVfU0laRU9GX1dDSEFSX1QKLSNkZWZpbmUgVV9TSVpF
T0ZfV0NIQVJfVCAgICA0CisvKioKKyAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJfVAorICogVV9TSVpF
T0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpCisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
KyNpZmRlZiBVX1NJWkVPRl9XQ0hBUl9UCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgKFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lEICYmIF9fQU5EUk9JRF9BUElf
XyA8IDkpIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisgICAgLyoKKyAgICAg
KiBDbGFzc2ljIE1hYyBPUyBhbmQgTWFjIE9TIFggYmVmb3JlIDEwLjMgKFBhbnRoZXIpIGRpZCBu
b3Qgc3VwcG9ydCB3Y2hhcl90IG9yIHdzdHJpbmcuCisgICAgICogTmV3ZXIgTWFjIE9TIFggaGFz
IHNpemUgNC4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAxCisjZWxpZiBV
X1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NZR1dJTgorIyAg
IGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BSVgK
KyAgICAvKgorICAgICAqIEFJWCA2LjEgaW5mb3JtYXRpb24sIHNlY3Rpb24gIldpZGUgY2hhcmFj
dGVyIGRhdGEgcmVwcmVzZW50YXRpb24iOgorICAgICAqICIuLi4gdGhlIHdjaGFyX3QgZGF0YXR5
cGUgaXMgMzItYml0IGluIHRoZSA2NC1iaXQgZW52aXJvbm1lbnQgYW5kCisgICAgICogMTYtYml0
IGluIHRoZSAzMi1iaXQgZW52aXJvbm1lbnQuIgorICAgICAqIGFuZAorICAgICAqICJBbGwgbG9j
YWxlcyB1c2UgVW5pY29kZSBmb3IgdGhlaXIgd2lkZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZXMgKHBy
b2Nlc3MgY29kZSksCisgICAgICogZXhjZXB0IHRoZSBJQk0tZXVjVFcgY29kZXNldC4iCisgICAg
ICovCisjICAgaWZkZWYgX182NEJJVF9fCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9U
IDQKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyMgICBlbmRp
ZgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCisgICAgLyoKKyAgICAgKiB6L09TIFYx
UjExIGluZm9ybWF0aW9uIGNlbnRlciwgc2VjdGlvbiAiTFA2NCB8IElMUDMyIjoKKyAgICAgKiAi
SW4gMzEtYml0IG1vZGUsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50ZXJzIGlzIDQgYnl0ZXMg
YW5kIHRoZSBzaXplIG9mIHdjaGFyX3QgaXMgMiBieXRlcy4KKyAgICAgKiBVbmRlciBMUDY0LCB0
aGUgc2l6ZSBvZiBsb25nIGFuZCBwb2ludGVyIGlzIDggYnl0ZXMgYW5kIHRoZSBzaXplIG9mIHdj
aGFyX3QgaXMgNCBieXRlcy4iCisgICAgICovCisjICAgaWZkZWYgX0xQNjQKKyMgICAgICAgZGVm
aW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfU0laRU9G
X1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMg
ICBpZiBkZWZpbmVkKF9fVVRGMzJfXykKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQ
RSgqTE9DQUxFVVRGKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFjdGVyIHN0
cmluZ3MgYXJlIGluIFVURi0zMiwKKyAgICAgICAgICogbmFycm93LWNoYXJhY3RlciBzdHJpbmdz
IGFyZSBpbiBVVEYtOC4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hB
Ul9UIDQKKyMgICBlbGlmIGRlZmluZWQoX19VQ1MyX18pCisgICAgICAgIC8qCisgICAgICAgICAq
IExPQ0FMRVRZUEUoKkxPQ0FMRVVDUzIpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICogV2lkZS1j
aGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gVUNTLTIsCisgICAgICAgICAqIG5hcnJvdy1jaGFyYWN0
ZXIgc3RyaW5ncyBhcmUgaW4gRUJDRElDLgorICAgICAgICAgKi8KKyMgICAgICAgZGVmaW5lIFVf
U0laRU9GX1dDSEFSX1QgMgorI2Vsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQ
RSgqQ0xEKSBvciBMT0NBTEVUWVBFKCpMT0NBTEUpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICog
V2lkZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gMTYtYml0IEVCQ0RJQywKKyAgICAgICAgICog
bmFycm93LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMuCisgICAgICAgICAqLworIyAg
ICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbHNlCisjICAgZGVm
aW5lIFVfU0laRU9GX1dDSEFSX1QgNAogI2VuZGlmCiAKICNpZm5kZWYgVV9IQVZFX1dDU0NQWQot
I2RlZmluZSBVX0hBVkVfV0NTQ1BZICAgICAgIDEKKyNkZWZpbmUgVV9IQVZFX1dDU0NQWSBVX0hB
VkVfV0NIQVJfSAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKioKKyAqIFxkZWYgVV9IQVZFX0NI
QVIxNl9UCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNoYXIxNl90IHR5cGUgaXMgYXZhaWxhYmxl
IGZvciBVVEYtMTYKKyAqIGFuZCB1ImFiYyIgVVRGLTE2IHN0cmluZyBsaXRlcmFscyBhcmUgc3Vw
cG9ydGVkLgorICogVGhpcyBpcyBhIG5ldyBzdGFuZGFyZCB0eXBlIGFuZCBzdGFuZGFyZCBzdHJp
bmcgbGl0ZXJhbCBzeW50YXggaW4gQysrMHgKKyAqIGJ1dCBoYXMgYmVlbiBhdmFpbGFibGUgaW4g
c29tZSBjb21waWxlcnMgYmVmb3JlLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVf
Q0hBUjE2X1QKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQorICAg
IC8qCisgICAgICogTm90ZXM6CisgICAgICogVmlzdWFsIFN0dWRpbyAxMCAoX01TQ19WRVI+PTE2
MDApIGRlZmluZXMgY2hhcjE2X3QgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9ydCB1ImFiYyIg
c3RyaW5nIGxpdGVyYWxzLgorICAgICAqIGdjYyA0LjQgZGVmaW5lcyB0aGUgX19DSEFSMTZfVFlQ
RV9fIG1hY3JvIHRvIGEgdXNhYmxlIHR5cGUgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9ydCB1
ImFiYyIgc3RyaW5nIGxpdGVyYWxzLgorICAgICAqIEMrKzExIGFuZCBDMTEgcmVxdWlyZSBzdXBw
b3J0IGZvciBVVEYtMTYgbGl0ZXJhbHMKKyAgICAgKi8KKyMgICBpZiAoZGVmaW5lZChfX2NwbHVz
cGx1cykgJiYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkgfHwgKGRlZmluZWQoX19TVERDX1ZFUlNJ
T05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMKQorIyAgICAgICBkZWZpbmUgVV9I
QVZFX0NIQVIxNl9UIDEKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX0hBVkVfQ0hBUjE2X1Qg
MAorIyAgIGVuZGlmCisjZW5kaWYKKworLyoqCiAgKiBAewogICogXGRlZiBVX0RFQ0xBUkVfVVRG
MTYKLSAqIERvIG5vdCB1c2UgdGhpcyBtYWNyby4gVXNlIHRoZSBVTklDT0RFX1NUUklORyBvciBV
X1NUUklOR19ERUNMIG1hY3JvcwotICogaW5zdGVhZC4KLSAqIEBpbnRlcm5hbAotICoKLSAqIFxk
ZWYgVV9HTlVDX1VURjE2X1NUUklORworICogRG8gbm90IHVzZSB0aGlzIG1hY3JvIGJlY2F1c2Ug
aXQgaXMgbm90IGRlZmluZWQgb24gYWxsIHBsYXRmb3Jtcy4KKyAqIFVzZSB0aGUgVU5JQ09ERV9T
VFJJTkcgb3IgVV9TVFJJTkdfREVDTCBtYWNyb3MgaW5zdGVhZC4KICAqIEBpbnRlcm5hbAogICov
Ci0jaWZuZGVmIFVfR05VQ19VVEYxNl9TVFJJTkcKLSNkZWZpbmUgVV9HTlVDX1VURjE2X1NUUklO
RyAwCi0jZW5kaWYKLSNpZiAxIHx8IGRlZmluZWQoVV9DSEVDS19VVEYxNl9TVFJJTkcpCi0jaWYg
KGRlZmluZWQoX194bENfXykgJiYgZGVmaW5lZChfX0lCTV9VVEZfTElURVJBTCkgJiYgVV9TSVpF
T0ZfV0NIQVJfVCAhPSAyKSBcCisjaWZkZWYgVV9ERUNMQVJFX1VURjE2CisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9IQVZFX0NIQVIxNl9UIFwKKyAgICB8fCAo
ZGVmaW5lZChfX3hsQ19fKSAmJiBkZWZpbmVkKF9fSUJNX1VURl9MSVRFUkFMKSAmJiBVX1NJWkVP
Rl9XQ0hBUl9UICE9IDIpIFwKICAgICB8fCAoZGVmaW5lZChfX0hQX2FDQykgJiYgX19IUF9hQ0Mg
Pj0gMDM1MDAwKSBcCi0gICAgfHwgKGRlZmluZWQoX19IUF9jYykgJiYgX19IUF9jYyA+PSAxMTEx
MDYpIFwKLSAgICB8fCBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYx
NihzdHJpbmcpIHUgIyMgc3RyaW5nCi0jZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19T
VU5QUk9fQ0MgPj0gMHg1NTApCi0vKiB8fCAoZGVmaW5lZChfX1NVTlBST19DKSAmJiBfX1NVTlBS
T19DID49IDB4NTgwKSAqLwotLyogU3VuJ3MgQyBjb21waWxlciBoYXMgaXNzdWVzIHdpdGggdGhp
cyBub3RhdGlvbiwgYW5kIGl0J3MgdW5yZWxpYWJsZS4gKi8KLSNkZWZpbmUgVV9ERUNMQVJFX1VU
RjE2KHN0cmluZykgVSAjIyBzdHJpbmcKKyAgICB8fCAoZGVmaW5lZChfX0hQX2NjKSAmJiBfX0hQ
X2NjID49IDExMTEwNikKKyMgICBkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgdSAjIyBz
dHJpbmcKICNlbGlmIFVfU0laRU9GX1dDSEFSX1QgPT0gMiBcCi0gICAgJiYgKFVfQ0hBUlNFVF9G
QU1JTFkgPT0gMCB8fCAoKGRlZmluZWQoT1MzOTApIHx8IGRlZmluZWQoT1M0MDApKSAmJiBkZWZp
bmVkKF9fVUNTMl9fKSkpCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwgIyMgc3Ry
aW5nCi0jZW5kaWYKLSNlbmRpZgotCi0vKiogQH0gKi8KLQotLyo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LwotLyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IFBPU0lYIHN1cHBvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQot
I2lmbmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAotI2RlZmluZSBVX0hBVkVfTkxfTEFO
R0lORk9fQ09ERVNFVCAgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9OTF9MQU5HSU5GT19DT0RFU0VU
Ci0jZGVmaW5lIFVfTkxfTEFOR0lORk9fQ09ERVNFVCAgICAgICBDT0RFU0VUCi0jZW5kaWYKLQot
I2lmIDEKLSNkZWZpbmUgVV9UWlNFVCAgICAgICAgIHR6c2V0Ci0jZW5kaWYKLSNpZiAwCi0jZGVm
aW5lIFVfVElNRVpPTkUgICAgICB0aW1lem9uZQotI2VuZGlmCi0jaWYgMQotI2RlZmluZSBVX1Ra
TkFNRSAgICAgICAgdHpuYW1lCisgICAgJiYgKFVfQ0hBUlNFVF9GQU1JTFkgPT0gMCB8fCAoVV9Q
Rl9PUzM5MCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9PUzQwMCAmJiBkZWZp
bmVkKF9fVUNTMl9fKSkpCisjICAgZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwgIyMg
c3RyaW5nCisjZWxzZQorICAgIC8qIExlYXZlIFVfREVDTEFSRV9VVEYxNiB1bmRlZmluZWQuIFNl
ZSB1bmlzdHIuaC4gKi8KICNlbmRpZgogCi0jZGVmaW5lIFVfSEFWRV9NTUFQICAgICAxCi0jZGVm
aW5lIFVfSEFWRV9QT1BFTiAgICAxCi0KIC8qKiBAfSAqLwogCiAvKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCi0vKiogQHsgU3ltYm9sIGltcG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IFN5bWJvbCBpbXBvcnQtZXhw
b3J0IGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwog
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgMQotI2RlZmluZSBVX0VYUE9SVCBfX2F0dHJp
YnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2lmZGVmIFVfRVhQT1JUCisgICAgLyog
VXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX1NUQVRJQ19JTVBM
RU1FTlRBVElPTikKKyMgICBkZWZpbmUgVV9FWFBPUlQKKyNlbGlmIGRlZmluZWQoX19HTlVDX18p
CisjICAgZGVmaW5lIFVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQi
KSkpCiAjZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPj0gMHg1NTAp
IFwKICAgIHx8IChkZWZpbmVkKF9fU1VOUFJPX0MpICYmIF9fU1VOUFJPX0MgPj0gMHg1NTApIAot
I2RlZmluZSBVX0VYUE9SVCBfX2dsb2JhbAorIyAgIGRlZmluZSBVX0VYUE9SVCBfX2dsb2JhbAog
LyojZWxpZiBkZWZpbmVkKF9fSFBfYUNDKSB8fCBkZWZpbmVkKF9fSFBfY2MpCi0jZGVmaW5lIFVf
RVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSovCisjICAgZGVmaW5lIFVfRVhQT1JUIF9fZGVj
bHNwZWMoZGxsZXhwb3J0KSovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmluZSBV
X0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKICNlbHNlCi0jZGVmaW5lIFVfRVhQT1JUCisj
ICAgZGVmaW5lIFVfRVhQT1JUCiAjZW5kaWYKIAogLyogVV9DQUxMQ09OViBpcyByZWxlYXRlZCB0
byBVX0VYUE9SVDIgKi8KLSNkZWZpbmUgVV9FWFBPUlQyCi0KLS8qIGN5Z3dpbiBuZWVkcyB0byBl
eHBvcnQvaW1wb3J0IGRhdGEgKi8KLSNpZiBkZWZpbmVkKFVfQ1lHV0lOKSAmJiAhZGVmaW5lZChf
X0dOVUNfXykKLSNkZWZpbmUgVV9JTVBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjaWZkZWYg
VV9FWFBPUlQyCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9FWFBPUlQyIF9fY2RlY2wKICNlbHNlCi0jZGVm
aW5lIFVfSU1QT1JUIAotI2VuZGlmCi0KLS8qIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ki8KLS8qKiBAeyBDb2RlIGFsaWdubWVudCBhbmQgQyBmdW5jdGlvbiBpbmxpbmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0K
LSNpZm5kZWYgVV9JTkxJTkUKLSMgICBpZmRlZiBfX2NwbHVzcGx1cwotIyAgICAgICBkZWZpbmUg
VV9JTkxJTkUgaW5saW5lCi0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9JTkxJTkUgX19pbmxp
bmVfXwotIyAgIGVuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSNkZWZpbmUg
VV9BTElHTl9DT0RFKG4pIAorIyAgIGRlZmluZSBVX0VYUE9SVDIKICNlbmRpZgogCi0vKiogQH0g
Ki8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IEdDQyBidWlsdCBpbiBmdW5jdGlv
bnMgZm9yIGF0b21pYyBtZW1vcnkgb3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgKi8K
LS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBcZGVmIFVfSEFWRV9HQ0NfQVRPTUlD
UwotICogQGludGVybmFsCi0gKi8KLSNpZm5kZWYgVV9IQVZFX0dDQ19BVE9NSUNTCi0jZGVmaW5l
IFVfSEFWRV9HQ0NfQVRPTUlDUyAxCisjaWZkZWYgVV9JTVBPUlQKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorICAgIC8qIFdpbmRv
d3MgbmVlZHMgdG8gZXhwb3J0L2ltcG9ydCBkYXRhLiAqLworIyAgIGRlZmluZSBVX0lNUE9SVCBf
X2RlY2xzcGVjKGRsbGltcG9ydCkKKyNlbHNlCisjICAgZGVmaW5lIFVfSU1QT1JUIAogI2VuZGlm
CiAKLS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgUHJvZ3JhbXMg
dXNlZCBieSBJQ1UgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCiAvKioKLSAqIFxkZWYgVV9NQUtF
Ci0gKiBXaGF0IHByb2dyYW0gdG8gZXhlY3V0ZSB0byBydW4gJ21ha2UnCisgKiBcZGVmIFVfQ0FM
TENPTlYKKyAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJTi9VX0NERUNMX0VORCwgdGhpcyBxdWFs
aWZpZXIgaXMgbmVjZXNzYXJ5CisgKiBpbiBjYWxsYmFjayBmdW5jdGlvbiB0eXBlZGVmcyB0byBt
YWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50aW9uCisgKiBpcyBjb21wYXRpYmxlLgor
ICoKKyAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24tSUNVLUFQSSBmdW5jdGlvbnMuCisgKiBX
aGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQSSwKKyAqIHlvdSBtdXN0IHVzZSB0aGUg
VV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4KKyAqIEBzdGFibGUgSUNVIDIuMAogICov
Ci0jaWZuZGVmIFVfTUFLRQotI2RlZmluZSBVX01BS0UgICIvdXNyL2Jpbi9nbnVtYWtlIgorI2lm
IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyAgICBk
ZWZpbmUgVV9DQUxMQ09OViBfX2NkZWNsCisjZWxzZQorIyAgICBkZWZpbmUgVV9DQUxMQ09OViBV
X0VYUE9SVDIKICNlbmRpZgogCi0vKiogQH0gKi8KLQotI2VuZGlmIC8qIENZR1dJTk1TVkMgKi8K
LQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5h
bWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
LS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBEZWZpbmUgdGhlIGxpYnJhcnkgc3Vm
Zml4IHdpdGggQyBzeW50YXguCi0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJfU1VG
RklYX0NfTkFNRSAKLS8qKgotICogRGVmaW5lIHRoZSBsaWJyYXJ5IHN1ZmZpeCBhcyBhIHN0cmlu
ZyB3aXRoIEMgc3ludGF4Ci0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJfU1VGRklY
X0NfTkFNRV9TVFJJTkcgIiIKLS8qKgotICogMSBpZiBhIGN1c3RvbSBsaWJyYXJ5IHN1ZmZpeCBp
cyBzZXQKLSAqIEBpbnRlcm5hbAotICovCi0jIGRlZmluZSBVX0hBVkVfTElCX1NVRkZJWCAwCi0K
LSNpZiBVX0hBVkVfTElCX1NVRkZJWAotIyBpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
Ci0vKiBSZW5hbWluZyBwYXR0ZXJuOiAgICB1X3N0cmNweV80MV9zdWZmaXggKi8KLSMgIGRlZmlu
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfICMjIDQ2ICMjIAotIyAgZGVm
aW5lIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBpY3VkdCMjIyNtYWpv
ciMjbWlub3IjI19kYXQKLQotIyBlbmRpZgotI2VuZGlmCisvKiBAfSAqLwogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9wdHlwZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9wdHlwZXMuaAppbmRleCAxZjM0ZDJmODRl
NDEwZWY3OTMwYTY2ZWY2ZTc0Y2I2NGJjYmM1ODFkLi5iN2Y3MTE2MDMyODJjMzZjNzMyMjIwZTdh
OTZjOTEzM2RkMDI1MGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3Vu
aWNvZGUvcHR5cGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B0
eXBlcy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTcsNDAgKzE3LDY5IEBACiAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICovCiAKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGVmaW5p
dGlvbnMgb2YgaW50ZWdlciB0eXBlcyBvZiB2YXJpb3VzIHdpZHRocworICovCisKICNpZm5kZWYg
X1BUWVBFU19ICiAjZGVmaW5lIF9QVFlQRVNfSAogCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisv
KioKKyAqIFxkZWYgX19TVERDX0xJTUlUX01BQ1JPUworICogQWNjb3JkaW5nIHRvIHRoZSBMaW51
eCBzdGRpbnQuaCwgdGhlIElTTyBDOTkgc3RhbmRhcmQgc3BlY2lmaWVzIHRoYXQgaW4gQysrIGlt
cGxlbWVudGF0aW9ucworICogbWFjcm9zIGxpa2UgSU5UMzJfTUlOIGFuZCBVSU5UUFRSX01BWCBz
aG91bGQgb25seSBiZSBkZWZpbmVkIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgorICogV2UgbmVl
ZCB0byBkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUyBiZWZvcmUgaW5jbHVkaW5nIHN0ZGludC5o
IGluIEMrKyBjb2RlCisgKiB0aGF0IHVzZXMgc3VjaCBsaW1pdCBtYWNyb3MuCisgKiBAaW50ZXJu
YWwKKyAqLworI2lmbmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1J
VF9NQUNST1MKKyNlbmRpZgorCisvKiBOVUxMLCBzaXplX3QsIHdjaGFyX3QgKi8KKyNpbmNsdWRl
IDxzdGRkZWYuaD4KIAorLyoKKyAqIElmIGFsbCBjb21waWxlcnMgcHJvdmlkZWQgYWxsIG9mIHRo
ZSBDOTkgaGVhZGVycyBhbmQgdHlwZXMsCisgKiB3ZSB3b3VsZCBqdXN0IHVuY29uZGl0aW9uYWxs
eSAjaW5jbHVkZSA8c3RkaW50Lmg+IGhlcmUKKyAqIGFuZCBub3QgbmVlZCBhbnkgb2YgdGhlIHN0
dWZmIGFmdGVyIGluY2x1ZGluZyBwbGF0Zm9ybS5oLgorICovCisKKy8qIEZpbmQgb3V0IGlmIHdl
IGhhdmUgc3RkaW50LmggZXRjLiAqLwogI2luY2x1ZGUgInVuaWNvZGUvcGxhdGZvcm0uaCIKIAog
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwogLyogR2VuZXJpYyBkYXRhIHR5cGVzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0qLwogCi0vKiBJZiB5b3VyIHBsYXRmb3JtIGRvZXMgbm90IGhhdmUgdGhlIDxp
bnR0eXBlcy5oPiBoZWFkZXIsIHlvdSBtYXkKLSAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMg
YmVsb3cuICovCi0jaWYgVV9IQVZFX0lOVFRZUEVTX0gKKy8qIElmIHlvdXIgcGxhdGZvcm0gZG9l
cyBub3QgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIsIHlvdSBtYXkKKyAgIG5lZWQgdG8gZWRp
dCB0aGUgdHlwZWRlZnMgaW4gdGhlICNlbHNlIHNlY3Rpb24gYmVsb3cuCisgICBVc2UgI2lmLi4u
I2Vsc2UuLi4jZW5kaWYgd2l0aCBwcmVkZWZpbmVkIGNvbXBpbGVyIG1hY3JvcyBpZiBwb3NzaWJs
ZS4gKi8KKyNpZiBVX0hBVkVfU1RESU5UX0gKKworLyoKKyAqIFdlIG1vc3RseSBuZWVkIDxzdGRp
bnQuaD4gKHdoaWNoIGRlZmluZXMgdGhlIHN0YW5kYXJkIGludGVnZXIgdHlwZXMpIGJ1dCBub3Qg
PGludHR5cGVzLmg+LgorICogPGludHR5cGVzLmg+IGluY2x1ZGVzIDxzdGRpbnQuaD4gYW5kIGFk
ZHMgdGhlIHByaW50Zi9zY2FuZiBoZWxwZXJzIFBSSWQzMiwgU0NOeDE2IGV0Yy4KKyAqIHdoaWNo
IHdlIGFsbW9zdCBuZXZlciB1c2UsIHBsdXMgc3R1ZmYgbGlrZSBpbWF4YWJzKCkgd2hpY2ggd2Ug
bmV2ZXIgdXNlLgorICovCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qIGF1dG9jb25mIDIuMTMg
c29tZXRpbWVzIGNhbid0IHByb3Blcmx5IGZpbmQgdGhlIGRhdGEgdHlwZXMgaW4gPGludHR5cGVz
Lmg+ICovCi0vKiBvcy8zOTAgbmVlZHMgPGludHR5cGVzLmg+LCBidXQgaXQgZG9lc24ndCBoYXZl
IGludDhfdCwgYW5kIGl0IHNvbWV0aW1lcyAqLwotLyogZG9lc24ndCBoYXZlIHVpbnQ4X3QgZGVw
ZW5kaW5nIG9uIHRoZSBPUyB2ZXJzaW9uLiAqLwotLyogU28gd2UgaGF2ZSB0aGlzIHdvcmsgYXJv
dW5kLiAqLwotI2lmZGVmIE9TMzkwCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCiAvKiBU
aGUgZmVhdHVyZXMgaGVhZGVyIGlzIG5lZWRlZCB0byBnZXQgKHUpaW50NjRfdCBzb21ldGltZXMu
ICovCiAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSNpZiAhIFVfSEFWRV9JTlQ4X1QKLXR5cGVkZWYg
c2lnbmVkIGNoYXIgaW50OF90OwotI2VuZGlmCisvKiB6L09TIGhhcyA8c3RkaW50Lmg+LCBidXQg
c29tZSB2ZXJzaW9ucyBhcmUgbWlzc2luZyB1aW50OF90IChBUEFSIFBLNjIyNDgpLiAqLwogI2lm
ICFkZWZpbmVkKF9fdWludDhfdCkKICNkZWZpbmUgX191aW50OF90IDEKIHR5cGVkZWYgdW5zaWdu
ZWQgY2hhciB1aW50OF90OwogI2VuZGlmCi0jZW5kaWYgLyogT1MzOTAgKi8KKyNlbmRpZiAvKiBV
X1BMQVRGT1JNID09IFVfUEZfT1MzOTAgKi8KKworI2VsaWYgVV9IQVZFX0lOVFRZUEVTX0gKIAot
I2luY2x1ZGUgPGludHR5cGVzLmg+CisjICAgaW5jbHVkZSA8aW50dHlwZXMuaD4KIAotI2Vsc2Ug
LyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNlbHNlIC8qIG5laXRoZXIgVV9IQVZFX1NURElOVF9I
IG5vciBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjaWYgISBVX0hBVkVfSU5UOF9UCiB0eXBlZGVm
IHNpZ25lZCBjaGFyIGludDhfdDsKQEAgLTc3LDE2ICsxMDYsMjEgQEAgdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgdWludDMyX3Q7CiAjZW5kaWYKIAogI2lmICEgVV9IQVZFX0lOVDY0X1QKKyNpZmRlZiBf
TVNDX1ZFUgorICAgIHR5cGVkZWYgc2lnbmVkIF9faW50NjQgaW50NjRfdDsKKyNlbHNlCiAgICAg
dHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2
ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRpZgogCiAjaWYgISBVX0hBVkVfVUlOVDY0
X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB1aW50NjRf
dDsKKyNlbHNlCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWludDY0X3Q7Ci0vKiBl
bHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRpZgogCi0j
ZW5kaWYgLyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNlbmRpZiAvKiBVX0hBVkVfU1RESU5UX0gg
LyBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjZW5kaWYgLyogX1BUWVBFU19IICovCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9wdXRpbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B1dGlsLmgKaW5kZXggNzFkNWQyNjQzMDUyOWI2
MGI3ZWE0YzRkODMwZGJjODYxNzUyOTQ2NS4uNmZjN2U5Y2Q1YTYyYTU1OTQ2YWU2ZDc3ODdiZjI1
ZDIzNjExMGExYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2Rl
L3B1dGlsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B1dGlsLmgK
QEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJp
Z2h0IChDKSAxOTk3LTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwog
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCkBAIC0zMCwxMiArMzAsNiBAQAogICAqIFxicmllZiBDIEFQSTog
UGxhdGZvcm0gVXRpbGl0aWVzCiAgICovCiAKLS8qKiBEZWZpbmUgdGhpcyB0byAxIGlmIHlvdXIg
cGxhdGZvcm0gc3VwcG9ydHMgSUVFRSA3NTQgZmxvYXRpbmcgcG9pbnQsCi0gICB0byAwIGlmIGl0
IGRvZXMgbm90LiAqLwotI2lmbmRlZiBJRUVFXzc1NAotIyAgIGRlZmluZSBJRUVFXzc1NCAxCi0j
ZW5kaWYKLQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBQbGF0Zm9ybSB1dGlsaXRpZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLwpAQCAtOTMsNDMgKzg3LDIwIEBAIFVfU1RBQkxFIGNvbnN0IGNo
YXIqIFVfRVhQT1JUMiB1X2dldERhdGFEaXJlY3Rvcnkodm9pZCk7CiAgKi8KIFVfU1RBQkxFIHZv
aWQgVV9FWFBPUlQyIHVfc2V0RGF0YURpcmVjdG9yeShjb25zdCBjaGFyICpkaXJlY3RvcnkpOwog
Ci0jaWYgIVVfQ0hBUlNFVF9JU19VVEY4Ci0vKioKLSAqIFBsZWFzZSB1c2UgdWNudl9nZXREZWZh
dWx0TmFtZSgpIGluc3RlYWQuCi0gKiBSZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9yIHRo
aXMgcGxhdGZvcm0gYW5kIGxvY2FsZS4KLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9j
YWxlKCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQotICogcGxhdGZvcm0gZG9j
dW1lbnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgot
ICogQHJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3IgdGhpcyBwbGF0Zm9ybSAKLSAqIEBp
bnRlcm5hbAotICovCi1VX0lOVEVSTkFMIGNvbnN0IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXRE
ZWZhdWx0Q29kZXBhZ2Uodm9pZCk7Ci0jZW5kaWYKLQotLyoqCi0gKiBQbGVhc2UgdXNlIHVsb2Nf
Z2V0RGVmYXVsdCgpIGluc3RlYWQuCi0gKiBSZXR1cm4gdGhlIGRlZmF1bHQgbG9jYWxlIElEIHN0
cmluZyBieSBxdWVyeWluZyB0aHMgc3lzdGVtLCBvcgotICogICAgIHplcm8gaWYgb25lIGNhbm5v
dCBiZSBmb3VuZC4gCi0gKiBUaGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgpIG9uIFVu
aXggcGxhdGZvcm1zLiBQbGVhc2UgcmVhZCB0aGUKLSAqIHBsYXRmb3JtIGRvY3VtZW50YXRpb24g
b24gc2V0bG9jYWxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqIEByZXR1cm4g
dGhlIGRlZmF1bHQgbG9jYWxlIElEIHN0cmluZwotICogQGludGVybmFsCi0gKi8KLVVfSU5URVJO
QUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dldERlZmF1bHRMb2NhbGVJRCh2b2lkKTsK
LQogLyoqCiAgKiBAewogICogRmlsZXN5c3RlbSBmaWxlIGFuZCBwYXRoIHNlcGFyYXRvciBjaGFy
YWN0ZXJzLgogICogRXhhbXBsZTogJy8nIGFuZCAnOicgb24gVW5peCwgJ1xcJyBhbmQgJzsnIG9u
IFdpbmRvd3MuCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwotI2lmZGVmIFhQX01BQworI2lmIFVf
UExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCiAjICAgZGVmaW5lIFVfRklMRV9TRVBfQ0hB
UiAnOicKICMgICBkZWZpbmUgVV9GSUxFX0FMVF9TRVBfQ0hBUiAnOicKICMgICBkZWZpbmUgVV9Q
QVRIX1NFUF9DSEFSICc7JwogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX1NUUklORyAiOiIKICMgICBk
ZWZpbmUgVV9GSUxFX0FMVF9TRVBfU1RSSU5HICI6IgogIyAgIGRlZmluZSBVX1BBVEhfU0VQX1NU
UklORyAiOyIKLSNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoT1MyKQorI2VsaWYgVV9Q
TEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCiAjICAgZGVmaW5lIFVfRklMRV9TRVBfQ0hBUiAn
XFwnCiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX0NIQVIgJy8nCiAjICAgZGVmaW5lIFVfUEFU
SF9TRVBfQ0hBUiAnOycKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91Y2FsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNhbC5oCmlu
ZGV4IDk5N2FmMTUzZDQzOWI0YzEzMmQ0Y2YwYzFlNTE4MjI2OThiMzdiMTcuLjhmMGNjY2M0NTEz
MTU4MGMxY2Q3NmQ4OTI5NzBhNDY2ZmVkMjY4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91Y2FsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lj
dS91bmljb2RlL3VjYWwuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMywgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKICAqIG90aGVycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKi8KQEAgLTEy
Miw3ICsxMjIsNyBAQAogICogPHA+CiAgKiBUaGUgZGF0ZSBvciB0aW1lIGZvcm1hdCBzdHJpbmdz
IGFyZSBub3QgcGFydCBvZiB0aGUgZGVmaW5pdGlvbiBvZiBhCiAgKiBjYWxlbmRhciwgYXMgdGhv
c2UgbXVzdCBiZSBtb2RpZmlhYmxlIG9yIG92ZXJyaWRhYmxlIGJ5IHRoZSB1c2VyIGF0Ci0gKiBy
dW50aW1lLiBVc2Uge0BsaW5rIERhdGVGb3JtYXR9CisgKiBydW50aW1lLiBVc2Uge0BsaW5rIGlj
dTo6RGF0ZUZvcm1hdH0KICAqIHRvIGZvcm1hdCBkYXRlcy4KICAqCiAgKiA8cD4KQEAgLTE0MCw2
ICsxNDAsMTIgQEAKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiAKKy8qKgorICogVGhlIHRpbWUg
em9uZSBJRCByZXNlcnZlZCBmb3IgdW5rbm93biB0aW1lIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0
LjgKKyAqLworI2RlZmluZSBVQ0FMX1VOS05PV05fWk9ORV9JRCAiRXRjL1Vua25vd24iCisKIC8q
KiBBIGNhbGVuZGFyLgogICogIEZvciB1c2FnZSBpbiBDIHByb2dyYW1zLgogICogQHN0YWJsZSBJ
Q1UgMi4wCkBAIC01MTYsNiArNTIyLDUzIEBAIGVudW0gVUNhbGVuZGFyQU1QTXMgewogdHlwZWRl
ZiBlbnVtIFVDYWxlbmRhckFNUE1zIFVDYWxlbmRhckFNUE1zOwogCiAvKioKKyAqIFN5c3RlbSB0
aW1lIHpvbmUgdHlwZSBjb25zdGFudHMgdXNlZCBieSBmaWx0ZXJpbmcgem9uZXMKKyAqIGluIHVj
YWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbi4KKyAqIEBzZWUgdWNhbF9vcGVuVGltZVpvbmVJ
REVudW1lcmF0aW9uCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLworZW51bSBVU3lzdGVtVGltZVpv
bmVUeXBlIHsKKyAgICAvKioKKyAgICAgKiBBbnkgc3lzdGVtIHpvbmVzLgorICAgICAqIEBzdGFi
bGUgSUNVIDQuOAorICAgICAqLworICAgIFVDQUxfWk9ORV9UWVBFX0FOWSwKKyAgICAvKioKKyAg
ICAgKiBDYW5vbmljYWwgc3lzdGVtIHpvbmVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAg
ICAqLworICAgIFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNBTCwKKyAgICAvKioKKyAgICAgKiBDYW5v
bmljYWwgc3lzdGVtIHpvbmVzIGFzc29jaWF0ZWQgd2l0aCBhY3R1YWwgbG9jYXRpb25zLgorICAg
ICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIFVDQUxfWk9ORV9UWVBFX0NBTk9OSUNB
TF9MT0NBVElPTgorfTsKKworLyoqIEBzdGFibGUgSUNVIDQuOCAqLwordHlwZWRlZiBlbnVtIFVT
eXN0ZW1UaW1lWm9uZVR5cGUgVVN5c3RlbVRpbWVab25lVHlwZTsKKworLyoqIAorICogQ3JlYXRl
IGFuIGVudW1lcmF0aW9uIG92ZXIgc3lzdGVtIHRpbWUgem9uZSBJRHMgd2l0aCB0aGUgZ2l2ZW4K
KyAqIGZpbHRlciBjb25kaXRpb25zLiAKKyAqIEBwYXJhbSB6b25lVHlwZSAgVGhlIHN5c3RlbSB0
aW1lIHpvbmUgdHlwZS4KKyAqIEBwYXJhbSByZWdpb24gICAgVGhlIElTTyAzMTY2IHR3by1sZXR0
ZXIgY291bnRyeSBjb2RlIG9yIFVOIE0uNDkKKyAqICAgICAgICAgICAgICAgICAgdGhyZWUtZGln
aXQgYXJlYSBjb2RlLiAgV2hlbiBOVUxMLCBubyBmaWx0ZXJpbmcKKyAqICAgICAgICAgICAgICAg
ICAgZG9uZSBieSByZWdpb24uIAorICogQHBhcmFtIHJhd09mZnNldCBBbiBvZmZzZXQgZnJvbSBH
TVQgaW4gbWlsbGlzZWNvbmRzLCBpZ25vcmluZyB0aGUKKyAqICAgICAgICAgICAgICAgICAgZWZm
ZWN0IG9mIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwgaWYgYW55LiBXaGVuIE5VTEwsCisgKiAgICAg
ICAgICAgICAgICAgIG5vIGZpbHRlcmluZyBkb25lIGJ5IHpvbmUgb2Zmc2V0LgorICogQHBhcmFt
IGVjICAgICAgICBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJv
cnMKKyAqIEByZXR1cm4gIGFuIGVudW1lcmF0aW9uIG9iamVjdCB0aGF0IHRoZSBjYWxsZXIgbXVz
dCBkaXNwb3NlIG9mCisgKiAgICAgICAgICB1c2luZyBlbnVtX2Nsb3NlKCksIG9yIE5VTEwgdXBv
biBmYWlsdXJlLiBJbiBjYXNlIG9mIGZhaWx1cmUsCisgKiAgICAgICAgICAqZWMgd2lsbCBpbmRp
Y2F0ZSB0aGUgZXJyb3IuCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLyAKK1VfU1RBQkxFIFVFbnVt
ZXJhdGlvbiogVV9FWFBPUlQyCit1Y2FsX29wZW5UaW1lWm9uZUlERW51bWVyYXRpb24oVVN5c3Rl
bVRpbWVab25lVHlwZSB6b25lVHlwZSwgY29uc3QgY2hhciogcmVnaW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQzMl90KiByYXdPZmZzZXQsIFVFcnJvckNvZGUq
IGVjKTsKKworLyoqCiAgKiBDcmVhdGUgYW4gZW51bWVyYXRpb24gb3ZlciBhbGwgdGltZSB6b25l
cy4KICAqCiAgKiBAcGFyYW0gZWMgaW5wdXQvb3V0cHV0IGVycm9yIGNvZGUKQEAgLTYxMiwxMCAr
NjY1LDEwIEBAIHVjYWxfZ2V0Tm93KHZvaWQpOwogICogQSBVQ2FsZW5kYXIgbWF5IGJlIHVzZWQg
dG8gY29udmVydCBhIG1pbGxpc2Vjb25kIHZhbHVlIHRvIGEgeWVhciwKICAqIG1vbnRoLCBhbmQg
ZGF5LgogICogPHA+Ci0gKiBOb3RlOiBXaGVuIHVua25vd24gVGltZVpvbmUgSUQgaXMgc3BlY2lm
aWVkLCB0aGUgVUNhbGVuZGFyIHJldHVybmVkCi0gKiBieSB0aGUgZnVuY3Rpb24gaXMgaW5pdGlh
bGl6ZWQgd2l0aCBHTVQgKCJFdGMvR01UIikgd2l0aG91dCBhbnkKLSAqIGVycm9ycy93YXJuaW5n
cy4gIElmIHlvdSB3YW50IHRvIGNoZWNrIGlmIGEgVGltZVpvbmUgSUQgaXMgdmFsaWQsCi0gKiB1
c2UgdWNhbF9nZXRDYW5vbmljYWxUaW1lWm9uZUlEIHByaW9yIHRvIHRoaXMgZnVuY3Rpb24uCisg
KiBOb3RlOiBXaGVuIHVua25vd24gVGltZVpvbmUgSUQgaXMgc3BlY2lmaWVkIG9yIGlmIHRoZSBU
aW1lWm9uZSBJRCBzcGVjaWZpZWQgaXMgIkV0Yy9Vbmtub3duIiwKKyAqIHRoZSBVQ2FsZW5kYXIg
cmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGluaXRpYWxpemVkIHdpdGggR01UIHpvbmUgd2l0
aCBUaW1lWm9uZSBJRAorICogPGNvZGU+VUNBTF9VTktOT1dOX1pPTkVfSUQ8L2NvZGU+ICgiRXRj
L1Vua25vd24iKSB3aXRob3V0IGFueSBlcnJvcnMvd2FybmluZ3MuICBJZiB5b3Ugd2FudAorICog
dG8gY2hlY2sgaWYgYSBUaW1lWm9uZSBJRCBpcyB2YWxpZCBwcmlvciB0byB0aGlzIGZ1bmN0aW9u
LCB1c2UgPGNvZGU+dWNhbF9nZXRDYW5vbmljYWxUaW1lWm9uZUlEPC9jb2RlPi4KICAqIAogICog
QHBhcmFtIHpvbmVJRCBUaGUgZGVzaXJlZCBUaW1lWm9uZSBJRC4gIElmIDAsIHVzZSB0aGUgZGVm
YXVsdCB0aW1lIHpvbmUuCiAgKiBAcGFyYW0gbGVuIFRoZSBsZW5ndGggb2Ygem9uZUlELCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuCkBAIC02MjcsNiArNjgwLDcgQEAgdWNhbF9nZXROb3codm9p
ZCk7CiAgKiBhbmQgdGhlbiBwYXNzIHRoZSBsb2NhbGUgdG8gdWNhbF9vcGVuIHdpdGggVUNBTF9E
RUZBVUxUIGFzIHRoZSB0eXBlLgogICogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVy
cm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIGEg
VUNhbGVuZGFyLCBvciAwIGlmIGFuIGVycm9yIG9jY3VycmVkLgorICogQHNlZSAjVUNBTF9VTktO
T1dOX1pPTkVfSUQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBVX1NUQUJMRSBVQ2FsZW5kYXIq
IFVfRVhQT1JUMiAKQEAgLTY5MSw2ICs3NDUsMjQgQEAgdWNhbF9zZXRUaW1lWm9uZShVQ2FsZW5k
YXIqICAgIGNhbCwKICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICBsZW4sCiAgICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUqICAgc3RhdHVzKTsKIAorI2lmbmRlZiBVX0hJREVfRFJBRlRf
QVBJCisvKiogCisgKiBHZXQgdGhlIElEIG9mIHRoZSBVQ2FsZW5kYXIncyB0aW1lIHpvbmUuIAor
ICogCisgKiBAcGFyYW0gY2FsICAgICAgICAgICBUaGUgVUNhbGVuZGFyIHRvIHF1ZXJ5LiAKKyAq
IEBwYXJhbSByZXN1bHQgICAgICAgIFJlY2VpdmVzIHRoZSBVQ2FsZW5kYXIncyB0aW1lIHpvbmUg
SUQuIAorICogQHBhcmFtIHJlc3VsdExlbmd0aCAgVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQu
IAorICogQHBhcmFtIHN0YXR1cyAgICAgICAgUmVjZWl2ZXMgdGhlIHN0YXR1cy4gCisgKiBAcmV0
dXJuICAgICAgICAgICAgICBUaGUgdG90YWwgYnVmZmVyIHNpemUgbmVlZGVkOyBpZiBncmVhdGVy
IHRoYW4gcmVzdWx0TGVuZ3RoLCB0aGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQuIAorICogQGRyYWZ0
IElDVSA1MSAKKyAqLyAKK1VfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIgCit1Y2FsX2dldFRpbWVa
b25lSUQoY29uc3QgVUNhbGVuZGFyICpjYWwsCisgICAgICAgICAgICAgICAgICAgVUNoYXIgKnJl
c3VsdCwKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IHJlc3VsdExlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworI2VuZGlmIC8qIFVfSElERV9EUkFGVF9B
UEkgKi8KKwogLyoqCiAgKiBQb3NzaWJsZSBmb3JtYXRzIGZvciBhIFVDYWxlbmRhcidzIGRpc3Bs
YXkgbmFtZSAKICAqIEBzdGFibGUgSUNVIDIuMApAQCAtNzkzLDI0ICs4NjUsNzUgQEAgdWNhbF9n
ZXRHcmVnb3JpYW5DaGFuZ2UoY29uc3QgVUNhbGVuZGFyICpjYWwsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIGVudW0gVUNhbGVuZGFyQXR0cmlidXRl
IHsKLSAgICAvKiogTGVuaWVudCBwYXJzaW5nICovCisgIC8qKgorICAgKiBMZW5pZW50IHBhcnNp
bmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwogICBVQ0FMX0xFTklFTlQsCi0gIC8qKiBG
aXJzdCBkYXkgb2Ygd2VlayAqLworICAvKioKKyAgICogRmlyc3QgZGF5IG9mIHdlZWsKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLwogICBVQ0FMX0ZJUlNUX0RBWV9PRl9XRUVLLAotICAvKiog
TWluaW11bSBudW1iZXIgb2YgZGF5cyBpbiBmaXJzdCB3ZWVrICovCi0gIFVDQUxfTUlOSU1BTF9E
QVlTX0lOX0ZJUlNUX1dFRUsKKyAgLyoqCisgICAqIE1pbmltdW0gbnVtYmVyIG9mIGRheXMgaW4g
Zmlyc3Qgd2VlaworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDQUxfTUlOSU1BTF9E
QVlTX0lOX0ZJUlNUX1dFRUssCisgIC8qKgorICAgKiBUaGUgYmVoYXZpb3IgZm9yIGhhbmRsaW5n
IHdhbGwgdGltZSByZXBlYXRpbmcgbXVsdGlwbGUgdGltZXMKKyAgICogYXQgbmVnYXRpdmUgdGlt
ZSB6b25lIG9mZnNldCB0cmFuc2l0aW9ucworICAgKiBAc3RhYmxlIElDVSA0OQorICAgKi8KKyAg
VUNBTF9SRVBFQVRFRF9XQUxMX1RJTUUsCisgIC8qKgorICAgKiBUaGUgYmVoYXZpb3IgZm9yIGhh
bmRsaW5nIHNraXBwZWQgd2FsbCB0aW1lIGF0IHBvc2l0aXZlIHRpbWUKKyAgICogem9uZSBvZmZz
ZXQgdHJhbnNpdGlvbnMuCisgICAqIEBzdGFibGUgSUNVIDQ5CisgICAqLworICBVQ0FMX1NLSVBQ
RURfV0FMTF9USU1FCiB9OwogCiAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiB0eXBlZGVmIGVudW0g
VUNhbGVuZGFyQXR0cmlidXRlIFVDYWxlbmRhckF0dHJpYnV0ZTsKIAogLyoqCisgKiBPcHRpb25z
IGZvciBoYW5kbGluZyBhbWJpZ3VvdXMgd2FsbCB0aW1lIGF0IHRpbWUgem9uZQorICogb2Zmc2V0
IHRyYW5zaXRpb25zLgorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworZW51bSBVQ2FsZW5kYXJXYWxs
VGltZU9wdGlvbiB7CisgICAgLyoqCisgICAgICogQW4gYW1iaWd1b3VzIHdhbGwgdGltZSB0byBi
ZSBpbnRlcnByZXRlZCBhcyB0aGUgbGF0ZXN0LgorICAgICAqIFRoaXMgb3B0aW9uIGlzIHZhbGlk
IGZvciBVQ0FMX1JFUEVBVEVEX1dBTExfVElNRSBhbmQKKyAgICAgKiBVQ0FMX1NLSVBQRURfV0FM
TF9USU1FLgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgVUNBTF9XQUxMVElN
RV9MQVNULAorICAgIC8qKgorICAgICAqIEFuIGFtYmlndW91cyB3YWxsIHRpbWUgdG8gYmUgaW50
ZXJwcmV0ZWQgYXMgdGhlIGVhcmxpZXN0LgorICAgICAqIFRoaXMgb3B0aW9uIGlzIHZhbGlkIGZv
ciBVQ0FMX1JFUEVBVEVEX1dBTExfVElNRSBhbmQKKyAgICAgKiBVQ0FMX1NLSVBQRURfV0FMTF9U
SU1FLgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgVUNBTF9XQUxMVElNRV9G
SVJTVCwKKyAgICAvKioKKyAgICAgKiBBbiBhbWJpZ3VvdXMgd2FsbCB0aW1lIHRvIGJlIGludGVy
cHJldGVkIGFzIHRoZSBuZXh0IHZhbGlkCisgICAgICogd2FsbCB0aW1lLiBUaGlzIG9wdGlvbiBp
cyB2YWxpZCBmb3IgVUNBTF9TS0lQUEVEX1dBTExfVElNRS4KKyAgICAgKiBAc3RhYmxlIElDVSA0
OQorICAgICAqLworICAgIFVDQUxfV0FMTFRJTUVfTkVYVF9WQUxJRAorfTsKKy8qKiBAc3RhYmxl
IElDVSA0OSAqLwordHlwZWRlZiBlbnVtIFVDYWxlbmRhcldhbGxUaW1lT3B0aW9uIFVDYWxlbmRh
cldhbGxUaW1lT3B0aW9uOworCisvKioKICAqIEdldCBhIG51bWVyaWMgYXR0cmlidXRlIGFzc29j
aWF0ZWQgd2l0aCBhIFVDYWxlbmRhci4KICAqIE51bWVyaWMgYXR0cmlidXRlcyBpbmNsdWRlIHRo
ZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIG9yIHRoZSBtaW5pbWFsIG51bWJlcnMKICAqIG9mIGRh
eXMgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIG1vbnRoLgogICogQHBhcmFtIGNhbCBUaGUgVUNh
bGVuZGFyIHRvIHF1ZXJ5LgogICogQHBhcmFtIGF0dHIgVGhlIGRlc2lyZWQgYXR0cmlidXRlOyBv
bmUgb2YgVUNBTF9MRU5JRU5ULCBVQ0FMX0ZJUlNUX0RBWV9PRl9XRUVLLAotICogb3IgVUNBTF9N
SU5JTUFMX0RBWVNfSU5fRklSU1RfV0VFSworICogVUNBTF9NSU5JTUFMX0RBWVNfSU5fRklSU1Rf
V0VFSywgVUNBTF9SRVBFQVRFRF9XQUxMX1RJTUUgb3IgVUNBTF9TS0lQUEVEX1dBTExfVElNRQog
ICogQHJldHVybiBUaGUgdmFsdWUgb2YgYXR0ci4KICAqIEBzZWUgdWNhbF9zZXRBdHRyaWJ1dGUK
ICAqIEBzdGFibGUgSUNVIDIuMApAQCAtODI1LDcgKzk0OCw3IEBAIHVjYWxfZ2V0QXR0cmlidXRl
KGNvbnN0IFVDYWxlbmRhciogICAgY2FsLAogICogb2YgZGF5cyBpbiB0aGUgZmlyc3Qgd2VlayBv
ZiB0aGUgbW9udGguCiAgKiBAcGFyYW0gY2FsIFRoZSBVQ2FsZW5kYXIgdG8gc2V0LgogICogQHBh
cmFtIGF0dHIgVGhlIGRlc2lyZWQgYXR0cmlidXRlOyBvbmUgb2YgVUNBTF9MRU5JRU5ULCBVQ0FM
X0ZJUlNUX0RBWV9PRl9XRUVLLAotICogb3IgVUNBTF9NSU5JTUFMX0RBWVNfSU5fRklSU1RfV0VF
SworICogVUNBTF9NSU5JTUFMX0RBWVNfSU5fRklSU1RfV0VFSywgVUNBTF9SRVBFQVRFRF9XQUxM
X1RJTUUgb3IgVUNBTF9TS0lQUEVEX1dBTExfVElNRQogICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBu
ZXcgdmFsdWUgb2YgYXR0ci4KICAqIEBzZWUgdWNhbF9nZXRBdHRyaWJ1dGUKICAqIEBzdGFibGUg
SUNVIDIuMApAQCAtOTUzLDYgKzEwNzYsOSBAQCB1Y2FsX2VxdWl2YWxlbnRUbyhjb25zdCBVQ2Fs
ZW5kYXIqICBjYWwxLAogLyoqCiAgKiBBZGQgYSBzcGVjaWZpZWQgc2lnbmVkIGFtb3VudCB0byBh
IHBhcnRpY3VsYXIgZmllbGQgaW4gYSBVQ2FsZW5kYXIuCiAgKiBUaGlzIGNhbiBtb2RpZnkgbW9y
ZSBzaWduaWZpY2FudCBmaWVsZHMgaW4gdGhlIGNhbGVuZGFyLgorICogQWRkaW5nIGEgcG9zaXRp
dmUgdmFsdWUgYWx3YXlzIG1lYW5zIG1vdmluZyBmb3J3YXJkIGluIHRpbWUsIHNvIGZvciB0aGUg
R3JlZ29yaWFuIGNhbGVuZGFyLAorICogc3RhcnRpbmcgd2l0aCAxMDAgQkMgYW5kIGFkZGluZyAr
MSB0byB5ZWFyIHJlc3VsdHMgaW4gOTkgQkMgKGV2ZW4gdGhvdWdoIHRoaXMgYWN0dWFsbHkgcmVk
dWNlcworICogdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIGZpZWxkIGl0c2VsZikuCiAgKiBAcGFy
YW0gY2FsIFRoZSBVQ2FsZW5kYXIgdG8gd2hpY2ggdG8gYWRkLgogICogQHBhcmFtIGZpZWxkIFRo
ZSBmaWVsZCB0byB3aGljaCB0byBhZGQgdGhlIHNpZ25lZCB2YWx1ZTsgb25lIG9mIFVDQUxfRVJB
LCBVQ0FMX1lFQVIsIFVDQUxfTU9OVEgsCiAgKiBVQ0FMX1dFRUtfT0ZfWUVBUiwgVUNBTF9XRUVL
X09GX01PTlRILCBVQ0FMX0RBVEUsIFVDQUxfREFZX09GX1lFQVIsIFVDQUxfREFZX09GX1dFRUss
CkBAIC05NzQsNiArMTEwMCwxNSBAQCB1Y2FsX2FkZChVQ2FsZW5kYXIqICAgICAgICAgICBjYWws
CiAvKioKICAqIEFkZCBhIHNwZWNpZmllZCBzaWduZWQgYW1vdW50IHRvIGEgcGFydGljdWxhciBm
aWVsZCBpbiBhIFVDYWxlbmRhci4KICAqIFRoaXMgd2lsbCBub3QgbW9kaWZ5IG1vcmUgc2lnbmlm
aWNhbnQgZmllbGRzIGluIHRoZSBjYWxlbmRhci4KKyAqIFJvbGxpbmcgYnkgYSBwb3NpdGl2ZSB2
YWx1ZSBhbHdheXMgbWVhbnMgbW92aW5nIGZvcndhcmQgaW4gdGltZSAodW5sZXNzIHRoZSBsaW1p
dCBvZiB0aGUKKyAqIGZpZWxkIGlzIHJlYWNoZWQsIGluIHdoaWNoIGNhc2UgaXQgbWF5IHBpbiBv
ciB3cmFwKSwgc28gZm9yIEdyZWdvcmlhbiBjYWxlbmRhciwKKyAqIHN0YXJ0aW5nIHdpdGggMTAw
IEJDIGFuZCByb2xsaW5nIHRoZSB5ZWFyIGJ5ICsxIHJlc3VsdHMgaW4gOTkgQkMuCisgKiBXaGVu
IGVyYXMgaGF2ZSBhIGRlZmluaXRlIGJlZ2lubmluZyBhbmQgZW5kIChhcyBpbiB0aGUgQ2hpbmVz
ZSBjYWxlbmRhciwgb3IgYXMgaW4gbW9zdCBlcmFzIGluIHRoZQorICogSmFwYW5lc2UgY2FsZW5k
YXIpIHRoZW4gcm9sbGluZyB0aGUgeWVhciBwYXN0IGVpdGhlciBsaW1pdCBvZiB0aGUgZXJhIHdp
bGwgY2F1c2UgdGhlIHllYXIgdG8gd3JhcCBhcm91bmQuCisgKiBXaGVuIGVyYXMgb25seSBoYXZl
IGEgbGltaXQgYXQgb25lIGVuZCwgdGhlbiBhdHRlbXB0aW5nIHRvIHJvbGwgdGhlIHllYXIgcGFz
dCB0aGF0IGxpbWl0IHdpbGwgcmVzdWx0IGluCisgKiBwaW5uaW5nIHRoZSB5ZWFyIGF0IHRoYXQg
bGltaXQuIE5vdGUgdGhhdCBmb3IgbW9zdCBjYWxlbmRhcnMgaW4gd2hpY2ggZXJhIDAgeWVhcnMg
bW92ZSBmb3J3YXJkIGluIHRpbWUKKyAqIChzdWNoIGFzIEJ1ZGRoaXN0LCBIZWJyZXcsIG9yIElz
bGFtaWMpLCBpdCBpcyBwb3NzaWJsZSBmb3IgYWRkIG9yIHJvbGwgdG8gcmVzdWx0IGluIG5lZ2F0
aXZlIHllYXJzIGZvcgorICogZXJhIDAgKHRoYXQgaXMgdGhlIG9ubHkgd2F5IHRvIHJlcHJlc2Vu
dCB5ZWFycyBiZWZvcmUgdGhlIGNhbGVuZGFyIGVwb2NoKS4KICAqIEBwYXJhbSBjYWwgVGhlIFVD
YWxlbmRhciB0byB3aGljaCB0byBhZGQuCiAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkIHRvIHdo
aWNoIHRvIGFkZCB0aGUgc2lnbmVkIHZhbHVlOyBvbmUgb2YgVUNBTF9FUkEsIFVDQUxfWUVBUiwg
VUNBTF9NT05USCwKICAqIFVDQUxfV0VFS19PRl9ZRUFSLCBVQ0FMX1dFRUtfT0ZfTU9OVEgsIFVD
QUxfREFURSwgVUNBTF9EQVlfT0ZfWUVBUiwgVUNBTF9EQVlfT0ZfV0VFSywKQEAgLTEyMzAsMTQg
KzEzNjUsMTUgQEAgZW51bSBVQ2FsZW5kYXJXZWVrZGF5VHlwZSB7CiB0eXBlZGVmIGVudW0gVUNh
bGVuZGFyV2Vla2RheVR5cGUgVUNhbGVuZGFyV2Vla2RheVR5cGU7CiAKIC8qKgotICogUmV0dXJu
cyB3aGV0aGVyIHRoZSBnaXZlbiBkYXkgb2YgdGhlIHdlZWsgaXMgYSB3ZWVrZGF5LCBhCi0gKiB3
ZWVrZW5kIGRheSwgb3IgYSBkYXkgdGhhdCB0cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3Ro
ZXIsCi0gKiBpbiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gSWYgYSB0cmFuc2l0aW9uIG9jY3VycyBh
dCBtaWRuaWdodCwKKyAqIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gZGF5IG9mIHRoZSB3ZWVr
IGlzIGEgd2Vla2RheSwgYSB3ZWVrZW5kIGRheSwKKyAqIG9yIGEgZGF5IHRoYXQgdHJhbnNpdGlv
bnMgZnJvbSBvbmUgdG8gdGhlIG90aGVyLCBmb3IgdGhlIGxvY2FsZSBhbmQKKyAqIGNhbGVuZGFy
IHN5c3RlbSBhc3NvY2lhdGVkIHdpdGggdGhpcyBVQ2FsZW5kYXIgKHRoZSBsb2NhbGUncyByZWdp
b24gaXMKKyAqIG9mdGVuIHRoZSBtb3N0IGRldGVybWluYW50IGZhY3RvcikuIElmIGEgdHJhbnNp
dGlvbiBvY2N1cnMgYXQgbWlkbmlnaHQsCiAgKiB0aGVuIHRoZSBkYXlzIGJlZm9yZSBhbmQgYWZ0
ZXIgdGhlIHRyYW5zaXRpb24gd2lsbCBoYXZlIHRoZQogICogdHlwZSBVQ0FMX1dFRUtEQVkgb3Ig
VUNBTF9XRUVLRU5ELiBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IGEgdGltZQogICogb3RoZXIg
dGhhbiBtaWRuaWdodCwgdGhlbiB0aGUgZGF5IG9mIHRoZSB0cmFuc2l0aW9uIHdpbGwgaGF2ZQog
ICogdGhlIHR5cGUgVUNBTF9XRUVLRU5EX09OU0VUIG9yIFVDQUxfV0VFS0VORF9DRUFTRS4gSW4g
dGhpcyBjYXNlLCB0aGUKLSAqIG1ldGhvZCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHdpbGwgcmV0
dXJuIHRoZSBwb2ludCBvZgorICogZnVuY3Rpb24gdWNhbF9nZXRXZWVrZW5kVHJhbnNpdGlvbigp
IHdpbGwgcmV0dXJuIHRoZSBwb2ludCBvZgogICogdHJhbnNpdGlvbi4KICAqIEBwYXJhbSBjYWwg
VGhlIFVDYWxlbmRhciB0byBxdWVyeS4KICAqIEBwYXJhbSBkYXlPZldlZWsgVGhlIGRheSBvZiB0
aGUgd2VlayB3aG9zZSB0eXBlIGlzIGRlc2lyZWQgKFVDQUxfU1VOREFZLi5VQ0FMX1NBVFVSREFZ
KS4KQEAgLTEyNTAsNyArMTM4Niw3IEBAIHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZShjb25zdCBVQ2Fs
ZW5kYXIgKmNhbCwgVUNhbGVuZGFyRGF5c09mV2VlayBkYXlPZldlZWssIFVFcnJvCiAKIC8qKgog
ICogUmV0dXJucyB0aGUgdGltZSBkdXJpbmcgdGhlIGRheSBhdCB3aGljaCB0aGUgd2Vla2VuZCBi
ZWdpbnMgb3IgZW5kcyBpbgotICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiB1Y2FsX2dldERh
eU9mV2Vla1R5cGUoKSByZXJ0dXJucyBVQ0FMX1dFRUtFTkRfT05TRVQKKyAqIHRoaXMgY2FsZW5k
YXIgc3lzdGVtLiAgSWYgdWNhbF9nZXREYXlPZldlZWtUeXBlKCkgcmV0dXJucyBVQ0FMX1dFRUtF
TkRfT05TRVQKICAqIGZvciB0aGUgc3BlY2lmaWVkIGRheU9mV2VlaywgcmV0dXJuIHRoZSB0aW1l
IGF0IHdoaWNoIHRoZSB3ZWVrZW5kIGJlZ2lucy4KICAqIElmIHVjYWxfZ2V0RGF5T2ZXZWVrVHlw
ZSgpIHJldHVybnMgVUNBTF9XRUVLRU5EX0NFQVNFIGZvciB0aGUgc3BlY2lmaWVkIGRheU9mV2Vl
aywKICAqIHJldHVybiB0aGUgdGltZSBhdCB3aGljaCB0aGUgd2Vla2VuZCBlbmRzLiBJZiB1Y2Fs
X2dldERheU9mV2Vla1R5cGUoKSByZXR1cm5zCkBAIC0xMjc5LDYgKzE0MTUsMTUwIEBAIHVjYWxf
Z2V0V2Vla2VuZFRyYW5zaXRpb24oY29uc3QgVUNhbGVuZGFyICpjYWwsIFVDYWxlbmRhckRheXNP
ZldlZWsgZGF5T2ZXZWVrLCBVCiBVX1NUQUJMRSBVQm9vbCBVX0VYUE9SVDIKIHVjYWxfaXNXZWVr
ZW5kKGNvbnN0IFVDYWxlbmRhciAqY2FsLCBVRGF0ZSBkYXRlLCBVRXJyb3JDb2RlICpzdGF0dXMp
OwogCisvKioKKyAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0YXJnZXQgdGlt
ZSBhbmQgdGhlIHRpbWUgdGhpcyBjYWxlbmRhciBvYmplY3QgaXMgY3VycmVudGx5IHNldCB0by4K
KyAqIElmIHRoZSB0YXJnZXQgdGltZSBpcyBhZnRlciB0aGUgY3VycmVudCBjYWxlbmRhciBzZXR0
aW5nLCB0aGUgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgcG9zaXRpdmUuCisgKiBUaGUgZmll
bGQgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdW5pdHMgb2YgdGhlIHJldHVybiB2YWx1ZS4gRm9y
IGV4YW1wbGUsIGlmIGZpZWxkIGlzIFVDQUxfTU9OVEgKKyAqIGFuZCB1Y2FsX2dldEZpZWxkRGlm
ZmVyZW5jZSByZXR1cm5zIDMsIHRoZW4gdGhlIHRhcmdldCB0aW1lIGlzIDMgdG8gbGVzcyB0aGFu
IDQgbW9udGhzIGFmdGVyIHRoZQorICogY3VycmVudCBjYWxlbmRhciBzZXR0aW5nLgorICoKKyAq
IEFzIGEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBjYWxsLCB0aGlzIGNhbGVuZGFyIGlzIGFkdmFuY2Vk
IHRvd2FyZCB0YXJnZXQgYnkgdGhlIGdpdmVuIGFtb3VudC4gVGhhdCBpcywKKyAqIGNhbGxpbmcg
dGhpcyBmdW5jdGlvbiBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGNhbGxpbmcgdWNhbF9hZGQgb24g
dGhpcyBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQKKyAqIGZpZWxkIGFuZCBhbiBhbW91bnQg
ZXF1YWwgdG8gdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoaXMgZnVuY3Rpb24uCisgKgorICogQSB0
eXBpY2FsIHdheSBvZiB1c2luZyB0aGlzIGZ1bmN0aW9uIGlzIHRvIGNhbGwgaXQgZmlyc3Qgd2l0
aCB0aGUgbGFyZ2VzdCBmaWVsZCBvZiBpbnRlcmVzdCwgdGhlbgorICogd2l0aCBwcm9ncmVzc2l2
ZWx5IHNtYWxsZXIgZmllbGRzLgorICogCisgKiBAcGFyYW0gY2FsIFRoZSBVQ2FsZW5kYXIgdG8g
Y29tcGFyZSBhbmQgdXBkYXRlLgorICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IGRhdGUgdG8g
Y29tcGFyZSB0byB0aGUgY3VycmVudCBjYWxlbmRhciBzZXR0aW5nLgorICogQHBhcmFtIGZpZWxk
IFRoZSBmaWVsZCB0byBjb21wYXJlOyBvbmUgb2YgVUNBTF9FUkEsIFVDQUxfWUVBUiwgVUNBTF9N
T05USCwKKyAqIFVDQUxfV0VFS19PRl9ZRUFSLCBVQ0FMX1dFRUtfT0ZfTU9OVEgsIFVDQUxfREFU
RSwgVUNBTF9EQVlfT0ZfWUVBUiwgVUNBTF9EQVlfT0ZfV0VFSywKKyAqIFVDQUxfREFZX09GX1dF
RUtfSU5fTU9OVEgsIFVDQUxfQU1fUE0sIFVDQUxfSE9VUiwgVUNBTF9IT1VSX09GX0RBWSwgVUNB
TF9NSU5VVEUsIFVDQUxfU0VDT05ELAorICogVUNBTF9NSUxMSVNFQ09ORCwgVUNBTF9aT05FX09G
RlNFVCwgVUNBTF9EU1RfT0ZGU0VULgorICogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4g
VUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKKyAqIEByZXR1cm4gVGhlIGRhdGUgZGlm
ZmVyZW5jZSBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZC4KKyAqIEBzdGFibGUgSUNVIDQuOAorICov
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKK3VjYWxfZ2V0RmllbGREaWZmZXJlbmNlKFVD
YWxlbmRhciogY2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgVURhdGUgdGFyZ2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgVUNhbGVuZGFyRGF0ZUZpZWxkcyBmaWVsZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKy8qKgorICogVGltZSB6b25l
IHRyYW5zaXRpb24gdHlwZXMgZm9yIHVjYWxfZ2V0VGltZVpvbmVUcmFuc2l0aW9uRGF0ZQorICog
QHN0YWJsZSBJQ1UgNTAKKyAqLworZW51bSBVVGltZVpvbmVUcmFuc2l0aW9uVHlwZSB7CisgICAg
LyoqCisgICAgICogR2V0IHRoZSBuZXh0IHRyYW5zaXRpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgZGF0
ZSwKKyAgICAgKiBpLmUuIGV4Y2x1ZGVzIHRoZSBjdXJyZW50IGRhdGUKKyAgICAgKiBAc3RhYmxl
IElDVSA1MAorICAgICAqLworICAgIFVDQUxfVFpfVFJBTlNJVElPTl9ORVhULAorICAgIC8qKgor
ICAgICAqIEdldCB0aGUgbmV4dCB0cmFuc2l0aW9uIG9uIG9yIGFmdGVyIHRoZSBjdXJyZW50IGRh
dGUsCisgICAgICogaS5lLiBtYXkgaW5jbHVkZSB0aGUgY3VycmVudCBkYXRlCisgICAgICogQHN0
YWJsZSBJQ1UgNTAKKyAgICAgKi8KKyAgICBVQ0FMX1RaX1RSQU5TSVRJT05fTkVYVF9JTkNMVVNJ
VkUsCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwcmV2aW91cyB0cmFuc2l0aW9uIGJlZm9yZSB0
aGUgY3VycmVudCBkYXRlLAorICAgICAqIGkuZS4gZXhjbHVkZXMgdGhlIGN1cnJlbnQgZGF0ZQor
ICAgICAqIEBzdGFibGUgSUNVIDUwCisgICAgICovCisgICAgVUNBTF9UWl9UUkFOU0lUSU9OX1BS
RVZJT1VTLAorICAgIC8qKgorICAgICAqIEdldCB0aGUgcHJldmlvdXMgdHJhbnNpdGlvbiBvbiBv
ciBiZWZvcmUgdGhlIGN1cnJlbnQgZGF0ZSwKKyAgICAgKiBpLmUuIG1heSBpbmNsdWRlIHRoZSBj
dXJyZW50IGRhdGUKKyAgICAgKiBAc3RhYmxlIElDVSA1MAorICAgICAqLworICAgIFVDQUxfVFpf
VFJBTlNJVElPTl9QUkVWSU9VU19JTkNMVVNJVkUKK307CisKK3R5cGVkZWYgZW51bSBVVGltZVpv
bmVUcmFuc2l0aW9uVHlwZSBVVGltZVpvbmVUcmFuc2l0aW9uVHlwZTsgLyoqPCBAc3RhYmxlIElD
VSA1MCAqLworCisvKioKKyogR2V0IHRoZSBVRGF0ZSBmb3IgdGhlIG5leHQvcHJldmlvdXMgdGlt
ZSB6b25lIHRyYW5zaXRpb24gcmVsYXRpdmUgdG8KKyogdGhlIGNhbGVuZGFyJ3MgY3VycmVudCBk
YXRlLCBpbiB0aGUgdGltZSB6b25lIHRvIHdoaWNoIHRoZSBjYWxlbmRhcgorKiBpcyBjdXJyZW50
bHkgc2V0LiBJZiB0aGVyZSBpcyBubyBrbm93biB0aW1lIHpvbmUgdHJhbnNpdGlvbiBvZiB0aGUK
KyogcmVxdWVzdGVkIHR5cGUgcmVsYXRpdmUgdG8gdGhlIGNhbGVuZGFyJ3MgZGF0ZSwgdGhlIGZ1
bmN0aW9uIHJldHVybnMKKyogRkFMU0UuCisqIEBwYXJhbSBjYWwgVGhlIFVDYWxlbmRhciB0byBx
dWVyeS4KKyogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdHJhbnNpdGlvbiBkZXNpcmVkLgorKiBA
cGFyYW0gdHJhbnNpdGlvbiBBIHBvaW50ZXIgdG8gYSBVRGF0ZSB0byBiZSBzZXQgdG8gdGhlIHRy
YW5zaXRpb24gdGltZS4KKyogICAgICAgICBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBGQUxTRSwg
dGhlIHZhbHVlIHNldCBpcyB1bnNwZWNpZmllZC4KKyogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIg
dG8gYSBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycy4KKyogQHJldHVybiBUUlVFIGlm
IGEgdmFsaWQgdHJhbnNpdGlvbiB0aW1lIGlzIHNldCBpbiAqdHJhbnNpdGlvbiwgRkFMU0UKKyog
ICAgICAgICBvdGhlcndpc2UuCisqIEBzdGFibGUgSUNVIDUwCisqLworVV9EUkFGVCBVQm9vbCBV
X0VYUE9SVDIgCit1Y2FsX2dldFRpbWVab25lVHJhbnNpdGlvbkRhdGUoY29uc3QgVUNhbGVuZGFy
KiBjYWwsIFVUaW1lWm9uZVRyYW5zaXRpb25UeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVURhdGUqIHRyYW5zaXRpb24sIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKyNp
Zm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisqIENvbnZlcnRzIGEgc3lzdGVtIHRpbWUgem9u
ZSBJRCB0byBhbiBlcXVpdmFsZW50IFdpbmRvd3MgdGltZSB6b25lIElELiBGb3IgZXhhbXBsZSwK
KyogV2luZG93cyB0aW1lIHpvbmUgSUQgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIgaXMgcmV0dXJu
ZWQgZm9yIGlucHV0ICJBbWVyaWNhL0xvc19BbmdlbGVzIi4KKyoKKyogPHA+VGhlcmUgYXJlIHN5
c3RlbSB0aW1lIHpvbmVzIHRoYXQgY2Fubm90IGJlIG1hcHBlZCB0byBXaW5kb3dzIHpvbmVzLiBX
aGVuIHRoZSBpbnB1dAorKiBzeXN0ZW0gdGltZSB6b25lIElEIGlzIHVua25vd24gb3IgdW5tYXBw
YWJsZSB0byBhIFdpbmRvd3MgdGltZSB6b25lLCB0aGVuIHRoaXMKKyogZnVuY3Rpb24gcmV0dXJu
cyAwIGFzIHRoZSByZXN1bHQgbGVuZ3RoLCBidXQgdGhlIG9wZXJhdGlvbiBpdHNlbGYgcmVtYWlu
cyBzdWNjZXNzZnVsCisqIChubyBlcnJvciBzdGF0dXMgc2V0IG9uIHJldHVybikuCisqCisqIDxw
PlRoaXMgaW1wbGVtZW50YXRpb24gdXRpbGl6ZXMgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3Jn
L2NsZHIvY2hhcnRzL3N1cHBsZW1lbnRhbC96b25lX3R6aWQuaHRtbCI+CisqIFpvbmUtVHppZCBt
YXBwaW5nIGRhdGE8L2E+LiBUaGUgbWFwcGluZyBkYXRhIGlzIHVwZGF0ZWQgdGltZSB0byB0aW1l
LiBUbyBnZXQgdGhlIGxhdGVzdCBjaGFuZ2VzLAorKiBwbGVhc2UgcmVhZCB0aGUgSUNVIHVzZXIg
Z3VpZGUgc2VjdGlvbiA8YSBocmVmPSJodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9k
YXRldGltZS90aW1lem9uZSNUT0MtVXBkYXRpbmctdGhlLVRpbWUtWm9uZS1EYXRhIj4KKyogVXBk
YXRpbmcgdGhlIFRpbWUgWm9uZSBEYXRhPC9hPi4KKyoKKyogQHBhcmFtIGlkICAgICAgICAgICAg
QSBzeXN0ZW0gdGltZSB6b25lIElELgorKiBAcGFyYW0gbGVuICAgICAgICAgICBUaGUgbGVuZ3Ro
IG9mIDxjb2RlPmlkPC9jb2RlPiwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLgorKiBAcGFyYW0g
d2luaWQgICAgICAgICBBIGJ1ZmZlciB0byByZWNlaXZlIGEgV2luZG93cyB0aW1lIHpvbmUgSUQu
CisqIEBwYXJhbSB3aW5pZENhcGFjaXR5IFRoZSBjYXBhY2l0eSBvZiB0aGUgcmVzdWx0IGJ1ZmZl
ciA8Y29kZT53aW5pZDwvY29kZT4uCisqIEBwYXJhbSBzdGF0dXMgICAgICAgIFJlY2VpdmVzIHRo
ZSBzdGF0dXMuCisqIEByZXR1cm4gICAgICAgICAgICAgIFRoZSByZXN1bHQgc3RyaW5nIGxlbmd0
aCwgbm90IGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgbnVsbC4KKyogQHNlZSB1Y2FsX2dldFRp
bWVab25lSURGb3JXaW5kb3dzSUQKKyoKKyogQGRyYWZ0IElDVSA1MgorKi8KK1VfRFJBRlQgaW50
MzJfdCBVX0VYUE9SVDIKK3VjYWxfZ2V0V2luZG93c1RpbWVab25lSUQoY29uc3QgVUNoYXIqIGlk
LCBpbnQzMl90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhciogd2luaWQs
IGludDMyX3Qgd2luaWRDYXBhY2l0eSwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworLyoqCisqIENv
bnZlcnRzIGEgV2luZG93cyB0aW1lIHpvbmUgSUQgdG8gYW4gZXF1aXZhbGVudCBzeXN0ZW0gdGlt
ZSB6b25lIElECisqIGZvciBhIHJlZ2lvbi4gRm9yIGV4YW1wbGUsIHN5c3RlbSB0aW1lIHpvbmUg
SUQgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIGlzIHJldHVybmVkCisqIGZvciBpbnB1dCBXaW5kb3dz
IElEICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiIGFuZCByZWdpb24gIlVTIiAob3IgPGNvZGU+bnVs
bDwvY29kZT4pLAorKiAiQW1lcmljYS9WYW5jb3V2ZXIiIGlzIHJldHVybmVkIGZvciB0aGUgc2Ft
ZSBXaW5kb3dzIElEICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiIGFuZAorKiByZWdpb24gIkNBIi4K
KyoKKyogPHA+Tm90IGFsbCBXaW5kb3dzIHRpbWUgem9uZXMgY2FuIGJlIG1hcHBlZCB0byBzeXN0
ZW0gdGltZSB6b25lcy4gV2hlbiB0aGUgaW5wdXQKKyogV2luZG93cyB0aW1lIHpvbmUgSUQgaXMg
dW5rbm93biBvciB1bm1hcHBhYmxlIHRvIGEgc3lzdGVtIHRpbWUgem9uZSwgdGhlbiB0aGlzCisq
IGZ1bmN0aW9uIHJldHVybnMgMCBhcyB0aGUgcmVzdWx0IGxlbmd0aCwgYnV0IHRoZSBvcGVyYXRp
b24gaXRzZWxmIHJlbWFpbnMgc3VjY2Vzc2Z1bAorKiAobm8gZXJyb3Igc3RhdHVzIHNldCBvbiBy
ZXR1cm4pLgorKgorKiA8cD5UaGlzIGltcGxlbWVudGF0aW9uIHV0aWxpemVzIDxhIGhyZWY9Imh0
dHA6Ly91bmljb2RlLm9yZy9jbGRyL2NoYXJ0cy9zdXBwbGVtZW50YWwvem9uZV90emlkLmh0bWwi
PgorKiBab25lLVR6aWQgbWFwcGluZyBkYXRhPC9hPi4gVGhlIG1hcHBpbmcgZGF0YSBpcyB1cGRh
dGVkIHRpbWUgdG8gdGltZS4gVG8gZ2V0IHRoZSBsYXRlc3QgY2hhbmdlcywKKyogcGxlYXNlIHJl
YWQgdGhlIElDVSB1c2VyIGd1aWRlIHNlY3Rpb24gPGEgaHJlZj0iaHR0cDovL3VzZXJndWlkZS5p
Y3UtcHJvamVjdC5vcmcvZGF0ZXRpbWUvdGltZXpvbmUjVE9DLVVwZGF0aW5nLXRoZS1UaW1lLVpv
bmUtRGF0YSI+CisqIFVwZGF0aW5nIHRoZSBUaW1lIFpvbmUgRGF0YTwvYT4uCisqCisqIEBwYXJh
bSB3aW5pZCAgICAgICAgIEEgV2luZG93cyB0aW1lIHpvbmUgSUQuCisqIEBwYXJhbSBsZW4gICAg
ICAgICAgIFRoZSBsZW5ndGggb2YgPGNvZGU+d2luaWQ8L2NvZGU+LCBvciAtMSBpZiBudWxsLXRl
cm1pbmF0ZWQuCisqIEBwYXJhbSByZWdpb24gICAgICAgIEEgbnVsbC10ZXJtaW5hdGVkIHJlZ2lv
biBjb2RlLCBvciA8Y29kZT5OVUxMPC9jb2RlPiBpZiBubyByZWdpb25hbCBwcmVmZXJlbmNlLgor
KiBAcGFyYW0gaWQgICAgICAgICAgICBBIGJ1ZmZlciB0byByZWNlaXZlIGEgc3lzdGVtIHRpbWUg
em9uZSBJRC4KKyogQHBhcmFtIGlkQ2FwYWNpdHkgICAgVGhlIGNhcGFjaXR5IG9mIHRoZSByZXN1
bHQgYnVmZmVyIDxjb2RlPmlkPC9jb2RlPi4KKyogQHBhcmFtIHN0YXR1cyAgICAgICAgUmVjZWl2
ZXMgdGhlIHN0YXR1cy4KKyogQHJldHVybiAgICAgICAgICAgICAgVGhlIHJlc3VsdCBzdHJpbmcg
bGVuZ3RoLCBub3QgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsLgorKiBAc2VlIHVjYWxf
Z2V0V2luZG93c1RpbWVab25lSUQKKyoKKyogQGRyYWZ0IElDVSA1MgorKi8KK1VfRFJBRlQgaW50
MzJfdCBVX0VYUE9SVDIKK3VjYWxfZ2V0VGltZVpvbmVJREZvcldpbmRvd3NJRChjb25zdCBVQ2hh
ciogd2luaWQsIGludDMyX3QgbGVuLCBjb25zdCBjaGFyKiByZWdpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVDaGFyKiBpZCwgaW50MzJfdCBpZENhcGFjaXR5LCBVRXJyb3JD
b2RlKiBzdGF0dXMpOworCisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KIAogI2VuZGlm
IC8qICNpZiAhVUNPTkZJR19OT19GT1JNQVRUSU5HICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91Y2hhci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ljdS91bmljb2RlL3VjaGFyLmgKaW5kZXggOTNhYTY2MzIwNmIyYjRjNDgyMGI4MmNmYzY2Yzg0
YTJkMDBhZTliMi4uMWE1YjcxYjQ2M2U0ODM2ZWU1MTM1MmJhYWM2YjRlNGM3MjYzZjMxZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VjaGFyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VjaGFyLmgKQEAgLTEsNiArMSw2IEBA
CiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM5LDcgKzM5LDcg
QEAgVV9DREVDTF9CRUdJTgogICogQHNlZSB1X2dldFVuaWNvZGVWZXJzaW9uCiAgKiBAc3RhYmxl
IElDVSAyLjAKICAqLwotI2RlZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4wIgorI2RlZmluZSBV
X1VOSUNPREVfVkVSU0lPTiAiNi4zIgogCiAvKioKICAqIFxmaWxlCkBAIC0xMzksMTkgKzEzOSw2
IEBAIFVfQ0RFQ0xfQkVHSU4KICAqLwogI2RlZmluZSBVX01BU0soeCkgKCh1aW50MzJfdCkxPDwo
eCkpCiAKLS8qCi0gKiAhISBOb3RlOiBTZXZlcmFsIGNvbW1lbnRzIGluIHRoaXMgZmlsZSBhcmUg
bWFjaGluZS1yZWFkIGJ5IHRoZQotICogZ2VucG5hbWUgdG9vbC4gIFRoZXNlIGNvbW1lbnRzIGRl
c2NyaWJlIHRoZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuCi0gKiBpY3UgZW51bSBjb25zdGFudHMg
YW5kIFVDRCBlbnRpdGllcy4gIERvIG5vdCBkZWxldGUgdGhlbS4gIFVwZGF0ZQotICogdGhlc2Ug
Y29tbWVudHMgYXMgbmVlZGVkLgotICoKLSAqIEFueSBjb21tZW50IG9mIHRoZSBmb3JtICIvICpb
bmFtZV0qIC8iIChzcGFjZXMgYWRkZWQpIGlzIHN1Y2gKLSAqIGEgY29tbWVudC4KLSAqCi0gKiBU
aGUgVV9KR18qIGFuZCBVX0dDXypfTUFTSyBjb25zdGFudHMgYXJlIG1hdGNoZWQgYnkgdGhlaXIg
c3ltYm9saWMKLSAqIG5hbWUsIHdoaWNoIG11c3QgbWF0Y2ggUHJvcGVydHlWYWx1ZUFsaWFzZXMu
dHh0LgotICovCi0KIC8qKgogICogU2VsZWN0aW9uIGNvbnN0YW50cyBmb3IgVW5pY29kZSBwcm9w
ZXJ0aWVzLgogICogVGhlc2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBsaWtlIHVf
aGFzQmluYXJ5UHJvcGVydHkgdG8gc2VsZWN0CkBAIC0xNzIsOSArMTU5LDExIEBAIFVfQ0RFQ0xf
QkVHSU4KICAqIEBzdGFibGUgSUNVIDIuMQogICovCiB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsK
LSAgICAvKiAgU2VlIG5vdGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQmluYXJ5IHByb3Bl
cnR5IERhc2giLAotICAgICAgICAiRW51bWVyYXRlZCBwcm9wZXJ0eSBTY3JpcHQiLCAiRG91Ymxl
IHByb3BlcnR5IE51bWVyaWNfVmFsdWUiLAotICAgICAgICBhbmQgIlN0cmluZyBwcm9wZXJ0eSBB
Z2UiIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAgICogTm90ZTogVVByb3Bl
cnR5IGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1h
dGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVQ0hBUl88VW5pY29kZSBwcm9wZXJ0eSBuYW1l
Pj08aW50ZWdlcj4sCisgICAgICovCiAKICAgICAvKiAgTm90ZTogUGxhY2UgVUNIQVJfQUxQSEFC
RVRJQyBiZWZvcmUgVUNIQVJfQklOQVJZX1NUQVJUIHNvIHRoYXQKICAgICBkZWJ1Z2dlcnMgZGlz
cGxheSBVQ0hBUl9BTFBIQUJFVElDIGFzIHRoZSBzeW1ib2xpYyBuYW1lIGZvciAwLApAQCAtNDkx
LDggKzQ4MCwxMyBAQCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAgICAgKGh0dHA6Ly93
d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKICAgICAgICAgUmV0dXJucyBVV29yZEJyZWFr
VmFsdWVzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgVUNIQVJfV09SRF9CUkVBSz0w
eDEwMTQsCisgICAgLyoqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9QYWlyZWRfQnJhY2tldF9U
eXBlIChuZXcgaW4gVW5pY29kZSA2LjMpLgorICAgICAgICBVc2VkIGluIFVBWCAjOTogVW5pY29k
ZSBCaWRpcmVjdGlvbmFsIEFsZ29yaXRobQorICAgICAgICAoaHR0cDovL3d3dy51bmljb2RlLm9y
Zy9yZXBvcnRzL3RyOS8pCisgICAgICAgIFJldHVybnMgVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB2
YWx1ZXMuIEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVF9U
WVBFPTB4MTAxNSwKICAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3Ig
ZW51bWVyYXRlZC9pbnRlZ2VyIFVuaWNvZGUgcHJvcGVydGllcy4gQHN0YWJsZSBJQ1UgMi4yICov
Ci0gICAgVUNIQVJfSU5UX0xJTUlUPTB4MTAxNSwKKyAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE2
LAogCiAgICAgLyoqIEJpdG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNrLgogICAg
ICAgICBUaGlzIGlzIHRoZSBHZW5lcmFsX0NhdGVnb3J5IHByb3BlcnR5IHJldHVybmVkIGFzIGEg
Yml0IG1hc2suCkBAIC01MjcsOSArNTIxLDExIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewog
ICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgogICAgICAgICBDb3JyZXNwb25k
cyB0byB1X3N0ckZvbGRDYXNlIGluIHVzdHJpbmcuaC4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAg
VUNIQVJfQ0FTRV9GT0xESU5HPTB4NDAwMiwKLSAgICAvKiogU3RyaW5nIHByb3BlcnR5IElTT19D
b21tZW50LgotICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldElTT0NvbW1lbnQuIEBzdGFibGUg
SUNVIDIuNCAqLworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKyAgICAvKiogRGVwcmVj
YXRlZCBzdHJpbmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICAgIENvcnJlc3BvbmRzIHRv
IHVfZ2V0SVNPQ29tbWVudC4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJfSVNPX0NP
TU1FTlQ9MHg0MDAzLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAv
KiogU3RyaW5nIHByb3BlcnR5IExvd2VyY2FzZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25k
cyB0byB1X3N0clRvTG93ZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBV
Q0hBUl9MT1dFUkNBU0VfTUFQUElORz0weDQwMDQsCkBAIC01NTEsMjkgKzU0NywzMyBAQCB0eXBl
ZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9N
YXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVGl0bGUgaW4gdXN0cmluZy5o
LiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9USVRMRUNBU0VfTUFQUElORz0weDQwMEEs
CisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkg
VW5pY29kZV8xX05hbWUuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfY2hhck5hbWUuIEBzdGFi
bGUgSUNVIDIuNCAqLworICAgICAgICBUaGlzIHByb3BlcnR5IGlzIG9mIGxpdHRsZSBwcmFjdGlj
YWwgdmFsdWUuCisgICAgICAgIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0dXJu
IGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgQ29ycmVzcG9uZHMg
dG8gdV9jaGFyTmFtZShVX1VOSUNPREVfMTBfQ0hBUl9OQU1FKS4gQGRlcHJlY2F0ZWQgSUNVIDQ5
ICovCiAgICAgVUNIQVJfVU5JQ09ERV8xX05BTUU9MHg0MDBCLAorI2VuZGlmICAvKiBVX0hJREVf
REVQUkVDQVRFRF9BUEkgKi8KICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFVwcGVyY2FzZV9NYXBw
aW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVXBwZXIgaW4gdXN0cmluZy5oLiBA
c3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9VUFBFUkNBU0VfTUFQUElORz0weDQwMEMsCisg
ICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0IChuZXcgaW4gVW5pY29k
ZSA2LjMpLgorICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldEJpZGlQYWlyZWRCcmFja2V0LiBA
c3RhYmxlIElDVSA1MiAqLworICAgIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVQ9MHg0MDBELAog
ICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29k
ZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElDVSAyLjQgKi8KLSAgICBVQ0hBUl9TVFJJTkdfTElNSVQ9
MHg0MDBELAorICAgIFVDSEFSX1NUUklOR19MSU1JVD0weDQwMEUsCiAKLSAgICAvKiogUHJvdmlz
aW9uYWwgcHJvcGVydHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCi0g
ICAgICAgIEFzIGEgcHJvdmlzaW9uYWwgcHJvcGVydHksIGl0IG1heSBiZSBtb2RpZmllZCBvciBy
ZW1vdmVkCi0gICAgICAgIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFy
ZCwgYW5kIHRodXMgaW4gSUNVLgorICAgIC8qKiBNaXNjZWxsYW5lb3VzIHByb3BlcnR5IFNjcmlw
dF9FeHRlbnNpb25zIChuZXcgaW4gVW5pY29kZSA2LjApLgogICAgICAgICBTb21lIGNoYXJhY3Rl
cnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAgICAgICAgRm9yIG1v
cmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIyNC8uCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVzY3JpcHRfaGFzU2NyaXB0IGFuZCB1
c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lvbnMgaW4gdXNjcmlwdC5oLgotICAgICAgICBAZHJhZnQg
SUNVIDQuNiAqLworICAgICAgICBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9TQ1JJUFRf
RVhURU5TSU9OUz0weDcwMDAsCi0gICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHBy
b3BlcnRpZXMgd2l0aCB1bnVzdWFsIHZhbHVlIHR5cGVzLiBAZHJhZnQgSUNVIDQuNiAqLworICAg
IC8qKiBGaXJzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3VhbCB2
YWx1ZSB0eXBlcy4gQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUNIQVJfT1RIRVJfUFJPUEVSVFlf
U1RBUlQ9VUNIQVJfU0NSSVBUX0VYVEVOU0lPTlMsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhl
IGxhc3QgY29uc3RhbnQgZm9yIFVuaWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUg
dHlwZXMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYgKi8KKyAgICAgKiBAc3RhYmxlIElDVSA0LjYg
Ki8KICAgICBVQ0hBUl9PVEhFUl9QUk9QRVJUWV9MSU1JVD0weDcwMDEsCi0KICAgICAvKiogUmVw
cmVzZW50cyBhIG5vbmV4aXN0ZW50IG9yIGludmFsaWQgcHJvcGVydHkgb3IgcHJvcGVydHkgdmFs
dWUuIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX0lOVkFMSURfQ09ERSA9IC0xCiB9IFVQ
cm9wZXJ0eTsKQEAgLTU4NSw3ICs1ODUsMTIgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eSB7CiAg
Ki8KIHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAg
Q29tbWVudHMgb2YgdGhlIGZvcm0gIkNuIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAv
KgorICAgICAqIE5vdGU6IFVDaGFyQ2F0ZWdvcnkgY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29t
bWVudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBh
aXJzIG9mIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAyLWxldHRlciBHZW5l
cmFsX0NhdGVnb3J5IHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10r
PiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOb24tY2F0ZWdvcnkgZm9yIHVuYXNz
aWduZWQgYW5kIG5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludHMuIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVfVU5BU1NJR05FRCAgICAgICAgICAgICAgPSAwLApAQCAtNzcwLDcgKzc3NSwxMiBAQCB0
eXBlZGVmIGVudW0gVUNoYXJDYXRlZ29yeQogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVk
ZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMg
b2YgdGhlIGZvcm0gIkVOIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVDaGFyRGlyZWN0aW9uIGNvbnN0YW50cyBhbmQgdGhlaXIgQVBJIGNvbW1lbnRzIGFy
ZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBwYWlycyBvZiBs
aW5lcyBsaWtlCisgICAgICogICAgIC8gKiogPFVuaWNvZGUgMS4uMy1sZXR0ZXIgQmlkaV9DbGFz
cyB2YWx1ZT4gY29tbWVudC4uLiAqIC8KKyAgICAgKiAgICAgVV88W0EtWl9dKz4gPSA8aW50ZWdl
cj4sCisgICAgICovCiAKICAgICAvKiogTCBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVX0xFRlRf
VE9fUklHSFQgICAgICAgICAgICAgICA9IDAsCkBAIC04MTAsMjEgKzgyMCw1NyBAQCB0eXBlZGVm
IGVudW0gVUNoYXJEaXJlY3Rpb24gewogICAgIFVfRElSX05PTl9TUEFDSU5HX01BUksgICAgICAg
ID0gMTcsCiAgICAgLyoqIEJOIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQk9VTkRBUllfTkVV
VFJBTCAgICAgICAgICAgID0gMTgsCisgICAgLyoqIEZTSSBAc3RhYmxlIElDVSA1MiAqLworICAg
IFVfRklSU1RfU1RST05HX0lTT0xBVEUgICAgICAgID0gMTksCisgICAgLyoqIExSSSBAc3RhYmxl
IElDVSA1MiAqLworICAgIFVfTEVGVF9UT19SSUdIVF9JU09MQVRFICAgICAgID0gMjAsCisgICAg
LyoqIFJMSSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUklHSFRfVE9fTEVGVF9JU09MQVRFICAg
ICAgID0gMjEsCisgICAgLyoqIFBESSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUE9QX0RJUkVD
VElPTkFMX0lTT0xBVEUgICAgID0gMjIsCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVfQ0hBUl9ESVJFQ1RJT05fQ09VTlQKIH0gVUNoYXJEaXJlY3Rpb247CiAKIC8qKgorICogQmlk
aSBQYWlyZWQgQnJhY2tldCBUeXBlIGNvbnN0YW50cy4KKyAqCisgKiBAc2VlIFVDSEFSX0JJRElf
UEFJUkVEX0JSQUNLRVRfVFlQRQorICogQHN0YWJsZSBJQ1UgNTIKKyAqLwordHlwZWRlZiBlbnVt
IFVCaWRpUGFpcmVkQnJhY2tldFR5cGUgeworICAgIC8qCisgICAgICogTm90ZTogVUJpZGlQYWly
ZWRCcmFja2V0VHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAg
ICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9CUFRfPFVuaWNvZGUgQmlk
aV9QYWlyZWRfQnJhY2tldF9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICAvKiogTm90
IGEgcGFpcmVkIGJyYWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9CUFRfTk9ORSwKKyAg
ICAvKiogT3BlbiBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9P
UEVOLAorICAgIC8qKiBDbG9zZSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAg
ICBVX0JQVF9DTE9TRSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9DT1VO
VCAvKiAzICovCit9IFVCaWRpUGFpcmVkQnJhY2tldFR5cGU7CisKKy8qKgogICogQ29uc3RhbnRz
IGZvciBVbmljb2RlIGJsb2Nrcywgc2VlIHRoZSBVbmljb2RlIERhdGEgZmlsZSBCbG9ja3MudHh0
CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogZW51bSBVQmxvY2tDb2RlIHsKKyAgICAvKgorICAg
ICAqIE5vdGU6IFVCbG9ja0NvZGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2Qu
cHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVCTE9DS188VW5p
Y29kZSBCbG9jayB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBO
ZXcgTm9fQmxvY2sgdmFsdWUgaW4gVW5pY29kZSA0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICBV
QkxPQ0tfTk9fQkxPQ0sgPSAwLCAvKltub25lXSovIC8qIFNwZWNpYWwgcmFuZ2UgaW5kaWNhdGlu
ZyBOb19CbG9jayAqLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19C
QVNJQ19MQVRJTiA9IDEsIC8qWzAwMDBdKi8gLypTZWUgbm90ZSAhISovCisgICAgVUJMT0NLX0JB
U0lDX0xBVElOID0gMSwgLypbMDAwMF0qLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVCTE9DS19MQVRJTl8xX1NVUFBMRU1FTlQ9MiwgLypbMDA4MF0qLwpAQCAtMTA2MSw3ICsx
MTA3LDcgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAgICBVQkxPQ0tfTE9XX1NVUlJPR0FURVMgPTc3
LCAvKltEQzAwXSovCiAKICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VT
RV9BUkVBLgorICAgICAqIFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVfVVNFLgogICAgICAqIFVudGls
IFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRl
IFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJs
b2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBV
QSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDY5LDkgKzExMTUsOSBAQCBlbnVtIFVC
bG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICovCi0gICAg
VUJMT0NLX1BSSVZBVEVfVVNFID0gNzgsCisgICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPTc4
LCAvKltFMDAwXSovCiAgICAgLyoqCi0gICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0Uu
CisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQS4KICAgICAgKiBVbnRpbCBV
bmljb2RlIDMuMS4xLCB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBV
c2UiLAogICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9j
ay4KICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEg
dG8gIlByaXZhdGUgVXNlIEFyZWEiIGFuZApAQCAtMTA3OSw3ICsxMTI1LDcgQEAgZW51bSBVQmxv
Y2tDb2RlIHsKICAgICAgKgogICAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgICAqLwotICAgIFVC
TE9DS19QUklWQVRFX1VTRV9BUkVBID1VQkxPQ0tfUFJJVkFURV9VU0UsIC8qW0UwMDBdKi8KKyAg
ICBVQkxPQ0tfUFJJVkFURV9VU0UgPSBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSwKIAogICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dS
QVBIUyA9NzksIC8qW0Y5MDBdKi8KQEAgLTExMTEsMzMgKzExNTcsMzMgQEAgZW51bSBVQmxvY2tD
b2RlIHsKICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4xICovCiAKICAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCAgLCAvKlsxMDMwMF0q
LworICAgIFVCTE9DS19PTERfSVRBTElDID0gODgsIC8qWzEwMzAwXSovCiAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19HT1RISUMgPSA4OSAsIC8qWzEwMzMwXSovCisgICAg
VUJMT0NLX0dPVEhJQyA9IDg5LCAvKlsxMDMzMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KLSAgICBVQkxPQ0tfREVTRVJFVCA9IDkwICwgLypbMTA0MDBdKi8KKyAgICBVQkxPQ0tfREVT
RVJFVCA9IDkwLCAvKlsxMDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBV
QkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxICwgLypbMUQwMDBdKi8KKyAgICBV
QkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxLCAvKlsxRDAwMF0qLwogICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTVVTSUNBTF9TWU1CT0xTID0gOTIgLCAv
KlsxRDEwMF0qLworICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiwgLypbMUQxMDBdKi8K
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBI
QU5VTUVSSUNfU1lNQk9MUyA9IDkzICAsIC8qWzFENDAwXSovCisgICAgVUJMT0NLX01BVEhFTUFU
SUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyA9IDkzLCAvKlsxRDQwMF0qLwogICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJ
T05fQiAgPSA5NCAsIC8qWzIwMDAwXSovCisgICAgVUJMT0NLX0NKS19VTklGSUVEX0lERU9HUkFQ
SFNfRVhURU5TSU9OX0IgID0gOTQsIC8qWzIwMDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwotICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQg
PSA5NSAsIC8qWzJGODAwXSovCisgICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQ
SFNfU1VQUExFTUVOVCA9IDk1LCAvKlsyRjgwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQkxPQ0tfVEFHUyA9IDk2LCAvKltFMDAwMF0qLwogCiAgICAgLyogTmV3IGJsb2Nr
cyBpbiBVbmljb2RlIDMuMiAqLwogCisgICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KKyAgICBV
QkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCA9IDk3LCAvKlswNTAwXSovCiAgICAgLyoqCiAgICAg
ICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxv
Y2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgogICAgICAqIEBzdGFibGUgSUNVIDIuMgogICAg
ICAqLwotICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZID0gOTcsIAotICAgIC8qKiBA
c3RhYmxlIElDVSAzLjAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQgPSBVQkxP
Q0tfQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSwgLypbMDUwMF0qLworICAgIFVCTE9DS19DWVJJTExJ
Q19TVVBQTEVNRU5UQVJZID0gVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQsIAogICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICBVQkxPQ0tfVEFHQUxPRyA9IDk4LCAvKlsxNzAwXSovCiAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwpAQCAtMTM4MSw4ICsxNDI3LDMzIEBAIGVudW0gVUJs
b2NrQ29kZSB7CiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVCTE9DS19DSktfVU5J
RklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9EID0gMjA5LCAvKlsyQjc0MF0qLwogCi0gICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DT1VOVCA9IDIxMCwKKyAgICAvKiBOZXcg
YmxvY2tzIGluIFVuaWNvZGUgNi4xICovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICBVQkxPQ0tfQVJBQklDX0VYVEVOREVEX0EgPSAyMTAsIC8qWzA4QTBdKi8KKyAgICAvKiogQHN0
YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfQVJBQklDX01BVEhFTUFUSUNBTF9BTFBIQUJFVElD
X1NZTUJPTFMgPSAyMTEsIC8qWzFFRTAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisg
ICAgVUJMT0NLX0NIQUtNQSA9IDIxMiwgLypbMTExMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfTUVFVEVJX01BWUVLX0VYVEVOU0lPTlMgPSAyMTMsIC8qW0FBRTBd
Ki8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNfQ1VSU0lW
RSA9IDIxNCwgLypbMTA5QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxP
Q0tfTUVST0lUSUNfSElFUk9HTFlQSFMgPSAyMTUsIC8qWzEwOTgwXSovCisgICAgLyoqIEBzdGFi
bGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX01JQU8gPSAyMTYsIC8qWzE2RjAwXSovCisgICAgLyoq
IEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NIQVJBREEgPSAyMTcsIC8qWzExMTgwXSov
CisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NPUkFfU09NUEVORyA9IDIx
OCwgLypbMTEwRDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU1VO
REFORVNFX1NVUFBMRU1FTlQgPSAyMTksIC8qWzFDQzBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfVEFLUkkgPSAyMjAsIC8qWzExNjgwXSovCisKKyAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgVUJMT0NLX0NPVU5UID0gMjIxLAogCiAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19JTlZBTElEX0NPREU9LTEKQEAgLTEzOTksNyArMTQ3
MCwxMyBAQCB0eXBlZGVmIGVudW0gVUJsb2NrQ29kZSBVQmxvY2tDb2RlOwogICogQHN0YWJsZSBJ
Q1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewotICAgIFVfRUFfTkVV
VFJBTCwgICAvKltOXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVUVh
c3RBc2lhbldpZHRoIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAg
ICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0VBXzxVbmljb2RlIEVhc3Rf
QXNpYW5fV2lkdGggdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfRUFfTkVVVFJBTCwgICAv
KltOXSovCiAgICAgVV9FQV9BTUJJR1VPVVMsIC8qW0FdKi8KICAgICBVX0VBX0hBTEZXSURUSCwg
LypbSF0qLwogICAgIFVfRUFfRlVMTFdJRFRILCAvKltGXSovCkBAIC0xNDA3LDEwICsxNDg0LDYg
QEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgICAgVV9FQV9XSURFLCAgICAgIC8q
W1ddKi8KICAgICBVX0VBX0NPVU5UCiB9IFVFYXN0QXNpYW5XaWR0aDsKLS8qCi0gKiBJbXBsZW1l
bnRhdGlvbiBub3RlOgotICogS2VlcCBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnQgdmFsdWVzIGlu
IHN5bmMgd2l0aCBuYW1lcyBsaXN0IGluIGdlbnByb3BzL3Byb3BzMi5jLgotICovCiAKIC8qKgog
ICogU2VsZWN0b3IgY29uc3RhbnRzIGZvciB1X2NoYXJOYW1lKCkuCkBAIC0xNDI0LDEwICsxNDk3
LDIxIEBAIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KIHR5cGVkZWYgZW51bSBVQ2hhck5hbWVDaG9pY2UgeworICAgIC8qKiBVbmljb2RlIGNo
YXJhY3RlciBuYW1lIChOYW1lIHByb3BlcnR5KS4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9V
TklDT0RFX0NIQVJfTkFNRSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAorICAgIC8q
KgorICAgICAqIFRoZSBVbmljb2RlXzFfTmFtZSBwcm9wZXJ0eSB2YWx1ZSB3aGljaCBpcyBvZiBs
aXR0bGUgcHJhY3RpY2FsIHZhbHVlLgorICAgICAqIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNV
IEFQSXMgcmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBuYW1lIGNob2ljZS4KKyAgICAg
KiBAZGVwcmVjYXRlZCBJQ1UgNDkKKyAgICAgKi8KICAgICBVX1VOSUNPREVfMTBfQ0hBUl9OQU1F
LAotICAgIFVfRVhURU5ERURfQ0hBUl9OQU1FLAotICAgIFVfQ0hBUl9OQU1FX0FMSUFTLCAgICAg
ICAgICAvKio8IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElD
VSA0LjQgKi8KKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisgICAgLyoqIFN0
YW5kYXJkIG9yIHN5bnRoZXRpYyBjaGFyYWN0ZXIgbmFtZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgVV9FWFRFTkRFRF9DSEFSX05BTUUgPSBVX1VOSUNPREVfQ0hBUl9OQU1FKzIsCisgICAgLyoq
IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8K
KyAgICBVX0NIQVJfTkFNRV9BTElBUywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAg
VV9DSEFSX05BTUVfQ0hPSUNFX0NPVU5UCiB9IFVDaGFyTmFtZUNob2ljZTsKIApAQCAtMTQ1Nyw3
ICsxNTQxLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHlOYW1lQ2hvaWNlIHsKICAqIEBzdGFi
bGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVURlY29tcG9zaXRpb25UeXBlIHsKLSAgICBV
X0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8q
CisgICAgICogTm90ZTogVURlY29tcG9zaXRpb25UeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5
IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAg
ICBVX0RUXzxVbmljb2RlIERlY29tcG9zaXRpb25fVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLwor
CisgICAgVV9EVF9OT05FLCAgICAgICAgICAgICAgLypbbm9uZV0qLwogICAgIFVfRFRfQ0FOT05J
Q0FMLCAgICAgICAgIC8qW2Nhbl0qLwogICAgIFVfRFRfQ09NUEFULCAgICAgICAgICAgIC8qW2Nv
bV0qLwogICAgIFVfRFRfQ0lSQ0xFLCAgICAgICAgICAgIC8qW2VuY10qLwpAQCAtMTQ4NSw3ICsx
NTc1LDEzIEBAIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewogICogQHN0YWJsZSBJ
Q1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVSm9pbmluZ1R5cGUgewotICAgIFVfSlRfTk9OX0pP
SU5JTkcsICAgICAgIC8qW1VdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVSm9pbmluZ1R5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisg
ICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSlRfPFVuaWNvZGUgSm9p
bmluZ19UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0pUX05PTl9KT0lOSU5HLCAg
ICAgICAvKltVXSovCiAgICAgVV9KVF9KT0lOX0NBVVNJTkcsICAgICAgLypbQ10qLwogICAgIFVf
SlRfRFVBTF9KT0lOSU5HLCAgICAgIC8qW0RdKi8KICAgICBVX0pUX0xFRlRfSk9JTklORywgICAg
ICAvKltMXSovCkBAIC0xNTAxLDYgKzE1OTcsMTIgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlw
ZSB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nR3JvdXAg
eworICAgIC8qCisgICAgICogTm90ZTogVUpvaW5pbmdHcm91cCBjb25zdGFudHMgYXJlIHBhcnNl
ZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAg
KiAgICAgVV9KR188VW5pY29kZSBKb2luaW5nX0dyb3VwIHZhbHVlIG5hbWU+CisgICAgICovCisK
ICAgICBVX0pHX05PX0pPSU5JTkdfR1JPVVAsCiAgICAgVV9KR19BSU4sCiAgICAgVV9KR19BTEFQ
SCwKQEAgLTE1NTksNiArMTY2MSw3IEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3VwIHsKICAg
ICBVX0pHX0JVUlVTSEFTS0lfWUVIX0JBUlJFRSwgLyoqPCBAc3RhYmxlIElDVSA0LjAgKi8KICAg
ICBVX0pHX0ZBUlNJX1lFSCwgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVX0pHX05ZQSwg
ICAgICAgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0pHX1JPSElOR1lBX1lFSCwgIC8q
KjwgQHN0YWJsZSBJQ1UgNDkgKi8KICAgICBVX0pHX0NPVU5UCiB9IFVKb2luaW5nR3JvdXA7CiAK
QEAgLTE1NjksNyArMTY3MiwxMyBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91cCB7CiAgKiBA
c3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7
Ci0gICAgVV9HQ0JfT1RIRVIgPSAwLCAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEq
LworICAgIC8qCisgICAgICogTm90ZTogVUdyYXBoZW1lQ2x1c3RlckJyZWFrIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX0dDQl88VW5pY29kZSBHcmFwaGVtZV9DbHVzdGVyX0JyZWFrIHZhbHVl
IG5hbWU+CisgICAgICovCisKKyAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhd
Ki8KICAgICBVX0dDQl9DT05UUk9MID0gMSwgICAgICAgICAgLypbQ05dKi8KICAgICBVX0dDQl9D
UiA9IDIsICAgICAgICAgICAgICAgLypbQ1JdKi8KICAgICBVX0dDQl9FWFRFTkQgPSAzLCAgICAg
ICAgICAgLypbRVhdKi8KQEAgLTE1ODEsNyArMTY5MCw4IEBAIHR5cGVkZWYgZW51bSBVR3JhcGhl
bWVDbHVzdGVyQnJlYWsgewogICAgIFVfR0NCX1YgPSA5LCAgICAgICAgICAgICAgICAvKltWXSov
CiAgICAgVV9HQ0JfU1BBQ0lOR19NQVJLID0gMTAsICAgIC8qW1NNXSovIC8qIGZyb20gaGVyZSBv
bjogbmV3IGluIFVuaWNvZGUgNS4xL0lDVSA0LjAgKi8KICAgICBVX0dDQl9QUkVQRU5EID0gMTEs
ICAgICAgICAgLypbUFBdKi8KLSAgICBVX0dDQl9DT1VOVCA9IDEyCisgICAgVV9HQ0JfUkVHSU9O
QUxfSU5ESUNBVE9SID0gMTIsICAvKltSSV0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUw
ICovCisgICAgVV9HQ0JfQ09VTlQgPSAxMwogfSBVR3JhcGhlbWVDbHVzdGVyQnJlYWs7CiAKIC8q
KgpAQCAtMTU5Miw3ICsxNzAyLDEzIEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVyQnJl
YWsgewogICogQHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFs
dWVzIHsKLSAgICBVX1dCX09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90
ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVV29yZEJyZWFrVmFsdWVzIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX1dCXzxVbmljb2RlIFdvcmRfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAg
Ki8KKworICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfV0Jf
QUxFVFRFUiA9IDEsICAgICAgICAgICAvKltMRV0qLwogICAgIFVfV0JfRk9STUFUID0gMiwgICAg
ICAgICAgICAvKltGT10qLwogICAgIFVfV0JfS0FUQUtBTkEgPSAzLCAgICAgICAgICAvKltLQV0q
LwpAQCAtMTYwNSw3ICsxNzIxLDExIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsK
ICAgICBVX1dCX0xGID0gMTAsICAgICAgICAgICAgICAgLypbTEZdKi8KICAgICBVX1dCX01JRE5V
TUxFVCA9MTEsICAgICAgICAgLypbTUJdKi8KICAgICBVX1dCX05FV0xJTkUgPTEyLCAgICAgICAg
ICAgLypbTkxdKi8KLSAgICBVX1dCX0NPVU5UID0gMTMKKyAgICBVX1dCX1JFR0lPTkFMX0lORElD
QVRPUiA9IDEzLCAgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1UgNTAgKi8KKyAg
ICBVX1dCX0hFQlJFV19MRVRURVIgPSAxNCwgICAgLypbSExdKi8gLyogZnJvbSBoZXJlIG9uOiBu
ZXcgaW4gVW5pY29kZSA2LjMvSUNVIDUyICovCisgICAgVV9XQl9TSU5HTEVfUVVPVEUgPSAxNSwg
ICAgIC8qW1NRXSovCisgICAgVV9XQl9ET1VCTEVfUVVPVEUgPSAxNiwgICAgIC8qW0RRXSovCisg
ICAgVV9XQl9DT1VOVCA9IDE3CiB9IFVXb3JkQnJlYWtWYWx1ZXM7CiAKIC8qKgpAQCAtMTYxNSw3
ICsxNzM1LDEzIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAqIEBzdGFibGUg
SUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewotICAgIFVfU0JfT1RI
RVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAg
ICAqIE5vdGU6IFVTZW50ZW5jZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNl
dWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX1NCXzxV
bmljb2RlIFNlbnRlbmNlX0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX1NCX09U
SEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8KICAgICBVX1NCX0FURVJNID0gMSwgICAgICAg
ICAgICAgLypbQVRdKi8KICAgICBVX1NCX0NMT1NFID0gMiwgICAgICAgICAgICAgLypbQ0xdKi8K
ICAgICBVX1NCX0ZPUk1BVCA9IDMsICAgICAgICAgICAgLypbRk9dKi8KQEAgLTE2NDAsNyArMTc2
NiwxMyBAQCB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewogICogQHN0YWJsZSBJQ1UgMi4y
CiAgKi8KIHR5cGVkZWYgZW51bSBVTGluZUJyZWFrIHsKLSAgICBVX0xCX1VOS05PV04gPSAwLCAg
ICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBV
TGluZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAq
IEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0xCXzxVbmljb2RlIExpbmVfQnJl
YWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfTEJfVU5LTk9XTiA9IDAsICAgICAgICAg
ICAvKltYWF0qLwogICAgIFVfTEJfQU1CSUdVT1VTID0gMSwgICAgICAgICAvKltBSV0qLwogICAg
IFVfTEJfQUxQSEFCRVRJQyA9IDIsICAgICAgICAvKltBTF0qLwogICAgIFVfTEJfQlJFQUtfQk9U
SCA9IDMsICAgICAgICAvKltCMl0qLwpAQCAtMTY1NSw5ICsxNzg3LDkgQEAgdHlwZWRlZiBlbnVt
IFVMaW5lQnJlYWsgewogICAgIFVfTEJfR0xVRSA9IDEyLCAgICAgICAgICAgICAgLypbR0xdKi8K
ICAgICBVX0xCX0hZUEhFTiA9IDEzLCAgICAgICAgICAgIC8qW0hZXSovCiAgICAgVV9MQl9JREVP
R1JBUEhJQyA9IDE0LCAgICAgICAvKltJRF0qLwotICAgIFVfTEJfSU5TRVBFUkFCTEUgPSAxNSwK
ICAgICAvKiogUmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5p
Y29kZSA0LjAuMS9JQ1UgMy4wIEBzdGFibGUgSUNVIDMuMCAqLwotICAgIFVfTEJfSU5TRVBBUkFC
TEU9VV9MQl9JTlNFUEVSQUJMRSwvKltJTl0qLworICAgIFVfTEJfSU5TRVBBUkFCTEUgPSAxNSwg
ICAgICAgLypbSU5dKi8KKyAgICBVX0xCX0lOU0VQRVJBQkxFID0gVV9MQl9JTlNFUEFSQUJMRSwK
ICAgICBVX0xCX0lORklYX05VTUVSSUMgPSAxNiwgICAgIC8qW0lTXSovCiAgICAgVV9MQl9MSU5F
X0ZFRUQgPSAxNywgICAgICAgICAvKltMRl0qLwogICAgIFVfTEJfTk9OU1RBUlRFUiA9IDE4LCAg
ICAgICAgLypbTlNdKi8KQEAgLTE2NzksNyArMTgxMSwxMCBAQCB0eXBlZGVmIGVudW0gVUxpbmVC
cmVhayB7CiAgICAgVV9MQl9KVCA9IDM0LCAgICAgICAgICAgICAgICAvKltKVF0qLwogICAgIFVf
TEJfSlYgPSAzNSwgICAgICAgICAgICAgICAgLypbSlZdKi8KICAgICBVX0xCX0NMT1NFX1BBUkVO
VEhFU0lTID0gMzYsIC8qW0NQXSovIC8qIG5ldyBpbiBVbmljb2RlIDUuMi9JQ1UgNC40ICovCi0g
ICAgVV9MQl9DT1VOVCA9IDM3CisgICAgVV9MQl9DT05ESVRJT05BTF9KQVBBTkVTRV9TVEFSVEVS
ID0gMzcsLypbQ0pdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAgIFVfTEJf
SEVCUkVXX0xFVFRFUiA9IDM4LCAgICAgLypbSExdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lD
VSA0OSAqLworICAgIFVfTEJfUkVHSU9OQUxfSU5ESUNBVE9SID0gMzksLypbUkldKi8gLyogbmV3
IGluIFVuaWNvZGUgNi4yL0lDVSA1MCAqLworICAgIFVfTEJfQ09VTlQgPSA0MAogfSBVTGluZUJy
ZWFrOwogCiAvKioKQEAgLTE2ODksNyArMTgyNCwxMyBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVh
ayB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1lcmljVHlwZSB7
Ci0gICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLyAvKlNlZSBub3RlICEhKi8K
KyAgICAvKgorICAgICAqIE5vdGU6IFVOdW1lcmljVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBi
eSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAg
ICAgVV9OVF88VW5pY29kZSBOdW1lcmljX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IFVfTlRfTk9ORSwgICAgICAgICAgICAgIC8qW05vbmVdKi8KICAgICBVX05UX0RFQ0lNQUwsICAg
ICAgICAgICAvKltkZV0qLwogICAgIFVfTlRfRElHSVQsICAgICAgICAgICAgIC8qW2RpXSovCiAg
ICAgVV9OVF9OVU1FUklDLCAgICAgICAgICAgLypbbnVdKi8KQEAgLTE3MDMsNyArMTg0NCwxMyBA
QCB0eXBlZGVmIGVudW0gVU51bWVyaWNUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuNgogICovCiB0
eXBlZGVmIGVudW0gVUhhbmd1bFN5bGxhYmxlVHlwZSB7Ci0gICAgVV9IU1RfTk9UX0FQUExJQ0FC
TEUsICAgLypbTkFdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSGFu
Z3VsU3lsbGFibGVUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5Lgor
ICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0hTVF88VW5pY29kZSBI
YW5ndWxfU3lsbGFibGVfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9IU1RfTk9U
X0FQUExJQ0FCTEUsICAgLypbTkFdKi8KICAgICBVX0hTVF9MRUFESU5HX0pBTU8sICAgICAvKltM
XSovCiAgICAgVV9IU1RfVk9XRUxfSkFNTywgICAgICAgLypbVl0qLwogICAgIFVfSFNUX1RSQUlM
SU5HX0pBTU8sICAgIC8qW1RdKi8KQEAgLTE5MDYsNiArMjA1Myw4IEBAIHVfZ2V0SW50UHJvcGVy
dHlNYXhWYWx1ZShVUHJvcGVydHkgd2hpY2gpOwogICoKICAqIEZvciBjaGFyYWN0ZXJzIHdpdGhv
dXQgYW55IG51bWVyaWMgdmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSwK
ICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gVV9OT19OVU1FUklDX1ZBTFVFLgorICogTm90
ZTogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgVW5pY29kZSBTdGFuZGFyZCB3aGljaCBzcGVj
aWZpZXMgTmFOIGFzIHRoZSBkZWZhdWx0IHZhbHVlLgorICogKE5hTiBpcyBub3QgYXZhaWxhYmxl
IG9uIGFsbCBwbGF0Zm9ybXMuKQogICoKICAqIFNpbWlsYXIgdG8gamF2YS5sYW5nLkNoYXJhY3Rl
ci5nZXROdW1lcmljVmFsdWUoKSwgYnV0IHVfZ2V0TnVtZXJpY1ZhbHVlKCkKICAqIGFsc28gc3Vw
cG9ydHMgbmVnYXRpdmUgdmFsdWVzLCBsYXJnZSB2YWx1ZXMsIGFuZCBmcmFjdGlvbnMsCkBAIC0y
Mzc5LDcgKzI1MjgsNyBAQCB1X2lzTWlycm9yZWQoVUNoYXIzMiBjKTsKICAqIGFzIHRoZSBtaXJy
b3ItaW1hZ2Ugb2YgdGhlIGRlZmF1bHQgZ2x5cGggb2YgdGhlIHNwZWNpZmllZAogICogY2hhcmFj
dGVyLiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tCiAgKiBj
b2RlcGFnZXMgd2l0aCB2aXN1YWwgb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlw
aAotICogc2VsZWNldGlvbiBjYXBhYmlsaXRpZXMuCisgKiBzZWxlY3Rpb24gY2FwYWJpbGl0aWVz
LgogICoKICAqIEBwYXJhbSBjIHRoZSBjb2RlIHBvaW50IHRvIGJlIG1hcHBlZAogICogQHJldHVy
biBhbm90aGVyIFVuaWNvZGUgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1pcnJvci1p
bWFnZQpAQCAtMjM5NCw2ICsyNTQzLDI1IEBAIFVfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCiB1
X2NoYXJNaXJyb3IoVUNoYXIzMiBjKTsKIAogLyoqCisgKiBNYXBzIHRoZSBzcGVjaWZpZWQgY2hh
cmFjdGVyIHRvIGl0cyBwYWlyZWQgYnJhY2tldCBjaGFyYWN0ZXIuCisgKiBGb3IgQmlkaV9QYWly
ZWRfQnJhY2tldF9UeXBlIT1Ob25lLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHVfY2hhck1pcnJvcigp
LgorICogT3RoZXJ3aXNlIGMgaXRzZWxmIGlzIHJldHVybmVkLgorICogU2VlIGh0dHA6Ly93d3cu
dW5pY29kZS5vcmcvcmVwb3J0cy90cjkvCisgKgorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQg
dG8gYmUgbWFwcGVkCisgKiBAcmV0dXJuIHRoZSBwYWlyZWQgYnJhY2tldCBjb2RlIHBvaW50LAor
ICogICAgICAgICBvciBjIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcKKyAqICAg
ICAgICAgKEJpZGlfUGFpcmVkX0JyYWNrZXRfVHlwZT1Ob25lKQorICoKKyAqIEBzZWUgVUNIQVJf
QklESV9QQUlSRURfQlJBQ0tFVAorICogQHNlZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUX1RZ
UEUKKyAqIEBzZWUgdV9jaGFyTWlycm9yCisgKiBAc3RhYmxlIElDVSA1MgorICovCitVX1NUQUJM
RSBVQ2hhcjMyIFVfRVhQT1JUMgordV9nZXRCaWRpUGFpcmVkQnJhY2tldChVQ2hhcjMyIGMpOwor
CisvKioKICAqIFJldHVybnMgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgdmFsdWUgZm9yIHRoZSBjb2Rl
IHBvaW50LgogICoKICAqIFNhbWUgYXMgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlKCkuCkBA
IC0yNTUzLDEzICsyNzIxLDExIEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2RlLCBVQ2hhck5hbWVD
aG9pY2UgbmFtZUNob2ljZSwKICAgICAgICAgICAgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZl
ckxlbmd0aCwKICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKKyNpZm5kZWYg
VV9ISURFX0RFUFJFQ0FURURfQVBJIAogLyoqCi0gKiBHZXQgdGhlIElTTyAxMDY0NiBjb21tZW50
IGZvciBhIGNoYXJhY3Rlci4KLSAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1h
dGl2ZSBmaWVsZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKLSAqIERhdGFiYXNlIChVbmljb2Rl
RGF0YS50eHQgZmllbGQgMTEpIGFuZCBpcyBmcm9tIHRoZSBJU08gMTA2NDYgbmFtZXMgbGlzdC4K
LSAqCi0gKiBOb3RlOiBVbmljb2RlIDUuMiByZW1vdmVzIGFsbCBJU08gY29tbWVudCBkYXRhLCBy
ZXN1bHRpbmcgaW4gZW1wdHkgc3RyaW5ncwotICogcmV0dXJuZWQgZm9yIGFsbCBjaGFyYWN0ZXJz
LgorICogUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgKiBVc2VkIHRvIHJldHVybiB0aGUgSVNP
IDEwNjQ2IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICogVGhlIFVuaWNvZGUgSVNPX0NvbW1l
bnQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIHZhbHVlcy4KICAqCiAgKiBAcGFy
YW0gYyBUaGUgY2hhcmFjdGVyIChjb2RlIHBvaW50KSBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBJU08g
Y29tbWVudC4KICAqICAgICAgICAgICAgIEl0IG11c3QgYmUgPGNvZGU+MDw9Yzw9MHgxMGZmZmY8
L2NvZGU+LgpAQCAtMjU3MCwxOCArMjczNiwxNSBAQCB1X2NoYXJOYW1lKFVDaGFyMzIgY29kZSwg
VUNoYXJOYW1lQ2hvaWNlIG5hbWVDaG9pY2UsCiAgKiBAcGFyYW0gcEVycm9yQ29kZSBQb2ludGVy
IHRvIGEgVUVycm9yQ29kZSB2YXJpYWJsZTsKICAqICAgICAgICBjaGVjayBmb3IgPGNvZGU+VV9T
VUNDRVNTKCk8L2NvZGU+IGFmdGVyIDxjb2RlPnVfZ2V0SVNPQ29tbWVudCgpPC9jb2RlPgogICog
ICAgICAgIHJldHVybnMuCi0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGNvbW1lbnQsIG9y
IDAgaWYgdGhlcmUgaXMgbm8gY29tbWVudCBmb3IgdGhpcyBjaGFyYWN0ZXIuCi0gKiAgICAgICAg
IElmIHRoZSBkZXN0Q2FwYWNpdHkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGgs
IHRoZW4gdGhlIGJ1ZmZlcgotICogICAgICAgICBjb250YWlucyB0aGUgdHJ1bmNhdGVkIG5hbWUg
YW5kIHRoZSByZXR1cm5lZCBsZW5ndGggaW5kaWNhdGVzIHRoZSBmdWxsCi0gKiAgICAgICAgIGxl
bmd0aCBvZiB0aGUgbmFtZS4KLSAqICAgICAgICAgVGhlIGxlbmd0aCBkb2VzIG5vdCBpbmNsdWRl
IHRoZSB6ZXJvLXRlcm1pbmF0aW9uLgorICogQHJldHVybiAwCiAgKgotICogQHN0YWJsZSBJQ1Ug
Mi4yCisgKiBAZGVwcmVjYXRlZCBJQ1UgNDkKICAqLwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKIHVfZ2V0SVNPQ29tbWVudChVQ2hhcjMyIGMsCiAgICAgICAgICAgICAgICAgY2hhciAqZGVz
dCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAq
IEZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2Rl
IHBvaW50IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3VjbnYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91Y252LmgKaW5k
ZXggOThkYThmZjY5NDdhMzMzMDFiNzlhOTkxZTRhZjQyNzcwMTUzYmFjOS4uYzVmYzJkYzc4NTZh
MTZlMjFmZDMwNzkxN2I3MzgwMjdmNTY2MDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ljdS91bmljb2RlL3VjbnYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1
L3VuaWNvZGUvdWNudi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCiAgKiAgdWNudi5oOgpAQCAtODgsNDYgKzg4LDgyIEBAIFVfQ0RFQ0xfQkVH
SU4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCiB0eXBlZGVmIGVudW0geworICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VOU1VQUE9SVEVEX0NPTlZFUlRFUiA9IC0xLAorICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1NCQ1MgPSAwLAorICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0RCQ1MgPSAxLAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX01CQ1MgPSAyLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0xBVElOXzEgPSAzLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X1VURjggPSA0LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjE2X0Jp
Z0VuZGlhbiA9IDUsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGMTZf
TGl0dGxlRW5kaWFuID0gNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9V
VEYzMl9CaWdFbmRpYW4gPSA3LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X1VURjMyX0xpdHRsZUVuZGlhbiA9IDgsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVDTlZfRUJDRElDX1NUQVRFRlVMID0gOSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAg
ICAgVUNOVl9JU09fMjAyMiA9IDEwLAogCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVDTlZfTE1CQ1NfMSA9IDExLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X0xNQkNTXzIsIAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzMs
CisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfNCwKKyAgICAvKiog
QHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU181LAorICAgIC8qKiBAc3RhYmxlIElD
VSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzYsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfTE1CQ1NfOCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9M
TUJDU18xMSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xNiwK
KyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xNywKKyAgICAvKiog
QHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xOCwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xOSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVUNOVl9MTUJDU19MQVNUID0gVUNOVl9MTUJDU18xOSwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4wICovCiAgICAgVUNOVl9IWiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAg
VUNOVl9TQ1NVLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0lTQ0lJLAor
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VTX0FTQ0lJLAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjcsCisgICAgLyoqIEBzdGFibGUgSUNVIDIu
MiAqLwogICAgIFVDTlZfQk9DVTEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVD
TlZfVVRGMTYsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZfVVRGMzIsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZfQ0VTVTgsCisgICAgLyoqIEBzdGFi
bGUgSUNVIDIuNCAqLwogICAgIFVDTlZfSU1BUF9NQUlMQk9YLAorICAgIC8qKiBAc3RhYmxlIElD
VSA0LjggKi8KKyAgICBVQ05WX0NPTVBPVU5EX1RFWFQsCiAKICAgICAvKiBOdW1iZXIgb2YgY29u
dmVydGVyIHR5cGVzIGZvciB3aGljaCB3ZSBoYXZlIGNvbnZlcnNpb24gcm91dGluZXMuICovCiAg
ICAgVUNOVl9OVU1CRVJfT0ZfU1VQUE9SVEVEX0NPTlZFUlRFUl9UWVBFUwotCiB9IFVDb252ZXJ0
ZXJUeXBlOwogCiAvKioKQEAgLTMwNSw2ICszNDEsOCBAQCB1Y252X2NvbXBhcmVOYW1lcyhjb25z
dCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFtZTIpOwogICogb3RoZXIgdGhhbiBpdHMgYW4g
YWxpYXMgc3RhcnRpbmcgd2l0aCB0aGUgbGV0dGVycyAiY3AiLiBQbGVhc2UgZG8gbm90CiAgKiBh
c3NvY2lhdGUgYW55IG1lYW5pbmcgdG8gdGhlc2UgYWxpYXNlcy48L3A+CiAgKgorICogXHNuaXBw
ZXQgc2FtcGxlcy91Y252L2NvbnZzYW1wLmNwcCB1Y252X29wZW4KKyAqCiAgKiBAcGFyYW0gY29u
dmVydGVyTmFtZSBOYW1lIG9mIHRoZSBjb2RlZCBjaGFyYWN0ZXIgc2V0IHRhYmxlLgogICogICAg
ICAgICAgVGhpcyBtYXkgaGF2ZSBvcHRpb25zIGFwcGVuZGVkIHRvIHRoZSBzdHJpbmcuCiAgKiAg
ICAgICAgICBJQU5BIGFsaWFzIGNoYXJhY3RlciBzZXQgbmFtZXMsIElCTSBDQ1NJRHMgc3RhcnRp
bmcgd2l0aCAiaWJtLSIsCkBAIC00ODMsMTAgKzUyMSwxMiBAQCB1Y252X29wZW5QYWNrYWdlKGNv
bnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCBjaGFyICpjb252ZXJ0ZXJOYW1lLCBVRXJyb3JD
b2RlCiAgKiBhZGp1c3RlZCBwb2ludGVyIGFuZCB1c2UgYW4gYWNjb3JkaW5nbHkgc21hbGxlciBi
dWZmZXIgc2l6ZS4KICAqCiAgKiBAcGFyYW0gY252IGNvbnZlcnRlciB0byBiZSBjbG9uZWQKLSAq
IEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9u
ZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLiAKKyAqIEBwYXJhbSBzdGFj
a0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5V
TEwuPC9lbT48YnI+CisgKiAgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUu
IElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4gCiAgKiAgSWYgYnVmZmVyIGlz
IG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCiAgKiAgQ2xp
ZW50cyBjYW4gdXNlIHRoZSBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0laRS4gVGhpcyB3aWxsIHBy
b2JhYmx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxsb2NhdGlvbnMuCi0gKiBAcGFyYW0g
cEJ1ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4gcEJ1ZmZlclNp
emUgbXVzdCBub3QgYmUgTlVMTC4KKyAqIEBwYXJhbSBwQnVmZmVyU2l6ZSA8ZW0+RGVwcmVjYXRl
ZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwgb3IgMS48L2VtPjxicj4KKyAq
ICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgogICogQHBhcmFtIHN0YXR1cyB0
byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVy
ZSB3ZXJlIGVycm9ycwogICogIEFuIGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVD
TE9ORV9BTExPQ0FURURfV0FSTklORywKICAqICBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3
ZXJlIG5lY2Vzc2FyeS4KQEAgLTUwMiwxNCArNTQyLDE4IEBAIHVjbnZfc2FmZUNsb25lKGNvbnN0
IFVDb252ZXJ0ZXIgKmNudiwKICAgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgKnBCdWZm
ZXJTaXplLCAKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgKnN0YXR1cyk7CiAKKyNp
Zm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKIC8qKgogICogXGRlZiBVX0NOVl9TQUZFQ0xP
TkVfQlVGRkVSU0laRQogICogRGVmaW5pdGlvbiBvZiBhIGJ1ZmZlciBzaXplIHRoYXQgaXMgZGVz
aWduZWQgdG8gYmUgbGFyZ2UgZW5vdWdoIGZvcgogICogY29udmVydGVycyB0byBiZSBjbG9uZWQg
d2l0aCB1Y252X3NhZmVDbG9uZSgpLgotICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgNTIuIERvIG5vdCByZWx5IG9uIHVjbnZfc2FmZUNsb25lKCkgY2xvbmluZyBpbnRvIGFu
eSBwcm92aWRlZCBidWZmZXIuCiAgKi8KICNkZWZpbmUgVV9DTlZfU0FGRUNMT05FX0JVRkZFUlNJ
WkUgIDEwMjQKIAorI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCiAvKioKICAq
IERlbGV0ZXMgdGhlIHVuaWNvZGUgY29udmVydGVyIGFuZCByZWxlYXNlcyByZXNvdXJjZXMgYXNz
b2NpYXRlZAogICogd2l0aCBqdXN0IHRoaXMgaW5zdGFuY2UuCkBAIC0xODIxLDYgKzE4NjUsNyBA
QCB1Y252X2dldENhbm9uaWNhbE5hbWUoY29uc3QgY2hhciAqYWxpYXMsIGNvbnN0IGNoYXIgKnN0
YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJybwogVV9TVEFCTEUgY29uc3QgY2hhciAqIFVfRVhQT1JU
MgogdWNudl9nZXREZWZhdWx0TmFtZSh2b2lkKTsKIAorI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQ
SQogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gRE8gTk9UIGNhbGwg
dGhpcyBmdW5jdGlvbiB3aGVuIEFOWSBJQ1UKICAqIGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgZnJv
bSBtb3JlIHRoYW4gb25lIHRocmVhZCEgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZQpAQCAtMTgzOSw2
ICsxODg0LDcgQEAgdWNudl9nZXREZWZhdWx0TmFtZSh2b2lkKTsKICAqLwogVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKIHVjbnZfc2V0RGVmYXVsdE5hbWUoY29uc3QgY2hhciAqbmFtZSk7CisjZW5k
aWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCiAKIC8qKgogICogRml4ZXMgdGhlIGJhY2tzbGFz
aCBjaGFyYWN0ZXIgbWlzbWFwcGluZy4gIEZvciBleGFtcGxlLCBpbiBTSklTLCB0aGUgYmFja3Ns
YXNoIApAQCAtMTkxOCwzNCArMTk2NCw3IEBAIHVjbnZfdXNlc0ZhbGxiYWNrKGNvbnN0IFVDb252
ZXJ0ZXIgKmNudik7CiAgKiBpbnN0ZWFkIG9mIHRoZSBpbnB1dCBzaWduYXR1cmUgYnl0ZXMuCiAg
KiA8cD4KICAqIFVzYWdlOgotICogQGNvZGUgICAgIAotICogICAgICBVRXJyb3JDb2RlIGVyciA9
IFVfWkVST19FUlJPUjsKLSAqICAgICAgY2hhciBpbnB1dFtdID0geyAnXHhFRicsJ1x4QkInLCAn
XHhCRicsJ1x4NDEnLCdceDQyJywnXHg0MycgfTsKLSAqICAgICAgaW50MzJfdCBzaWduYXR1cmVM
ZW5ndGggPSAwOwotICogICAgICBjaGFyICplbmNvZGluZyA9IHVjbnZfZGV0ZWN0VW5pY29kZVNp
Z25hdHVyZShpbnB1dCxzaXplb2YoaW5wdXQpLCZzaWduYXR1cmVMZW5ndGgsJmVycik7Ci0gKiAg
ICAgIFVDb252ZXJ0ZXIgKmNvbnYgPSBOVUxMOwotICogICAgICBVQ2hhciBvdXRwdXRbMTAwXTsK
LSAqICAgICAgVUNoYXIgKnRhcmdldCA9IG91dHB1dCwgKm91dDsKLSAqICAgICAgY2hhciAqc291
cmNlID0gaW5wdXQ7Ci0gKiAgICAgIGlmKGVuY29kaW5nIT1OVUxMICYmIFVfU1VDQ0VTUyhlcnIp
KXsKLSAqICAgICAgICAgIC8vIHNob3VsZCBzaWduYXR1cmUgYmUgZGlzY2FyZGVkID8KLSAqICAg
ICAgICAgIGNvbnYgPSB1Y252X29wZW4oZW5jb2RpbmcsICZlcnIpOwotICogICAgICAgICAgLy8g
ZG8gdGhlIGNvbnZlcnNpb24KLSAqICAgICAgICAgIHVjbnZfdG9Vbmljb2RlKGNvbnYsCi0gKiAg
ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIG91dHB1dCArIHNpemVvZihvdXRwdXQpL1Vf
U0laRU9GX1VDSEFSLAotICogICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLCBpbnB1dCAr
IHNpemVvZihpbnB1dCksCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBUUlVFLCAm
ZXJyKTsKLSAqICAgICAgICAgIG91dCA9IG91dHB1dDsKLSAqICAgICAgICAgIGlmIChkaXNjYXJk
U2lnbmF0dXJlKXsKLSAqICAgICAgICAgICAgICArK291dDsgLy8gaWdub3JlIGluaXRpYWwgVStG
RUZGCi0gKiAgICAgICAgICB9Ci0gKiAgICAgICAgICB3aGlsZShvdXQgIT0gdGFyZ2V0KSB7Ci0g
KiAgICAgICAgICAgICAgcHJpbnRmKCIlMDR4ICIsICpvdXQrKyk7Ci0gKiAgICAgICAgICB9Ci0g
KiAgICAgICAgICBwdXRzKCIiKTsKLSAqICAgICAgfQotICogICAgIAotICogQGVuZGNvZGUKKyAq
IFxzbmlwcGV0IHNhbXBsZXMvdWNudi9jb252c2FtcC5jcHAgdWNudl9kZXRlY3RVbmljb2RlU2ln
bmF0dXJlCiAgKgogICogQHBhcmFtIHNvdXJjZSAgICAgICAgICAgIFRoZSBzb3VyY2Ugc3RyaW5n
IGluIHdoaWNoIHRoZSBzaWduYXR1cmUgc2hvdWxkIGJlIGRldGVjdGVkLgogICogQHBhcmFtIHNv
dXJjZUxlbmd0aCAgICAgIExlbmd0aCBvZiB0aGUgaW5wdXQgc3RyaW5nLCBvciAtMSBpZiB0ZXJt
aW5hdGVkIHdpdGggYSBOVUwgYnl0ZS4KQEAgLTE5OTEsNiArMjAxMCwyNCBAQCB1Y252X2Zyb21V
Q291bnRQZW5kaW5nKGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwgVUVycm9yQ29kZSogc3RhdHVzKTsK
IFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1Y252X3RvVUNvdW50UGVuZGluZyhjb25zdCBV
Q29udmVydGVyKiBjbnYsIFVFcnJvckNvZGUqIHN0YXR1cyk7CiAKKy8qKgorICogUmV0dXJucyB3
aGV0aGVyIG9yIG5vdCB0aGUgY2hhcnNldCBvZiB0aGUgY29udmVydGVyIGhhcyBhIGZpeGVkIG51
bWJlciBvZiBieXRlcworICogcGVyIGNoYXJzZXQgY2hhcmFjdGVyLgorICogQW4gZXhhbXBsZSBv
ZiB0aGlzIGFyZSBjb252ZXJ0ZXJzIHRoYXQgYXJlIG9mIHRoZSB0eXBlIFVDTlZfU0JDUyBvciBV
Q05WX0RCQ1MuCisgKiBBbm90aGVyIGV4YW1wbGUgaXMgVVRGLTMyIHdoaWNoIGlzIGFsd2F5cyA0
IGJ5dGVzIHBlciBjaGFyYWN0ZXIuCisgKiBBIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgYmUgcmVw
cmVzZW50ZWQgYnkgbW9yZSB0aGFuIG9uZSBVVEYtOCBvciBVVEYtMTYgY29kZSB1bml0CisgKiBi
dXQgYSBVVEYtMzIgY29udmVydGVyIGVuY29kZXMgZWFjaCBjb2RlIHBvaW50IHdpdGggNCBieXRl
cy4KKyAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIHRvIGRl
dGVybWluZSB3aGV0aGVyIHRoZSBjaGFyc2V0IGhhcyBhCisgKiBmaXhlZCByYXRpbyBvZiBieXRl
cyB0byBVbmljb2RlIGNvZGVzIDxpPnVuaXRzPC9pPiBmb3IgYW55IHBhcnRpY3VsYXIgVW5pY29k
ZSBlbmNvZGluZyBmb3JtLgorICogRkFMU0UgaXMgcmV0dXJuZWQgd2l0aCB0aGUgVUVycm9yQ29k
ZSBpZiBlcnJvciBvY2N1cnMgb3IgY252IGlzIE5VTEwuCisgKiBAcGFyYW0gY252ICAgICAgIFRo
ZSBjb252ZXJ0ZXIgdG8gYmUgdGVzdGVkCisgKiBAcGFyYW0gc3RhdHVzICAgIElDVSBlcnJvciBj
b2RlIGluL291dCBwYXJhbXRlcgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjb252ZXJ0ZXIgaXMg
Zml4ZWQtd2lkdGgKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCitVX1NUQUJMRSBVQm9vbCBVX0VY
UE9SVDIKK3VjbnZfaXNGaXhlZFdpZHRoKFVDb252ZXJ0ZXIgKmNudiwgVUVycm9yQ29kZSAqc3Rh
dHVzKTsKKwogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ljdS91bmljb2RlL3Vjb2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29k
ZS91Y29sLmgKaW5kZXggNGE0Y2Q2MDZlOGE3NzNkYmIxZTg3ZGVlNGMxMDljZGFkNTExZTZkNy4u
NWE0NTliNTJhZjRhOWZkNzY4NDAwNWM3ODlhYzM1NDNlOTI4ZDkzOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vjb2wuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaWN1L3VuaWNvZGUvdWNvbC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSogQ29weXJpZ2h0IChjKSAxOTk2LTIwMTAsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyogQ29weXJpZ2h0IChj
KSAxOTk2LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4KICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKICovCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgog
I2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgogI2luY2x1ZGUgInVuaWNvZGUvdXNldC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdXNjcmlwdC5oIgogCiAvKioKICAqIFxmaWxlCkBAIC02MywxMiArNjQs
MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgVUNvbGxhdG9yIFVDb2xsYXRvcjsKIAogLyoqCiAgKiBVQ09M
X0xFU1MgaXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBsZXNz
IHRoYW4gdGFyZ2V0Ci0gKiBzdHJpbmcgaW4gdGhlIHVfc3RyY29sbCgpIG1ldGhvZC4KKyAqIHN0
cmluZyBpbiB0aGUgdWNvbF9zdHJjb2xsKCkgbWV0aG9kLgogICogVUNPTF9FUVVBTCBpcyByZXR1
cm5lZCBpZiBzb3VyY2Ugc3RyaW5nIGlzIGNvbXBhcmVkIHRvIGJlIGVxdWFsIHRvIHRhcmdldAot
ICogc3RyaW5nIGluIHRoZSB1X3N0cmNvbGwoKSBtZXRob2QuCisgKiBzdHJpbmcgaW4gdGhlIHVj
b2xfc3RyY29sbCgpIG1ldGhvZC4KICAqIFVDT0xfR1JFQVRFUiBpcyByZXR1cm5lZCBpZiBzb3Vy
Y2Ugc3RyaW5nIGlzIGNvbXBhcmVkIHRvIGJlIGdyZWF0ZXIgdGhhbgotICogdGFyZ2V0IHN0cmlu
ZyBpbiB0aGUgdV9zdHJjb2xsKCkgbWV0aG9kLgotICogQHNlZSB1X3N0cmNvbGwoKQorICogdGFy
Z2V0IHN0cmluZyBpbiB0aGUgdWNvbF9zdHJjb2xsKCkgbWV0aG9kLgorICogQHNlZSB1Y29sX3N0
cmNvbGwoKQogICogPHA+CiAgKiBQb3NzaWJsZSB2YWx1ZXMgZm9yIGEgY29tcGFyaXNvbiByZXN1
bHQgCiAgKiBAc3RhYmxlIElDVSAyLjAKQEAgLTEzMiwxOCArMTMzLDc2IEBAIHR5cGVkZWYgZW51
bSB7CiAKIH0gVUNvbEF0dHJpYnV0ZVZhbHVlOwogCi0vKiogRW51bSBjb250YWluaW5nIHRoZSBj
b2RlcyBmb3IgcmVvcmRlcmluZyBzZWdtZW50cyBvZiB0aGUgY29sbGF0aW9uIHRhYmxlIHRoYXQg
YXJlIG5vdCBzY3JpcHQKLSAqICBjb2Rlcy4gVGhlc2UgcmVvcmRlcmluZyBjb2RlcyBhcmUgdG8g
YmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBzY3JpcHQgY29kZXMuCi0gKiAgQGludGVy
bmFsCisvKioKKyAqIEVudW0gY29udGFpbmluZyB0aGUgY29kZXMgZm9yIHJlb3JkZXJpbmcgc2Vn
bWVudHMgb2YgdGhlIGNvbGxhdGlvbiB0YWJsZSB0aGF0IGFyZSBub3Qgc2NyaXB0CisgKiBjb2Rl
cy4gVGhlc2UgcmVvcmRlcmluZyBjb2RlcyBhcmUgdG8gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3
aXRoIHRoZSBzY3JpcHQgY29kZXMuCisgKiBAc2VlIHVjb2xfZ2V0UmVvcmRlckNvZGVzCisgKiBA
c2VlIHVjb2xfc2V0UmVvcmRlckNvZGVzCisgKiBAc2VlIHVjb2xfZ2V0RXF1aXZhbGVudFJlb3Jk
ZXJDb2RlcworICogQHNlZSBVU2NyaXB0Q29kZQorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8KLXR5
cGVkZWYgZW51bSB7Ci0gICAgVUNPTF9SRU9SREVSX0NPREVfU1BBQ0UgICAgICAgICAgPSAweDEw
MDAsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfRklSU1QgICAgICAgICAgPSBVQ09MX1JFT1JERVJf
Q09ERV9TUEFDRSwKLSAgICBVQ09MX1JFT1JERVJfQ09ERV9QVU5DVFVBVElPTiAgICA9IDB4MTAw
MSwKLSAgICBVQ09MX1JFT1JERVJfQ09ERV9TWU1CT0wgICAgICAgICA9IDB4MTAwMiwKLSAgICBV
Q09MX1JFT1JERVJfQ09ERV9DVVJSRU5DWSAgICAgICA9IDB4MTAwMywKLSAgICBVQ09MX1JFT1JE
RVJfQ09ERV9ESUdJVCAgICAgICAgICA9IDB4MTAwNCwKLSAgICBVQ09MX1JFT1JERVJfQ09ERV9M
SU1JVCAgICAgICAgICA9IDB4MTAwNQorIHR5cGVkZWYgZW51bSB7CisgICAvKioKKyAgICAqIEEg
c3BlY2lhbCByZW9yZGVyaW5nIGNvZGUgdGhhdCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGRlZmF1
bHQKKyAgICAqIHJlb3JkZXJpbmcgY29kZXMgZm9yIGEgbG9jYWxlLgorICAgICogQHN0YWJsZSBJ
Q1UgNC44CisgICAgKi8gICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9ERUZBVUxUICAgICAgID0g
LTEsCisgICAvKioKKyAgICAqIEEgc3BlY2lhbCByZW9yZGVyaW5nIGNvZGUgdGhhdCBpcyB1c2Vk
IHRvIHNwZWNpZnkgbm8gcmVvcmRlcmluZyBjb2Rlcy4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAor
ICAgICovICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfTk9ORSAgICAgICAgICA9IFVTQ1JJUFRf
VU5LTk9XTiwKKyAgIC8qKgorICAgICogQSBzcGVjaWFsIHJlb3JkZXJpbmcgY29kZSB0aGF0IGlz
IHVzZWQgdG8gc3BlY2lmeSBhbGwgb3RoZXIgY29kZXMgdXNlZCBmb3IKKyAgICAqIHJlb3JkZXJp
bmcgZXhjZXB0IGZvciB0aGUgY29kZXMgbGlzZWQgYXMgVUNvbFJlb3JkZXJDb2RlIHZhbHVlcyBh
bmQgdGhvc2UKKyAgICAqIGxpc3RlZCBleHBsaWNpdGx5IGluIGEgcmVvcmRlcmluZy4KKyAgICAq
IEBzdGFibGUgSUNVIDQuOAorICAgICovICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfT1RIRVJT
ICAgICAgICA9IFVTQ1JJUFRfVU5LTk9XTiwKKyAgIC8qKgorICAgICogQ2hhcmFjdGVycyB3aXRo
IHRoZSBzcGFjZSBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgcnVs
ZSB2YWx1ZSAic3BhY2UiLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAg
VUNPTF9SRU9SREVSX0NPREVfU1BBQ0UgICAgICAgICA9IDB4MTAwMCwKKyAgIC8qKgorICAgICog
VGhlIGZpcnN0IGVudHJ5IGluIHRoZSBlbnVtZXJhdGlvbiBvZiByZW9yZGVyaW5nIGdyb3Vwcy4g
VGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIGluCisgICAgKiByYW5nZSBjaGVja2luZyBhbmQgZW51
bWVyYXRpb24gb2YgdGhlIHJlb3JkZXIgY29kZXMuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAg
ICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9GSVJTVCAgICAgICAgID0gVUNPTF9SRU9S
REVSX0NPREVfU1BBQ0UsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgcHVuY3R1
YXRpb24gcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFs
dWUgInB1bmN0Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xf
UkVPUkRFUl9DT0RFX1BVTkNUVUFUSU9OICAgPSAweDEwMDEsCisgICAvKioKKyAgICAqIENoYXJh
Y3RlcnMgd2l0aCB0aGUgc3ltYm9sIHByb3BlcnR5LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50
IHRvIHRoZSBydWxlIHZhbHVlICJzeW1ib2wiLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAg
Ki8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfU1lNQk9MICAgICAgICA9IDB4MTAwMiwKKyAg
IC8qKgorICAgICogQ2hhcmFjdGVycyB3aXRoIHRoZSBjdXJyZW5jeSBwcm9wZXJ0eS4KKyAgICAq
IFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgcnVsZSB2YWx1ZSAiY3VycmVuY3kiLgorICAgICog
QHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfQ1VSUkVO
Q1kgICAgICA9IDB4MTAwMywKKyAgIC8qKgorICAgICogQ2hhcmFjdGVycyB3aXRoIHRoZSBkaWdp
dCBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgcnVsZSB2YWx1ZSAi
ZGlnaXQiLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9S
REVSX0NPREVfRElHSVQgICAgICAgICA9IDB4MTAwNCwKKyAgIC8qKgorICAgICogVGhlIGxpbWl0
IG9mIHRoZSByZW9yZGVyIGNvZGVzLiBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgaW4gcmFuZ2Ug
Y2hlY2tpbmcgCisgICAgKiBhbmQgZW51bWVyYXRpb24gb2YgdGhlIHJlb3JkZXIgY29kZXMuCisg
ICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9M
SU1JVCAgICAgICAgID0gMHgxMDA1CiB9IFVDb2xSZW9yZGVyQ29kZTsKIAogLyoqCkBAIC0xNzks
MTAgKzIzOCwxMiBAQCB0eXBlZGVmIFVDb2xBdHRyaWJ1dGVWYWx1ZSBVQ29sbGF0aW9uU3RyZW5n
dGg7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogdHlwZWRlZiBlbnVtIHsKLSAgICAgLyoqIEF0
dHJpYnV0ZSBmb3IgZGlyZWN0aW9uIG9mIHNlY29uZGFyeSB3ZWlnaHRzIC0gdXNlZCBpbiBGcmVu
Y2guCisgICAgIC8qKiBBdHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBvZiBzZWNvbmRhcnkgd2VpZ2h0
cyAtIHVzZWQgaW4gQ2FuYWRpYW4gRnJlbmNoLgogICAgICAgKiBBY2NlcHRhYmxlIHZhbHVlcyBh
cmUgVUNPTF9PTiwgd2hpY2ggcmVzdWx0cyBpbiBzZWNvbmRhcnkgd2VpZ2h0cwogICAgICAgKiBi
ZWluZyBjb25zaWRlcmVkIGJhY2t3YXJkcyBhbmQgVUNPTF9PRkYgd2hpY2ggdHJlYXRzIHNlY29u
ZGFyeQotICAgICAgKiB3ZWlnaHRzIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhci4qLworICAgICAg
KiB3ZWlnaHRzIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhci4KKyAgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICAqLwogICAgICBVQ09MX0ZSRU5DSF9DT0xMQVRJT04sIAogICAgICAvKiogQXR0
cmlidXRlIGZvciBoYW5kbGluZyB2YXJpYWJsZSBlbGVtZW50cy4KICAgICAgICogQWNjZXB0YWJs
ZSB2YWx1ZXMgYXJlIFVDT0xfTk9OX0lHTk9SQUJMRSAoZGVmYXVsdCkKQEAgLTE5MSwxNCArMjUy
LDE4IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIGFuZCBVQ09MX1NISUZURUQgd2hpY2ggY2F1
c2VzIGNvZGVwb2ludHMgd2l0aCBwcmltYXJ5IAogICAgICAgKiB3ZWlnaHRzIHRoYXQgYXJlIGVx
dWFsIG9yIGJlbG93IHRoZSB2YXJpYWJsZSB0b3AgdmFsdWUKICAgICAgICogdG8gYmUgaWdub3Jl
ZCBvbiBwcmltYXJ5IGxldmVsIGFuZCBtb3ZlZCB0byB0aGUgcXVhdGVybmFyeSAKLSAgICAgICog
bGV2ZWwuKi8KKyAgICAgICogbGV2ZWwuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAg
Ki8KICAgICAgVUNPTF9BTFRFUk5BVEVfSEFORExJTkcsIAogICAgICAvKiogQ29udHJvbHMgdGhl
IG9yZGVyaW5nIG9mIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMuCiAgICAgICAqIEFjY2Vw
dGFibGUgdmFsdWVzIGFyZSBVQ09MX09GRiAoZGVmYXVsdCksIHdoaWNoIG9yZGVycwogICAgICAg
KiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzIGluIGFjY29yZGFuY2UgdG8gdGhlaXIgdGVy
dGlhcnkKICAgICAgICogd2VpZ2h0cywgVUNPTF9VUFBFUl9GSVJTVCB3aGljaCBmb3JjZXMgdXBw
ZXIgY2FzZSBsZXR0ZXJzIHRvIAogICAgICAgKiBzb3J0IGJlZm9yZSBsb3dlciBjYXNlIGxldHRl
cnMsIGFuZCBVQ09MX0xPV0VSX0ZJUlNUIHdoaWNoIGRvZXMgCi0gICAgICAqIHRoZSBvcHBvc2l0
ZS4gKi8KKyAgICAgICogdGhlIG9wcG9zaXRlLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgICovCiAgICAgIFVDT0xfQ0FTRV9GSVJTVCwgCiAgICAgIC8qKiBDb250cm9scyB3aGV0aGVy
IGFuIGV4dHJhIGNhc2UgbGV2ZWwgKHBvc2l0aW9uZWQgYmVmb3JlIHRoZSB0aGlyZAogICAgICAg
KiBsZXZlbCkgaXMgZ2VuZXJhdGVkIG9yIG5vdC4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIFVDT0xf
T0ZGIChkZWZhdWx0KSwgCkBAIC0yMDYsNyArMjcxLDkgQEAgdHlwZWRlZiBlbnVtIHsKICAgICAg
ICogbGV2ZWwgdG8gYmUgZ2VuZXJhdGVkLiBDb250ZW50cyBvZiB0aGUgY2FzZSBsZXZlbCBhcmUg
YWZmZWN0ZWQgYnkKICAgICAgICogdGhlIHZhbHVlIG9mIFVDT0xfQ0FTRV9GSVJTVCBhdHRyaWJ1
dGUuIEEgc2ltcGxlIHdheSB0byBpZ25vcmUgCiAgICAgICAqIGFjY2VudCBkaWZmZXJlbmNlcyBp
biBhIHN0cmluZyBpcyB0byBzZXQgdGhlIHN0cmVuZ3RoIHRvIFVDT0xfUFJJTUFSWQotICAgICAg
KiBhbmQgZW5hYmxlIGNhc2UgbGV2ZWwuICovCisgICAgICAqIGFuZCBlbmFibGUgY2FzZSBsZXZl
bC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0NBU0VfTEVW
RUwsCiAgICAgIC8qKiBDb250cm9scyB3aGV0aGVyIHRoZSBub3JtYWxpemF0aW9uIGNoZWNrIGFu
ZCBuZWNlc3Nhcnkgbm9ybWFsaXphdGlvbnMKICAgICAgICogYXJlIHBlcmZvcm1lZC4gV2hlbiBz
ZXQgdG8gVUNPTF9PRkYgKGRlZmF1bHQpIG5vIG5vcm1hbGl6YXRpb24gY2hlY2sKQEAgLTIxNCw5
ICsyODEsMTMgQEAgdHlwZWRlZiBlbnVtIHsKICAgICAgICogaW5wdXQgZGF0YSBpcyBpbiBzby1j
YWxsZWQgRkNEIGZvcm0gKHNlZSB1c2VycyBtYW51YWwgZm9yIG1vcmUgaW5mbykuCiAgICAgICAq
IFdoZW4gc2V0IHRvIFVDT0xfT04sIGFuIGluY3JlbWVudGFsIGNoZWNrIGlzIHBlcmZvcm1lZCB0
byBzZWUgd2hldGhlcgogICAgICAgKiB0aGUgaW5wdXQgZGF0YSBpcyBpbiB0aGUgRkNEIGZvcm0u
IElmIHRoZSBkYXRhIGlzIG5vdCBpbiB0aGUgRkNEIGZvcm0sCi0gICAgICAqIGluY3JlbWVudGFs
IE5GRCBub3JtYWxpemF0aW9uIGlzIHBlcmZvcm1lZC4gKi8KKyAgICAgICogaW5jcmVtZW50YWwg
TkZEIG5vcm1hbGl6YXRpb24gaXMgcGVyZm9ybWVkLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgICovCiAgICAgIFVDT0xfTk9STUFMSVpBVElPTl9NT0RFLCAKLSAgICAgLyoqIEFuIGFs
aWFzIGZvciBVQ09MX05PUk1BTElaQVRJT05fTU9ERSBhdHRyaWJ1dGUgKi8KKyAgICAgLyoqIEFu
IGFsaWFzIGZvciBVQ09MX05PUk1BTElaQVRJT05fTU9ERSBhdHRyaWJ1dGUuCisgICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9ERUNPTVBPU0lUSU9OX01PREUgPSBV
Q09MX05PUk1BTElaQVRJT05fTU9ERSwKICAgICAgLyoqIFRoZSBzdHJlbmd0aCBhdHRyaWJ1dGUu
IENhbiBiZSBlaXRoZXIgVUNPTF9QUklNQVJZLCBVQ09MX1NFQ09OREFSWSwKICAgICAgICogVUNP
TF9URVJUSUFSWSwgVUNPTF9RVUFURVJOQVJZIG9yIFVDT0xfSURFTlRJQ0FMLiBUaGUgdXN1YWwg
c3RyZW5ndGgKQEAgLTIyNywyMCArMjk4LDM3IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIFVD
T0xfSElSQUdBTkFfUVVBVEVSTkFSWSBtb2RlIHRvIG9uLiBPdGhlcndpc2UsIHF1YXRlcm5hcnkg
bGV2ZWwKICAgICAgICogaXMgYWZmZWN0ZWQgb25seSBieSB0aGUgbnVtYmVyIG9mIG5vbiBpZ25v
cmFibGUgY29kZSBwb2ludHMgaW4KICAgICAgICogdGhlIHN0cmluZy4gSWRlbnRpY2FsIHN0cmVu
Z3RoIGlzIHJhcmVseSB1c2VmdWwsIGFzIGl0IGFtb3VudHMgCi0gICAgICAqIHRvIGNvZGVwb2lu
dHMgb2YgdGhlIE5GRCBmb3JtIG9mIHRoZSBzdHJpbmcuICovCisgICAgICAqIHRvIGNvZGVwb2lu
dHMgb2YgdGhlIE5GRCBmb3JtIG9mIHRoZSBzdHJpbmcuCisgICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAgKi8KICAgICAgVUNPTF9TVFJFTkdUSCwgIAorI2lmbmRlZiBVX0hJREVfREVQUkVD
QVRFRF9BUEkKICAgICAgLyoqIFdoZW4gdHVybmVkIG9uLCB0aGlzIGF0dHJpYnV0ZSBwb3NpdGlv
bnMgSGlyYWdhbmEgYmVmb3JlIGFsbCAgCiAgICAgICAqIG5vbi1pZ25vcmFibGVzIG9uIHF1YXRl
cm5hcnkgbGV2ZWwgVGhpcyBpcyBhIHNuZWFreSB3YXkgdG8gcHJvZHVjZSBKSVMKLSAgICAgICog
c29ydCBvcmRlciAqLwotICAgICBVQ09MX0hJUkFHQU5BX1FVQVRFUk5BUllfTU9ERSwKKyAgICAg
ICogc29ydCBvcmRlci4KKyAgICAgICoKKyAgICAgICogVGhpcyBhdHRyaWJ1dGUgaXMgYW4gaW1w
bGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBDTERSIEphcGFuZXNlIHRhaWxvcmluZy4KKyAgICAg
ICogVGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGNoYW5nZSB0byB1c2UgYSBkaWZmZXJlbnQgbWVj
aGFuaXNtCisgICAgICAqIHRvIGFjaGlldmUgdGhlIHNhbWUgSmFwYW5lc2Ugc29ydCBvcmRlci4K
KyAgICAgICogU2luY2UgSUNVIDUwLCB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc2V0dGFibGUgYW55
IG1vcmUgdmlhIEFQSSBmdW5jdGlvbnMuCisgICAgICAqIEBkZXByZWNhdGVkIElDVSA1MCBJbXBs
ZW1lbnRhdGlvbiBkZXRhaWwsIGNhbm5vdCBiZSBzZXQgdmlhIEFQSSwgbWlnaHQgYmUgcmVtb3Zl
ZCBmcm9tIGltcGxlbWVudGF0aW9uLgorICAgICAgKi8KKyAgICAgVUNPTF9ISVJBR0FOQV9RVUFU
RVJOQVJZX01PREUgPSBVQ09MX1NUUkVOR1RIICsgMSwKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJF
Q0FURURfQVBJICovCiAgICAgIC8qKiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUgZ2Vu
ZXJhdGVzIGEgY29sbGF0aW9uIGtleQogICAgICAgKiBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Yg
c3Vic3RyaW5ncyBvZiBkaWdpdHMuCiAgICAgICAqIFRoaXMgaXMgYSB3YXkgdG8gZ2V0ICcxMDAn
IHRvIHNvcnQgQUZURVIgJzInLiBOb3RlIHRoYXQgdGhlIGxvbmdlc3QKICAgICAgICogZGlnaXQg
c3Vic3RyaW5nIHRoYXQgY2FuIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29sbGF0aW9uIGVsZW1l
bnQgaXMKICAgICAgICogMjU0IGRpZ2l0cyAobm90IGNvdW50aW5nIGxlYWRpbmcgemVyb3MpLiBJ
ZiBhIGRpZ2l0IHN1YnN0cmluZyBpcwogICAgICAgKiBsb25nZXIgdGhhbiB0aGF0LCB0aGUgZGln
aXRzIGJleW9uZCB0aGUgbGltaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEKLSAgICAgICogc2VwYXJh
dGUgZGlnaXQgc3Vic3RyaW5nIGFzc29jaWF0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbGxhdGlvbiBl
bGVtZW50LiAqLwotICAgICBVQ09MX05VTUVSSUNfQ09MTEFUSU9OLCAKKyAgICAgICogc2VwYXJh
dGUgZGlnaXQgc3Vic3RyaW5nIGFzc29jaWF0ZWQgd2l0aCBhIHNlcGFyYXRlIGNvbGxhdGlvbiBl
bGVtZW50LgorICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICovCisgICAgIFVDT0xfTlVN
RVJJQ19DT0xMQVRJT04gPSBVQ09MX1NUUkVOR1RIICsgMiwgCisgICAgIC8qKgorICAgICAgKiBU
aGUgbnVtYmVyIG9mIFVDb2xBdHRyaWJ1dGUgY29uc3RhbnRzLgorICAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfQVRUUklCVVRFX0NPVU5UCiB9IFVDb2xBdHRyaWJ1
dGU7CiAKQEAgLTI0OCw5ICszMzYsMTkgQEAgdHlwZWRlZiBlbnVtIHsKICAqICBAc3RhYmxlIElD
VSAyLjAKICAqLwogdHlwZWRlZiBlbnVtIHsKLSAgLyoqIFJldHJpZXZlIHRhaWxvcmluZyBvbmx5
ICovCisgIC8qKgorICAgKiBSZXRyaWV2ZXMgdGhlIHRhaWxvcmluZyBydWxlcyBvbmx5LgorICAg
KiBTYW1lIGFzIGNhbGxpbmcgdGhlIHZlcnNpb24gb2YgZ2V0UnVsZXMoKSB3aXRob3V0IFVDb2xS
dWxlT3B0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCiAgIFVDT0xfVEFJTE9SSU5H
X09OTFksIAotICAvKiogUmV0cmlldmUgVUNBIHJ1bGVzIGFuZCB0YWlsb3JpbmcgKi8KKyAgLyoq
CisgICAqIFJldHJpZXZlcyB0aGUgIlVDQSBydWxlcyIgY29uY2F0ZW5hdGVkIHdpdGggdGhlIHRh
aWxvcmluZyBydWxlcy4KKyAgICogVGhlICJVQ0EgcnVsZXMiIGFyZSBhbiA8aT5hcHByb3hpbWF0
aW9uPC9pPiBvZiB0aGUgcm9vdCBjb2xsYXRvcidzIHNvcnQgb3JkZXIuCisgICAqIFRoZXkgYXJl
IGFsbW9zdCBuZXZlciB1c2VkIG9yIHVzZWZ1bCBhdCBydW50aW1lIGFuZCBjYW4gYmUgcmVtb3Zl
ZCBmcm9tIHRoZSBkYXRhLgorICAgKiBTZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5v
cmcvY29sbGF0aW9uL2N1c3RvbWl6YXRpb24jVE9DLUJ1aWxkaW5nLW9uLUV4aXN0aW5nLUxvY2Fs
ZXMKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwogICBVQ09MX0ZVTExfUlVMRVMgCiB9IFVD
b2xSdWxlT3B0aW9uIDsKIApAQCAtMzQ3LDYgKzQ0NSw3IEBAIHVjb2xfb3BlbkZyb21TaG9ydFN0
cmluZyggY29uc3QgY2hhciAqZGVmaW5pdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
VVBhcnNlRXJyb3IgKnBhcnNlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAvKioKICAq
IEdldCBhIHNldCBjb250YWluaW5nIHRoZSBjb250cmFjdGlvbnMgZGVmaW5lZCBieSB0aGUgY29s
bGF0b3IuIFRoZSBzZXQgaW5jbHVkZXMKICAqIGJvdGggdGhlIFVDQSBjb250cmFjdGlvbnMgYW5k
IHRoZSBjb250cmFjdGlvbnMgZGVmaW5lZCBieSB0aGUgY29sbGF0b3IuIFRoaXMgc2V0CkBAIC0z
NjQsNiArNDYzLDcgQEAgVV9ERVBSRUNBVEVEIGludDMyX3QgVV9FWFBPUlQyCiB1Y29sX2dldENv
bnRyYWN0aW9ucyggY29uc3QgVUNvbGxhdG9yICpjb2xsLAogICAgICAgICAgICAgICAgICAgVVNl
dCAqY29udHMsCiAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworI2VuZGlm
ICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAgKiBHZXQgYSBzZXQgY29udGFp
bmluZyB0aGUgZXhwYW5zaW9ucyBkZWZpbmVkIGJ5IHRoZSBjb2xsYXRvci4gVGhlIHNldCBpbmNs
dWRlcwpAQCAtNDM1LDYgKzUzNSwzMyBAQCB1Y29sX3N0cmNvbGwoICAgIGNvbnN0ICAgIFVDb2xs
YXRvciAgICAqY29sbCwKICAgICAgICAgY29uc3QgICAgVUNoYXIgICAgICAgICp0YXJnZXQsCiAg
ICAgICAgIGludDMyX3QgICAgICAgICAgICB0YXJnZXRMZW5ndGgpOwogCisvKiogCisqIENvbXBh
cmUgdHdvIHN0cmluZ3MgaW4gVVRGLTguIAorKiBUaGUgc3RyaW5ncyB3aWxsIGJlIGNvbXBhcmVk
IHVzaW5nIHRoZSBvcHRpb25zIGFscmVhZHkgc3BlY2lmaWVkLiAKKyogTm90ZTogV2hlbiBpbnB1
dCBzdHJpbmcgY29udGFpbnMgbWFsZm9ybWVkIGEgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgCisqIHRo
aXMgZnVuY3Rpb24gdHJlYXRzIHRoZXNlIGJ5dGVzIGFzIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiAo
VStGRkZEKS4KKyogQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRvciBjb250YWluaW5nIHRoZSBjb21w
YXJpc29uIHJ1bGVzLiAKKyogQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIFVURi04IHN0cmluZy4g
CisqIEBwYXJhbSBzb3VyY2VMZW5ndGggVGhlIGxlbmd0aCBvZiBzb3VyY2UsIG9yIC0xIGlmIG51
bGwtdGVybWluYXRlZC4gCisqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBVVEYtOCBzdHJpbmcu
IAorKiBAcGFyYW0gdGFyZ2V0TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGFyZ2V0LCBvciAtMSBpZiBu
dWxsLXRlcm1pbmF0ZWQuIAorKiBAcGFyYW0gc3RhdHVzIEEgcG9pbnRlciB0byBhbiBVRXJyb3JD
b2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycyAKKyogQHJldHVybiBUaGUgcmVzdWx0IG9mIGNvbXBh
cmluZyB0aGUgc3RyaW5nczsgb25lIG9mIFVDT0xfRVFVQUwsIAorKiBVQ09MX0dSRUFURVIsIFVD
T0xfTEVTUyAKKyogQHNlZSB1Y29sX2dyZWF0ZXIgCisqIEBzZWUgdWNvbF9ncmVhdGVyT3JFcXVh
bCAKKyogQHNlZSB1Y29sX2VxdWFsIAorKiBAc3RhYmxlIElDVSA1MCAKKyovIAorVV9TVEFCTEUg
VUNvbGxhdGlvblJlc3VsdCBVX0VYUE9SVDIKK3Vjb2xfc3RyY29sbFVURjgoCisgICAgICAgIGNv
bnN0IFVDb2xsYXRvciAqY29sbCwKKyAgICAgICAgY29uc3QgY2hhciAgICAgICpzb3VyY2UsCisg
ICAgICAgIGludDMyX3QgICAgICAgICBzb3VyY2VMZW5ndGgsCisgICAgICAgIGNvbnN0IGNoYXIg
ICAgICAqdGFyZ2V0LAorICAgICAgICBpbnQzMl90ICAgICAgICAgdGFyZ2V0TGVuZ3RoLAorICAg
ICAgICBVRXJyb3JDb2RlICAgICAgKnN0YXR1cyk7CisKIC8qKgogICogRGV0ZXJtaW5lIGlmIG9u
ZSBzdHJpbmcgaXMgZ3JlYXRlciB0aGFuIGFub3RoZXIuCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGVx
dWl2YWxlbnQgdG8ge0BsaW5rICN1Y29sX3N0cmNvbGwgfSA9PSBVQ09MX0dSRUFURVIKQEAgLTUz
NiwzNyArNjYzLDkwIEBAIHVjb2xfc2V0U3RyZW5ndGgoVUNvbGxhdG9yICpjb2xsLAogICAgICAg
ICAgICAgICAgICBVQ29sbGF0aW9uU3RyZW5ndGggc3RyZW5ndGgpOwogCiAvKioKLSAqIEdldCB0
aGUgY3VycmVudCByZW9yZGVyaW5nIG9mIHNjcmlwdHMgKGlmIG9uZSBoYXMgYmVlbiBzZXQpLgor
ICogUmV0cmlldmVzIHRoZSByZW9yZGVyaW5nIGNvZGVzIGZvciB0aGlzIGNvbGxhdG9yLgorICog
VGhlc2UgcmVvcmRlcmluZyBjb2RlcyBhcmUgYSBjb21iaW5hdGlvbiBvZiBVU2NyaXB0IGNvZGVz
IGFuZCBVQ29sUmVvcmRlckNvZGUgZW50cmllcy4KICAqIEBwYXJhbSBjb2xsIFRoZSBVQ29sbGF0
b3IgdG8gcXVlcnkuCiAgKiBAcGFyYW0gZGVzdCBUaGUgYXJyYXkgdG8gZmlsbCB3aXRoIHRoZSBz
Y3JpcHQgb3JkZXJpbmcuCi0gKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBsZW5ndGggb2YgZGVz
dC4gSWYgaXQgaXMgMCwgdGhlbiBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2ls
bCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgd2l0aG91dCB3cml0aW5nIGFu
eSBvZiB0aGUgcmVzdWx0IHN0cmluZyAocHJlLWZsaWdodGluZykuCi0gKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLCB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgot
ICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBvZiB0aGUgc2NyaXB0IG9yZGVyaW5n
LgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgbGVuZ3RoIG9mIGRlc3QuIElmIGl0IGlzIDAs
IHRoZW4gZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIAorICogd2lsbCBvbmx5IHJl
dHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUg
cmVzdWx0IHN0cmluZyAocHJlLWZsaWdodGluZykuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLCB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIAorICogZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFRoZSBudW1iZXIgb2YgcmVvcmRlcmluZyBjb2RlcyB3cml0dGVuIHRvIHRoZSBkZXN0
IGFycmF5LgogICogQHNlZSB1Y29sX3NldFJlb3JkZXJDb2RlcwotICogQGludGVybmFsIAorICog
QHNlZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUK
KyAqIEBzZWUgVUNvbFJlb3JkZXJDb2RlCisgKiBAc3RhYmxlIElDVSA0LjgKICAqLwotVV9JTlRF
Uk5BTCBpbnQzMl90IFVfRVhQT1JUMiAKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAogdWNv
bF9nZXRSZW9yZGVyQ29kZXMoY29uc3QgVUNvbGxhdG9yKiBjb2xsLAogICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90KiBkZXN0LAogICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGRlc3RDYXBh
Y2l0eSwKICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7Ci0KLS8q
KgotICogU2V0IHRoZSBvcmRlcmluZyBvZiBzY3JpcHRzIGZvciB0aGlzIGNvbGxhdG9yLgorLyoq
IAorICogU2V0cyB0aGUgcmVvcmRlcmluZyBjb2RlcyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIENv
bGxhdGlvbiByZW9yZGVyaW5nIGFsbG93cyBzY3JpcHRzIGFuZCBzb21lIG90aGVyIGRlZmluZWQg
YmxvY2tzIG9mIGNoYXJhY3RlcnMgCisgKiB0byBiZSBtb3ZlZCByZWxhdGl2ZSB0byBlYWNoIG90
aGVyIGFzIGEgYmxvY2suIFRoaXMgcmVvcmRlcmluZyBpcyBkb25lIG9uIHRvcCBvZiAKKyAqIHRo
ZSBEVUNFVC9DTERSIHN0YW5kYXJkIGNvbGxhdGlvbiBvcmRlci4gUmVvcmRlcmluZyBjYW4gc3Bl
Y2lmeSBncm91cHMgdG8gYmUgcGxhY2VkIAorICogYXQgdGhlIHN0YXJ0IGFuZC9vciB0aGUgZW5k
IG9mIHRoZSBjb2xsYXRpb24gb3JkZXIuIFRoZXNlIGdyb3VwcyBhcmUgc3BlY2lmaWVkIHVzaW5n
CisgKiBVU2NyaXB0IGNvZGVzIGFuZCBVQ29sUmVvcmRlckNvZGUgZW50cmllcy4KKyAqIDxwPkJ5
IGRlZmF1bHQsIHJlb3JkZXJpbmcgY29kZXMgc3BlY2lmaWVkIGZvciB0aGUgc3RhcnQgb2YgdGhl
IG9yZGVyIGFyZSBwbGFjZWQgaW4gdGhlIAorICogb3JkZXIgZ2l2ZW4gYWZ0ZXIgYSBncm91cCBv
ZiAic3BlY2lhbCIgbm9uLXNjcmlwdCBibG9ja3MuIFRoZXNlIHNwZWNpYWwgZ3JvdXBzIG9mIGNo
YXJhY3RlcnMgCisgKiBhcmUgc3BhY2UsIHB1bmN0dWF0aW9uLCBzeW1ib2wsIGN1cnJlbmN5LCBh
bmQgZGlnaXQuIFRoZXNlIHNwZWNpYWwgZ3JvdXBzIGFyZSByZXByZXNlbnRlZCB3aXRoCisgKiBV
Q29sUmVvcmRlckNvZGUgZW50cmllcy4gU2NyaXB0IGdyb3VwcyBjYW4gYmUgaW50ZXJtaW5nbGVk
IHdpdGggCisgKiB0aGVzZSBzcGVjaWFsIG5vbi1zY3JpcHQgYmxvY2tzIGlmIHRob3NlIHNwZWNp
YWwgYmxvY2tzIGFyZSBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgcmVvcmRlcmluZy4KKyAq
IDxwPlRoZSBzcGVjaWFsIGNvZGUgT1RIRVJTIHN0YW5kcyBmb3IgYW55IHNjcmlwdCB0aGF0IGlz
IG5vdCBleHBsaWNpdGx5IAorICogbWVudGlvbmVkIGluIHRoZSBsaXN0IG9mIHJlb3JkZXJpbmcg
Y29kZXMgZ2l2ZW4uIEFueXRoaW5nIHRoYXQgaXMgYWZ0ZXIgT1RIRVJTCisgKiB3aWxsIGdvIGF0
IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgcmVvcmRlcmluZyBpbiB0aGUgb3JkZXIgZ2l2ZW4uCisgKiA8
cD5UaGUgc3BlY2lhbCByZW9yZGVyIGNvZGUgREVGQVVMVCB3aWxsIHJlc2V0IHRoZSByZW9yZGVy
aW5nIGZvciB0aGlzIGNvbGxhdG9yCisgKiB0byB0aGUgZGVmYXVsdCBmb3IgdGhpcyBjb2xsYXRv
ci4gVGhlIGRlZmF1bHQgcmVvcmRlcmluZyBtYXkgYmUgdGhlIERVQ0VUL0NMRFIgb3JkZXIgb3Ig
bWF5IGJlIGEgcmVvcmRlcmluZyB0aGF0CisgKiB3YXMgc3BlY2lmaWVkIHdoZW4gdGhpcyBjb2xs
YXRvciB3YXMgY3JlYXRlZCBmcm9tIHJlc291cmNlIGRhdGEgb3IgZnJvbSBydWxlcy4gVGhlIAor
ICogREVGQVVMVCBjb2RlIDxiPm11c3Q8L2I+IGJlIHRoZSBzb2xlIGNvZGUgc3VwcGxpZWQgd2hl
biBpdCB1c2VkLiBJZiBub3QKKyAqIHRoYXQgd2lsbCByZXN1bHQgaW4gYW4gVV9JTExFR0FMX0FS
R1VNRU5UX0VSUk9SIGJlaW5nIHNldC4KKyAqIDxwPlRoZSBzcGVjaWFsIHJlb3JkZXIgY29kZSBO
T05FIHdpbGwgcmVtb3ZlIGFueSByZW9yZGVyaW5nIGZvciB0aGlzIGNvbGxhdG9yLgorICogVGhl
IHJlc3VsdCBvZiBzZXR0aW5nIG5vIHJlb3JkZXJpbmcgd2lsbCBiZSB0byBoYXZlIHRoZSBEVUNF
VC9DTERSIG9yZGVyaW5nIHVzZWQuIFRoZSAKKyAqIE5PTkUgY29kZSA8Yj5tdXN0PC9iPiBiZSB0
aGUgc29sZSBjb2RlIHN1cHBsaWVkIHdoZW4gaXQgdXNlZC4KICAqIEBwYXJhbSBjb2xsIFRoZSBV
Q29sbGF0b3IgdG8gc2V0LgotICogQHBhcmFtIHJlb3JkZXJDb2RlcyBBbiBhcnJheSBvZiBzY3Jp
cHQgY29kZXMgaW4gdGhlIG5ldyBvcmRlci4KKyAqIEBwYXJhbSByZW9yZGVyQ29kZXMgQW4gYXJy
YXkgb2Ygc2NyaXB0IGNvZGVzIGluIHRoZSBuZXcgb3JkZXIuIFRoaXMgY2FuIGJlIE5VTEwgaWYg
dGhlIAorICogbGVuZ3RoIGlzIGFsc28gc2V0IHRvIDAuIEFuIGVtcHR5IGFycmF5IHdpbGwgY2xl
YXIgYW55IHJlb3JkZXJpbmcgY29kZXMgb24gdGhlIGNvbGxhdG9yLgogICogQHBhcmFtIHJlb3Jk
ZXJDb2Rlc0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHJlb3JkZXJDb2Rlcy4KLSAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsIHdo
aWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJv
ciBjb2RlIHZhbHVlLCB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhCisgKiBmYWlsdXJlIGJlZm9y
ZSB0aGUgZnVuY3Rpb24gY2FsbC4KICAqIEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29kZXMKLSAqIEBp
bnRlcm5hbCAKLSAqLwotVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiAKKyAqIEBzZWUgdWNvbF9n
ZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2RlCisgKiBAc2VlIFVD
b2xSZW9yZGVyQ29kZQorICogQHN0YWJsZSBJQ1UgNC44CisgKi8gCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMiAKIHVjb2xfc2V0UmVvcmRlckNvZGVzKFVDb2xsYXRvciogY29sbCwKICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgaW50MzJfdCogcmVvcmRlckNvZGVzLAogICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHJlb3JkZXJDb2Rlc0xlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8qKgorICogUmV0cmlldmVzIHRoZSByZW9yZGVyIGNv
ZGVzIHRoYXQgYXJlIGdyb3VwZWQgd2l0aCB0aGUgZ2l2ZW4gcmVvcmRlciBjb2RlLiBTb21lIHJl
b3JkZXIKKyAqIGNvZGVzIHdpbGwgYmUgZ3JvdXBlZCBhbmQgbXVzdCByZW9yZGVyIHRvZ2V0aGVy
LgorICogQHBhcmFtIHJlb3JkZXJDb2RlIFRoZSByZW9yZGVyIGNvZGUgdG8gZGV0ZXJtaW5lIGVx
dWl2YWxlbmNlIGZvci4KKyAqIEBwYXJhbSBkZXN0IFRoZSBhcnJheSB0byBmaWxsIHdpdGggdGhl
IHNjcmlwdCBvcmRlcmluZy4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIGxlbmd0aCBvZiBk
ZXN0LiBJZiBpdCBpcyAwLCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbgor
ICogd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgd2l0aG91dCB3cml0
aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZyAocHJlLWZsaWdodGluZykuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVl
LCB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSAKKyAqIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0
aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgcmVvcmRlcmluZyBjb2RlcyB3cml0
dGVuIHRvIHRoZSBkZXN0IGFycmF5LgorICogQHNlZSB1Y29sX3NldFJlb3JkZXJDb2RlcworICog
QHNlZSB1Y29sX2dldFJlb3JkZXJDb2RlcworICogQHNlZSBVU2NyaXB0Q29kZQorICogQHNlZSBV
Q29sUmVvcmRlckNvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCitVX1NUQUJMRSBpbnQzMl90
IFVfRVhQT1JUMiAKK3Vjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcyhpbnQzMl90IHJlb3Jk
ZXJDb2RlLAorICAgICAgICAgICAgICAgICAgICBpbnQzMl90KiBkZXN0LAorICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgogICogR2V0IHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEg
VUNvbGxhdG9yLgogICogVGhlIGRpc3BsYXkgbmFtZSBpcyBzdWl0YWJsZSBmb3IgcHJlc2VudGF0
aW9uIHRvIGEgdXNlci4KICAqIEBwYXJhbSBvYmpMb2MgVGhlIGxvY2FsZSBvZiB0aGUgY29sbGF0
b3IgaW4gcXVlc3Rpb24uCkBAIC03MDUsMTEgKzg4NSwxMSBAQCB1Y29sX2dldEZ1bmN0aW9uYWxF
cXVpdmFsZW50KGNoYXIqIHJlc3VsdCwgaW50MzJfdCByZXN1bHRDYXBhY2l0eSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUJvb2wqIGlzQXZhaWxhYmxlLCBVRXJyb3JDb2RlKiBzdGF0
dXMpOwogCiAvKioKLSAqIEdldCB0aGUgY29sbGF0aW9uIHJ1bGVzIGZyb20gYSBVQ29sbGF0b3Iu
CisgKiBHZXQgdGhlIGNvbGxhdGlvbiB0YWlsb3JpbmcgcnVsZXMgZnJvbSBhIFVDb2xsYXRvci4K
ICAqIFRoZSBydWxlcyB3aWxsIGZvbGxvdyB0aGUgcnVsZSBzeW50YXguCiAgKiBAcGFyYW0gY29s
bCBUaGUgVUNvbGxhdG9yIHRvIHF1ZXJ5LgogICogQHBhcmFtIGxlbmd0aCAKLSAqIEByZXR1cm4g
VGhlIGNvbGxhdGlvbiBydWxlcy4KKyAqIEByZXR1cm4gVGhlIGNvbGxhdGlvbiB0YWlsb3Jpbmcg
cnVsZXMuCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogVV9TVEFCTEUgY29uc3QgVUNoYXIqIFVf
RVhQT1JUMiAKQEAgLTgwMiwxMCArOTgyLDEwIEBAIHVjb2xfZ2V0U29ydEtleShjb25zdCAgICBV
Q29sbGF0b3IgICAgKmNvbGwsCiAgKiAgdG8gcHJlc2VydmUgc3RhdGUgYXJyYXkgYmV0d2VlbiBj
YWxscyBhbmQgdG8gcHJvdmlkZQogICogIHRoZSBzYW1lIHR5cGUgb2YgVUNoYXJJdGVyYXRvciBz
ZXQgd2l0aCB0aGUgc2FtZSBzdHJpbmcuCiAgKiAgVGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBwcm92
aWRlZCBtdXN0IGJlIGJpZyBlbm91Z2ggdG8gc3RvcmUKLSAqICB0aGUgbnVtYmVyIG9mIHJlcXVl
c3RlZCBieXRlcy4gR2VuZXJhdGVkIHNvcnRrZXkgaXMgbm90IAotICogIGNvbXBhdGlibGUgd2l0
aCBzb3J0a2V5cyBnZW5lcmF0ZWQgdXNpbmcgdWNvbF9nZXRTb3J0S2V5Ci0gKiAgQVBJLCBzaW5j
ZSB3ZSBkb24ndCBkbyBhbnkgY29tcHJlc3Npb24uIElmIHVuY29tcHJlc3NlZAotICogIHNvcnRr
ZXlzIGFyZSByZXF1aXJlZCwgdGhpcyBBUEkgY2FuIGJlIHVzZWQuCisgKiAgdGhlIG51bWJlciBv
ZiByZXF1ZXN0ZWQgYnl0ZXMuCisgKgorICogIFRoZSBnZW5lcmF0ZWQgc29ydCBrZXkgbWF5IG9y
IG1heSBub3QgYmUgY29tcGF0aWJsZSB3aXRoCisgKiAgc29ydCBrZXlzIGdlbmVyYXRlZCB1c2lu
ZyB1Y29sX2dldFNvcnRLZXkoKS4KICAqICBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIGNvbnRh
aW5pbmcgdGhlIGNvbGxhdGlvbiBydWxlcy4KICAqICBAcGFyYW0gaXRlciBVQ2hhckl0ZXJhdG9y
IGNvbnRhaW5pbmcgdGhlIHN0cmluZyB3ZSBuZWVkIAogICogICAgICAgICAgICAgIHRoZSBzb3J0
IGtleSB0byBiZSBjYWxjdWxhdGVkIGZvci4KQEAgLTkwOSwyNiArMTA4OSw0MCBAQCB1Y29sX2dl
dFZlcnNpb24oY29uc3QgVUNvbGxhdG9yKiBjb2xsLCBVVmVyc2lvbkluZm8gaW5mbyk7CiBVX1NU
QUJMRSB2b2lkIFVfRVhQT1JUMgogdWNvbF9nZXRVQ0FWZXJzaW9uKGNvbnN0IFVDb2xsYXRvciog
Y29sbCwgVVZlcnNpb25JbmZvIGluZm8pOwogCi0vKiogCi0gKiBNZXJnZSB0d28gc29ydCBrZXlz
LiBUaGUgbGV2ZWxzIGFyZSBtZXJnZWQgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nIGNvdW50ZXJw
YXJ0cworLyoqCisgKiBNZXJnZXMgdHdvIHNvcnQga2V5cy4gVGhlIGxldmVscyBhcmUgbWVyZ2Vk
IHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBjb3VudGVycGFydHMKICAqIChwcmltYXJpZXMgd2l0
aCBwcmltYXJpZXMsIHNlY29uZGFyaWVzIHdpdGggc2Vjb25kYXJpZXMgZXRjLikuIEJldHdlZW4g
dGhlIHZhbHVlcwogICogZnJvbSB0aGUgc2FtZSBsZXZlbCBhIHNlcGFyYXRvciBpcyBpbnNlcnRl
ZC4KLSAqIGV4YW1wbGUgKHVuY29tcHJlc3NlZCk6IAotICogMTkxQjFEIDAxIDA1MDUwNSAwMSA5
MTA1MDUgMDAgYW5kIDFGMjEyMyAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwCisgKgorICogVGhpcyBp
cyB1c2VmdWwsIGZvciBleGFtcGxlLCBmb3IgY29tYmluaW5nIHNvcnQga2V5cyBmcm9tIGZpcnN0
IGFuZCBsYXN0IG5hbWVzCisgKiB0byBzb3J0IHN1Y2ggcGFpcnMuCisgKiBJdCBpcyBwb3NzaWJs
ZSB0byBtZXJnZSBtdWx0aXBsZSBzb3J0IGtleXMgYnkgY29uc2VjdXRpdmVseSBtZXJnaW5nCisg
KiBhbm90aGVyIG9uZSB3aXRoIHRoZSBpbnRlcm1lZGlhdGUgcmVzdWx0LgorICoKKyAqIFRoZSBs
ZW5ndGggb2YgdGhlIG1lcmdlIHJlc3VsdCBpcyB0aGUgc3VtIG9mIHRoZSBsZW5ndGhzIG9mIHRo
ZSBpbnB1dCBzb3J0IGtleXMuCisgKgorICogRXhhbXBsZSAodW5jb21wcmVzc2VkKToKKyAqIDxw
cmU+MTkxQjFEIDAxIDA1MDUwNSAwMSA5MTA1MDUgMDAKKyAqIDFGMjEyMyAwMSAwNTA1MDUgMDEg
OTEwNTA1IDAwPC9wcmU+CiAgKiB3aWxsIGJlIG1lcmdlZCBhcyAKLSAqIDE5MUIxRCAwMiAxRjIx
MjMwMSAwNTA1MDUgMDIgMDUwNTA1IDAxIDkxMDUwNSAwMiA5MTA1MDUgMDAKLSAqIFRoaXMgYWxs
b3dzIGZvciBjb25jYXRlbmF0aW5nIG9mIGZpcnN0IGFuZCBsYXN0IG5hbWVzIGZvciBzb3J0aW5n
LCBhbW9uZyBvdGhlciB0aGluZ3MuCi0gKiBJZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIGlzIG5v
dCBiaWcgZW5vdWdoLCB0aGUgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgotICogSWYgYW55IG9mIHNv
dXJjZSBsZW5ndGhzIGFyZSB6ZXJvIG9yIGFueSBvZiBzb3VyY2UgcG9pbnRlcnMgYXJlIE5VTEwv
dW5kZWZpbmVkLCAKLSAqIHJlc3VsdCBpcyBvZiBzaXplIHplcm8uCi0gKiBAcGFyYW0gc3JjMSBw
b2ludGVyIHRvIHRoZSBmaXJzdCBzb3J0a2V5Ci0gKiBAcGFyYW0gc3JjMUxlbmd0aCBsZW5ndGgg
b2YgdGhlIGZpcnN0IHNvcnRrZXkKLSAqIEBwYXJhbSBzcmMyIHBvaW50ZXIgdG8gdGhlIHNlY29u
ZCBzb3J0a2V5Ci0gKiBAcGFyYW0gc3JjMkxlbmd0aCBsZW5ndGggb2YgdGhlIHNlY29uZCBzb3J0
a2V5Ci0gKiBAcGFyYW0gZGVzdCBidWZmZXIgdG8gaG9sZCB0aGUgcmVzdWx0Ci0gKiBAcGFyYW0g
ZGVzdENhcGFjaXR5IHNpemUgb2YgdGhlIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdAotICogQHJldHVy
biBzaXplIG9mIHRoZSByZXN1bHQuIElmIHRoZSBidWZmZXIgaXMgYmlnIGVub3VnaCBzaXplIGlz
IGFsd2F5cwotICogICAgICAgICBzcmMxTGVuZ3RoK3NyYzJMZW5ndGgtMQorICogPHByZT4xOTFC
MUQgMDIgMUYyMTIzIDAxIDA1MDUwNSAwMiAwNTA1MDUgMDEgOTEwNTA1IDAyIDkxMDUwNSAwMDwv
cHJlPgorICoKKyAqIElmIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgaXMgbm90IGJpZyBlbm91Z2gs
IHRoZW4gaXRzIGNvbnRlbnRzIGFyZSB1bmRlZmluZWQuCisgKiBJZiBhbnkgb2Ygc291cmNlIGxl
bmd0aHMgYXJlIHplcm8gb3IgYW55IG9mIHRoZSBzb3VyY2UgcG9pbnRlcnMgYXJlIE5VTEwvdW5k
ZWZpbmVkLAorICogdGhlIHJlc3VsdCBpcyBvZiBzaXplIHplcm8uCisgKgorICogQHBhcmFtIHNy
YzEgdGhlIGZpcnN0IHNvcnQga2V5CisgKiBAcGFyYW0gc3JjMUxlbmd0aCB0aGUgbGVuZ3RoIG9m
IHRoZSBmaXJzdCBzb3J0IGtleSwgaW5jbHVkaW5nIHRoZSB6ZXJvIGJ5dGUgYXQgdGhlIGVuZDsK
KyAqICAgICAgICBjYW4gYmUgLTEgaWYgdGhlIGZ1bmN0aW9uIGlzIHRvIGZpbmQgdGhlIGxlbmd0
aAorICogQHBhcmFtIHNyYzIgdGhlIHNlY29uZCBzb3J0IGtleQorICogQHBhcmFtIHNyYzJMZW5n
dGggdGhlIGxlbmd0aCBvZiB0aGUgc2Vjb25kIHNvcnQga2V5LCBpbmNsdWRpbmcgdGhlIHplcm8g
Ynl0ZSBhdCB0aGUgZW5kOworICogICAgICAgIGNhbiBiZSAtMSBpZiB0aGUgZnVuY3Rpb24gaXMg
dG8gZmluZCB0aGUgbGVuZ3RoCisgKiBAcGFyYW0gZGVzdCB0aGUgYnVmZmVyIHdoZXJlIHRoZSBt
ZXJnZWQgc29ydCBrZXkgaXMgd3JpdHRlbiwKKyAqICAgICAgICBjYW4gYmUgTlVMTCBpZiBkZXN0
Q2FwYWNpdHk9PTAKKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgdGhlIG51bWJlciBvZiBieXRlcyBp
biB0aGUgZGVzdCBidWZmZXIKKyAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgbWVyZ2VkIHNv
cnQga2V5LCBzcmMxTGVuZ3RoK3NyYzJMZW5ndGg7CisgKiAgICAgICAgIGNhbiBiZSBsYXJnZXIg
dGhhbiBkZXN0Q2FwYWNpdHksIG9yIDAgaWYgYW4gZXJyb3Igb2NjdXJzIChvbmx5IGZvciBpbGxl
Z2FsIGFyZ3VtZW50cyksCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2VzIHRoZSBjb250ZW50cyBv
ZiBkZXN0IGlzIHVuZGVmaW5lZAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIFVfU1RBQkxFIGlu
dDMyX3QgVV9FWFBPUlQyIApAQCAtMTAxOCwxMiArMTIxMiwxMyBAQCB1Y29sX3Jlc3RvcmVWYXJp
YWJsZVRvcChVQ29sbGF0b3IgKmNvbGwsIGNvbnN0IHVpbnQzMl90IHZhclRvcCwgVUVycm9yQ29k
ZSAqc3RhdAogLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJhdGlvbi4gVGhlIHJlc3Vs
dCBpcyBhIGNsb25lIG9mIGEgZ2l2ZW4gY29sbGF0b3IuCiAgKiBAcGFyYW0gY29sbCBjb2xsYXRv
ciB0byBiZSBjbG9uZWQKLSAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFj
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gCisgKiBAcGFyYW0gc3RhY2tCdWZmZXIgPGVtPkRlcHJlY2F0
ZWQgZnVuY3Rpb25hbGl0eSBhcyBvZiBJQ1UgNTIsIHVzZSBOVUxMLjwvZW0+PGJyPgorICogdXNl
ciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIAogICogSWYgTlVMTCBuZXcgbWVt
b3J5IHdpbGwgYmUgYWxsb2NhdGVkLiAKICAqICBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3Vn
aCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KLSAqICBDbGllbnRzIGNhbiB1c2UgdGhl
IFVfQ09MX1NBRkVDTE9ORV9CVUZGRVJTSVpFLiAKLSAqICBUaGlzIHdpbGwgcHJvYmFibHkgYmUg
ZW5vdWdoIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9ucy4KLSAqIEBwYXJhbSBwQnVmZmVyU2l6
ZSBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLiAKKyAqICBDbGllbnRzIGNhbiB1
c2UgdGhlIFVfQ09MX1NBRkVDTE9ORV9CVUZGRVJTSVpFLgorICogQHBhcmFtIHBCdWZmZXJTaXpl
IDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTCBvciAx
LjwvZW0+PGJyPgorICogIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuIAogICog
IElmICpwQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25p
bmcgd2lsbCAKICAqICBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQogICogIElmICpwQnVm
ZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsIApAQCAt
MTA0MywyNSArMTIzOCwzNCBAQCB1Y29sX3NhZmVDbG9uZShjb25zdCBVQ29sbGF0b3IgKmNvbGws
CiAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgKnBCdWZmZXJTaXplLAogICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCi0vKiogZGVmYXVsdCBtZW1vcnkgc2l6
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gSXQgbmVlZHMgdG8gYmUgdGhpcyBsYXJnZSBmb3Igb3MvNDAw
IGxhcmdlIHBvaW50ZXJzIAotICogQHN0YWJsZSBJQ1UgMi4wCisjaWZuZGVmIFVfSElERV9ERVBS
RUNBVEVEX0FQSQorCisvKiogZGVmYXVsdCBtZW1vcnkgc2l6ZSBmb3IgdGhlIG5ldyBjbG9uZS4K
KyAqIEBkZXByZWNhdGVkIElDVSA1Mi4gRG8gbm90IHJlbHkgb24gdWNvbF9zYWZlQ2xvbmUoKSBj
bG9uaW5nIGludG8gYW55IHByb3ZpZGVkIGJ1ZmZlci4KICAqLwotI2RlZmluZSBVX0NPTF9TQUZF
Q0xPTkVfQlVGRkVSU0laRSA1MTIKKyNkZWZpbmUgVV9DT0xfU0FGRUNMT05FX0JVRkZFUlNJWkUg
MQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAKIC8qKgogICogUmV0dXJu
cyBjdXJyZW50IHJ1bGVzLiBEZWx0YSBkZWZpbmVzIHdoZXRoZXIgZnVsbCBydWxlcyBhcmUgcmV0
dXJuZWQgb3IganVzdCB0aGUgdGFpbG9yaW5nLiAKICAqIFJldHVybnMgbnVtYmVyIG9mIFVDaGFy
cyBuZWVkZWQgdG8gc3RvcmUgcnVsZXMuIElmIGJ1ZmZlciBpcyBOVUxMIG9yIGJ1ZmZlckxlbiBp
cyBub3QgZW5vdWdoIAogICogdG8gc3RvcmUgcnVsZXMsIHdpbGwgc3RvcmUgdXAgdG8gYXZhaWxh
YmxlIHNwYWNlLgorICoKKyAqIHVjb2xfZ2V0UnVsZXMoKSBzaG91bGQgbm9ybWFsbHkgYmUgdXNl
ZCBpbnN0ZWFkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2NvbGxh
dGlvbi9jdXN0b21pemF0aW9uI1RPQy1CdWlsZGluZy1vbi1FeGlzdGluZy1Mb2NhbGVzCiAgKiBA
cGFyYW0gY29sbCBjb2xsYXRvciB0byBnZXQgdGhlIHJ1bGVzIGZyb20KICAqIEBwYXJhbSBkZWx0
YSBvbmUgb2YgVUNPTF9UQUlMT1JJTkdfT05MWSwgVUNPTF9GVUxMX1JVTEVTLiAKICAqIEBwYXJh
bSBidWZmZXIgYnVmZmVyIHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uIElmIE5VTEwsIHlvdSdsbCBn
ZXQgbm8gcnVsZXMuCi0gKiBAcGFyYW0gYnVmZmVyTGVuIGxlbmdodCBvZiBidWZmZXIgdG8gc3Rv
cmUgcnVsZXMgaW4uIElmIGxlc3MgdGhlbiBuZWVkZWQgeW91J2xsIGdldCBvbmx5IHRoZSBwYXJ0
IHRoYXQgZml0cyBpbi4KKyAqIEBwYXJhbSBidWZmZXJMZW4gbGVuZ3RoIG9mIGJ1ZmZlciB0byBz
dG9yZSBydWxlcyBpbi4gSWYgbGVzcyB0aGFuIG5lZWRlZCB5b3UnbGwgZ2V0IG9ubHkgdGhlIHBh
cnQgdGhhdCBmaXRzIGluLgogICogQHJldHVybiBjdXJyZW50IHJ1bGVzCiAgKiBAc3RhYmxlIElD
VSAyLjAKKyAqIEBzZWUgVUNPTF9GVUxMX1JVTEVTCiAgKi8KIFVfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyIAogdWNvbF9nZXRSdWxlc0V4KGNvbnN0IFVDb2xsYXRvciAqY29sbCwgVUNvbFJ1bGVP
cHRpb24gZGVsdGEsIFVDaGFyICpidWZmZXIsIGludDMyX3QgYnVmZmVyTGVuKTsKIAorI2lmbmRl
ZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKIC8qKgogICogZ2V0cyB0aGUgbG9jYWxlIG5hbWUgb2Yg
dGhlIGNvbGxhdG9yLiBJZiB0aGUgY29sbGF0b3IKICAqIGlzIGluc3RhbnRpYXRlZCBmcm9tIHRo
ZSBydWxlcywgdGhlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMKQEAgLTEwNzgsNyArMTI4Miw3IEBA
IHVjb2xfZ2V0UnVsZXNFeChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVDb2xSdWxlT3B0aW9uIGRl
bHRhLCBVQ2hhciAqYnVmZmVyLCBpbnQzCiAgKi8KIFVfREVQUkVDQVRFRCBjb25zdCBjaGFyICog
VV9FWFBPUlQyCiB1Y29sX2dldExvY2FsZShjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVMb2NEYXRh
TG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlICpzdGF0dXMpOwotCisjZW5kaWYgIC8qIFVfSElE
RV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIGdldHMgdGhlIGxvY2FsZSBuYW1lIG9mIHRo
ZSBjb2xsYXRvci4gSWYgdGhlIGNvbGxhdG9yCkBAIC0xMTEwLDYgKzEzMTQsNyBAQCB1Y29sX2dl
dExvY2FsZUJ5VHlwZShjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVMb2NEYXRhTG9jYWxlVHlwZSB0
eXBlLCBVRXJyb3JDb2RlCiBVX1NUQUJMRSBVU2V0ICogVV9FWFBPUlQyCiB1Y29sX2dldFRhaWxv
cmVkU2V0KGNvbnN0IFVDb2xsYXRvciAqY29sbCwgVUVycm9yQ29kZSAqc3RhdHVzKTsKIAorI2lm
bmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKICAqIFVuaXZlcnNhbCBhdHRyaWJ1dGUgZ2V0
dGVyIHRoYXQgcmV0dXJucyBVQ09MX0RFRkFVTFQgaWYgdGhlIHZhbHVlIGlzIGRlZmF1bHQKICAq
IEBwYXJhbSBjb2xsIGNvbGxhdG9yIHdoaWNoIGF0dHJpYnV0ZXMgYXJlIHRvIGJlIGNoYW5nZWQK
QEAgLTExODIsNiArMTM4Nyw3IEBAIHVjb2xfcHJlcGFyZVNob3J0U3RyaW5nT3BlbiggY29uc3Qg
Y2hhciAqZGVmaW5pdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVUJvb2wgZm9yY2VE
ZWZhdWx0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3IgKnBhcnNlRXJy
b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5k
aWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogLyoqIENyZWF0ZXMgYSBiaW5hcnkgaW1h
Z2Ugb2YgYSBjb2xsYXRvci4gVGhpcyBiaW5hcnkgaW1hZ2UgY2FuIGJlIHN0b3JlZCBhbmQgCiAg
KiAgbGF0ZXIgdXNlZCB0byBpbnN0YW50aWF0ZSBhIGNvbGxhdG9yIHVzaW5nIHVjb2xfb3BlbkJp
bmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91Y29u
ZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNvbmZpZy5oCmluZGV4
IDdkMmQyNmU5NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJmYThlNzdiMGYxYTM1
MjIwNzZmYzBhNjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pY3UvdW5pY29kZS91Y29uZmlnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lj
dS91bmljb2RlL3Vjb25maWcuaApAQCAtMSw2ICsxLDYgQEAKIC8qICAKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
LSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAqICAgZmlsZSBuYW1lOiAgdWNvbmZpZy5oCkBAIC0xOCw5ICsx
OCwxNyBAQAogCiAvKiEKICAqIFxmaWxlCi0gKiBcYnJpZWYgU3dpdGNoZXMgZm9yIGV4Y2x1ZGlu
ZyBwYXJ0cyBvZiBJQ1UgbGlicmFyeSBjb2RlIG1vZHVsZXMuCisgKiBcYnJpZWYgVXNlci1jb25m
aWd1cmFibGUgc2V0dGluZ3MKICAqCi0gKiBBbGxvd3MgdG8gYnVpbGQgcGFydGlhbCwgc21hbGxl
ciBsaWJyYXJpZXMgZm9yIHNwZWNpYWwgcHVycG9zZXMuCisgKiBNaXNjZWxsYW5lb3VzIHN3aXRj
aGVzOgorICoKKyAqIEEgbnVtYmVyIG9mIG1hY3JvcyBhZmZlY3QgYSB2YXJpZXR5IG9mIG1pbm9y
IGFzcGVjdHMgb2YgSUNVLgorICogTW9zdCBvZiB0aGVtIHVzZWQgdG8gYmUgZGVmaW5lZCBlbHNl
d2hlcmUgKGUuZy4sIGluIHV0eXBlcy5oIG9yIHBsYXRmb3JtLmgpCisgKiBhbmQgbW92ZWQgaGVy
ZSB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGZpbmQuCisgKgorICogU3dpdGNoZXMgZm9yIGV4Y2x1
ZGluZyBwYXJ0cyBvZiBJQ1UgbGlicmFyeSBjb2RlIG1vZHVsZXM6CisgKgorICogQ2hhbmdpbmcg
dGhlc2UgbWFjcm9zIGFsbG93cyBidWlsZGluZyBwYXJ0aWFsLCBzbWFsbGVyIGxpYnJhcmllcyBm
b3Igc3BlY2lhbCBwdXJwb3Nlcy4KICAqIEJ5IGRlZmF1bHQsIGFsbCBtb2R1bGVzIGFyZSBidWls
dC4KICAqIFRoZSBzd2l0Y2hlcyBhcmUgZmFpcmx5IGNvYXJzZSwgY29udHJvbGxpbmcgbGFyZ2Ug
bW9kdWxlcy4KICAqIEJhc2ljIHNlcnZpY2VzIGNhbm5vdCBiZSB0dXJuZWQgb2ZmLgpAQCAtMzgs
MTUgKzQ2LDE1MyBAQAogLyoqCiAgKiBJZiB0aGlzIHN3aXRjaCBpcyBkZWZpbmVkLCBJQ1Ugd2ls
bCBhdHRlbXB0IHRvIGxvYWQgYSBoZWFkZXIgZmlsZSBuYW1lZCAidWNvbmZpZ19sb2NhbC5oIgog
ICogcHJpb3IgdG8gZGV0ZXJtaW5pbmcgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdWNvbmZpZyB2YXJp
YWJsZXMuCi0gKiAKKyAqCiAgKiBAaW50ZXJuYWwgSUNVIDQuMAotICogCiAgKi8KICNpZiBkZWZp
bmVkKFVDT05GSUdfVVNFX0xPQ0FMKQogI2luY2x1ZGUgInVjb25maWdfbG9jYWwuaCIKICNlbmRp
ZgogCiAvKioKKyAqIFxkZWYgVV9ERUJVRworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGluY2x1
ZGUgZGVidWdnaW5nIGNvZGUuCisgKiBBdXRvbWF0aWNhbGx5IHNldCBvbiBXaW5kb3dzLCBidXQg
bW9zdCBjb21waWxlcnMgZG8gbm90IGhhdmUKKyAqIHJlbGF0ZWQgcHJlZGVmaW5lZCBtYWNyb3Mu
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfREVCVUcKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9ERUJVRykKKyAgICAvKgorICAgICAqIF9E
RUJVRyBpcyBkZWZpbmVkIGJ5IFZpc3VhbCBTdHVkaW8gZGVidWcgY29tcGlsYXRpb24uCisgICAg
ICogRG8gKm5vdCogdGVzdCBmb3IgaXRzIE5ERUJVRyBtYWNybzogSXQgaXMgYW4gb3J0aG9nb25h
bCBtYWNybworICAgICAqIHdoaWNoIGRpc2FibGVzIGFzc2VydCgpLgorICAgICAqLworIyAgIGRl
ZmluZSBVX0RFQlVHIDEKKyMgZWxzZQorIyAgIGRlZmluZSBVX0RFQlVHIDAKKyNlbmRpZgorCisv
KioKKyAqIERldGVybWluZXMgd2hldGVyIHRvIGVuYWJsZSBhdXRvIGNsZWFudXAgb2YgbGlicmFy
aWVzLiAKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVDTE5fTk9fQVVUT19DTEVBTlVQCisj
ZGVmaW5lIFVDTE5fTk9fQVVUT19DTEVBTlVQIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9E
SVNBQkxFX1JFTkFNSU5HCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZGlzYWJsZSByZW5hbWlu
ZyBvciBub3QuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0RJU0FCTEVfUkVOQU1JTkcK
KyNkZWZpbmUgVV9ESVNBQkxFX1JFTkFNSU5HIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9O
T19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMKKyAqIERldGVybWluZXMgd2hldGhlciB1dHlw
ZXMuaCBpbmNsdWRlcyB1dGYuaCwgdXRmOC5oLCB1dGYxNi5oIGFuZCB1dGZfb2xkLmguCisgKiB1
dHlwZXMuaCBpbmNsdWRlcyB0aG9zZSBoZWFkZXJzIGlmIHRoaXMgbWFjcm8gaXMgZGVmaW5lZCB0
byAwLgorICogT3RoZXJ3aXNlLCBlYWNoIHRob3NlIGhlYWRlcnMgbXVzdCBiZSBpbmNsdWRlZCBl
eHBsaWNpdGx5IHdoZW4gdXNpbmcgb25lIG9mIHRoZWlyIG1hY3Jvcy4KKyAqIERlZmF1bHRzIHRv
IDAgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGV4Y2VwdCBpbnNpZGUgSUNVLgorICogQHN0
YWJsZSBJQ1UgNDkKKyAqLworI2lmZGVmIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJT
CisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX0NP
TUJJTkVEX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9O
KSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikgfHwgXAorICAgICAgZGVmaW5lZChV
X0lPX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VUX0lNUExFTUVOVEFUSU9OKSB8
fCBkZWZpbmVkKFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJT04pIHx8IFwKKyAgICAgIGRlZmluZWQo
VV9UT09MVVRJTF9JTVBMRU1FTlRBVElPTikKKyMgICBkZWZpbmUgVV9OT19ERUZBVUxUX0lOQ0xV
REVfVVRGX0hFQURFUlMgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9OT19ERUZBVUxUX0lOQ0xVREVf
VVRGX0hFQURFUlMgMAorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX09WRVJSSURFX0NYWF9BTExP
Q0FUSU9OCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gb3ZlcnJpZGUgbmV3IGFuZCBkZWxldGUu
CisgKiBJQ1UgaXMgbm9ybWFsbHkgYnVpbHQgc3VjaCB0aGF0IGFsbCBvZiBpdHMgQysrIGNsYXNz
ZXMsIHZpYSB0aGVpciBVTWVtb3J5IGJhc2UsCisgKiBvdmVycmlkZSBvcGVyYXRvcnMgbmV3IGFu
ZCBkZWxldGUgdG8gdXNlIGl0cyBpbnRlcm5hbCwgY3VzdG9taXphYmxlLAorICogbm9uLWV4Y2Vw
dGlvbi10aHJvd2luZyBtZW1vcnkgYWxsb2NhdGlvbiBmdW5jdGlvbnMuIChEZWZhdWx0IHZhbHVl
IDEgZm9yIHRoaXMgbWFjcm8uKQorICoKKyAqIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQg
d2hlbiB0aGUgYXBwbGljYXRpb24gYW5kIGl0cyBsaWJyYXJpZXMgdXNlIG11bHRpcGxlIGhlYXBz
LgorICogRm9yIGV4YW1wbGUsIG9uIFdpbmRvd3MsIHRoaXMgYWxsb3dzIHRoZSBJQ1UgRExMIHRv
IGJlIHVzZWQgYnkKKyAqIGFwcGxpY2F0aW9ucyB0aGF0IHN0YXRpY2FsbHkgbGluayB0aGUgQyBS
dW50aW1lIGxpYnJhcnkuCisgKgorICogQHN0YWJsZSBJQ1UgMi4yCisgKi8KKyNpZm5kZWYgVV9P
VkVSUklERV9DWFhfQUxMT0NBVElPTgorI2RlZmluZSBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9O
IDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9FTkFCTEVfVFJBQ0lORworICogRGV0ZXJtaW5l
cyB3aGV0aGVyIHRvIGVuYWJsZSB0cmFjaW5nLgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYg
VV9FTkFCTEVfVFJBQ0lORworI2RlZmluZSBVX0VOQUJMRV9UUkFDSU5HIDAKKyNlbmRpZgorCisv
KioKKyAqIFxkZWYgVV9FTkFCTEVfRFlMT0FECisgKiBXaGV0aGVyIHRvIGVuYWJsZSBEeW5hbWlj
IGxvYWRpbmcgaW4gSUNVLgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9FTkFCTEVfRFlM
T0FECisjZGVmaW5lIFVfRU5BQkxFX0RZTE9BRCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVf
Q0hFQ0tfRFlMT0FECisgKiBXaGV0aGVyIHRvIHRlc3QgRHluYW1pYyBsb2FkaW5nIGFzIGFuIE9T
IGNhcGFiaWxpdHkuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0NIRUNLX0RZTE9BRAor
I2RlZmluZSBVX0NIRUNLX0RZTE9BRCAxCisjZW5kaWYKKworCisvKioKKyAqIFxkZWYgVV9ERUZB
VUxUX1NIT1dfRFJBRlQKKyAqIERvIHdlIGFsbG93IElDVSB1c2VycyB0byB1c2UgdGhlIGRyYWZ0
IEFQSXMgYnkgZGVmYXVsdD8KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfREVGQVVMVF9T
SE9XX0RSQUZUCisjZGVmaW5lIFVfREVGQVVMVF9TSE9XX0RSQUZUIDEKKyNlbmRpZgorCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiBDdXN0b20gaWN1IGVudHJ5IHBvaW50IHJlbmFtaW5nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0hBVkVfTElCX1NVRkZJWAorICogMSBpZiBhIGN1
c3RvbSBsaWJyYXJ5IHN1ZmZpeCBpcyBzZXQuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVf
SEFWRV9MSUJfU1VGRklYCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2Vs
aWYgZGVmaW5lZChVX0xJQl9TVUZGSVhfQ19OQU1FKQorIyAgIGRlZmluZSBVX0hBVkVfTElCX1NV
RkZJWCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5H
CisgKiBEZWZpbmVzIHRoZSBsaWJyYXJ5IHN1ZmZpeCBhcyBhIHN0cmluZyB3aXRoIEMgc3ludGF4
LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORwor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9MSUJf
U1VGRklYX0NfTkFNRSkKKyMgICBkZWZpbmUgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcgI1Vf
TElCX1NVRkZJWF9DX05BTUUKKyNlbHNlCisjICAgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUVf
U1RSSU5HICIiCisjZW5kaWYKKworLyogY29tbW9uL2kxOG4gbGlicmFyeSBzd2l0Y2hlcyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCiAgKiBc
ZGVmIFVDT05GSUdfT05MWV9DT0xMQVRJT04KICAqIFRoaXMgc3dpdGNoIHR1cm5zIG9mZiBtb2R1
bGVzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIGNvbGxhdGlvbi4KICAqCkBAIC0xNDYsNiArMjky
LDkgQEAKICMgICBkZWZpbmUgVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OIDAKICNlbGlmIFVDT05G
SUdfTk9fTk9STUFMSVpBVElPTgogICAgIC8qIGNvbW1vbiBsaWJyYXJ5ICovCisgICAgLyogSUNV
IDUwIENKSyBkaWN0aW9uYXJ5IEJyZWFrSXRlcmF0b3IgdXNlcyBub3JtYWxpemF0aW9uICovCisj
ICAgZGVmaW5lIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OIDEKKyAgICAvKiBJRE5BIChVVFMg
IzQ2KSBpcyBpbXBsZW1lbnRlZCB2aWEgbm9ybWFsaXphdGlvbiAqLwogIyAgIGRlZmluZSBVQ09O
RklHX05PX0lETkEgMQogCiAgICAgLyogaTE4biBsaWJyYXJ5ICovCkBAIC0xNzYsNiArMzI1LDE3
IEBACiAjICAgZGVmaW5lIFVDT05GSUdfTk9fSUROQSAwCiAjZW5kaWYKIAorLyoqCisgKiBcZGVm
IFVDT05GSUdfTVNHUEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFCisgKiBEZXRlcm1pbmVzIHRo
ZSBkZWZhdWx0IFVNZXNzYWdlUGF0dGVybkFwb3N0cm9waGVNb2RlLgorICogU2VlIHRoZSBkb2N1
bWVudGF0aW9uIGZvciB0aGF0IGVudW0uCisgKgorICogQHN0YWJsZSBJQ1UgNC44CisgKi8KKyNp
Zm5kZWYgVUNPTkZJR19NU0dQQVRfREVGQVVMVF9BUE9TVFJPUEhFX01PREUKKyMgICBkZWZpbmUg
VUNPTkZJR19NU0dQQVRfREVGQVVMVF9BUE9TVFJPUEhFX01PREUgVU1TR1BBVF9BUE9TX0RPVUJM
RV9PUFRJT05BTAorI2VuZGlmCisKIC8qIGkxOG4gbGlicmFyeSBzd2l0Y2hlcyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qKgpAQCAt
MjI4LDQgKzM4OCwyNSBAQAogIyAgIGRlZmluZSBVQ09ORklHX05PX1NFUlZJQ0UgMQogI2VuZGlm
CiAKKy8qKgorICogXGRlZiBVQ09ORklHX0hBVkVfUEFSU0VBTExJTlBVVAorICogVGhpcyBzd2l0
Y2ggdHVybnMgb24gdGhlICJwYXJzZSBhbGwgaW5wdXQiIGF0dHJpYnV0ZS4gQmluYXJ5IGluY29t
cGF0aWJsZS4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVQ09ORklHX0hBVkVfUEFS
U0VBTExJTlBVVAorIyAgIGRlZmluZSBVQ09ORklHX0hBVkVfUEFSU0VBTExJTlBVVCAxCisjZW5k
aWYKKworCisvKioKKyAqIFxkZWYgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5CisgKiBUaGlz
IHN3aXRjaCB0dXJucyBvbiBvdGhlciBmb3JtYXR0aW5nIGZhc3RwYXRocy4gQmluYXJ5IGluY29t
cGF0aWJsZSBpbiBvYmplY3QgRGVjaW1hbEZvcm1hdCBhbmQgRGVjaW1hbEZvcm1hdFN5bWJvbHMK
KyAqCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNf
NDkKKyMgICBkZWZpbmUgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5IDEKKyNlbmRpZgorCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZGF0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWRhdC5oCmluZGV4IGQ0ODBj
N2RhNTE0NzViMzkzY2UwZDNjOWI3MjJjYzZkYzRkM2QwYmIuLmU4ZjA2NjRlNTkxNWNiZjc0YWIx
NTJkMDEyMjA5MWIwMTY1MWRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
Y3UvdW5pY29kZS91ZGF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2Rl
L3VkYXQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICog
Q29weXJpZ2h0IChDKSAxOTk2LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAgKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICovCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAidW5p
Y29kZS9sb2NhbHBvaW50ZXIuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VjYWwuaCIKICNpbmNsdWRl
ICJ1bmljb2RlL3VudW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkaXNwbGF5Y29udGV4dC5oIgog
LyoqCiAgKiBcZmlsZQogICogXGJyaWVmIEMgQVBJOiBEYXRlRm9ybWF0CkBAIC0xMzAsNiArMTMx
LDE2IEBACiAgKiAgIDxsaT4gICBBbGlnbiBhbnkgcGFydGljdWxhciBmaWVsZCwgb3IgZmluZCBv
dXQgd2hlcmUgaXQgaXMgZm9yIHNlbGVjdGlvbgogICogICAgICAgICAgb24gdGhlIHNjcmVlbi4K
ICAqIDwvdWw+CisgKiA8cD48c3Ryb25nPkRhdGUgYW5kIFRpbWUgUGF0dGVybnM6PC9zdHJvbmc+
PC9wPgorICoKKyAqIDxwPkRhdGUgYW5kIHRpbWUgZm9ybWF0cyBhcmUgc3BlY2lmaWVkIGJ5IDxl
bT5kYXRlIGFuZCB0aW1lIHBhdHRlcm48L2VtPiBzdHJpbmdzLgorICogV2l0aGluIGRhdGUgYW5k
IHRpbWUgcGF0dGVybiBzdHJpbmdzLCBhbGwgdW5xdW90ZWQgQVNDSUkgbGV0dGVycyBbQS1aYS16
XSBhcmUgcmVzZXJ2ZWQKKyAqIGFzIHBhdHRlcm4gbGV0dGVycyByZXByZXNlbnRpbmcgY2FsZW5k
YXIgZmllbGRzLiA8Y29kZT5VRGF0ZUZvcm1hdDwvY29kZT4gc3VwcG9ydHMKKyAqIHRoZSBkYXRl
IGFuZCB0aW1lIGZvcm1hdHRpbmcgYWxnb3JpdGhtIGFuZCBwYXR0ZXJuIGxldHRlcnMgZGVmaW5l
ZCBieQorICogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIz
NS1kYXRlcy5odG1sI0RhdGVfRmllbGRfU3ltYm9sX1RhYmxlIj5VVFMjMzUKKyAqIFVuaWNvZGUg
TG9jYWxlIERhdGEgTWFya3VwIExhbmd1YWdlIChMRE1MKTwvYT4gYW5kIGZ1cnRoZXIgZG9jdW1l
bnRlZCBmb3IgSUNVIGluIHRoZQorICogPGEgaHJlZj0iaHR0cHM6Ly9zaXRlcy5nb29nbGUuY29t
L3NpdGUvaWN1cHJvamVjdHVzZXJndWlkZS9mb3JtYXRwYXJzZS9kYXRldGltZT9wbGk9MSNUT0Mt
RGF0ZS1GaWVsZC1TeW1ib2wtVGFibGUiPklDVQorICogVXNlciBHdWlkZTwvYT4uPC9wPgogICov
CiAKIC8qKiBBIGRhdGUgZm9ybWF0dGVyLgpAQCAtMTY3LDkxICsxNzgsMzE0IEBAIHR5cGVkZWYg
ZW51bSBVRGF0ZUZvcm1hdFN0eWxlIHsKICAgICAKICAgICAvKiogTm8gc3R5bGUgKi8KICAgICBV
REFUX05PTkUgPSAtMSwKLSAgICAvKiogZm9yIGludGVybmFsIEFQSSB1c2Ugb25seSAqLwotICAg
IFVEQVRfSUdOT1JFID0gLTIKIAorICAgIC8qKgorICAgICAqIFVzZSB0aGUgcGF0dGVybiBnaXZl
biBpbiB0aGUgcGFyYW1ldGVyIHRvIHVkYXRfb3BlbgorICAgICAqIEBzZWUgdWRhdF9vcGVuCisg
ICAgICogQHN0YWJsZSBJQ1UgNTAKKyAgICAgKi8KKyAgICBVREFUX1BBVFRFUk4gPSAtMiwKKwor
ICAgIC8qKiBAaW50ZXJuYWwgYWxpYXMgdG8gVURBVF9QQVRURVJOICovCisgICAgVURBVF9JR05P
UkUgPSBVREFUX1BBVFRFUk4KIH0gVURhdGVGb3JtYXRTdHlsZTsKIAorLyogU2tlbGV0b25zIGZv
ciBkYXRlcy4gKi8KIAogLyoqCi0gKiBAewotICogQmVsb3cgYXJlIGEgc2V0IG9mIHByZS1kZWZp
bmVkIHNrZWxldG9ucy4KLSAqCi0gKiA8UD4KLSAqIEEgc2tlbGV0b24gCi0gKiA8b2w+Ci0gKiA8
bGk+Ci0gKiAgICBvbmx5IGtlZXBzIHRoZSBmaWVsZCBwYXR0ZXJuIGxldHRlciBhbmQgaWdub3Jl
cyBhbGwgb3RoZXIgcGFydHMgCi0gKiAgICBpbiBhIHBhdHRlcm4sIHN1Y2ggYXMgc3BhY2UsIHB1
bmN0dWF0aW9ucywgYW5kIHN0cmluZyBsaXRlcmFscy4KLSAqIDwvbGk+Ci0gKiA8bGk+Ci0gKiAg
ICBoaWRlcyB0aGUgb3JkZXIgb2YgZmllbGRzLiAKLSAqIDwvbGk+Ci0gKiA8bGk+Ci0gKiAgICBt
aWdodCBoaWRlIGEgZmllbGQncyBwYXR0ZXJuIGxldHRlciBsZW5ndGguCi0gKgotICogICAgRm9y
IHRob3NlIG5vbi1kaWdpdCBjYWxlbmRhciBmaWVsZHMsIHRoZSBwYXR0ZXJuIGxldHRlciBsZW5n
dGggaXMgCi0gKiAgICBpbXBvcnRhbnQsIHN1Y2ggYXMgTU1NLCBNTU1NLCBhbmQgTU1NTU07IEVF
RSBhbmQgRUVFRSwgCi0gKiAgICBhbmQgdGhlIGZpZWxkJ3MgcGF0dGVybiBsZXR0ZXIgbGVuZ3Ro
IGlzIGhvbm9yZWQuCi0gKiAgICAKLSAqICAgIEZvciB0aGUgZGlnaXQgY2FsZW5kYXIgZmllbGRz
LCAgc3VjaCBhcyBNIG9yIE1NLCBkIG9yIGRkLCB5eSBvciB5eXl5LCAKLSAqICAgIHRoZSBmaWVs
ZCBwYXR0ZXJuIGxlbmd0aCBpcyBpZ25vcmVkIGFuZCB0aGUgYmVzdCBtYXRjaCwgd2hpY2ggaXMg
ZGVmaW5lZCAKLSAqICAgIGluIGRhdGUgdGltZSBwYXR0ZXJucywgd2lsbCBiZSByZXR1cm5lZCB3
aXRob3V0IGhvbm9yIHRoZSBmaWVsZCBwYXR0ZXJuCi0gKiAgICBsZXR0ZXIgbGVuZ3RoIGluIHNr
ZWxldG9uLgotICogPC9saT4KLSAqIDwvb2w+Ci0gKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tl
bGV0b24gd2l0aCB5ZWFyLgogICogQHN0YWJsZSBJQ1UgNC4wCiAgKi8KLQotI2RlZmluZSBVREFU
X01JTlVURV9TRUNPTkQgICAgICAgICAgICAgICJtcyIKLSNkZWZpbmUgVURBVF9IT1VSMjRfTUlO
VVRFICAgICAgICAgICAgICAiSG0iCi0jZGVmaW5lIFVEQVRfSE9VUjI0X01JTlVURV9TRUNPTkQg
ICAgICAgIkhtcyIgICAgICAKLSNkZWZpbmUgVURBVF9IT1VSX01JTlVURV9TRUNPTkQgICAgICAg
ICAiaG1zIgotI2RlZmluZSBVREFUX1NUQU5EQUxPTkVfTU9OVEggICAgICAgICAgICJMTExMIgot
I2RlZmluZSBVREFUX0FCQlJfU1RBTkRBTE9ORV9NT05USCAgICAgICJMTEwiCi0jZGVmaW5lIFVE
QVRfWUVBUl9RVUFSVEVSICAgICAgICAgICAgICAgInlRUVEiCi0jZGVmaW5lIFVEQVRfWUVBUl9B
QkJSX1FVQVJURVIgICAgICAgICAgInlRIgotCi0vKiogQH0gKi8KLQorI2RlZmluZSBVREFUX1lF
QVIgICAgICAgICAgICAgICAgICAgICAgICJ5IgorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisv
KioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggcXVhcnRlci4KKyAqIEBkcmFm
dCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX1FVQVJURVIgICAgICAgICAgICAgICAgICAgICJR
UVFRIgogLyoqCi0gKiBAewotICogQmVsb3cgYXJlIGEgc2V0IG9mIHByZS1kZWZpbmVkIHNrZWxl
dG9ucyB0aGF0IAotICogaGF2ZSBwcmUtZGVmaW5lZCBpbnRlcnZhbCBwYXR0ZXJucyBpbiByZXNv
dXJjZSBmaWxlcy4KLSAqIFVzZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIHVzZSB0aGVtIGluIGRhdGUg
aW50ZXJ2YWwgZm9ybWF0IGZhY3RvcnkgbWV0aG9kcy4KLSAqIAorICogQ29uc3RhbnQgZm9yIGRh
dGUgc2tlbGV0b24gd2l0aCBhYmJyZXZpYXRlZCBxdWFydGVyLgorICogQGRyYWZ0IElDVSA1MQor
ICovCisjZGVmaW5lIFVEQVRfQUJCUl9RVUFSVEVSICAgICAgICAgICAgICAgIlFRUSIKKyNlbmRp
ZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2Vs
ZXRvbiB3aXRoIHllYXIgYW5kIHF1YXJ0ZXIuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2Rl
ZmluZSBVREFUX1lFQVJfUVVBUlRFUiAgICAgICAgICAgICAgICJ5UVFRUSIKKy8qKgorICogQ29u
c3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCB5ZWFyIGFuZCBhYmJyZXZpYXRlZCBxdWFydGVy
LgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9ZRUFSX0FCQlJfUVVBUlRF
UiAgICAgICAgICAieVFRUSIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0
aCBtb250aC4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRfTU9OVEggICAg
ICAgICAgICAgICAgICAgICAgIk1NTU0iCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxl
dG9uIHdpdGggYWJicmV2aWF0ZWQgbW9udGguCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2Rl
ZmluZSBVREFUX0FCQlJfTU9OVEggICAgICAgICAgICAgICAgICJNTU0iCisvKioKKyAqIENvbnN0
YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggbnVtZXJpYyBtb250aC4KKyAqIEBzdGFibGUgSUNV
IDQuMAorICovCisjZGVmaW5lIFVEQVRfTlVNX01PTlRIICAgICAgICAgICAgICAgICAgIk0iCisv
KioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciBhbmQgbW9udGguCiAg
KiBAc3RhYmxlIElDVSA0LjAKICAqLwotI2RlZmluZSBVREFUX0hPVVJfTUlOVVRFICAgICAgICAg
ICAgICAgICJobSIKLSNkZWZpbmUgVURBVF9ZRUFSICAgICAgICAgICAgICAgICAgICAgICAieSIK
LSNkZWZpbmUgVURBVF9EQVkgICAgICAgICAgICAgICAgICAgICAgICAiZCIKLSNkZWZpbmUgVURB
VF9OVU1fTU9OVEhfV0VFS0RBWV9EQVkgICAgICAiTUVkIgotI2RlZmluZSBVREFUX1lFQVJfTlVN
X01PTlRIICAgICAgICAgICAgICJ5TSIgICAgICAgICAgICAgIAotI2RlZmluZSBVREFUX05VTV9N
T05USF9EQVkgICAgICAgICAgICAgICJNZCIKLSNkZWZpbmUgVURBVF9ZRUFSX05VTV9NT05USF9X
RUVLREFZX0RBWSAieU1FZCIKLSNkZWZpbmUgVURBVF9BQkJSX01PTlRIX1dFRUtEQVlfREFZICAg
ICAiTU1NRWQiCiAjZGVmaW5lIFVEQVRfWUVBUl9NT05USCAgICAgICAgICAgICAgICAgInlNTU1N
IgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIgYW5kIGFiYnJl
dmlhdGVkIG1vbnRoLgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KICNkZWZpbmUgVURBVF9ZRUFS
X0FCQlJfTU9OVEggICAgICAgICAgICAieU1NTSIKLSNkZWZpbmUgVURBVF9NT05USF9EQVkgICAg
ICAgICAgICAgICAgICAiTU1NTWQiCi0jZGVmaW5lIFVEQVRfQUJCUl9NT05USF9EQVkgICAgICAg
ICAgICAgIk1NTWQiIAotI2RlZmluZSBVREFUX01PTlRIX1dFRUtEQVlfREFZICAgICAgICAgICJN
TU1NRUVFRWQiCi0jZGVmaW5lIFVEQVRfWUVBUl9BQkJSX01PTlRIX1dFRUtEQVlfREFZICJ5TU1N
RWQiIAotI2RlZmluZSBVREFUX1lFQVJfTU9OVEhfV0VFS0RBWV9EQVkgICAgICJ5TU1NTUVFRUVk
IgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIgYW5kIG51bWVy
aWMgbW9udGguCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX1lFQVJfTlVN
X01PTlRIICAgICAgICAgICAgICJ5TSIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0
b24gd2l0aCBkYXkuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0RBWSAg
ICAgICAgICAgICAgICAgICAgICAgICJkIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2Vs
ZXRvbiB3aXRoIHllYXIsIG1vbnRoLCBhbmQgZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMg
ZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3Rh
YmxlIElDVSA0LjAKKyAqLwogI2RlZmluZSBVREFUX1lFQVJfTU9OVEhfREFZICAgICAgICAgICAg
ICJ5TU1NTWQiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciwg
YWJicmV2aWF0ZWQgbW9udGgsIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRl
ICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUg
SUNVIDQuMAorICovCiAjZGVmaW5lIFVEQVRfWUVBUl9BQkJSX01PTlRIX0RBWSAgICAgICAgInlN
TU1kIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIsIG51bWVy
aWMgbW9udGgsIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwg
ZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAor
ICovCiAjZGVmaW5lIFVEQVRfWUVBUl9OVU1fTU9OVEhfREFZICAgICAgICAgInlNZCIKLSNkZWZp
bmUgVURBVF9OVU1fTU9OVEggICAgICAgICAgICAgICAgICAiTSIKLSNkZWZpbmUgVURBVF9BQkJS
X01PTlRIICAgICAgICAgICAgICAgICAiTU1NIgotI2RlZmluZSBVREFUX01PTlRIICAgICAgICAg
ICAgICAgICAgICAgICJNTU1NIgotI2RlZmluZSBVREFUX0hPVVJfTUlOVVRFX0dFTkVSSUNfVFog
ICAgICJobXYiCi0jZGVmaW5lIFVEQVRfSE9VUl9NSU5VVEVfVFogICAgICAgICAgICAgImhteiIK
LSNkZWZpbmUgVURBVF9IT1VSICAgICAgICAgICAgICAgICAgICAgICAiaCIKLSNkZWZpbmUgVURB
VF9IT1VSX0dFTkVSSUNfVFogICAgICAgICAgICAiaHYiCi0jZGVmaW5lIFVEQVRfSE9VUl9UWiAg
ICAgICAgICAgICAgICAgICAgImh6IgorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAq
IENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggd2Vla2RheS4KKyAqIEBkcmFmdCBJQ1Ug
NTEKKyAqLworI2RlZmluZSBVREFUX1dFRUtEQVkgICAgICAgICAgICAgICAgICAgICJFRUVFIgor
LyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGFiYnJldmlhdGVkIHdlZWtk
YXkuCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVURBVF9BQkJSX1dFRUtEQVkgICAg
ICAgICAgICAgICAiRSIKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworLyoqCisgKiBD
b25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIsIG1vbnRoLCB3ZWVrZGF5LCBhbmQg
ZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsg
em9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBV
REFUX1lFQVJfTU9OVEhfV0VFS0RBWV9EQVkgICAgICJ5TU1NTUVFRUVkIgorLyoqCisgKiBDb25z
dGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIsIGFiYnJldmlhdGVkIG1vbnRoLCB3ZWVr
ZGF5LCBhbmQgZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUg
KyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLwor
I2RlZmluZSBVREFUX1lFQVJfQUJCUl9NT05USF9XRUVLREFZX0RBWSAieU1NTUVkIiAKKy8qKgor
ICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCB5ZWFyLCBudW1lcmljIG1vbnRoLCB3
ZWVrZGF5LCBhbmQgZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRh
dGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAq
LworI2RlZmluZSBVREFUX1lFQVJfTlVNX01PTlRIX1dFRUtEQVlfREFZICJ5TUVkIgorLyoqCisg
KiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGxvbmcgbW9udGggYW5kIGRheS4KKyAq
IFVzZWQgaW4gY29tYmluYXRpb25zIGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9y
IHRpbWUgKyB6b25lLgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9NT05U
SF9EQVkgICAgICAgICAgICAgICAgICAiTU1NTWQiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRl
IHNrZWxldG9uIHdpdGggYWJicmV2aWF0ZWQgbW9udGggYW5kIGRheS4KKyAqIFVzZWQgaW4gY29t
YmluYXRpb25zIGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25l
LgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9BQkJSX01PTlRIX0RBWSAg
ICAgICAgICAgICAiTU1NZCIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0
aCBudW1lcmljIG1vbnRoIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsg
dGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNV
IDQuMAorICovCisjZGVmaW5lIFVEQVRfTlVNX01PTlRIX0RBWSAgICAgICAgICAgICAgIk1kIgor
LyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIG1vbnRoLCB3ZWVrZGF5LCBh
bmQgZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1l
ICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmlu
ZSBVREFUX01PTlRIX1dFRUtEQVlfREFZICAgICAgICAgICJNTU1NRUVFRWQiCisvKioKKyAqIENv
bnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggYWJicmV2aWF0ZWQgbW9udGgsIHdlZWtkYXks
IGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSArIHRp
bWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVm
aW5lIFVEQVRfQUJCUl9NT05USF9XRUVLREFZX0RBWSAgICAgIk1NTUVkIgorLyoqCisgKiBDb25z
dGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIG51bWVyaWMgbW9udGgsIHdlZWtkYXksIGFuZCBk
YXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6
b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVE
QVRfTlVNX01PTlRIX1dFRUtEQVlfREFZICAgICAgIk1FZCIKIAotLyoqIEB9ICovCisvKiBTa2Vs
ZXRvbnMgZm9yIHRpbWVzLiAqLwogCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9u
IHdpdGggaG91ciwgd2l0aCB0aGUgbG9jYWxlJ3MgcHJlZmVycmVkIGhvdXIgZm9ybWF0ICgxMiBv
ciAyNCkuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0hPVVIgICAgICAg
ICAgICAgICAgICAgICAgICJqIgorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAqIENv
bnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggaG91ciBpbiAyNC1ob3VyIHByZXNlbnRhdGlv
bi4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX0hPVVIyNCAgICAgICAgICAg
ICAgICAgICAgICJIIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIG1p
bnV0ZS4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX01JTlVURSAgICAgICAg
ICAgICAgICAgICAgICJtIgorI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisvKioKKyAq
IENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggaG91ciBhbmQgbWludXRlLCB3aXRoIHRo
ZSBsb2NhbGUncyBwcmVmZXJyZWQgaG91ciBmb3JtYXQgKDEyIG9yIDI0KS4KKyAqIFVzZWQgaW4g
Y29tYmluYXRpb25zIGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6
b25lLgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9IT1VSX01JTlVURSAg
ICAgICAgICAgICAgICAiam0iCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdp
dGggaG91ciBhbmQgbWludXRlIGluIDI0LWhvdXIgcHJlc2VudGF0aW9uLgorICogVXNlZCBpbiBj
b21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpv
bmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0hPVVIyNF9NSU5VVEUg
ICAgICAgICAgICAgICJIbSIKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBDb25z
dGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHNlY29uZC4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAq
LworI2RlZmluZSBVREFUX1NFQ09ORCAgICAgICAgICAgICAgICAgICAgICJzIgorI2VuZGlmICAv
KiBVX0hJREVfRFJBRlRfQVBJICovCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9u
IHdpdGggaG91ciwgbWludXRlLCBhbmQgc2Vjb25kLAorICogd2l0aCB0aGUgbG9jYWxlJ3MgcHJl
ZmVycmVkIGhvdXIgZm9ybWF0ICgxMiBvciAyNCkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBk
YXRlICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFi
bGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRfSE9VUl9NSU5VVEVfU0VDT05EICAgICAgICAg
ImptcyIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBob3VyLCBtaW51
dGUsIGFuZCBzZWNvbmQgaW4KKyAqIDI0LWhvdXIgcHJlc2VudGF0aW9uLgorICogVXNlZCBpbiBj
b21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpv
bmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0hPVVIyNF9NSU5VVEVf
U0VDT05EICAgICAgICJIbXMiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdp
dGggbWludXRlIGFuZCBzZWNvbmQuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGlt
ZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQu
MAorICovCisjZGVmaW5lIFVEQVRfTUlOVVRFX1NFQ09ORCAgICAgICAgICAgICAgIm1zIgorCisv
KiBTa2VsZXRvbnMgZm9yIHRpbWUgem9uZXMuICovCisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQ
SQorLyoqCisgKiBDb25zdGFudCBmb3IgPGk+Z2VuZXJpYyBsb2NhdGlvbiBmb3JtYXQ8L2k+LCBz
dWNoIGFzIExvcyBBbmdlbGVzIFRpbWU7CisgKiB1c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsg
dGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5p
Y29kZS5vcmcvcmVwb3J0cy90cjM1LyNEYXRlX0Zvcm1hdF9QYXR0ZXJucyI+TERNTCBEYXRlIEZv
cm1hdCBQYXR0ZXJuczwvYT4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3Jl
cG9ydHMvdHIzNS8jVGltZV9ab25lX0ZhbGxiYWNrIj5MRE1MIFRpbWUgWm9uZSBGYWxsYmFjazwv
YT4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX0xPQ0FUSU9OX1RaICJWVlZW
IgorLyoqCisgKiBDb25zdGFudCBmb3IgPGk+Z2VuZXJpYyBub24tbG9jYXRpb24gZm9ybWF0PC9p
Piwgc3VjaCBhcyBQYWNpZmljIFRpbWU7CisgKiB1c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsg
dGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5p
Y29kZS5vcmcvcmVwb3J0cy90cjM1LyNEYXRlX0Zvcm1hdF9QYXR0ZXJucyI+TERNTCBEYXRlIEZv
cm1hdCBQYXR0ZXJuczwvYT4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3Jl
cG9ydHMvdHIzNS8jVGltZV9ab25lX0ZhbGxiYWNrIj5MRE1MIFRpbWUgWm9uZSBGYWxsYmFjazwv
YT4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX0dFTkVSSUNfVFogInZ2dnYi
CisvKioKKyAqIENvbnN0YW50IGZvciA8aT5nZW5lcmljIG5vbi1sb2NhdGlvbiBmb3JtYXQ8L2k+
LCBhYmJyZXZpYXRlZCBpZiBwb3NzaWJsZSwgc3VjaCBhcyBQVDsKKyAqIHVzZWQgaW4gY29tYmlu
YXRpb25zIGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc2VlIDxhIGhy
ZWY9Imh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvI0RhdGVfRm9ybWF0X1BhdHRlcm5z
Ij5MRE1MIERhdGUgRm9ybWF0IFBhdHRlcm5zPC9hPgorICogQHNlZSA8YSBocmVmPSJodHRwOi8v
dW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNUaW1lX1pvbmVfRmFsbGJhY2siPkxETUwgVGltZSBa
b25lIEZhbGxiYWNrPC9hPgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfQUJC
Ul9HRU5FUklDX1RaICJ2IgorLyoqCisgKiBDb25zdGFudCBmb3IgPGk+c3BlY2lmaWMgbm9uLWxv
Y2F0aW9uIGZvcm1hdDwvaT4sIHN1Y2ggYXMgUGFjaWZpYyBEYXlsaWdodCBUaW1lOworICogdXNl
ZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAq
IEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jRGF0ZV9Gb3Jt
YXRfUGF0dGVybnMiPkxETUwgRGF0ZSBGb3JtYXQgUGF0dGVybnM8L2E+CisgKiBAc2VlIDxhIGhy
ZWY9Imh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvI1RpbWVfWm9uZV9GYWxsYmFjayI+
TERNTCBUaW1lIFpvbmUgRmFsbGJhY2s8L2E+CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZp
bmUgVURBVF9TUEVDSUZJQ19UWiAienp6eiIKKy8qKgorICogQ29uc3RhbnQgZm9yIDxpPnNwZWNp
ZmljIG5vbi1sb2NhdGlvbiBmb3JtYXQ8L2k+LCBhYmJyZXZpYXRlZCBpZiBwb3NzaWJsZSwgc3Vj
aCBhcyBQRFQ7CisgKiB1c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSArIHpvbmUsIG9y
IHRpbWUgKyB6b25lLgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0
cy90cjM1LyNEYXRlX0Zvcm1hdF9QYXR0ZXJucyI+TERNTCBEYXRlIEZvcm1hdCBQYXR0ZXJuczwv
YT4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVGlt
ZV9ab25lX0ZhbGxiYWNrIj5MRE1MIFRpbWUgWm9uZSBGYWxsYmFjazwvYT4KKyAqIEBkcmFmdCBJ
Q1UgNTEKKyAqLworI2RlZmluZSBVREFUX0FCQlJfU1BFQ0lGSUNfVFogInoiCisvKioKKyAqIENv
bnN0YW50IGZvciA8aT5sb2NhbGl6ZWQgR01UL1VUQyBmb3JtYXQ8L2k+LCBzdWNoIGFzIEdNVCs4
OjAwIG9yIEhQRy04OjAwOworICogdXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUgKyB6
b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3Jn
L3JlcG9ydHMvdHIzNS8jRGF0ZV9Gb3JtYXRfUGF0dGVybnMiPkxETUwgRGF0ZSBGb3JtYXQgUGF0
dGVybnM8L2E+CisgKiBAc2VlIDxhIGhyZWY9Imh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3Ry
MzUvI1RpbWVfWm9uZV9GYWxsYmFjayI+TERNTCBUaW1lIFpvbmUgRmFsbGJhY2s8L2E+CisgKiBA
ZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVURBVF9BQkJSX1VUQ19UWiAiWlpaWiIKKyNlbmRp
ZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisvKiBkZXByZWNhdGVkIHNrZWxldG9uIGNvbnN0
YW50cyAqLworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSSAKKy8qKgorICogQ29uc3Rh
bnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBzdGFuZGFsb25lIG1vbnRoLgorICogQGRlcHJlY2F0
ZWQgSUNVIDUwIFVzZSBVREFUX01PTlRIIGluc3RlYWQuCisgKi8KKyNkZWZpbmUgVURBVF9TVEFO
REFMT05FX01PTlRIICAgICAgICAgICAiTExMTCIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUg
c2tlbGV0b24gd2l0aCBzdGFuZGFsb25lIGFiYnJldmlhdGVkIG1vbnRoLgorICogQGRlcHJlY2F0
ZWQgSUNVIDUwIFVzZSBVREFUX0FCQlJfTU9OVEggaW5zdGVhZC4KKyAqLworI2RlZmluZSBVREFU
X0FCQlJfU1RBTkRBTE9ORV9NT05USCAgICAgICJMTEwiCisKKy8qKgorICogQ29uc3RhbnQgZm9y
IGRhdGUgc2tlbGV0b24gd2l0aCBob3VyLCBtaW51dGUsIGFuZCBnZW5lcmljIHRpbWV6b25lLgor
ICogQGRlcHJlY2F0ZWQgSUNVIDUwIFVzZSBpbnN0ZWFkIFVEQVRfSE9VUl9NSU5VVEUgVURBVF9B
QkJSX0dFTkVSSUNfVFogb3Igc29tZSBvdGhlciB0aW1lem9uZSBwcmVzZW50YXRpb24uCisgKi8K
KyNkZWZpbmUgVURBVF9IT1VSX01JTlVURV9HRU5FUklDX1RaICAgICAiam12IgorLyoqCisgKiBD
b25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGhvdXIsIG1pbnV0ZSwgYW5kIHRpbWV6b25l
LgorICogQGRlcHJlY2F0ZWQgSUNVIDUwIFVzZSBpbnN0ZWFkIFVEQVRfSE9VUl9NSU5VVEUgVURB
VF9BQkJSX1NQRUNJRklDX1RaIG9yIHNvbWUgb3RoZXIgdGltZXpvbmUgcHJlc2VudGF0aW9uLgor
ICovCisjZGVmaW5lIFVEQVRfSE9VUl9NSU5VVEVfVFogICAgICAgICAgICAgImpteiIKKy8qKgor
ICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBob3VyIGFuZCBnZW5lcmljIHRpbWV6
b25lLgorICogQGRlcHJlY2F0ZWQgSUNVIDUwIFVzZSBpbnN0ZWFkIFVEQVRfSE9VUiBVREFUX0FC
QlJfR0VORVJJQ19UWiBvciBzb21lIG90aGVyIHRpbWV6b25lIHByZXNlbnRhdGlvbi4KKyAqLwor
I2RlZmluZSBVREFUX0hPVVJfR0VORVJJQ19UWiAgICAgICAgICAgICJqdiIKKy8qKgorICogQ29u
c3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBob3VyIGFuZCB0aW1lem9uZS4KKyAqIEBkZXBy
ZWNhdGVkIElDVSA1MCBVc2UgaW5zdGVhZCBVREFUX0hPVVIgVURBVF9BQkJSX1NQRUNJRklDX1Ra
IG9yIHNvbWUgb3RoZXIgdGltZXpvbmUgcHJlc2VudGF0aW9uLgorICovCisjZGVmaW5lIFVEQVRf
SE9VUl9UWiAgICAgICAgICAgICAgICAgICAgImp6IgorI2VuZGlmICAvKiBVX0hJREVfREVQUkVD
QVRFRF9BUEkgKi8KIAogLyoqCiAgKiBGaWVsZFBvc2l0aW9uIGFuZCBVRmllbGRQb3NpdGlvbiBz
ZWxlY3RvcnMgZm9yIGZvcm1hdCBmaWVsZHMKQEAgLTMyMiw2ICs1NTYsMTQgQEAgdHlwZWRlZiBl
bnVtIFVEYXRlRm9ybWF0RmllbGQgewogICAgIC8qKgogICAgICAqIEZpZWxkUG9zaXRpb24gYW5k
IFVGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnUycgZmllbGQgYWxpZ25tZW50LAogICAgICAq
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIFVDQUxfTUlMTElTRUNPTkQgZmllbGQuCisgICAgICoKKyAg
ICAgKiBOb3RlOiBUaW1lIGZvcm1hdHMgdGhhdCB1c2UgJ1MnIGNhbiBkaXNwbGF5IGEgbWF4aW11
bSBvZiB0aHJlZQorICAgICAqIHNpZ25pZmljYW50IGRpZ2l0cyBmb3IgZnJhY3Rpb25hbCBzZWNv
bmRzLCBjb3JyZXNwb25kaW5nIHRvIG1pbGxpc2Vjb25kCisgICAgICogcmVzb2x1dGlvbiBhbmQg
YSBmcmFjdGlvbmFsIHNlY29uZHMgc3ViLXBhdHRlcm4gb2YgU1NTLiBJZiB0aGUKKyAgICAgKiBz
dWItcGF0dGVybiBpcyBTIG9yIFNTLCB0aGUgZnJhY3Rpb25hbCBzZWNvbmRzIHZhbHVlIHdpbGwg
YmUgdHJ1bmNhdGVkCisgICAgICogKG5vdCByb3VuZGVkKSB0byB0aGUgbnVtYmVyIG9mIGRpc3Bs
YXkgcGxhY2VzIHNwZWNpZmllZC4gSWYgdGhlCisgICAgICogZnJhY3Rpb25hbCBzZWNvbmRzIHN1
Yi1wYXR0ZXJuIGlzIGxvbmdlciB0aGFuIFNTUywgdGhlIGFkZGl0aW9uYWwKKyAgICAgKiBkaXNw
bGF5IHBsYWNlcyB3aWxsIGJlIGZpbGxlZCB3aXRoIHplcm9zLgogICAgICAqIEBzdGFibGUgSUNV
IDMuMAogICAgICAqLwogICAgIFVEQVRfRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQgPSA4LApAQCAt
NDg0LDcgKzcyNiw0MiBAQCB0eXBlZGVmIGVudW0gVURhdGVGb3JtYXRGaWVsZCB7CiAgICAgICov
CiAgICAgVURBVF9USU1FWk9ORV9TUEVDSUFMX0ZJRUxEID0gMjksCiAKLSAgIC8qKgorICAgIC8q
KgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICJVIiBmaWVsZCBhbGlnbm1lbnQs
CisgICAgICogY29ycmVzcG9uZGluZyB0byBjeWNsaWMgeWVhciBuYW1lcy4gVGhpcyBpcyBpbXBs
ZW1lbnRlZAorICAgICAqIHVzaW5nIHRoZSB7QGxpbmsgI1VDQUxfWUVBUn0gZmllbGQuIFRoaXMg
ZGlzcGxheXMKKyAgICAgKiB0aGUgY3ljbGljIHllYXIgbmFtZSwgaWYgYXZhaWxhYmxlLgorICAg
ICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgVURBVF9ZRUFSX05BTUVfRklFTEQgPSAz
MCwKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoqCisgICAgICogRmllbGRQb3Np
dGlvbiBzZWxlY3RvciBmb3IgJ08nIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25k
aW5nIHRvIHRoZSBVQ0FMX1pPTkVfT0ZGU0VUIGFuZCBVQ0FMX0RTVF9PRkZTRVRmaWVsZHMuCisg
ICAgICogVGhpcyBkaXNwbGF5cyB0aGUgbG9jYWxpemVkIEdNVCBmb3JtYXQuCisgICAgICogQGRy
YWZ0IElDVSA1MQorICAgICAqLworICAgIFVEQVRfVElNRVpPTkVfTE9DQUxJWkVEX0dNVF9PRkZT
RVRfRklFTEQgPSAzMSwKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3Ig
Zm9yICdYJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgVUNB
TF9aT05FX09GRlNFVCBhbmQgVUNBTF9EU1RfT0ZGU0VUZmllbGRzLgorICAgICAqIFRoaXMgZGlz
cGxheXMgdGhlIElTTyA4NjAxIGxvY2FsIHRpbWUgb2Zmc2V0IGZvcm1hdCBvciBVVEMgaW5kaWNh
dG9yICgiWiIpLgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVREFUX1RJTUVa
T05FX0lTT19GSUVMRCA9IDMyLAorCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxl
Y3RvciBmb3IgJ3gnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRo
ZSBVQ0FMX1pPTkVfT0ZGU0VUIGFuZCBVQ0FMX0RTVF9PRkZTRVRmaWVsZHMuCisgICAgICogVGhp
cyBkaXNwbGF5cyB0aGUgSVNPIDg2MDEgbG9jYWwgdGltZSBvZmZzZXQgZm9ybWF0LgorICAgICAq
IEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVREFUX1RJTUVaT05FX0lTT19MT0NBTF9GSUVM
RCA9IDMzLAorI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisKKyAgICAvKioKICAgICAg
KiBOdW1iZXIgb2YgRmllbGRQb3NpdGlvbiBhbmQgVUZpZWxkUG9zaXRpb24gc2VsZWN0b3JzIGZv
cgogICAgICAqIERhdGVGb3JtYXQgYW5kIFVEYXRlRm9ybWF0LgogICAgICAqIFZhbGlkIHNlbGVj
dG9ycyByYW5nZSBmcm9tIDAgdG8gVURBVF9GSUVMRF9DT1VOVC0xLgpAQCAtNDkyLDcgKzc2OSw3
IEBAIHR5cGVkZWYgZW51bSBVRGF0ZUZvcm1hdEZpZWxkIHsKICAgICAgKiBpbiB0aGUgZnV0dXJl
LgogICAgICAqIEBzdGFibGUgSUNVIDMuMAogICAgICAqLwotICAgIFVEQVRfRklFTERfQ09VTlQg
PSAzMAorICAgIFVEQVRfRklFTERfQ09VTlQgPSAzNAogCiB9IFVEYXRlRm9ybWF0RmllbGQ7CiAK
QEAgLTUxNSwxMCArNzkyLDE3IEBAIHVkYXRfdG9DYWxlbmRhckRhdGVGaWVsZChVRGF0ZUZvcm1h
dEZpZWxkIGZpZWxkKTsKICAqIGFuZCB0byBwYXJzZSBkYXRlcyBpbiBjYWxscyB0byB7QGxpbmsg
I3VkYXRfcGFyc2UgfS4KICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHN0eWxlIHVzZWQgdG8gZm9y
bWF0IHRpbWVzOyBvbmUgb2YgVURBVF9GVUxMLCBVREFUX0xPTkcsCiAgKiBVREFUX01FRElVTSwg
VURBVF9TSE9SVCwgVURBVF9ERUZBVUxULCBvciBVREFUX05PTkUgKHJlbGF0aXZlIHRpbWUgc3R5
bGVzCi0gKiBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQpCisgKiBhcmUgbm90IGN1cnJlbnRs
eSBzdXBwb3J0ZWQpLgorICogV2hlbiB0aGUgcGF0dGVybiBwYXJhbWV0ZXIgaXMgdXNlZCwgcGFz
cyBpbiBVREFUX1BBVFRFUk4gZm9yIGJvdGggdGltZVN0eWxlIGFuZCBkYXRlU3R5bGUuCiAgKiBA
cGFyYW0gZGF0ZVN0eWxlIFRoZSBzdHlsZSB1c2VkIHRvIGZvcm1hdCBkYXRlczsgb25lIG9mIFVE
QVRfRlVMTCwgVURBVF9MT05HLAogICogVURBVF9NRURJVU0sIFVEQVRfU0hPUlQsIFVEQVRfREVG
QVVMVCwgVURBVF9GVUxMX1JFTEFUSVZFLCBVREFUX0xPTkdfUkVMQVRJVkUsCi0gKiBVREFUX01F
RElVTV9SRUxBVElWRSwgVURBVF9TSE9SVF9SRUxBVElWRSwgb3IgVURBVF9OT05FCisgKiBVREFU
X01FRElVTV9SRUxBVElWRSwgVURBVF9TSE9SVF9SRUxBVElWRSwgb3IgVURBVF9OT05FLgorICog
V2hlbiB0aGUgcGF0dGVybiBwYXJhbWV0ZXIgaXMgdXNlZCwgcGFzcyBpbiBVREFUX1BBVFRFUk4g
Zm9yIGJvdGggdGltZVN0eWxlIGFuZCBkYXRlU3R5bGUuCisgKiBBcyBjdXJyZW50bHkgaW1wbGVt
ZW50ZWQsCisgKiByZWxhdGl2ZSBkYXRlIGZvcm1hdHRpbmcgb25seSBhZmZlY3RzIGEgbGltaXRl
ZCByYW5nZSBvZiBjYWxlbmRhciBkYXlzIGJlZm9yZSBvcgorICogYWZ0ZXIgdGhlIGN1cnJlbnQg
ZGF0ZSwgYmFzZWQgb24gdGhlIENMRFIgJmx0O2ZpZWxkIHR5cGU9ImRheSImZ3Q7LyZsdDtyZWxh
dGl2ZSZndDsgZGF0YTogRm9yCisgKiBleGFtcGxlLCBpbiBFbmdsaXNoLCAiWWVzdGVyZGF5Iiwg
IlRvZGF5IiwgYW5kICJUb21vcnJvdyIuIE91dHNpZGUgb2YgdGhpcyByYW5nZSwKKyAqIGRhdGVz
IGFyZSBmb3JtYXR0ZWQgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9uLXJlbGF0aXZlIHN0eWxl
LgogICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGZvcm1hdHRpbmcg
Y29udmVudGlvbnMKICAqIEBwYXJhbSB0eklEIEEgdGltZXpvbmUgSUQgc3BlY2lmeWluZyB0aGUg
dGltZXpvbmUgdG8gdXNlLiAgSWYgMCwgdXNlCiAgKiB0aGUgZGVmYXVsdCB0aW1lem9uZS4KQEAg
LTU1MCw2ICs4MzQsNjEgQEAgdWRhdF9vcGVuKFVEYXRlRm9ybWF0U3R5bGUgIHRpbWVTdHlsZSwK
IFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAogdWRhdF9jbG9zZShVRGF0ZUZvcm1hdCogZm9ybWF0
KTsKIAorCisvKioKKyAqIERhdGVGb3JtYXQgYm9vbGVhbiBhdHRyaWJ1dGVzCisgKiBAaW50ZXJu
YWwgSUNVIHRlY2hub2xvZ3kgcHJldmlldworICovCit0eXBlZGVmIGVudW0gVURhdGVGb3JtYXRC
b29sZWFuQXR0cmlidXRlIHsKKyAgICAvKioKKyAgICAgKiBpbmRpY2F0ZXMgd2hldGhlciB3aGl0
ZXNwYWNlIGlzIGFsbG93ZWQuIEluY2x1ZGVzIHRyYWlsaW5nIGRvdCB0b2xlcmFuY2UuCisgICAg
ICogQGludGVybmFsIElDVSB0ZWNobm9sb2d5IHByZXZpZXcKKyAgICAgKi8KKyAgICBVREFUX1BB
UlNFX0FMTE9XX1dISVRFU1BBQ0UsCisgICAgLyoqCisgICAgICogaW5kaWNhdGVzIHRvbGVyYW5j
ZSBvZiBudW1lcmljIGRhdGEgd2hlbiBTdHJpbmcgZGF0YSBtYXkgYmUgYXNzdW1lZC4gZWc6IFVE
QVRfWUVBUl9OQU1FX0ZJRUxELAorICAgICAqIAkJVURBVF9TVEFOREFMT05FX01PTlRIX0ZJRUxE
LCBVREFUX0RBWV9PRl9XRUVLX0ZJRUxECisgICAgICogQGludGVybmFsIElDVSB0ZWNobm9sb2d5
IHByZXZpZXcKKyAgICAgKi8KKyAgICBVREFUX1BBUlNFX0FMTE9XX05VTUVSSUMsCisgICAgLyoq
CisgICAgICogY291bnQgYm9vbGVhbiBkYXRlIGZvcm1hdCBjb25zdGFudHMKKyAgICAgKiBAaW50
ZXJuYWwgSUNVIHRlY2hub2xvZ3kgcHJldmlldworICAgICAqLworICAgIFVEQVRfQk9PTEVBTl9B
VFRSSUJVVEVfQ09VTlQKK30gVURhdGVGb3JtYXRCb29sZWFuQXR0cmlidXRlOworCisjaWZuZGVm
IFVfSElERV9JTlRFUk5BTF9BUEkKKy8qKgorICogR2V0IGEgYm9vbGVhbiBhdHRyaWJ1dGUgYXNz
b2NpYXRlZCB3aXRoIGEgVURhdGVGb3JtYXQuCisgKiBBbiBleGFtcGxlIHdvdWxkIGJlIGEgdHJ1
ZSB2YWx1ZSBmb3IgYSBrZXkgb2YgVURBVF9QQVJTRV9BTExPV19XSElURVNQQUNFIGluZGljYXRp
bmcgYWxsb3dpbmcgd2hpdGVzcGFjZSBsZW5pZW5jeS4KKyAqIElmIHRoZSBmb3JtYXR0ZXIgZG9l
cyBub3QgdW5kZXJzdGFuZCB0aGUgYXR0cmlidXRlLCAtMSBpcyByZXR1cm5lZC4KKyAqIEBwYXJh
bSBmbXQgVGhlIGZvcm1hdHRlciB0byBxdWVyeS4KKyAqIEBwYXJhbSBhdHRyIFRoZSBhdHRyaWJ1
dGUgdG8gcXVlcnk7IGUuZy4gVURBVF9QQVJTRV9BTExPV19XSElURVNQQUNFLgorICogQHBhcmFt
IHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMK
KyAqIEByZXR1cm4gVGhlIHZhbHVlIG9mIGF0dHIuCisgKiBAaW50ZXJuYWwgdGVjaG5vbG9neSBw
cmV2aWV3CisgKi8KK1VfSU5URVJOQUwgVUJvb2wgVV9FWFBPUlQyCit1ZGF0X2dldEJvb2xlYW5B
dHRyaWJ1dGUoY29uc3QgVURhdGVGb3JtYXQqIGZtdCwgVURhdGVGb3JtYXRCb29sZWFuQXR0cmli
dXRlIGF0dHIsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKy8qKgorICogU2V0IGEgYm9vbGVhbiBh
dHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIGEgVURhdGVGb3JtYXQuCisgKiBBbiBleGFtcGxlIG9m
IGEgYm9vbGVhbiBhdHRyaWJ1dGUgaXMgcGFyc2UgbGVuaWVuY3kgY29udHJvbC4gIElmIHRoZSBm
b3JtYXR0ZXIgZG9lcyBub3QgdW5kZXJzdGFuZAorICogdGhlIGF0dHJpYnV0ZSwgdGhlIGNhbGwg
aXMgaWdub3JlZC4KKyAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byBzZXQuCisgKiBAcGFy
YW0gYXR0ciBUaGUgYXR0cmlidXRlIHRvIHNldDsgb25lIG9mIFVEQVRfUEFSU0VfQUxMT1dfV0hJ
VEVTUEFDRSBvciBVREFUX1BBUlNFX0FMTE9XX05VTUVSSUMKKyAqIEBwYXJhbSBuZXdWYWx1ZSBU
aGUgbmV3IHZhbHVlIG9mIGF0dHIuCisgKiBAcGFyYW0gc3RhdHVzIEEgcG9pbnRlciB0byBhbiBV
RXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycworICogQGludGVybmFsIElDVSB0ZWNobm9s
b2d5IHByZXZpZXcKKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMgordWRhdF9zZXRCb29s
ZWFuQXR0cmlidXRlKFVEYXRlRm9ybWF0ICpmbXQsIFVEYXRlRm9ybWF0Qm9vbGVhbkF0dHJpYnV0
ZSBhdHRyLCBVQm9vbCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworI2VuZGlmICAvKiBVX0hJREVf
SU5URVJOQUxfQVBJICovCisKKworCiAjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKIAogVV9OQU1F
U1BBQ0VfQkVHSU4KQEAgLTYwOSw3ICs5NDgsMTkgQEAgdWRhdF9mb3JtYXQoICAgIGNvbnN0ICAg
IFVEYXRlRm9ybWF0KiAgICBmb3JtYXQsCiAKIC8qKgogKiBQYXJzZSBhIHN0cmluZyBpbnRvIGFu
IGRhdGUvdGltZSB1c2luZyBhIFVEYXRlRm9ybWF0LgotKiBUaGUgZGF0ZSB3aWxsIGJlIHBhcnNl
ZCB1c2luZyB0aGUgY29udmVudGlvbnMgc3BlY2lmaWVkIGluIHtAbGluayAjdWRhdF9vcGVuIH0K
KyogVGhlIGRhdGUgd2lsbCBiZSBwYXJzZWQgdXNpbmcgdGhlIGNvbnZlbnRpb25zIHNwZWNpZmll
ZCBpbiB7QGxpbmsgI3VkYXRfb3BlbiB9LgorKiA8UD4KKyogTm90ZSB0aGF0IHRoZSBub3JtYWwg
ZGF0ZSBmb3JtYXRzIGFzc29jaWF0ZWQgd2l0aCBzb21lIGNhbGVuZGFycyAtIHN1Y2gKKyogYXMg
dGhlIENoaW5lc2UgbHVuYXIgY2FsZW5kYXIgLSBkbyBub3Qgc3BlY2lmeSBlbm91Z2ggZmllbGRz
IHRvIGVuYWJsZQorKiBkYXRlcyB0byBiZSBwYXJzZWQgdW5hbWJpZ3VvdXNseS4gSW4gdGhlIGNh
c2Ugb2YgdGhlIENoaW5lc2UgbHVuYXIKKyogY2FsZW5kYXIsIHdoaWxlIHRoZSB5ZWFyIHdpdGhp
biB0aGUgY3VycmVudCA2MC15ZWFyIGN5Y2xlIGlzIHNwZWNpZmllZCwKKyogdGhlIG51bWJlciBv
ZiBzdWNoIGN5Y2xlcyBzaW5jZSB0aGUgc3RhcnQgZGF0ZSBvZiB0aGUgY2FsZW5kYXIgKGluIHRo
ZQorKiBVQ0FMX0VSQSBmaWVsZCBvZiB0aGUgVUNhbGVuZGFyIG9iamVjdCkgaXMgbm90IG5vcm1h
bGx5IHBhcnQgb2YgdGhlIGZvcm1hdCwKKyogYW5kIHBhcnNpbmcgbWF5IGFzc3VtZSB0aGUgd3Jv
bmcgZXJhLiBGb3IgY2FzZXMgc3VjaCBhcyB0aGlzIGl0IGlzCisqIHJlY29tbWVuZGVkIHRoYXQg
Y2xpZW50cyBwYXJzZSB1c2luZyB1ZGF0X3BhcnNlQ2FsZW5kYXIgd2l0aCB0aGUgVUNhbGVuZGFy
CisqIHBhc3NlZCBpbiBzZXQgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgb3IgdG8gYSBkYXRlIHdpdGhp
biB0aGUgZXJhL2N5Y2xlIHRoYXQKKyogc2hvdWxkIGJlIGFzc3VtZWQgaWYgYWJzZW50IGluIHRo
ZSBmb3JtYXQuCisqCiAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBw
YXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHBhcnNlLgogKiBAcGFyYW0gdGV4dExlbmd0aCBUaGUgbGVu
Z3RoIG9mIHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KQEAgLTYyMSwxNyArOTcyLDI1
IEBAIHVkYXRfZm9ybWF0KCAgICBjb25zdCAgICBVRGF0ZUZvcm1hdCogICAgZm9ybWF0LAogKiBA
c3RhYmxlIElDVSAyLjAKICovCiBVX1NUQUJMRSBVRGF0ZSBVX0VYUE9SVDIgCi11ZGF0X3BhcnNl
KCAgICBjb25zdCAgICBVRGF0ZUZvcm1hdCogICAgZm9ybWF0LAotICAgICAgICAgICAgY29uc3Qg
ICAgVUNoYXIqICAgICAgICAgIHRleHQsCit1ZGF0X3BhcnNlKGNvbnN0ICAgIFVEYXRlRm9ybWF0
KiAgICBmb3JtYXQsCisgICAgICAgICAgIGNvbnN0ICAgIFVDaGFyKiAgICAgICAgICB0ZXh0LAog
ICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgdGV4dExlbmd0aCwKICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICpwYXJzZVBvcywKICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKICogUGFyc2UgYSBzdHJpbmcgaW50
byBhbiBkYXRlL3RpbWUgdXNpbmcgYSBVRGF0ZUZvcm1hdC4KLSogVGhlIGRhdGUgd2lsbCBiZSBw
YXJzZWQgdXNpbmcgdGhlIGNvbnZlbnRpb25zIHNwZWNpZmllZCBpbiB7QGxpbmsgI3VkYXRfb3Bl
biB9CisqIFRoZSBkYXRlIHdpbGwgYmUgcGFyc2VkIHVzaW5nIHRoZSBjb252ZW50aW9ucyBzcGVj
aWZpZWQgaW4ge0BsaW5rICN1ZGF0X29wZW4gfS4KICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0
dGVyIHRvIHVzZS4KLSogQHBhcmFtIGNhbGVuZGFyIFRoZSBjYWxlbmRhciBpbiB3aGljaCB0byBz
dG9yZSB0aGUgcGFyc2VkIGRhdGEuCisqIEBwYXJhbSBjYWxlbmRhciBBIGNhbGVuZGFyIHNldCBv
biBpbnB1dCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSB1c2VkIGZvcgorKiAgICAgICAgICAg
ICAgICAgbWlzc2luZyB2YWx1ZXMgaW4gdGhlIGRhdGUvdGltZSBzdHJpbmcgYmVpbmcgcGFyc2Vk
LCBhbmQgc2V0CisqICAgICAgICAgICAgICAgICBvbiBvdXRwdXQgdG8gdGhlIHBhcnNlZCBkYXRl
L3RpbWUuIFdoZW4gdGhlIGNhbGVuZGFyIHR5cGUgaXMKKyogICAgICAgICAgICAgICAgIGRpZmZl
cmVudCBmcm9tIHRoZSBpbnRlcm5hbCBjYWxlbmRhciBoZWxkIGJ5IHRoZSBVRGF0ZUZvcm1hdAor
KiAgICAgICAgICAgICAgICAgaW5zdGFuY2UsIHRoZSBpbnRlcm5hbCBjYWxlbmRhciB3aWxsIGJl
IGNsb25lZCB0byBhIHdvcmsKKyogICAgICAgICAgICAgICAgIGNhbGVuZGFyIHNldCB0byB0aGUg
c2FtZSBtaWxsaXNlY29uZHMgYW5kIHRpbWUgem9uZSBhcyB0aGlzCisqICAgICAgICAgICAgICAg
ICBjYWxlbmRhciBwYXJhbWV0ZXIsIGZpZWxkIHZhbHVlcyB3aWxsIGJlIHBhcnNlZCBiYXNlZCBv
biB0aGUKKyogICAgICAgICAgICAgICAgIHdvcmsgY2FsZW5kYXIsIHRoZW4gdGhlIHJlc3VsdCAo
bWlsbGlzZWNvbmRzIGFuZCB0aW1lIHpvbmUpCisqICAgICAgICAgICAgICAgICB3aWxsIGJlIHNl
dCBpbiB0aGlzIGNhbGVuZGFyLgogKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBwYXJzZS4KICog
QHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0ZXh0LCBvciAtMSBpZiBudWxsLXRlcm1p
bmF0ZWQuCiAqIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgMCwgb24gaW5wdXQgYSBwb2ludGVyIHRv
IGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdoaWNoCkBAIC04MjEsOSArMTE4
MCwxMiBAQCB0eXBlZGVmIGVudW0gVURhdGVGb3JtYXRTeW1ib2xUeXBlIHsKICAgICBVREFUX01P
TlRIUywKICAgICAvKiogVGhlIHNob3J0IG1vbnRoIG5hbWVzLCBmb3IgZXhhbXBsZSBGZWIuICov
CiAgICAgVURBVF9TSE9SVF9NT05USFMsCi0gICAgLyoqIFRoZSB3ZWVrZGF5IG5hbWVzLCBmb3Ig
ZXhhbXBsZSBNb25kYXkgKi8KKyAgICAvKiogVGhlIENMRFItc3R5bGUgZm9ybWF0ICJ3aWRlIiB3
ZWVrZGF5IG5hbWVzLCBmb3IgZXhhbXBsZSBNb25kYXkgKi8KICAgICBVREFUX1dFRUtEQVlTLAot
ICAgIC8qKiBUaGUgc2hvcnQgd2Vla2RheSBuYW1lcywgZm9yIGV4YW1wbGUgTW9uLiAqLworICAg
IC8qKgorICAgICAqIFRoZSBDTERSLXN0eWxlIGZvcm1hdCAiYWJicmV2aWF0ZWQiIChub3QgInNo
b3J0Iikgd2Vla2RheSBuYW1lcywgZm9yIGV4YW1wbGUgIk1vbi4iCisgICAgICogRm9yIHRoZSBD
TERSLXN0eWxlIGZvcm1hdCAic2hvcnQiIHdlZWtkYXkgbmFtZXMsIHVzZSBVREFUX1NIT1JURVJf
V0VFS0RBWVMuCisgICAgICovCiAgICAgVURBVF9TSE9SVF9XRUVLREFZUywKICAgICAvKiogVGhl
IEFNL1BNIG5hbWVzLCBmb3IgZXhhbXBsZSBBTSAqLwogICAgIFVEQVRfQU1fUE1TLApAQCAtODMz
LDE1ICsxMTk1LDIwIEBAIHR5cGVkZWYgZW51bSBVRGF0ZUZvcm1hdFN5bWJvbFR5cGUgewogICAg
IFVEQVRfRVJBX05BTUVTLAogICAgIC8qKiBUaGUgbmFycm93IG1vbnRoIG5hbWVzLCBmb3IgZXhh
bXBsZSBGICovCiAgICAgVURBVF9OQVJST1dfTU9OVEhTLAotICAgIC8qKiBUaGUgbmFycm93IHdl
ZWtkYXkgbmFtZXMsIGZvciBleGFtcGxlIE4gKi8KKyAgICAvKiogVGhlIENMRFItc3R5bGUgZm9y
bWF0ICJuYXJyb3ciIHdlZWtkYXkgbmFtZXMsIGZvciBleGFtcGxlICJNIiAqLwogICAgIFVEQVRf
TkFSUk9XX1dFRUtEQVlTLAogICAgIC8qKiBTdGFuZGFsb25lIGNvbnRleHQgdmVyc2lvbnMgb2Yg
bW9udGhzICovCiAgICAgVURBVF9TVEFOREFMT05FX01PTlRIUywKICAgICBVREFUX1NUQU5EQUxP
TkVfU0hPUlRfTU9OVEhTLAogICAgIFVEQVRfU1RBTkRBTE9ORV9OQVJST1dfTU9OVEhTLAotICAg
IC8qKiBTdGFuZGFsb25lIGNvbnRleHQgdmVyc2lvbnMgb2Ygd2Vla2RheXMgKi8KKyAgICAvKiog
VGhlIENMRFItc3R5bGUgc3RhbmQtYWxvbmUgIndpZGUiIHdlZWtkYXkgbmFtZXMgKi8KICAgICBV
REFUX1NUQU5EQUxPTkVfV0VFS0RBWVMsCisgICAgLyoqCisgICAgICogVGhlIENMRFItc3R5bGUg
c3RhbmQtYWxvbmUgImFiYnJldmlhdGVkIiAobm90ICJzaG9ydCIpIHdlZWtkYXkgbmFtZXMuCisg
ICAgICogRm9yIHRoZSBDTERSLXN0eWxlIHN0YW5kLWFsb25lICJzaG9ydCIgd2Vla2RheSBuYW1l
cywgdXNlIFVEQVRfU1RBTkRBTE9ORV9TSE9SVEVSX1dFRUtEQVlTLgorICAgICAqLwogICAgIFVE
QVRfU1RBTkRBTE9ORV9TSE9SVF9XRUVLREFZUywKKyAgICAvKiogVGhlIENMRFItc3R5bGUgc3Rh
bmQtYWxvbmUgIm5hcnJvdyIgd2Vla2RheSBuYW1lcyAqLwogICAgIFVEQVRfU1RBTkRBTE9ORV9O
QVJST1dfV0VFS0RBWVMsCiAgICAgLyoqIFRoZSBxdWFydGVycywgZm9yIGV4YW1wbGUgMXN0IFF1
YXJ0ZXIgKi8KICAgICBVREFUX1FVQVJURVJTLApAQCAtODQ5LDggKzEyMTYsMjIgQEAgdHlwZWRl
ZiBlbnVtIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSB7CiAgICAgVURBVF9TSE9SVF9RVUFSVEVSUywK
ICAgICAvKiogU3RhbmRhbG9uZSBjb250ZXh0IHZlcnNpb25zIG9mIHF1YXJ0ZXJzICovCiAgICAg
VURBVF9TVEFOREFMT05FX1FVQVJURVJTLAotICAgIFVEQVRfU1RBTkRBTE9ORV9TSE9SVF9RVUFS
VEVSUwotCisgICAgVURBVF9TVEFOREFMT05FX1NIT1JUX1FVQVJURVJTLAorI2lmbmRlZiBVX0hJ
REVfRFJBRlRfQVBJCisgICAgLyoqCisgICAgICogVGhlIENMRFItc3R5bGUgc2hvcnQgd2Vla2Rh
eSBuYW1lcywgZS5nLiAiU3UiLCBNbyIsIGV0Yy4KKyAgICAgKiBUaGVzZSBhcmUgbmFtZWQgIlNI
T1JURVIiIHRvIGNvbnRyYXN0IHdpdGggdGhlIGNvbnN0YW50cyB1c2luZyBfU0hPUlRfCisgICAg
ICogYWJvdmUsIHdoaWNoIGFjdHVhbGx5IGdldCB0aGUgQ0xEUi1zdHlsZSAqYWJicmV2aWF0ZWQq
IHZlcnNpb25zIG9mIHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgbmFtZXMuCisgICAgICogQGRy
YWZ0IElDVSA1MQorICAgICAqLworICAgIFVEQVRfU0hPUlRFUl9XRUVLREFZUywKKyAgICAvKioK
KyAgICAgKiBTdGFuZGFsb25lIHZlcnNpb24gb2YgVURBVF9TSE9SVEVSX1dFRUtEQVlTLgorICAg
ICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVREFUX1NUQU5EQUxPTkVfU0hPUlRFUl9X
RUVLREFZUworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCiB9IFVEYXRlRm9ybWF0U3lt
Ym9sVHlwZTsKIAogc3RydWN0IFVEYXRlRm9ybWF0U3ltYm9sczsKQEAgLTkzNyw2ICsxMzE4LDMz
IEBAIHVkYXRfZ2V0TG9jYWxlQnlUeXBlKGNvbnN0IFVEYXRlRm9ybWF0ICpmbXQsCiAgICAgICAg
ICAgICAgICAgICAgICBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUqIHN0YXR1cyk7IAogCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8q
KgorICogU2V0IGEgcGFydGljdWxhciBVRGlzcGxheUNvbnRleHQgdmFsdWUgaW4gdGhlIGZvcm1h
dHRlciwgc3VjaCBhcworICogVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1NUQU5EQUxPTkUu
CisgKiBAcGFyYW0gZm10IFRoZSBmb3JtYXR0ZXIgZm9yIHdoaWNoIHRvIHNldCBhIFVEaXNwbGF5
Q29udGV4dCB2YWx1ZS4KKyAqIEBwYXJhbSB2YWx1ZSBUaGUgVURpc3BsYXlDb250ZXh0IHZhbHVl
IHRvIHNldC4KKyAqIEBwYXJhbSBzdGF0dXMgQSBwb2ludGVyIHRvIGFuIFVFcnJvckNvZGUgdG8g
cmVjZWl2ZSBhbnkgZXJyb3JzCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgdm9pZCBV
X0VYUE9SVDIKK3VkYXRfc2V0Q29udGV4dChVRGF0ZUZvcm1hdCogZm10LCBVRGlzcGxheUNvbnRl
eHQgdmFsdWUsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKy8qKgorICogR2V0IHRoZSBmb3JtYXR0
ZXIncyBVRGlzcGxheUNvbnRleHQgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgVURpc3BsYXlDb250
ZXh0VHlwZSwKKyAqIHN1Y2ggYXMgVURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTi4KKyAqIEBw
YXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byBxdWVyeS4KKyAqIEBwYXJhbSB0eXBlIFRoZSBVRGlz
cGxheUNvbnRleHRUeXBlIHdob3NlIHZhbHVlIHRvIHJldHVybgorICogQHBhcmFtIHN0YXR1cyBB
IHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKKyAqIEByZXR1
cm4gVGhlIFVEaXNwbGF5Q29udGV4dFZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUuCisgKiBA
ZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVURpc3BsYXlDb250ZXh0IFVfRVhQT1JUMgordWRh
dF9nZXRDb250ZXh0KFVEYXRlRm9ybWF0KiBmbXQsIFVEaXNwbGF5Q29udGV4dFR5cGUgdHlwZSwg
VUVycm9yQ29kZSogc3RhdHVzKTsKKworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisK
KyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAqIEV4dHJhY3QgdGhlIGRhdGUgcGF0
dGVybiBmcm9tIGEgVURhdGVGb3JtYXQgc2V0IGZvciByZWxhdGl2ZSBkYXRlIGZvcm1hdHRpbmcu
CiAqIFRoZSBwYXR0ZXJuIHdpbGwgZm9sbG93IHRoZSBwYXR0ZXJuIHN5bnRheCBydWxlcy4KQEAg
LTk5MSw2ICsxMzk5LDM0IEBAIHVkYXRfYXBwbHlQYXR0ZXJuUmVsYXRpdmUoVURhdGVGb3JtYXQg
KmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgdGltZVBhdHRl
cm5MZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICpzdGF0dXMp
OwogCisvKioKKyAqIEBpbnRlcm5hbAorICogQHNlZSB1ZGF0X29wZW4KKyAqLwordHlwZWRlZiBV
RGF0ZUZvcm1hdCogKFVfRVhQT1JUMiAqVURhdGVGb3JtYXRPcGVuZXIpIChVRGF0ZUZvcm1hdFN0
eWxlICB0aW1lU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVURhdGVGb3JtYXRTdHlsZSAgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICps
b2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVUNoYXIgICAgICAgKnR6SUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgdHpJRExlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBV
Q2hhciAgICAgICAqcGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICBwYXR0ZXJuTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
ICAgICAgICpzdGF0dXMpOworCisvKioKKyAqIFJlZ2lzdGVyIGEgcHJvdmlkZXIgZmFjdG9yeQor
ICogQGludGVybmFsIElDVSA0OQorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyCit1ZGF0
X3JlZ2lzdGVyT3BlbmVyKFVEYXRlRm9ybWF0T3BlbmVyIG9wZW5lciwgVUVycm9yQ29kZSAqc3Rh
dHVzKTsKKworLyoqCisgKiBVbi1SZWdpc3RlciBhIHByb3ZpZGVyIGZhY3RvcnkKKyAqIEBpbnRl
cm5hbCBJQ1UgNDkKKyAqLworVV9JTlRFUk5BTCBVRGF0ZUZvcm1hdE9wZW5lciBVX0VYUE9SVDIK
K3VkYXRfdW5yZWdpc3Rlck9wZW5lcihVRGF0ZUZvcm1hdE9wZW5lciBvcGVuZXIsIFVFcnJvckNv
ZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKwogCiAjZW5k
aWYgLyogI2lmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VkYXRwZy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ljdS91bmljb2RlL3VkYXRwZy5oCmluZGV4IDNkYzdlODlmMmRmYjY0MDIyMGYzNTcwODgz
NThiNmQ5YzU3OGViMGUuLjdlOGNhNDcyNzQ0MjdhZmYyZDM5OWE3ZWZjZTBmNzU3ODgyOTMzZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZGF0cGcuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWRhdHBnLmgKQEAgLTEsNyAr
MSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykg
MjAwNy0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0
IChDKSAyMDA3LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKQEAgLTIzLDcgKzIzLDcgQEAKIAogLyoqCiAgKiBcZmlsZQotICogXGJyaWVm
IEMgQVBJOiBXcmFwcGVyIGZvciBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgKHVuaWNvZGUvZHRw
dG5nZW4uaCkuCisgKiBcYnJpZWYgQyBBUEk6IFdyYXBwZXIgZm9yIGljdTo6RGF0ZVRpbWVQYXR0
ZXJuR2VuZXJhdG9yICh1bmljb2RlL2R0cHRuZ2VuLmgpLgogICoKICAqIFVEYXRlVGltZVBhdHRl
cm5HZW5lcmF0b3IgcHJvdmlkZXMgZmxleGlibGUgZ2VuZXJhdGlvbiBvZiBkYXRlIGZvcm1hdCBw
YXR0ZXJucywgCiAgKiBsaWtlICJ5eS1NTS1kZCIuIFRoZSB1c2VyIGNhbiBidWlsZCB1cCB0aGUg
Z2VuZXJhdG9yIGJ5IGFkZGluZyBzdWNjZXNzaXZlIApAQCAtOTksMTAgKzk5LDEyIEBAIHR5cGVk
ZWYgZW51bSBVRGF0ZVRpbWVQYXR0ZXJuTWF0Y2hPcHRpb25zIHsKICAgICBVREFUUEdfTUFUQ0hf
Tk9fT1BUSU9OUyA9IDAsCiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgIFVEQVRQR19N
QVRDSF9IT1VSX0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX0hPVVJfRklFTEQsCisjaWZuZGVm
IFVfSElERV9JTlRFUk5BTF9BUEkKICAgICAvKiogQGludGVybmFsIElDVSA0LjQgKi8KICAgICBV
REFUUEdfTUFUQ0hfTUlOVVRFX0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX01JTlVURV9GSUVM
RCwKICAgICAvKiogQGludGVybmFsIElDVSA0LjQgKi8KICAgICBVREFUUEdfTUFUQ0hfU0VDT05E
X0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX1NFQ09ORF9GSUVMRCwKKyNlbmRpZiAgLyogVV9I
SURFX0lOVEVSTkFMX0FQSSAqLwogICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVREFU
UEdfTUFUQ0hfQUxMX0ZJRUxEU19MRU5HVEggPSAoMSA8PCBVREFUUEdfRklFTERfQ09VTlQpIC0g
MQogfSBVRGF0ZVRpbWVQYXR0ZXJuTWF0Y2hPcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VkaXNwbGF5Y29udGV4dC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ljdS91bmljb2RlL3VkaXNwbGF5Y29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZWQ0
MGQ3NDhhOTY2YjhlNTcxZjk1ZTc1Njk5NDg0OWJkMjRhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWRpc3BsYXljb250ZXh0LmgKQEAgLTAs
MCArMSwxMjQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVESVNQTEFZQ09OVEVYVF9ICisjZGVmaW5l
IFVESVNQTEFZQ09OVEVYVF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisjaWYg
IVVDT05GSUdfTk9fRk9STUFUVElORworCisvKiBEb250IGhpZGUgd2l0aCAjaWZuZGVmIFVfSElE
RV9EUkFGVF9BUEksIG5lZWRlZCBieSB2aXJ0dWFsIG1ldGhvZHMgKi8KKy8qKgorICogXGZpbGUK
KyAqIFxicmllZiBDIEFQSTogRGlzcGxheSBjb250ZXh0IHR5cGVzIChlbnVtIHZhbHVlcykKKyAq
LworCisvKioKKyAqIERpc3BsYXkgY29udGV4dCB0eXBlcywgZm9yIGdldHRpbmcgdmFsdWVzIG9m
IGEgcGFydGljdWxhciBzZXR0aW5nLgorICogTm90ZSwgdGhlIHNwZWNpZmljIG51bWVyaWMgdmFs
dWVzIGFyZSBpbnRlcm5hbCBhbmQgbWF5IGNoYW5nZS4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLwor
ZW51bSBVRGlzcGxheUNvbnRleHRUeXBlIHsKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAg
IC8qKgorICAgICAqIFR5cGUgdG8gcmV0cmlldmUgdGhlIGRpYWxlY3QgaGFuZGxpbmcgc2V0dGlu
ZywgZS5nLgorICAgICAqIFVESVNQQ1RYX1NUQU5EQVJEX05BTUVTIG9yIFVESVNQQ1RYX0RJQUxF
Q1RfTkFNRVMuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVESVNQQ1RYX1RZ
UEVfRElBTEVDVF9IQU5ETElORyA9IDAsCisgICAgLyoqCisgICAgICogVHlwZSB0byByZXRyaWV2
ZSB0aGUgY2FwaXRhbGl6YXRpb24gY29udGV4dCBzZXR0aW5nLCBlLmcuCisgICAgICogVURJU1BD
VFhfQ0FQSVRBTElaQVRJT05fTk9ORSwgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX01JRERM
RV9PRl9TRU5URU5DRSwKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfQkVHSU5O
SU5HX09GX1NFTlRFTkNFLCBldGMuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAg
IFVESVNQQ1RYX1RZUEVfQ0FQSVRBTElaQVRJT04gPSAxCisjZW5kaWYgLyogVV9ISURFX0RSQUZU
X0FQSSAqLworfTsKKy8qKgorKiAgQGRyYWZ0IElDVSA1MQorKi8KK3R5cGVkZWYgZW51bSBVRGlz
cGxheUNvbnRleHRUeXBlIFVEaXNwbGF5Q29udGV4dFR5cGU7CisKKy8qIERvbnQgaGlkZSB3aXRo
ICNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSSwgbmVlZGVkIGJ5IHZpcnR1YWwgbWV0aG9kcyAqLwor
LyoqCisgKiBEaXNwbGF5IGNvbnRleHQgc2V0dGluZ3MuCisgKiBOb3RlLCB0aGUgc3BlY2lmaWMg
bnVtZXJpYyB2YWx1ZXMgYXJlIGludGVybmFsIGFuZCBtYXkgY2hhbmdlLgorICogQGRyYWZ0IElD
VSA1MQorICovCitlbnVtIFVEaXNwbGF5Q29udGV4dCB7CisjaWZuZGVmIFVfSElERV9EUkFGVF9B
UEkKKyAgICAvKioKKyAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
ICAqIERJQUxFQ1RfSEFORExJTkcgY2FuIGJlIHNldCB0byBvbmUgb2YgVURJU1BDVFhfU1RBTkRB
UkRfTkFNRVMgb3IKKyAgICAgKiBVRElTUENUWF9ESUFMRUNUX05BTUVTLiBVc2UgVURpc3BsYXlD
b250ZXh0VHlwZSBVRElTUENUWF9UWVBFX0RJQUxFQ1RfSEFORExJTkcKKyAgICAgKiB0byBnZXQg
dGhlIHZhbHVlLgorICAgICAqLworICAgIC8qKgorICAgICAqIEEgcG9zc2libGUgc2V0dGluZyBm
b3IgRElBTEVDVF9IQU5ETElORzoKKyAgICAgKiB1c2Ugc3RhbmRhcmQgbmFtZXMgd2hlbiBnZW5l
cmF0aW5nIGEgbG9jYWxlIG5hbWUsCisgICAgICogZS5nLiBlbl9HQiBkaXNwbGF5cyBhcyAnRW5n
bGlzaCAoVW5pdGVkIEtpbmdkb20pJy4KKyAgICAgKiBAZHJhZnQgSUNVIDUxCisgICAgICovCisg
ICAgVURJU1BDVFhfU1RBTkRBUkRfTkFNRVMgPSAoVURJU1BDVFhfVFlQRV9ESUFMRUNUX0hBTkRM
SU5HPDw4KSArIDAsCisgICAgLyoqCisgICAgICogQSBwb3NzaWJsZSBzZXR0aW5nIGZvciBESUFM
RUNUX0hBTkRMSU5HOgorICAgICAqIHVzZSBkaWFsZWN0IG5hbWVzLCB3aGVuIGdlbmVyYXRpbmcg
YSBsb2NhbGUgbmFtZSwKKyAgICAgKiBlLmcuIGVuX0dCIGRpc3BsYXlzIGFzICdCcml0aXNoIEVu
Z2xpc2gnLgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVRElTUENUWF9ESUFM
RUNUX05BTUVTID0gKFVESVNQQ1RYX1RZUEVfRElBTEVDVF9IQU5ETElORzw8OCkgKyAxLAorICAg
IC8qKgorICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgICogQ0FQ
SVRBTElaQVRJT04gY2FuIGJlIHNldCB0byBvbmUgb2YgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05f
Tk9ORSwKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfTUlERExFX09GX1NFTlRF
TkNFLAorICAgICAqIFVESVNQQ1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9CRUdJTk5JTkdfT0ZfU0VO
VEVOQ0UsCisgICAgICogVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1VJX0xJU1RfT1JfTUVO
VSwgb3IKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfU1RBTkRBTE9ORS4KKyAg
ICAgKiBVc2UgVURpc3BsYXlDb250ZXh0VHlwZSBVRElTUENUWF9UWVBFX0NBUElUQUxJWkFUSU9O
IHRvIGdldCB0aGUgdmFsdWUuCisgICAgICovCisgICAgLyoqCisgICAgICogVGhlIGNhcGl0YWxp
emF0aW9uIGNvbnRleHQgdG8gYmUgdXNlZCBpcyB1bmtub3duICh0aGlzIGlzIHRoZSBkZWZhdWx0
IHZhbHVlKS4KKyAgICAgKiBAZHJhZnQgSUNVIDUxCisgICAgICovCisgICAgVURJU1BDVFhfQ0FQ
SVRBTElaQVRJT05fTk9ORSA9IChVRElTUENUWF9UWVBFX0NBUElUQUxJWkFUSU9OPDw4KSArIDAs
CisgICAgLyoqCisgICAgICogVGhlIGNhcGl0YWxpemF0aW9uIGNvbnRleHQgaWYgYSBkYXRlLCBk
YXRlIHN5bWJvbCBvciBkaXNwbGF5IG5hbWUgaXMgdG8gYmUKKyAgICAgKiBmb3JtYXR0ZWQgd2l0
aCBjYXBpdGFsaXphdGlvbiBhcHByb3ByaWF0ZSBmb3IgdGhlIG1pZGRsZSBvZiBhIHNlbnRlbmNl
LgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVRElTUENUWF9DQVBJVEFMSVpB
VElPTl9GT1JfTUlERExFX09GX1NFTlRFTkNFID0gKFVESVNQQ1RYX1RZUEVfQ0FQSVRBTElaQVRJ
T048PDgpICsgMSwKKyAgICAvKioKKyAgICAgKiBUaGUgY2FwaXRhbGl6YXRpb24gY29udGV4dCBp
ZiBhIGRhdGUsIGRhdGUgc3ltYm9sIG9yIGRpc3BsYXkgbmFtZSBpcyB0byBiZQorICAgICAqIGZv
cm1hdHRlZCB3aXRoIGNhcGl0YWxpemF0aW9uIGFwcHJvcHJpYXRlIGZvciB0aGUgYmVnaW5uaW5n
IG9mIGEgc2VudGVuY2UuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVESVNQ
Q1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9CRUdJTk5JTkdfT0ZfU0VOVEVOQ0UgPSAoVURJU1BDVFhf
VFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyAyLAorICAgIC8qKgorICAgICAqIFRoZSBjYXBpdGFs
aXphdGlvbiBjb250ZXh0IGlmIGEgZGF0ZSwgZGF0ZSBzeW1ib2wgb3IgZGlzcGxheSBuYW1lIGlz
IHRvIGJlCisgICAgICogZm9ybWF0dGVkIHdpdGggY2FwaXRhbGl6YXRpb24gYXBwcm9wcmlhdGUg
Zm9yIGEgdXNlci1pbnRlcmZhY2UgbGlzdCBvciBtZW51IGl0ZW0uCisgICAgICogQGRyYWZ0IElD
VSA1MQorICAgICAqLworICAgIFVESVNQQ1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9VSV9MSVNUX09S
X01FTlUgPSAoVURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyAzLAorICAgIC8qKgor
ICAgICAqIFRoZSBjYXBpdGFsaXphdGlvbiBjb250ZXh0IGlmIGEgZGF0ZSwgZGF0ZSBzeW1ib2wg
b3IgZGlzcGxheSBuYW1lIGlzIHRvIGJlCisgICAgICogZm9ybWF0dGVkIHdpdGggY2FwaXRhbGl6
YXRpb24gYXBwcm9wcmlhdGUgZm9yIHN0YW5kLWFsb25lIHVzYWdlIHN1Y2ggYXMgYW4KKyAgICAg
KiBpc29sYXRlZCBuYW1lIG9uIGEgY2FsZW5kYXIgcGFnZS4KKyAgICAgKiBAZHJhZnQgSUNVIDUx
CisgICAgICovCisgICAgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1NUQU5EQUxPTkUgPSAo
VURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyA0CisjZW5kaWYgLyogVV9ISURFX0RS
QUZUX0FQSSAqLworfTsKKy8qKgorKiAgQGRyYWZ0IElDVSA1MQorKi8KK3R5cGVkZWYgZW51bSBV
RGlzcGxheUNvbnRleHQgVURpc3BsYXlDb250ZXh0OworCisjZW5kaWYgLyogI2lmICFVQ09ORklH
X05PX0ZPUk1BVFRJTkcgKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaWN1L3VuaWNvZGUvdWVudW0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2MDhkZjhiODlmZDA3NjhkMTlmNWM2
ODguLjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZlMjJjNTEyYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZW51bS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZW51bS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBA
IC0xNjQsMTEgKzE2NCw0MyBAQCB1ZW51bV9yZXNldChVRW51bWVyYXRpb24qIGVuLCBVRXJyb3JD
b2RlKiBzdGF0dXMpOwogICogQHBhcmFtIGFkb3B0ZWQgdGhlIEMrKyBTdHJpbmdFbnVtZXJhdGlv
biB0byBiZSB3cmFwcGVkIGluIGEgVUVudW1lcmF0aW9uLgogICogQHBhcmFtIGVjIHRoZSBlcnJv
ciBjb2RlLgogICogQHJldHVybiBhIFVFbnVtZXJhdGlvbiB3cmFwcGluZyB0aGUgYWRvcHRlZCBT
dHJpbmdFbnVtZXJhdGlvbi4KLSAqIEBkcmFmdCBJQ1UgNC4yCisgKiBAc3RhYmxlIElDVSA0LjIK
ICAqLwotVV9DQVBJIFVFbnVtZXJhdGlvbiogVV9FWFBPUlQyCi11ZW51bV9vcGVuRnJvbVN0cmlu
Z0VudW1lcmF0aW9uKFVfTkFNRVNQQUNFX1FVQUxJRklFUiBTdHJpbmdFbnVtZXJhdGlvbiogYWRv
cHRlZCwgVUVycm9yQ29kZSogZWMpOworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIK
K3VlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24oaWN1OjpTdHJpbmdFbnVtZXJhdGlvbiog
YWRvcHRlZCwgVUVycm9yQ29kZSogZWMpOwogCiAjZW5kaWYKIAorLyoqCisgKiBHaXZlbiBhbiBh
cnJheSBvZiBjb25zdCBVQ2hhciogc3RyaW5ncywgcmV0dXJuIGEgVUVudW1lcmF0aW9uLiAgU3Ry
aW5nIHBvaW50ZXJzIGZyb20gMC4uY291bnQtMSBtdXN0IG5vdCBiZSBudWxsLgorICogRG8gbm90
IGZyZWUgb3IgbW9kaWZ5IGVpdGhlciB0aGUgc3RyaW5nIGFycmF5IG9yIHRoZSBjaGFyYWN0ZXJz
IGl0IHBvaW50cyB0byB1bnRpbCB0aGlzIG9iamVjdCBoYXMgYmVlbiBkZXN0cm95ZWQgd2l0aCB1
ZW51bV9jbG9zZS4KKyAqIFxzbmlwcGV0IHRlc3QvY2ludGx0c3QvdWVudW10c3QuYyB1ZW51bV9v
cGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24KKyAqIEBwYXJhbSBzdHJpbmdzIGFycmF5IG9mIGNv
bnN0IFVDaGFyKiBzdHJpbmdzIChlYWNoIG51bGwgdGVybWluYXRlZCkuIEFsbCBzdG9yYWdlIGlz
IG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgKiBAcGFyYW0gY291bnQgbGVuZ3RoIG9mIHRoZSBhcnJh
eQorICogQHBhcmFtIGVjIGVycm9yIGNvZGUKKyAqIEByZXR1cm4gdGhlIG5ldyBVRW51bWVyYXRp
b24gb2JqZWN0LiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdWVudW1fY2xvc2Ug
dG8gZnJlZSBtZW1vcnkuCisgKiBAc2VlIHVlbnVtX2Nsb3NlCisgKiBAc3RhYmxlIElDVSA1MAor
ICovCitVX1NUQUJMRSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlblVDaGFyU3Ry
aW5nc0VudW1lcmF0aW9uKGNvbnN0IFVDaGFyKiBjb25zdCBzdHJpbmdzW10sIGludDMyX3QgY291
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlKiBlYyk7CisK
Ky8qIE5vdGU6ICBuZXh0IGZ1bmN0aW9uIGlzIG5vdCBoaWRkZW4gYXMgZHJhZnQsIGFzIGl0IGlz
IHVzZWQgaW50ZXJuYWxseSAoaXQgd2FzIGZvcm1lcmx5IGFuIGludGVybmFsIGZ1bmN0aW9uKS4g
Ki8KKworLyoqCisgKiBHaXZlbiBhbiBhcnJheSBvZiBjb25zdCBjaGFyKiBzdHJpbmdzIChpbnZh
cmlhbnQgY2hhcnMgb25seSksIHJldHVybiBhIFVFbnVtZXJhdGlvbi4gIFN0cmluZyBwb2ludGVy
cyBmcm9tIDAuLmNvdW50LTEgbXVzdCBub3QgYmUgbnVsbC4KKyAqIERvIG5vdCBmcmVlIG9yIG1v
ZGlmeSBlaXRoZXIgdGhlIHN0cmluZyBhcnJheSBvciB0aGUgY2hhcmFjdGVycyBpdCBwb2ludHMg
dG8gdW50aWwgdGhpcyBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkIHdpdGggdWVudW1fY2xvc2Uu
CisgKiBcc25pcHBldCB0ZXN0L2NpbnRsdHN0L3VlbnVtdHN0LmMgdWVudW1fb3BlbkNoYXJTdHJp
bmdzRW51bWVyYXRpb24KKyAqIEBwYXJhbSBzdHJpbmdzIGFycmF5IG9mIGNoYXIqIHN0cmluZ3Mg
KGVhY2ggbnVsbCB0ZXJtaW5hdGVkKS4gIEFsbCBzdG9yYWdlIGlzIG93bmVkIGJ5IHRoZSBjYWxs
ZXIuCisgKiBAcGFyYW0gY291bnQgbGVuZ3RoIG9mIHRoZSBhcnJheQorICogQHBhcmFtIGVjIGVy
cm9yIGNvZGUKKyAqIEByZXR1cm4gdGhlIG5ldyBVRW51bWVyYXRpb24gb2JqZWN0LiBDYWxsZXIg
aXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdWVudW1fY2xvc2UgdG8gZnJlZSBtZW1vcnkKKyAq
IEBzZWUgdWVudW1fY2xvc2UKKyAqIEBzdGFibGUgSUNVIDUwCisgKi8KK1VfU1RBQkxFIFVFbnVt
ZXJhdGlvbiogVV9FWFBPUlQyCit1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlvbihjb25z
dCBjaGFyKiBjb25zdCBzdHJpbmdzW10sIGludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlKiBlYyk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vmb3JtYXR0YWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vmb3JtYXR0YWJsZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2
YzI1NzY2NTA0MTA0Y2QzM2ViOTYyMTc0MDk2NWMyYWUwYTMyMDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWZvcm1hdHRhYmxlLmgKQEAgLTAs
MCArMSwyODMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4KKyogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
CisqIEZpbGUgVUZPUk1BVFRBQkxFLkgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisq
ICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAyMDEzIEp1biA3ICBz
cmwgICAgICAgICBOZXcKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvKioKKyAqIFxm
aWxlCisgKiBcYnJpZWYgQyBBUEk6IFVGb3JtYXR0YWJsZSBpcyBhIHRoaW4gd3JhcHBlciBmb3Ig
cHJpbWl0aXZlIHR5cGVzIHVzZWQgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcuCisgKgorICog
VGhpcyBpcyBhIEMgaW50ZXJmYWNlIHRvIHRoZSBpY3U6OkZvcm1hdHRhYmxlIGNsYXNzLiBTdGF0
aWMgZnVuY3Rpb25zIG9uIHRoaXMgY2xhc3MgY29udmVydAorICogdG8gYW5kIGZyb20gdGhpcyBp
bnRlcmZhY2UgKHZpYSByZWludGVycHJldF9jYXN0KS4gIE5vdGUgdGhhdCBGb3JtYXR0YWJsZXMg
KGFuZCB0aHVzIFVGb3JtYXR0YWJsZXMpCisgKiBhcmUgbXV0YWJsZSwgYW5kIG1hbnkgb3BlcmF0
aW9ucyAoZXZlbiBnZXR0ZXJzKSBtYXkgYWN0dWFsbHkgbW9kaWZ5IHRoZSBpbnRlcm5hbCBzdGF0
ZS4gRm9yIHRoaXMKKyAqIHJlYXNvbiwgVUZvcm1hdHRhYmxlcyBhcmUgbm90IHRocmVhZCBzYWZl
LCBhbmQgc2hvdWxkIG5vdCBiZSBzaGFyZWQgYmV0d2VlbiB0aHJlYWRzLgorICoKKyAqIFNlZSB7
QGxpbmsgdW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlfSBmb3IgZXhhbXBsZSBjb2RlLgorICovCisK
KyNpZm5kZWYgVUZPUk1BVFRBQkxFX0gKKyNkZWZpbmUgVUZPUk1BVFRBQkxFX0gKKworI2luY2x1
ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKyNpZiAhVUNPTkZJR19OT19GT1JNQVRUSU5HCisKKyNp
Zm5kZWYgVV9ISURFX0RSQUZUX0FQSQorCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIu
aCIKKworLyoqCisgKiBFbnVtIGRlc2lnbmF0aW5nIHRoZSB0eXBlIG9mIGEgVUZvcm1hdHRhYmxl
IGluc3RhbmNlLgorICogUHJhY3RpY2FsbHksIHRoaXMgaW5kaWNhdGVzIHdoaWNoIG9mIHRoZSBn
ZXR0ZXJzIHdvdWxkIHJldHVybiB3aXRob3V0IGNvbnZlcnNpb24KKyAqIG9yIGVycm9yLgorICog
QHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpUeXBlCisgKiBAZHJhZnQgSUNVIDUyCisgKi8KK3R5cGVk
ZWYgZW51bSBVRm9ybWF0dGFibGVUeXBlIHsKKyAgVUZNVF9EQVRFID0gMCwgLyoqPCB1Zm10X2dl
dERhdGUoKSB3aWxsIHJldHVybiB3aXRob3V0IGNvbnZlcnNpb24uIEBzZWUgdWZtdF9nZXREYXRl
Ki8KKyAgVUZNVF9ET1VCTEUsICAgLyoqPCB1Zm10X2dldERvdWJsZSgpIHdpbGwgcmV0dXJuIHdp
dGhvdXQgY29udmVyc2lvbi4gIEBzZWUgdWZtdF9nZXREb3VibGUqLworICBVRk1UX0xPTkcsICAg
ICAvKio8IHVmbXRfZ2V0TG9uZygpIHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lvbi4gQHNl
ZSB1Zm10X2dldExvbmcgKi8KKyAgVUZNVF9TVFJJTkcsICAgLyoqPCB1Zm10X2dldFVDaGFycygp
IHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lvbi4gIEBzZWUgdWZtdF9nZXRVQ2hhcnMqLwor
ICBVRk1UX0FSUkFZLCAgICAvKio8IHVmbXRfY291bnRBcnJheSgpIGFuZCB1Zm10X2dldEFycmF5
KCkgd2lsbCByZXR1cm4gdGhlIHZhbHVlLiAgQHNlZSB1Zm10X2dldEFycmF5SXRlbUJ5SW5kZXgg
Ki8KKyAgVUZNVF9JTlQ2NCwgICAgLyoqPCB1Zm10X2dldEludDY0KCkgd2lsbCByZXR1cm4gd2l0
aG91dCBjb252ZXJzaW9uLiBAc2VlIHVmbXRfZ2V0SW50NjQgKi8KKyAgVUZNVF9PQkpFQ1QsICAg
LyoqPCB1Zm10X2dldE9iamVjdCgpIHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lvbi4gIEBz
ZWUgdWZtdF9nZXRPYmplY3QqLworICBVRk1UX0NPVU5UICAgICAvKio8IENvdW50IG9mIGRlZmlu
ZWQgVUZvcm1hdHRhYmxlVHlwZSB2YWx1ZXMgKi8KK30gVUZvcm1hdHRhYmxlVHlwZTsKKworCisv
KioKKyAqIE9wYXF1ZSB0eXBlIHJlcHJlc2VudGluZyB2YXJpb3VzIHR5cGVzIG9mIGRhdGEgd2hp
Y2ggbWF5IGJlIHVzZWQgZm9yIGZvcm1hdHRpbmcKKyAqIGFuZCBwYXJzaW5nIG9wZXJhdGlvbnMu
CisgKiBAc2VlIGljdTo6Rm9ybWF0dGFibGUKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLwordHlwZWRl
ZiB2b2lkICpVRm9ybWF0dGFibGU7CisKKy8qKgorICogSW5pdGlhbGl6ZSBhIFVGb3JtYXR0YWJs
ZSwgdG8gdHlwZSBVTlVNX0xPTkcsIHZhbHVlIDAKKyAqIG1heSByZXR1cm4gZXJyb3IgaWYgbWVt
b3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICogcGFyYW1ldGVyIHN0YXR1cyBlcnJvciBjb2RlLgor
ICogU2VlIHtAbGluayB1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGV9IGZvciBleGFtcGxlIGNvZGUu
CisgKiBAZHJhZnQgSUNVIDUyCisgKiBAcmV0dXJuIHRoZSBuZXcgVUZvcm1hdHRhYmxlCisgKiBA
c2VlIHVmbXRfY2xvc2UKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Rm9ybWF0dGFibGUoKQor
ICovCitVX0RSQUZUIFVGb3JtYXR0YWJsZSogVV9FWFBPUlQyCit1Zm10X29wZW4oVUVycm9yQ29k
ZSogc3RhdHVzKTsKKworLyoqCisgKiBDbGVhbnVwIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhbGxv
Y2F0ZWQgYnkgdGhpcyBVRm9ybWF0dGFibGUuCisgKiBAcGFyYW0gZm10IHRoZSBmb3JtYXR0ZXIK
KyAqIEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgdWZtdF9vcGVuCisgKi8KK1VfRFJBRlQgdm9pZCBV
X0VYUE9SVDIKK3VmbXRfY2xvc2UoVUZvcm1hdHRhYmxlKiBmbXQpOworCisjaWYgVV9TSE9XX0NQ
TFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxV
Rm9ybWF0dGFibGVQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVG
b3JtYXR0YWJsZSB2aWEgdWZtdF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhl
IExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJh
c2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAZHJhZnQgSUNVIDUyCisgKi8KK1VfREVGSU5F
X0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVGb3JtYXR0YWJsZVBvaW50ZXIsIFVGb3JtYXR0YWJs
ZSwgdWZtdF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBS
ZXR1cm4gdGhlIHR5cGUgb2YgdGhpcyBvYmplY3QKKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0
YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIGNvZGUgLSBVX0lMTEVHQUxfQVJH
VU1FTlRfRVJST1IgaXMgcmV0dXJuZWQgaWYgdGhlIFVGb3JtYXR0YWJsZSBjb250YWlucyBkYXRh
IG5vdCBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBBUEkKKyAqIEByZXR1cm4gdGhlIHZhbHVlIGFzIGEg
VUZvcm1hdHRhYmxlVHlwZQorICogQHNlZSB1Zm10X2lzTnVtZXJpYworICogQHNlZSBpY3U6OkZv
cm1hdHRhYmxlOjpnZXRUeXBlKCkgY29uc3QKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLworVV9EUkFG
VCBVRm9ybWF0dGFibGVUeXBlIFVfRVhQT1JUMgordWZtdF9nZXRUeXBlKGNvbnN0IFVGb3JtYXR0
YWJsZSogZm10LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIFJldHVybiB3aGV0aGVy
IHRoZSBvYmplY3QgaXMgbnVtZXJpYy4KKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBv
YmplY3QKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZG91YmxlLCBsb25nLCBv
ciBpbnQ2NCB2YWx1ZSwgZWxzZSBmYWxzZS4KKyAqIEBzZWUgdWZtdF9nZXRUeXBlCisgKiBAc2Vl
IGljdTo6Rm9ybWF0dGFibGU6OmlzTnVtZXJpYygpIGNvbnN0CisgKiBAZHJhZnQgSUNVIDUyCisg
Ki8KK1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1Zm10X2lzTnVtZXJpYyhjb25zdCBVRm9ybWF0
dGFibGUqIGZtdCk7CisKKy8qKgorICogR2V0cyB0aGUgVURhdGUgdmFsdWUgb2YgdGhpcyBvYmpl
Y3QuICBJZiB0aGUgdHlwZSBpcyBub3Qgb2YgdHlwZSBVRk1UX0RBVEUsCisgKiBzdGF0dXMgaXMg
c2V0IHRvIFVfSU5WQUxJRF9GT1JNQVRfRVJST1IgYW5kIHRoZSByZXR1cm4gdmFsdWUgaXMKKyAq
IHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBvYmplY3QKKyAqIEBw
YXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUgLSBhbnkgY29udmVyc2lvbiBvciBmb3JtYXQgZXJy
b3JzCisgKiBAcmV0dXJuIHRoZSB2YWx1ZQorICogQGRyYWZ0IElDVSA1MgorICogQHNlZSBpY3U6
OkZvcm1hdHRhYmxlOjpnZXREYXRlKFVFcnJvckNvZGUmKSBjb25zdAorICovCitVX0RSQUZUIFVE
YXRlIFVfRVhQT1JUMgordWZtdF9nZXREYXRlKGNvbnN0IFVGb3JtYXR0YWJsZSogZm10LCBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEdldHMgdGhlIGRvdWJsZSB2YWx1ZSBvZiB0aGlz
IG9iamVjdC4gSWYgdGhlIHR5cGUgaXMgbm90IGEgVUZNVF9ET1VCTEUsIG9yCisgKiBpZiB0aGVy
ZSBhcmUgYWRkaXRpb25hbCBzaWduaWZpY2FudCBkaWdpdHMgdGhhbiBmaXQgaW4gYSBkb3VibGUg
dHlwZSwKKyAqIGEgY29udmVyc2lvbiBpcyBwZXJmb3JtZWQgd2l0aCAgcG9zc2libGUgbG9zcyBv
ZiBwcmVjaXNpb24uCisgKiBJZiB0aGUgdHlwZSBpcyBVRk1UX09CSkVDVCBhbmQgdGhlCisgKiBv
YmplY3QgaXMgYSBNZWFzdXJlLCB0aGVuIHRoZSByZXN1bHQgb2YKKyAqIGdldE51bWJlcigpLmdl
dERvdWJsZShzdGF0dXMpIGlzIHJldHVybmVkLiAgSWYgdGhpcyBvYmplY3QgaXMKKyAqIG5laXRo
ZXIgYSBudW1lcmljIHR5cGUgbm9yIGEgTWVhc3VyZSwgdGhlbiAwIGlzIHJldHVybmVkIGFuZAor
ICogdGhlIHN0YXR1cyBpcyBzZXQgdG8gVV9JTlZBTElEX0ZPUk1BVF9FUlJPUi4KKyAqIEBwYXJh
bSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9y
IGNvZGUgLSBhbnkgY29udmVyc2lvbiBvciBmb3JtYXQgZXJyb3JzCisgKiBAcmV0dXJuIHRoZSB2
YWx1ZQorICogQGRyYWZ0IElDVSA1MgorICogQHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpnZXREb3Vi
bGUoVUVycm9yQ29kZSYpIGNvbnN0CisgKi8KK1VfRFJBRlQgZG91YmxlIFVfRVhQT1JUMgordWZt
dF9nZXREb3VibGUoVUZvcm1hdHRhYmxlKiBmbXQsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8q
KgorICogR2V0cyB0aGUgbG9uZyAoaW50MzJfdCkgdmFsdWUgb2YgdGhpcyBvYmplY3QuIElmIHRo
ZSBtYWduaXR1ZGUgaXMgdG9vCisgKiBsYXJnZSB0byBmaXQgaW4gYSBsb25nLCB0aGVuIHRoZSBt
YXhpbXVtIG9yIG1pbmltdW0gbG9uZyB2YWx1ZSwKKyAqIGFzIGFwcHJvcHJpYXRlLCBpcyByZXR1
cm5lZCBhbmQgdGhlIHN0YXR1cyBpcyBzZXQgdG8KKyAqIFVfSU5WQUxJRF9GT1JNQVRfRVJST1Iu
ICBJZiB0aGlzIG9iamVjdCBpcyBvZiB0eXBlIFVGTVRfSU5UNjQgYW5kCisgKiBpdCBmaXRzIHdp
dGhpbiBhIGxvbmcsIHRoZW4gbm8gcHJlY2lzaW9uIGlzIGxvc3QuICBJZiBpdCBpcyBvZgorICog
dHlwZSBrRG91YmxlIG9yIGtEZWNpbWFsTnVtYmVyLCB0aGVuIGEgY29udmVyc2lvbiBpcyBwZWZv
cm1lZCwgd2l0aAorICogdHJ1bmNhdGlvbiBvZiBhbnkgZnJhY3Rpb25hbCBwYXJ0LiAgSWYgdGhl
IHR5cGUgaXMgVUZNVF9PQkpFQ1QgYW5kCisgKiB0aGUgb2JqZWN0IGlzIGEgTWVhc3VyZSwgdGhl
biB0aGUgcmVzdWx0IG9mCisgKiBnZXROdW1iZXIoKS5nZXRMb25nKHN0YXR1cykgaXMgcmV0dXJu
ZWQuICBJZiB0aGlzIG9iamVjdCBpcworICogbmVpdGhlciBhIG51bWVyaWMgdHlwZSBub3IgYSBN
ZWFzdXJlLCB0aGVuIDAgaXMgcmV0dXJuZWQgYW5kCisgKiB0aGUgc3RhdHVzIGlzIHNldCB0byBV
X0lOVkFMSURfRk9STUFUX0VSUk9SLgorICogQHBhcmFtIGZtdCB0aGUgVUZvcm1hdHRhYmxlIG9i
amVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZSAtIGFueSBjb252ZXJzaW9uIG9y
IGZvcm1hdCBlcnJvcnMKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKiBAZHJhZnQgSUNVIDUyCisg
KiBAc2VlIGljdTo6Rm9ybWF0dGFibGU6OmdldExvbmcoVUVycm9yQ29kZSYpIGNvbnN0CisgKi8K
K1VfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK3VmbXRfZ2V0TG9uZyhVRm9ybWF0dGFibGUqIGZt
dCwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworCisvKioKKyAqIEdldHMgdGhlIGludDY0X3QgdmFs
dWUgb2YgdGhpcyBvYmplY3QuIElmIHRoaXMgb2JqZWN0IGlzIG9mIGEgbnVtZXJpYworICogdHlw
ZSBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIGFuIGludDY0LCB0aGVu
CisgKiB0aGUgbWF4aW11bSBvciBtaW5pbXVtIGludDY0IHZhbHVlLCBhcyBhcHByb3ByaWF0ZSwg
aXMgcmV0dXJuZWQKKyAqIGFuZCB0aGUgc3RhdHVzIGlzIHNldCB0byBVX0lOVkFMSURfRk9STUFU
X0VSUk9SLiAgSWYgdGhlCisgKiBtYWduaXR1ZGUgZml0cyBpbiBhbiBpbnQ2NCwgdGhlbiBhIGNh
c3RpbmcgY29udmVyc2lvbiBpcworICogcGVmb3JtZWQsIHdpdGggdHJ1bmNhdGlvbiBvZiBhbnkg
ZnJhY3Rpb25hbCBwYXJ0LiAgSWYgdGhlIHR5cGUKKyAqIGlzIFVGTVRfT0JKRUNUIGFuZCB0aGUg
b2JqZWN0IGlzIGEgTWVhc3VyZSwgdGhlbiB0aGUgcmVzdWx0IG9mCisgKiBnZXROdW1iZXIoKS5n
ZXREb3VibGUoc3RhdHVzKSBpcyByZXR1cm5lZC4gIElmIHRoaXMgb2JqZWN0IGlzCisgKiBuZWl0
aGVyIGEgbnVtZXJpYyB0eXBlIG5vciBhIE1lYXN1cmUsIHRoZW4gMCBpcyByZXR1cm5lZCBhbmQK
KyAqIHRoZSBzdGF0dXMgaXMgc2V0IHRvIFVfSU5WQUxJRF9GT1JNQVRfRVJST1IuCisgKiBAcGFy
YW0gZm10IHRoZSBVRm9ybWF0dGFibGUgb2JqZWN0CisgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJv
ciBjb2RlIC0gYW55IGNvbnZlcnNpb24gb3IgZm9ybWF0IGVycm9ycworICogQHJldHVybiB0aGUg
dmFsdWUKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0SW50
NjQoVUVycm9yQ29kZSYpIGNvbnN0CisgKi8KK1VfRFJBRlQgaW50NjRfdCBVX0VYUE9SVDIKK3Vm
bXRfZ2V0SW50NjQoVUZvcm1hdHRhYmxlKiBmbXQsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8q
KgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIFVPYmplY3QgY29udGFpbmVkIHdpdGhpbiB0
aGlzCisgKiBmb3JtYXR0YWJsZSAoYXMgYSBjb25zdCB2b2lkKiksIG9yIE5VTEwgaWYgdGhpcyBv
YmplY3QKKyAqIGlzIG5vdCBvZiB0eXBlIFVGTVRfT0JKRUNULgorICogQHBhcmFtIGZtdCB0aGUg
VUZvcm1hdHRhYmxlIG9iamVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZSAtIGFu
eSBjb252ZXJzaW9uIG9yIGZvcm1hdCBlcnJvcnMKKyAqIEByZXR1cm4gdGhlIHZhbHVlIGFzIGEg
Y29uc3Qgdm9pZCouIEl0IGlzIGEgcG9seW1vcnBoaWMgQysrIG9iamVjdC4KKyAqIEBkcmFmdCBJ
Q1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0T2JqZWN0KCkgY29uc3QKKyAqLwor
VV9EUkFGVCBjb25zdCB2b2lkICpVX0VYUE9SVDIKK3VmbXRfZ2V0T2JqZWN0KGNvbnN0IFVGb3Jt
YXR0YWJsZSogZm10LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEdldHMgdGhlIHN0
cmluZyB2YWx1ZSBvZiB0aGlzIG9iamVjdCBhcyBhIFVDaGFyIHN0cmluZy4gSWYgdGhlIHR5cGUg
aXMgbm90IGEKKyAqIHN0cmluZywgc3RhdHVzIGlzIHNldCB0byBVX0lOVkFMSURfRk9STUFUX0VS
Uk9SIGFuZCBhIE5VTEwgcG9pbnRlciBpcyByZXR1cm5lZC4KKyAqIFRoaXMgZnVuY3Rpb24gaXMg
bm90IHRocmVhZCBzYWZlIGFuZCBtYXkgbW9kaWZ5IHRoZSBVRm9ybWF0dGFibGUgaWYgbmVlZCBi
ZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmluZy4KKyAqIFRoZSByZXR1cm5lZCBwb2ludGVyIGlzIG5v
dCB2YWxpZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgb24gdGhpcyBVRm9ybWF0
dGFibGUsIG9yIGlmIHRoZSBVRm9ybWF0dGFibGUgaXMgY2xvc2VkLgorICogQHBhcmFtIGZtdCB0
aGUgVUZvcm1hdHRhYmxlIG9iamVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZSAt
IGFueSBjb252ZXJzaW9uIG9yIGZvcm1hdCBlcnJvcnMKKyAqIEBwYXJhbSBsZW4gaWYgbm9uIG51
bGwsIGNvbnRhaW5zIHRoZSBzdHJpbmcgbGVuZ3RoIG9uIHJldHVybgorICogQHJldHVybiB0aGUg
bnVsbCB0ZXJtaW5hdGVkIHN0cmluZyB2YWx1ZSAtIG11c3Qgbm90IGJlIHJlZmVyZW5jZWQgYWZ0
ZXIgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIG9uIHRoaXMgVUZvcm1hdHRhYmxlLgor
ICogQGRyYWZ0IElDVSA1MgorICogQHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpnZXRTdHJpbmcoVW5p
Y29kZVN0cmluZyYpY29uc3QKKyAqLworVV9EUkFGVCBjb25zdCBVQ2hhciogVV9FWFBPUlQyCit1
Zm10X2dldFVDaGFycyhVRm9ybWF0dGFibGUqIGZtdCwgaW50MzJfdCAqbGVuLCBVRXJyb3JDb2Rl
ICpzdGF0dXMpOworCisvKioKKyAqIEdldCB0aGUgbnVtYmVyIG9mIGFycmF5IG9iamVjdHMgY29u
dGFpbmVkLCBpZiBhbiBhcnJheSB0eXBlIFVGTVRfQVJSQVkKKyAqIEBwYXJhbSBmbXQgdGhlIFVG
b3JtYXR0YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUgLSBhbnkg
Y29udmVyc2lvbiBvciBmb3JtYXQgZXJyb3JzLiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IgaWYg
bm90IGFuIGFycmF5IHR5cGUuCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYXJyYXkgb2JqZWN0
cyBvciB1bmRlZmluZWQgaWYgbm90IGFuIGFycmF5IHR5cGUKKyAqIEBkcmFmdCBJQ1UgNTIKKyAq
IEBzZWUgdWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4CisgKi8KK1VfRFJBRlQgaW50MzJfdCBVX0VY
UE9SVDIKK3VmbXRfZ2V0QXJyYXlMZW5ndGgoY29uc3QgVUZvcm1hdHRhYmxlKiBmbXQsIFVFcnJv
ckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogR2V0IHRoZSBzcGVjaWZpZWQgdmFsdWUgZnJvbSB0
aGUgYXJyYXkgb2YgVUZvcm1hdHRhYmxlcy4gSW52YWxpZCBpZiB0aGUgb2JqZWN0IGlzIG5vdCBh
biBhcnJheSB0eXBlIFVGTVRfQVJSQVkKKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBv
YmplY3QKKyAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgdGhlIGFycmF5IHRvIHJldHVybiAoMCBi
YXNlZCkuCisgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlIC0gYW55IGNvbnZlcnNpb24g
b3IgZm9ybWF0IGVycm9ycy4gUmV0dXJucyBhbiBlcnJvciBpZiBuIGlzIG91dCBvZiBib3VuZHMu
CisgKiBAcmV0dXJuIHRoZSBudGggYXJyYXkgdmFsdWUsIG9ubHkgdmFsaWQgd2hpbGUgdGhlIGNv
bnRhaW5pbmcgVUZvcm1hdHRhYmxlIGlzIHZhbGlkLiBOVUxMIGlmIG5vdCBhbiBhcnJheS4KKyAq
IEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0QXJyYXkoaW50MzJf
dCYsIFVFcnJvckNvZGUmKSBjb25zdAorICovCitVX0RSQUZUIFVGb3JtYXR0YWJsZSAqIFVfRVhQ
T1JUMgordWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4KFVGb3JtYXR0YWJsZSogZm10LCBpbnQzMl90
IG4sIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogUmV0dXJucyBhIG51bWVyaWMgc3Ry
aW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgY29udGFpbmVkIHdpdGhpbiB0aGlzCisg
KiBmb3JtYXR0YWJsZSwgb3IgTlVMTCBpZiB0aGlzIG9iamVjdCBkb2VzIG5vdCBjb250YWluIG51
bWVyaWMgdHlwZS4KKyAqIEZvciB2YWx1ZXMgb2J0YWluZWQgYnkgcGFyc2luZywgdGhlIHJldHVy
bmVkIGRlY2ltYWwgbnVtYmVyIHJldGFpbnMKKyAqIHRoZSBmdWxsIHByZWNpc2lvbiBhbmQgcmFu
Z2Ugb2YgdGhlIG9yaWdpbmFsIGlucHV0LCB1bmNvbnN0cmFpbmVkIGJ5CisgKiB0aGUgbGltaXRz
IG9mIGEgZG91YmxlIGZsb2F0aW5nIHBvaW50IG9yIGEgNjQgYml0IGludC4KKyAqCisgKiBUaGlz
IGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgYW5kIHRoZXJmb3JlIGlzIG5vdCBkZWNsYXJl
ZCBjb25zdCwKKyAqIGV2ZW4gdGhvdWdoIGl0IGlzIGxvZ2ljYWxseSBjb25zdC4KKyAqIFRoZSBy
ZXN1bHRpbmcgYnVmZmVyIGlzIG93bmVkIGJ5IHRoZSBVRm9ybWF0dGFibGUgYW5kIGlzIGludmFs
aWQgaWYgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUKKyAqIGNhbGxlZCBvbiB0aGUgVUZvcm1hdHRh
YmxlLgorICoKKyAqIFBvc3NpYmxlIGVycm9ycyBpbmNsdWRlIFVfTUVNT1JZX0FMTE9DQVRJT05f
RVJST1IsIGFuZAorICogVV9JTlZBTElEX1NUQVRFIGlmIHRoZSBmb3JtYXR0YWJsZSBvYmplY3Qg
aGFzIG5vdCBiZWVuIHNldCB0bworICogYSBudW1lcmljIHR5cGUuCisgKiBAcGFyYW0gZm10IHRo
ZSBVRm9ybWF0dGFibGUgb2JqZWN0CisgKiBAcGFyYW0gbGVuIGlmIG5vbi1udWxsLCBvbiBleGl0
IGNvbnRhaW5zIHRoZSBzdHJpbmcgbGVuZ3RoIChub3QgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGlu
ZyBudWxsKQorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICogQHJldHVybiB0aGUg
Y2hhcmFjdGVyIGJ1ZmZlciBhcyBhIE5VTEwgdGVybWluYXRlZCBzdHJpbmcsIHdoaWNoIGlzIG93
bmVkIGJ5IHRoZSBvYmplY3QgYW5kIG11c3Qgbm90IGJlIGFjY2Vzc2VkIGlmIGFueSBvdGhlciBm
dW5jdGlvbnMgYXJlIGNhbGxlZCBvbiB0aGlzIG9iamVjdC4KKyAqIEBkcmFmdCBJQ1UgNTIKKyAq
IEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0RGVjaW1hbE51bWJlcihVRXJyb3JDb2RlJikKKyAq
LworVV9EUkFGVCBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Zm10X2dldERlY051bUNoYXJzKFVG
b3JtYXR0YWJsZSAqZm10LCBpbnQzMl90ICpsZW4sIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5k
aWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VpdGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWl0ZXIuaAppbmRleCBiNDY5ZTI0ZTYxNjUzZDdlNmQw
YmU4YzhmYTY3ZmYyNjUxYjUxZmEzLi4wY2RiOGZmYmU1YzgxNTRhYzlkOTA4ZjYwNWIwZWIxNmVh
NWJiMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWl0
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWl0ZXIuaApAQCAt
MSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0
IChDKSAyMDAyLTIwMDYsMjAwOSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29weXJpZ2h0IChDKSAyMDAyLTIwMTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwog
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgpAQCAtNjczLDcgKzY3Myw3IEBAIHVpdGVyX3NldFVURjgoVUNo
YXJJdGVyYXRvciAqaXRlciwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOwogICogQHN0
YWJsZSBJQ1UgMi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9zZXRDaGFy
YWN0ZXJJdGVyYXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIg
Q2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJdGVyKTsKK3VpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9y
KFVDaGFySXRlcmF0b3IgKml0ZXIsIGljdTo6Q2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJdGVyKTsK
IAogLyoqCiAgKiBTZXQgdXAgYSBVQ2hhckl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIEMrKyBS
ZXBsYWNlYWJsZS4KQEAgLTY5OCw3ICs2OTgsNyBAQCB1aXRlcl9zZXRDaGFyYWN0ZXJJdGVyYXRv
cihVQ2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVySQog
ICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9z
ZXRSZXBsYWNlYWJsZShVQ2hhckl0ZXJhdG9yICppdGVyLCBjb25zdCBVX05BTUVTUEFDRV9RVUFM
SUZJRVIgUmVwbGFjZWFibGUgKnJlcCk7Cit1aXRlcl9zZXRSZXBsYWNlYWJsZShVQ2hhckl0ZXJh
dG9yICppdGVyLCBjb25zdCBpY3U6OlJlcGxhY2VhYmxlICpyZXApOwogCiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vsb2MuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91bG9jLmgKaW5kZXggOTU3NThjM2EzNGMwZmVm
NjBmMTRiNGM1NmYxZDI1ZWE0Y2FmOTgwNy4uMjhhYjkwMmI1MjIyOTNiMzMyMGU5ZTlkMDdlYWRm
MTM5MTY1OGFlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2Rl
L3Vsb2MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWxvYy5oCkBA
IC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykg
MTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBA
IC0yODksNyArMjg5LDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJ0AnIHNl
cGFyYXRpbmcga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIHN0cmluZy4KICAgKiBAc2VlIFVMT0Nf
S0VZV09SRF9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQuNgorICAqIEBzdGFibGUgSUNVIDQu
NgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfU0VQQVJBVE9SX1VOSUNPREUgMHg0MAogCkBA
IC0zMDIsNyArMzAyLDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJz0nIGZv
ciBhc3NpZ25pbmcgdmFsdWUgdG8gYSBrZXl3b3JkLgogICAqIEBzZWUgVUxPQ19LRVlXT1JEX0FT
U0lHTgotICAqIEBkcmFmdCBJQ1UgNC42IAorICAqIEBzdGFibGUgSUNVIDQuNiAKICAgKi8KICNk
ZWZpbmUgVUxPQ19LRVlXT1JEX0FTU0lHTl9VTklDT0RFIDB4M0QKIApAQCAtMzE1LDcgKzMxNSw3
IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc7JyBzZXBhcmF0aW5nIGtleXdv
cmRzCiAgICogQHNlZSBVTE9DX0tFWVdPUkRfSVRFTV9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNV
IDQuNgorICAqIEBzdGFibGUgSUNVIDQuNgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfSVRF
TV9TRVBBUkFUT1JfVU5JQ09ERSAweDNCCiAKQEAgLTM1Myw3ICszNTMsNyBAQCB0eXBlZGVmIGVu
dW0gewogICBVTE9DX0RBVEFfTE9DQUxFX1RZUEVfTElNSVQgPSAzCiB9IFVMb2NEYXRhTG9jYWxl
VHlwZSA7CiAKLQorI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBHZXRzIElDVSdz
IGRlZmF1bHQgbG9jYWxlLiAgCiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIGlzIGEgc25hcHNob3Qg
aW4gdGltZSwgYW5kIHdpbGwgcmVtYWluIHZhbGlkCkBAIC0zODgsNiArMzg4LDcgQEAgdWxvY19n
ZXREZWZhdWx0KHZvaWQpOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVsb2Nfc2V0RGVmYXVs
dChjb25zdCBjaGFyKiBsb2NhbGVJRCwKICAgICAgICAgVUVycm9yQ29kZSogICAgICAgc3RhdHVz
KTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KIAogLyoqCiAgKiBHZXRzIHRoZSBs
YW5ndWFnZSBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KQEAgLTc1Miw3ICs3NTMsOSBA
QCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiB1bG9jX2NvdW50QXZhaWxhYmxlKHZvaWQpOwog
CiAvKioKICAqCi0gKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVz
IGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgKiBHZXRzIGEgbGlzdCBv
ZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYz
OSwKKyAqIHBsdXMgYWRkaXRpb25hbCAzLWxldHRlciBjb2RlcyBkZXRlcm1pbmVkIHRvIGJlIHVz
ZWZ1bCBmb3IgbG9jYWxlIGdlbmVyYXRpb24gYXMKKyAqIGRlZmluZWQgYnkgVW5pY29kZSBDTERS
LiBUaGlzIGlzIGEgcG9pbnRlcgogICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlz
IG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCiAgKiBieSBJQ1UtLSBk
byBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFy
cmF5IGlzCiAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCkBAIC03OTcsMTIgKzgw
MCwxNSBAQCB1bG9jX2dldFBhcmVudChjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKIAogCiAvKioK
LSAqIEdldHMgdGhlIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgKiBHZXRz
IHRoZSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBsaWtlIHVsb2NfZ2V0TmFt
ZSgpLAorICogYnV0IHdpdGhvdXQga2V5d29yZHMuCisgKgogICogTm90ZTogVGhpcyBoYXMgdGhl
IGVmZmVjdCBvZiAnY2Fub25pY2FsaXppbmcnIHRoZSBzdHJpbmcgdG8KICAqIGEgY2VydGFpbiBl
eHRlbnQuIFVwcGVyIGFuZCBsb3dlciBjYXNlIGFyZSBzZXQgYXMgbmVlZGVkLAogICogYW5kIGlm
IHRoZSBjb21wb25lbnRzIHdlcmUgaW4gJ1BPU0lYJyBmb3JtYXQgdGhleSBhcmUgY2hhbmdlZCB0
bwogICogSUNVIGZvcm1hdC4gIEl0IGRvZXMgTk9UIG1hcCBhbGlhc2VkIG5hbWVzIGluIGFueSB3
YXkuCiAgKiBTZWUgdGhlIHRvcCBvZiB0aGlzIGhlYWRlciBmaWxlLgorICoKICAqIFRoaXMgQVBJ
IHN0cmlwcyBvZmYgdGhlIGtleXdvcmQgcGFydCwgc28gImRlX0RFXEBjb2xsYXRpb249cGhvbmVi
b29rIiAKICAqIHdpbGwgYmVjb21lICJkZV9ERSIuIAogICogVGhpcyBBUEkgc3VwcG9ydHMgcHJl
ZmxpZ2h0aW5nLgpAQCAtODUzLDEzICs4NTksMTYgQEAgdWxvY19nZXRLZXl3b3JkVmFsdWUoY29u
c3QgY2hhciogbG9jYWxlSUQsCiAKIAogLyoqCi0gKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBzcGVj
aWZpZWQga2V5d29yZC4KKyAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNp
ZmllZCBrZXl3b3JkLgorICoKKyAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSB1bG9j
X2dldEJhc2VOYW1lKCkuCisgKgogICogTk9URTogVW5saWtlIGFsbW9zdCBldmVyeSBvdGhlciBJ
Q1UgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYQogICogYnVmZmVyLCB0aGlzIGZ1bmN0aW9uIHdpbGwg
Tk9UIHRydW5jYXRlIHRoZSBvdXRwdXQgdGV4dC4gSWYgYQogICogQlVGRkVSX09WRVJGTE9XX0VS
Uk9SIGlzIHJlY2VpdmVkLCBpdCBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbAogICogYnVmZmVyIGlz
IHVudG91Y2hlZC4gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgaW5jb3JyZWN0IG9yIHBvc3NpYmx5
CiAgKiBldmVuIG1hbGZvcm1lZCBsb2NhbGVzIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGFuZCB1c2Vk
LgotICogCisgKgogICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8g
YmUgc2V0LiBDYXNlIGluc2Vuc2l0aXZlLgogICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1ZSBv
ZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCiAgKiAgTlVMTCwgd2lsbCBy
ZXN1bHQgaW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYg
CkBAIC0xMDY1LDcgKzEwNzQsNyBAQCB1bG9jX21pbmltaXplU3VidGFncyhjb25zdCBjaGFyKiAg
ICBsb2NhbGVJRCwKICAgICAgICAgIGludDMyX3QgbWluaW1pemVkTG9jYWxlSURDYXBhY2l0eSwK
ICAgICAgICAgIFVFcnJvckNvZGUqIGVycik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJucyBhIGxv
Y2FsZSBJRCBmb3IgdGhlIHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcgc3RyaW5nLgogICog
SWYgdGhlIHNwZWNpZmllZCBsYW5ndWFnZSB0YWcgY29udGFpbnMgYW55IGlsbC1mb3JtZWQgc3Vi
dGFncywKICAqIHRoZSBmaXJzdCBzdWNoIHN1YnRhZyBhbmQgYWxsIGZvbGxvd2luZyBzdWJ0YWdz
IGFyZSBpZ25vcmVkLgpAQCAtMTA4MSwyMSArMTA5MCwyMSBAQCB1bG9jX21pbmltaXplU3VidGFn
cyhjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKICAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIG91dHB1
dCBidWZmZXIgcmVjZWl2aW5nIGEgbG9jYWxlIElEIGZvciB0aGUKICAqICAgICAgICAgICAgICAg
ICAgc3BlY2lmaWVkIEJDUDQ3IGxhbmd1YWdlIHRhZy4KICAqIEBwYXJhbSBsb2NhbGVJRENhcGFj
aXR5ICB0aGUgc2l6ZSBvZiB0aGUgbG9jYWxlIElEIG91dHB1dCBidWZmZXIuCi0gKiBAcGFyYW0g
cGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY3Nlc3NmdWxseSBwYXJzZWQgbGVuZ3RoCisg
KiBAcGFyYW0gcGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBs
ZW5ndGgKICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgaW5wdXQgbGFuZ3VhZ2UgdGFn
IGlzIHNldC4KICAqIEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYgcmVjZWl2
aW5nIHRoZSBsb2NhbGQgSUQKICAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgogICogQHJldHVy
biAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBsb2NhbGUgSUQuCi0gKiBAZHJhZnQgSUNVIDQu
MgorICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1Vf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIq
IGxhbmd0YWcsCiAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGxvY2FsZUlELAogICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90IGxvY2FsZUlEQ2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QqIHBhcnNlZExlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSog
ZXJyKTsKIAotLyoqIAorLyoqCiAgKiBSZXR1cm5zIGEgd2VsbC1mb3JtZWQgbGFuZ3VhZ2UgdGFn
IGZvciB0aGlzIGxvY2FsZSBJRC4gCiAgKiA8cD4gCiAgKiA8Yj5Ob3RlPC9iPjogV2hlbiA8Y29k
ZT5zdHJpY3Q8L2NvZGU+IGlzIEZBTFNFLCBhbnkgbG9jYWxlCkBAIC0xMTA0LDcgKzExMTMsNyBA
QCB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxhbmd0YWcsCiAgKiBUUlVFLCB0aGlz
IGZ1bmN0aW9uIHNldHMgVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SIHRvIHRoZQogICogPGNvZGU+
ZXJyPC9jb2RlPiBpZiBhbnkgbG9jYWxlIGZpZWxkcyBkbyBub3Qgc2F0aXNmeSB0aGUKICAqIEJD
UDQ3IHN5bnRheCByZXF1aXJlbWVudC4KLSAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlucHV0IGxj
b2FsZSBJRAorICogQHBhcmFtIGxvY2FsZUlEICB0aGUgaW5wdXQgbG9jYWxlIElECiAgKiBAcGFy
YW0gbGFuZ3RhZyAgIHRoZSBvdXRwdXQgYnVmZmVyIHJlY2VpdmluZyBCQ1A0NyBsYW5ndWFnZQog
ICogICAgICAgICAgICAgICAgICB0YWcgZm9yIHRoZSBsb2NhbGUgSUQuCiAgKiBAcGFyYW0gbGFu
Z3RhZ0NhcGFjaXR5ICAgdGhlIHNpemUgb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZwpAQCAtMTEx
NCw5ICsxMTIzLDkgQEAgdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5ndGFnLAog
ICogQHBhcmFtIGVyciAgICAgICBlcnJvciBpbmZvcm1hdGlvbiBpZiByZWNlaXZpbmcgdGhlIGxh
bmd1YWdlCiAgKiAgICAgICAgICAgICAgICAgIHRhZyBmYWlsZWQuCiAgKiBAcmV0dXJuICAgICAg
ICAgIFRoZSBsZW5ndGggb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZy4KLSAqIEBkcmFmdCBJQ1Ug
NC4yCisgKiBAc3RhYmxlIElDVSA0LjIKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgor
VV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVsb2NfdG9MYW5ndWFnZVRhZyhjb25zdCBjaGFy
KiBsb2NhbGVJRCwKICAgICAgICAgICAgICAgICAgICBjaGFyKiBsYW5ndGFnLAogICAgICAgICAg
ICAgICAgICAgIGludDMyX3QgbGFuZ3RhZ0NhcGFjaXR5LApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VtYWNoaW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3OGRlZTE3
MzQ4MDQyYmM2MWMyYTk2Li5kMTEwMmY0OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZlN2ZmNzU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaApAQCAt
MSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHly
aWdodCAoQykgMTk5OS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKQEAgLTQxLDE2ICs0MSw3IEBACiAvKiB3aGljaCBhcmUgY29udGFpbmVk
IGluIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBmaWxlIHBsYXRmb3JtLmggICAgICAgICAgICAgKi8K
IC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgZGVmaW5lZChVX1BBTE1PUykKLSMgICBpbmNs
dWRlICJ1bmljb2RlL3BwYWxtb3MuaCIKLSNlbGlmICFkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAo
ZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoV0lONjQpIHx8IGRl
ZmluZWQoX1dJTjY0KSkKLSNpZmRlZiBDWUdXSU5NU1ZDCi0jICAgaW5jbHVkZSAidW5pY29kZS9w
bGF0Zm9ybS5oIgotI2VuZGlmCi0jICAgaW5jbHVkZSAidW5pY29kZS9wd2luMzIuaCIKLSNlbHNl
Ci0jICAgaW5jbHVkZSAidW5pY29kZS9wdHlwZXMuaCIgLyogcGxhdGZvcm0uaCBpcyBpbmNsdWRl
ZCBpbiBwdHlwZXMuaCAqLwotI2VuZGlmCisjaW5jbHVkZSAidW5pY29kZS9wdHlwZXMuaCIgLyog
cGxhdGZvcm0uaCBpcyBpbmNsdWRlZCBpbiBwdHlwZXMuaCAqLwogCiAvKgogICogQU5TSSBDIGhl
YWRlcnM6CkBAIC01OSwxOSArNTAsNiBAQAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCiAvKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KLS8qIFhQX0NQTFVTUExVUyBpcyBhIGNyb3NzLXBsYXRmb3JtIHN5bWJv
bCB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCB3aGVuICAgICAqLwotLyogdXNpbmcgQysrLiAgSXQg
c2hvdWxkIG5vdCBiZSBkZWZpbmVkIHdoZW4gY29tcGlsaW5nIHVuZGVyIEMuICAgICAgICAgICAg
ICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi0jICAgaWZu
ZGVmIFhQX0NQTFVTUExVUwotIyAgICAgICBkZWZpbmUgWFBfQ1BMVVNQTFVTCi0jICAgZW5kaWYK
LSNlbHNlCi0jICAgdW5kZWYgWFBfQ1BMVVNQTFVTCi0jZW5kaWYKLQotLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCiAvKiBGb3IgQyB3cmFwcGVycywgd2UgdXNlIHRoZSBzeW1ib2wgVV9TVEFCTEUuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogVGhpcyB3b3JrcyBwcm9wZXJseSBp
ZiB0aGUgaW5jbHVkZXIgaXMgQyBvciBDKysuICAgICAgICAgICAgICAgICAgICAgICAgICovCiAv
KiBGdW5jdGlvbnMgYXJlIGRlY2xhcmVkICAgVV9TVEFCTEUgcmV0dXJuLXR5cGUgVV9FWFBPUlQy
IGZ1bmN0aW9uLW5hbWUoKS4uLiAqLwpAQCAtOTUsNyArNzMsNyBAQAogICogQHN0YWJsZSBJQ1Ug
Mi40CiAgKi8KIAotI2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAjICAg
ZGVmaW5lIFVfQ0ZVTkMgZXh0ZXJuICJDIgogIyAgIGRlZmluZSBVX0NERUNMX0JFR0lOIGV4dGVy
biAiQyIgewogIyAgIGRlZmluZSBVX0NERUNMX0VORCAgIH0KQEAgLTEwNSwyMyArODMsMjYgQEAK
ICMgICBkZWZpbmUgVV9DREVDTF9FTkQKICNlbmRpZgogCisjaWZuZGVmIFVfQVRUUklCVVRFX0RF
UFJFQ0FURUQKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAgKiAgVGhpcyBp
cyB1c2VkIGZvciBHQ0Mgc3BlY2lmaWMgYXR0cmlidXRlcwogICogQGludGVybmFsCiAgKi8KLSNp
ZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPiAzIHx8IChfX0dOVUNfXyA9PSAzICYm
IF9fR05VQ19NSU5PUl9fID49IDIpKQorI2lmIFVfR0NDX01BSk9SX01JTk9SID49IDMwMgogIyAg
ICBkZWZpbmUgVV9BVFRSSUJVVEVfREVQUkVDQVRFRCBfX2F0dHJpYnV0ZV9fICgoZGVwcmVjYXRl
ZCkpCiAvKioKICAqIFxkZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogICogVGhpcyBpcyB1c2Vk
IGZvciBWaXN1YWwgQysrIHNwZWNpZmljIGF0dHJpYnV0ZXMgCiAgKiBAaW50ZXJuYWwKICAqLwot
I2VsaWYgZGVmaW5lZChVX1dJTkRPV1MpICYmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZF
UiA+PSAxNDAwKQorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDAp
CiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVEIF9fZGVjbHNwZWMoZGVwcmVjYXRl
ZCkKICNlbHNlCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAjZW5kaWYKKyNl
bmRpZgorCiAvKiogVGhpcyBpcyB1c2VkIHRvIGRlY2xhcmUgYSBmdW5jdGlvbiBhcyBhIHB1Ymxp
YyBJQ1UgQyBBUEkgQHN0YWJsZSBJQ1UgMi4wKi8KICNkZWZpbmUgVV9DQVBJIFVfQ0ZVTkMgVV9F
WFBPUlQKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVjbGFyZSBhIGZ1bmN0aW9uIGFzIGEgc3RhYmxl
IHB1YmxpYyBJQ1UgQyBBUEkqLwpAQCAtMjM0LDI3ICsyMTUsNiBAQCB0eXBlZGVmIGludDhfdCBV
Qm9vbDsKIAogLyogd2NoYXJfdC1yZWxhdGVkIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLS8qKgotICogXGRlZiBVX0hBVkVfV0NI
QVJfSAotICogSW5kaWNhdGVzIHdoZXRoZXIgPHdjaGFyLmg+IGlzIGF2YWlsYWJsZSAoMSkgb3Ig
bm90ICgwKS4gU2V0IHRvIDEgYnkgZGVmYXVsdC4KLSAqCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAq
LwotI2lmbmRlZiBVX0hBVkVfV0NIQVJfSAotIyAgIGRlZmluZSBVX0hBVkVfV0NIQVJfSCAxCi0j
ZW5kaWYKLQotLyoqCi0gKiBcZGVmIFVfU0laRU9GX1dDSEFSX1QKLSAqIFVfU0laRU9GX1dDSEFS
X1Q9PXNpemVvZih3Y2hhcl90KSAoMCBtZWFucyBpdCBpcyBub3QgZGVmaW5lZCBvciBhdXRvY29u
ZiBjb3VsZCBub3Qgc2V0IGl0KQotICoKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jaWYgVV9T
SVpFT0ZfV0NIQVJfVD09MAotIyAgIHVuZGVmIFVfU0laRU9GX1dDSEFSX1QKLSMgICBkZWZpbmUg
VV9TSVpFT0ZfV0NIQVJfVCA0Ci0jZW5kaWYKLQogLyoKICAqIFxkZWYgVV9XQ0hBUl9JU19VVEYx
NgogICogRGVmaW5lZCBpZiB3Y2hhcl90IHVzZXMgVVRGLTE2LgpAQCAtMjc1LDE0ICsyMzUsMTYg
QEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAjICAgICAgICAgICBkZWZpbmUgIFVfV0NIQVJfSVNf
VVRGMzIKICMgICAgICAgZW5kaWYKICMgICBlbGlmIGRlZmluZWQgX19VQ1MyX18KLSMgICAgICAg
aWYgKF9fT1MzOTBfXyB8fCBfX09TNDAwX18pICYmIChVX1NJWkVPRl9XQ0hBUl9UPT0yKQorIyAg
ICAgICBpZiAoVV9QRl9PUzM5MCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9P
UzQwMCkgJiYgKFVfU0laRU9GX1dDSEFSX1Q9PTIpCiAjICAgICAgICAgICBkZWZpbmUgVV9XQ0hB
Ul9JU19VVEYxNgogIyAgICAgICBlbmRpZgotIyAgIGVsaWYgZGVmaW5lZCBfX1VDUzRfXworIyAg
IGVsaWYgZGVmaW5lZChfX1VDUzRfXykgfHwgKFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCAmJiBk
ZWZpbmVkKF9fVVRGMzJfXykpCiAjICAgICAgIGlmIChVX1NJWkVPRl9XQ0hBUl9UPT00KQogIyAg
ICAgICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMzIKICMgICAgICAgZW5kaWYKLSMgICBlbGlm
IGRlZmluZWQoVV9XSU5ET1dTKQorIyAgIGVsaWYgVV9QTEFURk9STV9JU19EQVJXSU5fQkFTRUQg
fHwgKFVfU0laRU9GX1dDSEFSX1Q9PTQgJiYgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRCkKKyMg
ICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMzIKKyMgICBlbGlmIFVfUExBVEZPUk1fSEFTX1dJ
TjMyX0FQSQogIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYxNgogIyAgIGVuZGlmCiAjZW5k
aWYKQEAgLTI5NCwyNCArMjU2LDI0IEBAIHR5cGVkZWYgaW50OF90IFVCb29sOwogCiAvKioKICAq
IFx2YXIgVUNoYXIKLSAqIERlZmluZSBVQ2hhciB0byBiZSB3Y2hhcl90IGlmIHRoYXQgaXMgMTYg
Yml0cyB3aWRlOyBhbHdheXMgYXNzdW1lZCB0byBiZSB1bnNpZ25lZC4KLSAqIElmIHdjaGFyX3Qg
aXMgbm90IDE2IGJpdHMgd2lkZSwgdGhlbiBkZWZpbmUgVUNoYXIgdG8gYmUgdWludDE2X3Qgb3Ig
Y2hhcjE2X3QgYmVjYXVzZSBHQ0MgPj00LjQKLSAqIGNhbiBoYW5kbGUgVVRGMTYgc3RyaW5nIGxp
dGVyYWxzLgorICogRGVmaW5lIFVDaGFyIHRvIGJlIFVDSEFSX1RZUEUsIGlmIHRoYXQgaXMgI2Rl
ZmluZWQgKGZvciBleGFtcGxlLCB0byBjaGFyMTZfdCksCisgKiBvciB3Y2hhcl90IGlmIHRoYXQg
aXMgMTYgYml0cyB3aWRlOyBhbHdheXMgYXNzdW1lZCB0byBiZSB1bnNpZ25lZC4KKyAqIElmIG5l
aXRoZXIgaXMgYXZhaWxhYmxlLCB0aGVuIGRlZmluZSBVQ2hhciB0byBiZSB1aW50MTZfdC4KKyAq
CiAgKiBUaGlzIG1ha2VzIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyIHBsYXRmb3JtLWRlcGVuZGVu
dAogICogYnV0IGFsbG93cyBkaXJlY3Qgc3RyaW5nIHR5cGUgY29tcGF0aWJpbGl0eSB3aXRoIHBs
YXRmb3JtcyB3aXRoCiAgKiAxNi1iaXQgd2NoYXJfdCB0eXBlcy4KICAqCi0gKiBAZHJhZnQgSUNV
IDQuNAorICogQHN0YWJsZSBJQ1UgNC40CiAgKi8KLQotLyogRGVmaW5lIFVDaGFyIHRvIGJlIGNv
bXBhdGlibGUgd2l0aCB3Y2hhcl90IGlmIHBvc3NpYmxlLiAqLwotI2lmIFVfU0laRU9GX1dDSEFS
X1Q9PTIKKyNpZiBkZWZpbmVkKFVDSEFSX1RZUEUpCisgICAgdHlwZWRlZiBVQ0hBUl9UWVBFIFVD
aGFyOworLyogTm90ICNlbGlmIFVfSEFWRV9DSEFSMTZfVCAtLSBiZWNhdXNlIHRoYXQgaXMgdHlw
ZS1pbmNvbXBhdGlibGUgd2l0aCBwcmUtQysrMTEgY2FsbGVycworICAgIHR5cGVkZWYgY2hhcjE2
X3QgVUNoYXI7ICAqLworI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVD09MgogICAgIHR5cGVkZWYgd2No
YXJfdCBVQ2hhcjsKLSNlbGlmIFVfR05VQ19VVEYxNl9TVFJJTkcKLSNpZiBkZWZpbmVkIF9HQ0Nf
Ci0gICAgdHlwZWRlZiBfX0NIQVIxNl9UWVBFX18gY2hhcjE2X3Q7Ci0jZW5kaWYKLSAgICB0eXBl
ZGVmIGNoYXIxNl90IFVDaGFyOworI2VsaWYgZGVmaW5lZChfX0NIQVIxNl9UWVBFX18pCisgICAg
dHlwZWRlZiBfX0NIQVIxNl9UWVBFX18gVUNoYXI7CiAjZWxzZQogICAgIHR5cGVkZWYgdWludDE2
X3QgVUNoYXI7CiAjZW5kaWYKQEAgLTMzNSwzOSArMjk3LDI1IEBAIHR5cGVkZWYgaW50OF90IFVC
b29sOwogICovCiB0eXBlZGVmIGludDMyX3QgVUNoYXIzMjsKIAotLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCi0vKiBVX0lOTElORSBhbmQgVV9BTElHTl9DT0RFICAgU2V0IGRlZmF1bHQgdmFsdWVzIGlm
IHRoZXNlIGFyZSBub3QgYWxyZWFkeSAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZpbmVkLiAgRGVmaW5pdGlvbnMgbm9ybWFsbHkgYXJlIGluICAgICAgICAqLwotLyogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtLmggb3IgdGhlIGNvcnJlc3BvbmRpbmcg
ZmlsZSBmb3IgICAgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIE9TIGlu
IHVzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLwotCi0jaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKLQogLyoqCi0gKiBcZGVmIFVfQUxJ
R05fQ09ERQotICogVGhpcyBpcyB1c2VkIHRvIGFsaWduIGNvZGUgZnJhZ21lbnRzIHRvIGEgc3Bl
Y2lmaWMgYnl0ZSBib3VuZGFyeS4KLSAqIFRoaXMgaXMgdXNlZnVsIGZvciBnZXR0aW5nIGNvbnNp
c3RlbnQgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzLgotICogQGludGVybmFsCi0gKi8KLSNpZm5k
ZWYgVV9BTElHTl9DT0RFCi0jICAgZGVmaW5lIFVfQUxJR05fQ09ERShuKQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCi0KLS8qKgotICogXGRlZiBVX0lOTElORQot
ICogVGhpcyBpcyB1c2VkIHRvIHJlcXVlc3QgaW5saW5pbmcgb2YgYSBmdW5jdGlvbiwgb24gcGxh
dGZvcm1zIGFuZCBsYW5ndWFnZXMgd2hpY2ggc3VwcG9ydCBpdC4KKyAqIFRoaXMgdmFsdWUgaXMg
aW50ZW5kZWQgZm9yIHNlbnRpbmVsIHZhbHVlcyBmb3IgQVBJcyB0aGF0CisgKiAodGFrZSBvcikg
cmV0dXJuIHNpbmdsZSBjb2RlIHBvaW50cyAoVUNoYXIzMikuCisgKiBJdCBpcyBvdXRzaWRlIG9m
IHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCisgKiAKKyAqIEZvciBl
eGFtcGxlLCBhICJkb25lIiBvciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQorICogY291bGQg
YmUgaW5kaWNhdGVkIHdpdGggVV9TRU5USU5FTC4KKyAqCisgKiBJQ1UgQVBJcyBkZXNpZ25lZCBi
ZWZvcmUgSUNVIDIuNCB1c3VhbGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgorICog
dmFsdWVzLCBtb3N0bHkgMHhmZmZmLgorICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlzdGluZ3Vp
c2hlZCBmcm9tCisgKiBhY3R1YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5j
dGlvbnMgbGlrZQorICogQ2hhcmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3Ry
aW5nOjpsZW5ndGgoKS4KKyAqCisgKiBAcmV0dXJuIC0xCisgKiBAc2VlIFVDaGFyMzIKKyAqIEBz
dGFibGUgSUNVIDIuNAogICovCi0gCi0jaWZuZGVmIFVfSU5MSU5FCi0jICAgaWZkZWYgWFBfQ1BM
VVNQTFVTCi0jICAgICAgIGRlZmluZSBVX0lOTElORSBpbmxpbmUKLSMgICBlbHNlCi0jICAgICAg
IGRlZmluZSBVX0lOTElORQotIyAgIGVuZGlmCi0jZW5kaWYKKyNkZWZpbmUgVV9TRU5USU5FTCAo
LTEpCiAKICNpbmNsdWRlICJ1bmljb2RlL3VyZW5hbWUuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vub3JtMi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ljdS91bmljb2RlL3Vub3JtMi5oCmluZGV4IGE1MjJiNDczNWE4ZDZhYzRlYmRhMmRhY2Iw
NTI0OWRiNGEyYTJmMWMuLjcxNTJmYzEwOTQ2NmQwN2M1MGJiY2E1YzlkZjdiNzdjMTk5N2Y5MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91bm9ybTIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW5vcm0yLmgKQEAgLTEsNyAr
MSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKQEAgLTExOSw2ICsxMTksNzYgQEAgdHlwZWRlZiBzdHJ1Y3QgVU5vcm1hbGl6
ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3QgVU5vcm1hbGl6ZXIK
ICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAKIC8qKgorICogUmV0dXJucyBhIFVOb3Jt
YWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkMgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUg
YXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9y
Q29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERv
IG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3Ig
Y29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUg
VV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAg
ICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBv
ciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBV
c2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxp
emVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29u
c3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZDSW5zdGFuY2UoVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0
YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dl
dEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfREVDT01QT1NFLCBwRXJyb3JDb2RlKS4KKyAq
IFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBpbnN0YW5jZS4gRG8gbm90IGRlbGV0
ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJkIElDVSBlcnJvciBjb2RlLiBJdHMg
aW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBVX1NVQ0NFU1Mo
KSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAgICAgICAgICAgICAg
IGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRo
CisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUg
Zm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVzdGVkIE5vcm1hbGl6ZXIyLCBpZiBz
dWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBjb25zdCBVTm9ybWFs
aXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORkRJbnN0YW5jZShVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNlIGZvciBV
bmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNl
KE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUpLgorICogUmV0dXJucyBh
biB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3QgZGVsZXRlIGl0LgorICog
QHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1
ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9y
IGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRl
bHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKKyAqICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWls
cy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwK
KyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVOb3JtYWxpemVyMiAqIFVf
RVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0YW5jZShVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNlIGZvciBVbmljb2RlIE5G
S0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJu
ZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9k
aWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QK
KyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0
aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hl
Y2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAq
IEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0
YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQy
Cit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioK
KyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZLQ19DYXNl
Zm9sZCBub3JtYWxpemF0aW9uLgorICogU2FtZSBhcyB1bm9ybTJfZ2V0SW5zdGFuY2UoTlVMTCwg
Im5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVu
bW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11
c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxz
ZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4g
Q2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAg
ICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikK
KyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICog
QHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBP
UlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSB3aGljaCB1c2Vz
IHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAgKiAocGFja2FnZU5hbWUvbmFtZSBzaW1pbGFyIHRv
IHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJlc19vcGVuKCkvUmVzb3VyY2VCdW5kbGUpCiAgKiBh
bmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21wb3NlcyB0ZXh0IGFjY29yZGluZyB0byB0aGUgc3Bl
Y2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMwLDExIEBAIHVub3JtMl9hcHBlbmQoY29uc3QgVU5v
cm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMuIEVxdWl2YWxl
bnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJpbmcoYykpCi0gKiBvbiBhIFVOT1JNMl9ERUNPTVBP
U0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBidXQgbXVjaCBmYXN0ZXIuCisgKiBHZXRzIHRoZSBk
ZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4KKyAqIFJvdWdobHkgZXF1aXZhbGVudCB0byBub3Jt
YWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2YgYworICogb24gYSBVTk9STTJfREVDT01QT1NFIFVO
b3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11Y2ggZmFzdGVyLCBhbmQgZXhjZXB0IHRoYXQgdGhp
cyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIGFuZCBkb2VzIG5vdCB3cml0
ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5vdCBoYXZlIGEgZGVjb21wb3NpdGlvbiBtYXBwaW5n
IGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgogICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVu
dCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgogICogQHBhcmFtIG5vcm0yIFVOb3Jt
YWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFtIGMgY29kZSBwb2ludApAQCAtMjczLDE0ICszNDYs
NzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBVTm9ybWFsaXplcjIgKm5vcm0yLAogICogICAgICAg
ICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQg
b3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2Vl
IFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiB0aGUgbm9uLW5lZ2F0aXZlIGxl
bmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndpc2UgYSBu
ZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICov
Ci1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgog
dW5vcm0yX2dldERlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24sIGludDMy
X3QgY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSByYXcgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMu
CisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB1bm9ybTJfZ2V0RGVjb21wb3NpdGlvbigp
IGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQorICogcmF3IGRlY29tcG9zaXRpb24gbWFwcGluZyBh
cyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEudHh0IG9yCisgKiAoZm9yIGN1c3RvbSBkYXRhKSBp
biB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNzZWQgYnkgdGhlIGdlbm5vcm0yIHRvb2wuCisgKiBC
eSBjb250cmFzdCwgdW5vcm0yX2dldERlY29tcG9zaXRpb24oKSByZXR1cm5zIHRoZSBwcm9jZXNz
ZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBvc2VkIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLgor
ICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GS0MgTm9ybWFsaXplcjIgaW5zdGFuY2Us
CisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbigpIHJldHVybnMgdGhlIFVuaWNvZGUgRGVj
b21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJvcGVydHkuCisgKgorICogV2hlbiB1c2VkIG9uIGEg
c3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogaXQgcmV0dXJucyB0aGUgRGVj
b21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYgdGhlIERlY29tcG9zaXRpb25fVHlwZSAoZHQpIGlz
IENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRoaXMgY2FzZSwgdGhlIHJlc3VsdCBjb250YWlucyBl
aXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50cyAoPTEuLjQgVUNoYXJzKS4KKyAqCisgKiBUaGlz
IGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9mIHRoZSBtb2RlIG9mIHRoZSBVTm9ybWFsaXplcjIu
CisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0gYyBjb2Rl
IHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiBTdHJpbmcgYnVmZmVyIHdoaWNoIHdpbGwg
YmUgc2V0IHRvIGMncworICogICAgICAgICAgICAgICAgICAgICAgcmF3IGRlY29tcG9zaXRpb24g
bWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgorICogQHBhcmFtIGNhcGFjaXR5IG51bWJlciBvZiBV
Q2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBkZWNvbXBvc2l0aW9uCisgKiBAcGFyYW0gcEVy
cm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAq
ICAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhl
IGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVj
ayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAq
IEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIHJhdyBkZWNvbXBvc2l0aW9u
LCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSBhIG5lZ2F0aXZlIHZhbHVlCisgKiBAc3RhYmxl
IElDVSA0OQorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordW5vcm0yX2dldFJhd0Rl
Y29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24sIGludDMyX3QgY2FwYWNp
dHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lzZSBjb21wb3NpdGlvbiBvZiBhICYgYiBhbmQgcmV0
dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJlIGlzIG9uZS4KKyAqCisgKiBSZXR1cm5zIGEgY29t
cG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlmIGMgaGFzIGEgdHdvLXdheSBtYXBwaW5nIHRvIGEr
Yi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFsaXphdGlvbiwgdGhpcyBtZWFucyB0aGF0
CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIHRvIGErYgorICogYW5kIGMgZG9l
cyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24gcHJvcGVydHkuCisgKgor
ICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1h
bGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQorICogQHBhcmFt
IGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVyKSBjb2RlIHBvaW50LgorICogQHBhcmFtIGIgQW5v
dGhlciBjb2RlIHBvaW50LgorICogQHJldHVybiBUaGUgbm9uLW5lZ2F0aXZlIGNvbXBvc2l0ZSBj
b2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVnYXRpdmUgdmFsdWUuCisg
KiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBVQ2hhcjMyIFVfRVhQT1JUMgordW5vcm0y
X2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsIFVDaGFyMzIgYSwgVUNoYXIz
MiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgYy4KKyAqIFRoZSBk
ZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMAorICogYnV0IGFsbCBzdGFuZGFyZCBpbXBs
ZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmljb2RlIENhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3Mg
dmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0g
YyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMncyBjb21iaW5pbmcgY2xhc3MKKyAqIEBzdGFibGUg
SUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4X3QgVV9FWFBPUlQyCit1bm9ybTJfZ2V0Q29tYmlu
aW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwgVUNoYXIzMiBjKTsKKworLyoqCiAg
KiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6ZWQuCiAgKiBJbnRlcm5hbGx5LCBpbiBj
YXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygpIG1ldGhvZCB3b3VsZCByZXR1cm4gIm1heWJlIgog
ICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUgZm9yIHRoZSB0d28gQ09NUE9TRSBtb2RlcykgdGhp
cyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91
bnVtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW51bS5oCmluZGV4IDEx
MDJiYWI1OGIzZDFiYjJlMmIyMDgyY2I1NTg5YzVkZGVmZThjYzAuLmRjZTc3MzMyZTk2YzViOGJl
NTZmYTgxMTE3ZjEzZWVmNTA5MmUzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pY3UvdW5pY29kZS91bnVtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3VudW0uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0q
IENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisqIENvcHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgogKgpAQCAtMjAsNiAr
MjAsOCBAQAogI2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgogI2luY2x1ZGUgInVuaWNvZGUvdW1p
c2MuaCIKICNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS91
Zm9ybWF0dGFibGUuaCIKKwogLyoqCiAgKiBcZmlsZQogICogXGJyaWVmIEMgQVBJOiBOdW1iZXJG
b3JtYXQKQEAgLTEwNyw3ICsxMDksNyBAQAogICogZm9ybWF0dGVycy4KICAqIDxQPgogICogWW91
IGNhbiBhbHNvIGNvbnRyb2wgdGhlIGRpc3BsYXkgb2YgbnVtYmVycyB3aXRoIHN1Y2ggZnVuY3Rp
b24gYXMKLSAqIHVudW1fZ2V0QXR0cmlidWVzKCkgYW5kIHVudW1fc2V0QXRyaWJ1dGVzKCksIHdo
aWNoIGxldCB5b3Ugc2V0IHRoZQorICogdW51bV9nZXRBdHRyaWJ1dGVzKCkgYW5kIHVudW1fc2V0
QXR0cmlidXRlcygpLCB3aGljaCBsZXQgeW91IHNldCB0aGUKICAqIG1pbWludW0gZnJhY3Rpb24g
ZGlnaXRzLCBncm91cGluZywgZXRjLgogICogQHNlZSBVTnVtYmVyRm9ybWF0QXR0cmlidXRlcyBm
b3IgbW9yZSBkZXRhaWxzCiAgKiA8UD4KQEAgLTEzNCwxOSArMTM2LDM0IEBAIHR5cGVkZWYgdm9p
ZCogVU51bWJlckZvcm1hdDsKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3JtYXRTdHlsZSB7
CiAgICAgLyoqCi0gICAgICogRGVjaW1hbCBmb3JtYXQgZGVmaW5lZCBieSBwYXR0ZXJuIAorICAg
ICAqIERlY2ltYWwgZm9ybWF0IGRlZmluZWQgYnkgYSBwYXR0ZXJuIHN0cmluZy4KICAgICAgKiBA
c3RhYmxlIElDVSAzLjAKICAgICAgKi8KICAgICBVTlVNX1BBVFRFUk5fREVDSU1BTD0wLAotICAg
IC8qKiBEZWNpbWFsIGZvcm1hdCAqLworICAgIC8qKgorICAgICAqIERlY2ltYWwgZm9ybWF0ICgi
bm9ybWFsIiBzdHlsZSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCiAgICAgVU5V
TV9ERUNJTUFMPTEsCi0gICAgLyoqIEN1cnJlbmN5IGZvcm1hdCAqLworICAgIC8qKgorICAgICAq
IEN1cnJlbmN5IGZvcm1hdCB3aXRoIGEgY3VycmVuY3kgc3ltYm9sLCBlLmcuLCAiJDEuMDAiLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwogICAgIFVOVU1fQ1VSUkVOQ1ksCi0gICAg
LyoqIFBlcmNlbnQgZm9ybWF0ICovCisgICAgLyoqCisgICAgICogUGVyY2VudCBmb3JtYXQKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KICAgICBVTlVNX1BFUkNFTlQsCi0gICAgLyoq
IFNjaWVudGlmaWMgZm9ybWF0ICovCisgICAgLyoqCisgICAgICogU2NpZW50aWZpYyBmb3JtYXQK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KICAgICBVTlVNX1NDSUVOVElGSUMsCi0g
ICAgLyoqIFNwZWxsb3V0IHJ1bGUtYmFzZWQgZm9ybWF0ICovCisgICAgLyoqCisgICAgICogU3Bl
bGxvdXQgcnVsZS1iYXNlZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
ICAgICBVTlVNX1NQRUxMT1VULAogICAgIC8qKiAKICAgICAgKiBPcmRpbmFsIHJ1bGUtYmFzZWQg
Zm9ybWF0IApAQCAtMTU5LDE4ICsxNzYsNDAgQEAgdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3JtYXRT
dHlsZSB7CiAgICAgICovCiAgICAgVU5VTV9EVVJBVElPTiwKICAgICAvKiogCi0gICAgICogTnVt
YmVyaW5nIHN5c3RlbSBydWxlLWJhc2VkIGZvcm1hdCAKKyAgICAgKiBOdW1iZXJpbmcgc3lzdGVt
IHJ1bGUtYmFzZWQgZm9ybWF0CiAgICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAgICovCiAgICAg
VU5VTV9OVU1CRVJJTkdfU1lTVEVNLAogICAgIC8qKiAKLSAgICAgKiBSdWxlLWJhc2VkIGZvcm1h
dCBkZWZpbmVkIGJ5IHBhdHRlcm4gCisgICAgICogUnVsZS1iYXNlZCBmb3JtYXQgZGVmaW5lZCBi
eSBhIHBhdHRlcm4gc3RyaW5nLgogICAgICAqIEBzdGFibGUgSUNVIDMuMAogICAgICAqLwogICAg
IFVOVU1fUEFUVEVSTl9SVUxFQkFTRUQsCi0gICAgLyoqIERlZmF1bHQgZm9ybWF0ICovCisgICAg
LyoqCisgICAgICogQ3VycmVuY3kgZm9ybWF0IHdpdGggYW4gSVNPIGN1cnJlbmN5IGNvZGUsIGUu
Zy4sICJVU0QxLjAwIi4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBVTlVN
X0NVUlJFTkNZX0lTTywKKyAgICAvKioKKyAgICAgKiBDdXJyZW5jeSBmb3JtYXQgd2l0aCBhIHBs
dXJhbGl6ZWQgY3VycmVuY3kgbmFtZSwKKyAgICAgKiBlLmcuLCAiMS4wMCBVUyBkb2xsYXIiIGFu
ZCAiMy4wMCBVUyBkb2xsYXJzIi4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAg
ICBVTlVNX0NVUlJFTkNZX1BMVVJBTCwKKyAgICAvKioKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRo
ZSBoaWdoZXN0IG51bWJlciBmb3JtYXQgc3R5bGUgY29uc3RhbnQuCisgICAgICogQHN0YWJsZSBJ
Q1UgNC44CisgICAgICovCisgICAgVU5VTV9GT1JNQVRfU1RZTEVfQ09VTlQsCisgICAgLyoqCisg
ICAgICogRGVmYXVsdCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KICAg
ICBVTlVNX0RFRkFVTFQgPSBVTlVNX0RFQ0lNQUwsCi0gICAgLyoqIChBbGlhcyBmb3IgVU5VTV9Q
QVRURVJOX0RFQ0lNQUwpICovCisgICAgLyoqCisgICAgICogQWxpYXMgZm9yIFVOVU1fUEFUVEVS
Tl9ERUNJTUFMCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCiAgICAgVU5VTV9JR05P
UkUgPSBVTlVNX1BBVFRFUk5fREVDSU1BTAogfSBVTnVtYmVyRm9ybWF0U3R5bGU7CiAKQEAgLTE4
MywxNyArMjIyLDI0IEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0Um91bmRpbmdNb2RlIHsK
ICAgICBVTlVNX1JPVU5EX0RPV04sCiAgICAgVU5VTV9ST1VORF9VUCwKICAgICAvKioKKyAgICAg
KiBIYWxmLWV2ZW4gcm91bmRpbmcKKyAgICAgKiBAc3RhYmxlLCBJQ1UgMy44CisgICAgICovCisg
ICAgVU5VTV9ST1VORF9IQUxGRVZFTiwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisg
ICAgLyoqCiAgICAgICogSGFsZi1ldmVuIHJvdW5kaW5nLCBtaXNzcGVsbGVkIG5hbWUKICAgICAg
KiBAZGVwcmVjYXRlZCwgSUNVIDMuOAogICAgICAqLwotICAgIFVOVU1fRk9VTkRfSEFMRkVWRU4s
Ci0gICAgVU5VTV9ST1VORF9IQUxGRE9XTiwKKyAgICBVTlVNX0ZPVU5EX0hBTEZFVkVOID0gVU5V
TV9ST1VORF9IQUxGRVZFTiwKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisg
ICAgVU5VTV9ST1VORF9IQUxGRE9XTiA9IFVOVU1fUk9VTkRfSEFMRkVWRU4gKyAxLAogICAgIFVO
VU1fUk9VTkRfSEFMRlVQLAotICAgIC8qKgotICAgICAqIEhhbGYtZXZlbiByb3VuZGluZwotICAg
ICAqIEBzdGFibGUsIElDVSAzLjgKLSAgICAgKi8KLSAgICBVTlVNX1JPVU5EX0hBTEZFVkVOID0g
VU5VTV9GT1VORF9IQUxGRVZFTgorICAgIC8qKiAKKyAgICAgICogUk9VTkRfVU5ORUNFU1NBUlkg
cmVwb3J0cyBhbiBlcnJvciBpZiBmb3JtYXR0ZWQgcmVzdWx0IGlzIG5vdCBleGFjdC4KKyAgICAg
ICogQHN0YWJsZSBJQ1UgNC44CisgICAgICAqLworICAgIFVOVU1fUk9VTkRfVU5ORUNFU1NBUlkK
IH0gVU51bWJlckZvcm1hdFJvdW5kaW5nTW9kZTsKIAogLyoqIFRoZSBwb3NzaWJsZSBudW1iZXIg
Zm9ybWF0IHBhZCBwb3NpdGlvbnMuIApAQCAtMjA2LDYgKzI1Miw3MCBAQCB0eXBlZGVmIGVudW0g
VU51bWJlckZvcm1hdFBhZFBvc2l0aW9uIHsKICAgICBVTlVNX1BBRF9BRlRFUl9TVUZGSVgKIH0g
VU51bWJlckZvcm1hdFBhZFBvc2l0aW9uOwogCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8q
KgorICogQ29uc3RhbnRzIGZvciBzcGVjaWZ5aW5nIHNob3J0IG9yIGxvbmcgZm9ybWF0LgorICog
QGRyYWZ0IElDVSA1MQorICovCit0eXBlZGVmIGVudW0gVU51bWJlckNvbXBhY3RTdHlsZSB7Cisg
IC8qKiBAZHJhZnQgSUNVIDUxICovCisgIFVOVU1fU0hPUlQsCisgIC8qKiBAZHJhZnQgSUNVIDUx
ICovCisgIFVOVU1fTE9ORworICAvKiogQGRyYWZ0IElDVSA1MSAqLworfSBVTnVtYmVyQ29tcGFj
dFN0eWxlOworI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworLyoqCisgKiBDb25zdGFu
dHMgZm9yIHNwZWNpZnlpbmcgY3VycmVuY3kgc3BhY2luZworICogQHN0YWJsZSBJQ1UgNC44Cisg
Ki8KK2VudW0gVUN1cnJlbmN5U3BhY2luZyB7CisgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLwor
ICAgIFVOVU1fQ1VSUkVOQ1lfTUFUQ0gsCisgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAg
IFVOVU1fQ1VSUkVOQ1lfU1VSUk9VTkRJTkdfTUFUQ0gsCisgICAgLyoqIEBzdGFibGUgSUNVIDQu
OCAqLworICAgIFVOVU1fQ1VSUkVOQ1lfSU5TRVJULAorICAgIC8qKiBAc3RhYmxlIElDVSA0Ljgg
Ki8KKyAgICBVTlVNX0NVUlJFTkNZX1NQQUNJTkdfQ09VTlQKK307Cit0eXBlZGVmIGVudW0gVUN1
cnJlbmN5U3BhY2luZyBVQ3VycmVuY3lTcGFjaW5nOyAvKio8IEBzdGFibGUgSUNVIDQuOCAqLwor
CisKKy8qKgorICogRmllbGRQb3NpdGlvbiBhbmQgVUZpZWxkUG9zaXRpb24gc2VsZWN0b3JzIGZv
ciBmb3JtYXQgZmllbGRzCisgKiBkZWZpbmVkIGJ5IE51bWJlckZvcm1hdCBhbmQgVU51bWJlckZv
cm1hdC4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK3R5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0
RmllbGRzIHsKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0lOVEVHRVJfRklF
TEQsCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9GUkFDVElPTl9GSUVMRCwK
KyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0RFQ0lNQUxfU0VQQVJBVE9SX0ZJ
RUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fRVhQT05FTlRfU1lNQk9M
X0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fRVhQT05FTlRfU0lH
Tl9GSUVMRCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0VYUE9ORU5UX0ZJ
RUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fR1JPVVBJTkdfU0VQQVJB
VE9SX0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fQ1VSUkVOQ1lf
RklFTEQsCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9QRVJDRU5UX0ZJRUxE
LAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fUEVSTUlMTF9GSUVMRCwKKyAg
ICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX1NJR05fRklFTEQsCisgICAgLyoqIEBz
dGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9GSUVMRF9DT1VOVAorfSBVTnVtYmVyRm9ybWF0Rmll
bGRzOworCisKIC8qKgogICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgVU51bWJlckZvcm1hdCBm
b3IgZm9ybWF0dGluZyBhbmQgcGFyc2luZwogICogbnVtYmVycy4gIEEgVU51bWJlckZvcm1hdCBt
YXkgYmUgdXNlZCB0byBmb3JtYXQgbnVtYmVycyBieSBjYWxsaW5nCkBAIC0yOTEsNyArNDAxLDEw
IEBAIHVudW1fY2xvbmUoY29uc3QgVU51bWJlckZvcm1hdCAqZm10LAogKiBUaGUgaW50ZWdlciB3
aWxsIGJlIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIFVOdW1iZXJGb3JtYXQncyBsb2NhbGUu
CiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSBudW1iZXIgVGhl
IG51bWJlciB0byBmb3JtYXQuCi0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVy
IHRvIHJlY2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQgQSBwb2lu
dGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3JtYXR0ZWQg
bnVtYmVyLiBJZgorKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fu
bm90IGJlIE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyogdGhlbiB0
aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORy4g
SWYgdGhlIGZvcm1hdHRlZCBudW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQgdGhlbiB0
aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAqIEBwYXJh
bSByZXN1bHRMZW5ndGggVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJhbSBwb3Mg
ICAgQSBwb2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRpb24tPmZp
ZWxkCiAqIGlzIHJlYWQuICBPbiBvdXRwdXQsIHBvc2l0aW9uLT5iZWdpbkluZGV4IGFuZCBwb3Np
dGlvbi0+ZW5kSW5kZXggaW5kaWNhdGUKQEAgLTMyMCw3ICs0MzMsMTAgQEAgdW51bV9mb3JtYXQo
ICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICAgIGZtdCwKICogVGhlIGludDY0IHdpbGwgYmUg
Zm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgVU51bWJlckZvcm1hdCdzIGxvY2FsZS4KICogQHBh
cmFtIGZtdCBUaGUgZm9ybWF0dGVyIHRvIHVzZS4KICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVy
IHRvIGZvcm1hdC4KLSogQHBhcmFtIHJlc3VsdCBBIHBvaW50ZXIgdG8gYSBidWZmZXIgdG8gcmVj
ZWl2ZSB0aGUgZm9ybWF0dGVkIG51bWJlci4KKyogQHBhcmFtIHJlc3VsdCBBIHBvaW50ZXIgdG8g
YSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgTlVMTC10ZXJtaW5hdGVkIGZvcm1hdHRlZCBudW1iZXIu
IElmCisqIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGZpdHMgaW50byBkZXN0IGJ1dCBjYW5ub3QgYmUg
TlVMTC10ZXJtaW5hdGVkIChsZW5ndGggPT0gcmVzdWx0TGVuZ3RoKQorKiB0aGVuIHRoZSBlcnJv
ciBjb2RlIGlzIHNldCB0byBVX1NUUklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5HLiBJZiB0aGUg
Zm9ybWF0dGVkIG51bWJlcgorKiBkb2Vzbid0IGZpdCBpbnRvIHJlc3VsdCB0aGVuIHRoZSBlcnJv
ciBjb2RlIGlzIHNldCB0byBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUi4KICogQHBhcmFtIHJlc3Vs
dExlbmd0aCBUaGUgbWF4aW11bSBzaXplIG9mIHJlc3VsdC4KICogQHBhcmFtIHBvcyAgICBBIHBv
aW50ZXIgdG8gYSBVRmllbGRQb3NpdGlvbi4gIE9uIGlucHV0LCBwb3NpdGlvbi0+ZmllbGQKICog
aXMgcmVhZC4gIE9uIG91dHB1dCwgcG9zaXRpb24tPmJlZ2luSW5kZXggYW5kIHBvc2l0aW9uLT5l
bmRJbmRleCBpbmRpY2F0ZQpAQCAtMzQ5LDcgKzQ2NSwxMCBAQCB1bnVtX2Zvcm1hdEludDY0KGNv
bnN0IFVOdW1iZXJGb3JtYXQgKmZtdCwKICogVGhlIGRvdWJsZSB3aWxsIGJlIGZvcm1hdHRlZCBh
Y2NvcmRpbmcgdG8gdGhlIFVOdW1iZXJGb3JtYXQncyBsb2NhbGUuCiAqIEBwYXJhbSBmbXQgVGhl
IGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQu
Ci0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGZv
cm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRv
IHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3JtYXR0ZWQgbnVtYmVyLiBJZgorKiB0aGUg
Zm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fubm90IGJlIE5VTEwtdGVybWlu
YXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyogdGhlbiB0aGUgZXJyb3IgY29kZSBpcyBz
ZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORy4gSWYgdGhlIGZvcm1hdHRlZCBu
dW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQgdGhlbiB0aGUgZXJyb3IgY29kZSBpcyBz
ZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAqIEBwYXJhbSByZXN1bHRMZW5ndGggVGhl
IG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJhbSBwb3MgICAgQSBwb2ludGVyIHRvIGEg
VUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRpb24tPmZpZWxkCiAqIGlzIHJlYWQuICBP
biBvdXRwdXQsIHBvc2l0aW9uLT5iZWdpbkluZGV4IGFuZCBwb3NpdGlvbi0+ZW5kSW5kZXggaW5k
aWNhdGUKQEAgLTM4Miw3ICs1MDEsMTAgQEAgdW51bV9mb3JtYXREb3VibGUoICAgIGNvbnN0ICAg
IFVOdW1iZXJGb3JtYXQqICBmbXQsCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byB1c2Uu
CiAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCiAqIEBwYXJhbSBsZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgbnVtYmVyLCBvciAtMSBpZiB0aGUgaW5wdXQgaXMgbnVs
LXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJl
Y2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRv
IGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3JtYXR0ZWQgbnVtYmVy
LiBJZgorKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fubm90IGJl
IE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyogdGhlbiB0aGUgZXJy
b3IgY29kZSBpcyBzZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORy4gSWYgdGhl
IGZvcm1hdHRlZCBudW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQgdGhlbiB0aGUgZXJy
b3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAqIEBwYXJhbSByZXN1
bHRMZW5ndGggVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJhbSBwb3MgICAgQSBw
b2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRpb24tPmZpZWxkCiAq
ICAgICAgICAgICAgICAgaXMgcmVhZC4gIE9uIG91dHB1dCwgcG9zaXRpb24tPmJlZ2luSW5kZXgg
YW5kIHBvc2l0aW9uLT5lbmRJbmRleCBpbmRpY2F0ZQpAQCAtNDEzLDcgKzUzNSwxMCBAQCB1bnVt
X2Zvcm1hdERlY2ltYWwoICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAgKiBAcGFy
YW0gZm10IHRoZSBmb3JtYXR0ZXIgdG8gdXNlCiAgKiBAcGFyYW0gbnVtYmVyIHRoZSBudW1iZXIg
dG8gZm9ybWF0CiAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIDMtbGV0dGVyIG51bGwtdGVybWluYXRl
ZCBJU08gNDIxNyBjdXJyZW5jeSBjb2RlCi0gKiBAcGFyYW0gcmVzdWx0IGEgcG9pbnRlciB0byB0
aGUgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIKKyAqIEBwYXJhbSByZXN1
bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBm
b3JtYXR0ZWQgbnVtYmVyLiBJZgorICogdGhlIGZvcm1hdHRlZCBudW1iZXIgZml0cyBpbnRvIGRl
c3QgYnV0IGNhbm5vdCBiZSBOVUxMLXRlcm1pbmF0ZWQgKGxlbmd0aCA9PSByZXN1bHRMZW5ndGgp
CisgKiB0aGVuIHRoZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX1NUUklOR19OT1RfVEVSTUlOQVRF
RF9XQVJOSU5HLiBJZiB0aGUgZm9ybWF0dGVkIG51bWJlcgorICogZG9lc24ndCBmaXQgaW50byBy
ZXN1bHQgdGhlbiB0aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJS
T1IuCiAgKiBAcGFyYW0gcmVzdWx0TGVuZ3RoIHRoZSBtYXhpbXVtIG51bWJlciBvZiBVQ2hhcnMg
dG8gd3JpdGUgdG8gcmVzdWx0CiAgKiBAcGFyYW0gcG9zIGEgcG9pbnRlciB0byBhIFVGaWVsZFBv
c2l0aW9uLiAgT24gaW5wdXQsCiAgKiBwb3NpdGlvbi0+ZmllbGQgaXMgcmVhZC4gIE9uIG91dHB1
dCwgcG9zaXRpb24tPmJlZ2luSW5kZXggYW5kCkBAIC00MjgsMjMgKzU1Myw1MyBAQCB1bnVtX2Zv
cm1hdERlY2ltYWwoICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAgKiBAc2VlIFVG
aWVsZFBvc2l0aW9uCiAgKiBAc3RhYmxlIElDVSAzLjAKICAqLwotVV9TVEFCTEUgaW50MzJfdCBV
X0VYUE9SVDIgCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdW51bV9mb3JtYXREb3VibGVD
dXJyZW5jeShjb25zdCBVTnVtYmVyRm9ybWF0KiBmbXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRvdWJsZSBudW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyKiBjdXJy
ZW5jeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIqIHJlc3VsdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCByZXN1bHRMZW5ndGgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIFVGaWVsZFBvc2l0aW9uKiBwb3MsIC8qIGlnbm9yZWQgaWYgMCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICBVRmllbGRQb3NpdGlvbiogcG9zLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlKiBzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9EUkFGVF9B
UEkKKy8qKgorICogRm9ybWF0IGEgVUZvcm1hdHRhYmxlIGludG8gYSBzdHJpbmcuCisgKiBAcGFy
YW0gZm10IHRoZSBmb3JtYXR0ZXIgdG8gdXNlCisgKiBAcGFyYW0gbnVtYmVyIHRoZSBudW1iZXIg
dG8gZm9ybWF0LCBhcyBhIFVGb3JtYXR0YWJsZQorICogQHBhcmFtIHJlc3VsdCBBIHBvaW50ZXIg
dG8gYSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgTlVMTC10ZXJtaW5hdGVkIGZvcm1hdHRlZCBudW1i
ZXIuIElmCisgKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fubm90
IGJlIE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyAqIHRoZW4gdGhl
IGVycm9yIGNvZGUgaXMgc2V0IHRvIFVfU1RSSU5HX05PVF9URVJNSU5BVEVEX1dBUk5JTkcuIElm
IHRoZSBmb3JtYXR0ZWQgbnVtYmVyCisgKiBkb2Vzbid0IGZpdCBpbnRvIHJlc3VsdCB0aGVuIHRo
ZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUi4KKyAqIEBwYXJh
bSByZXN1bHRMZW5ndGggdGhlIG1heGltdW0gbnVtYmVyIG9mIFVDaGFycyB0byB3cml0ZSB0byBy
ZXN1bHQKKyAqIEBwYXJhbSBwb3MgYSBwb2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBp
bnB1dCwKKyAqIHBvc2l0aW9uLT5maWVsZCBpcyByZWFkLiAgT24gb3V0cHV0LCBwb3NpdGlvbi0+
YmVnaW5JbmRleCBhbmQKKyAqIHBvc2l0aW9uLT5lbmRJbmRleCBpbmRpY2F0ZSB0aGUgYmVnaW5u
aW5nIGFuZCBlbmRpbmcgaW5kaWNlcyBvZgorICogZmllbGQgbnVtYmVyIHBvc2l0aW9uLT5maWVs
ZCwgaWYgc3VjaCBhIGZpZWxkIGV4aXN0cy4gIFRoaXMKKyAqIHBhcmFtZXRlciBtYXkgYmUgTlVM
TCwgaW4gd2hpY2ggY2FzZSBpdCBpcyBpZ25vcmVkLgorICogQHBhcmFtIHN0YXR1cyBhIHBvaW50
ZXIgdG8gYW4gaW5wdXQtb3V0cHV0IFVFcnJvckNvZGUKKyAqIEByZXR1cm4gdGhlIHRvdGFsIGJ1
ZmZlciBzaXplIG5lZWRlZDsgaWYgZ3JlYXRlciB0aGFuIHJlc3VsdExlbmd0aCwKKyAqIHRoZSBv
dXRwdXQgd2FzIHRydW5jYXRlZC4gV2lsbCByZXR1cm4gMCBvbiBlcnJvci4KKyAqIEBzZWUgdW51
bV9wYXJzZVRvVUZvcm1hdHRhYmxlCisgKiBAZHJhZnQgSUNVIDUyCisgKi8KK1VfRFJBRlQgaW50
MzJfdCBVX0VYUE9SVDIKK3VudW1fZm9ybWF0VUZvcm1hdHRhYmxlKGNvbnN0IFVOdW1iZXJGb3Jt
YXQqIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVGb3JtYXR0YWJsZSAqbnVt
YmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgKnJlc3VsdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGludDMyX3QgcmVzdWx0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgVUZpZWxkUG9zaXRpb24gKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKwogLyoqCiAqIFBh
cnNlIGEgc3RyaW5nIGludG8gYW4gaW50ZWdlciB1c2luZyBhIFVOdW1iZXJGb3JtYXQuCiAqIFRo
ZSBzdHJpbmcgd2lsbCBiZSBwYXJzZWQgYWNjb3JkaW5nIHRvIHRoZSBVTnVtYmVyRm9ybWF0J3Mg
bG9jYWxlLgogKiBAcGFyYW0gZm10IFRoZSBmb3JtYXR0ZXIgdG8gdXNlLgogKiBAcGFyYW0gdGV4
dCBUaGUgdGV4dCB0byBwYXJzZS4KICogQHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0
ZXh0LCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSBwYXJzZVBvcyBJZiBub3Qg
MCwgb24gaW5wdXQgYSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0
IGF0IHdoaWNoCi0qIHRvIGJlZ2luIHBhcnNpbmcuICBJZiBub3QgMCwgb24gb3V0cHV0IHRoZSBv
ZmZzZXQgYXQgd2hpY2ggcGFyc2luZyBlbmRlZC4KKyogQHBhcmFtIHBhcnNlUG9zIElmIG5vdCBO
VUxMLCBvbiBpbnB1dCBhIHBvaW50ZXIgdG8gYW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBvZmZz
ZXQgYXQgd2hpY2gKKyogdG8gYmVnaW4gcGFyc2luZy4gIElmIG5vdCBOVUxMLCBvbiBvdXRwdXQg
dGhlIG9mZnNldCBhdCB3aGljaCBwYXJzaW5nIGVuZGVkLgogKiBAcGFyYW0gc3RhdHVzIEEgcG9p
bnRlciB0byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycwogKiBAcmV0dXJuIFRo
ZSB2YWx1ZSBvZiB0aGUgcGFyc2VkIGludGVnZXIKICogQHNlZSB1bnVtX3BhcnNlSW50NjQKQEAg
LTQ2Nyw4ICs2MjIsOCBAQCB1bnVtX3BhcnNlKCAgICBjb25zdCAgIFVOdW1iZXJGb3JtYXQqICBm
bXQsCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSB0ZXh0IFRo
ZSB0ZXh0IHRvIHBhcnNlLgogKiBAcGFyYW0gdGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRleHQs
IG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KLSogQHBhcmFtIHBhcnNlUG9zIElmIG5vdCAwLCBv
biBpbnB1dCBhIHBvaW50ZXIgdG8gYW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBvZmZzZXQgYXQg
d2hpY2gKLSogdG8gYmVnaW4gcGFyc2luZy4gIElmIG5vdCAwLCBvbiBvdXRwdXQgdGhlIG9mZnNl
dCBhdCB3aGljaCBwYXJzaW5nIGVuZGVkLgorKiBAcGFyYW0gcGFyc2VQb3MgSWYgbm90IE5VTEws
IG9uIGlucHV0IGEgcG9pbnRlciB0byBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIG9mZnNldCBh
dCB3aGljaAorKiB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IE5VTEwsIG9uIG91dHB1dCB0aGUg
b2Zmc2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCiAqIEBwYXJhbSBzdGF0dXMgQSBwb2ludGVy
IHRvIGFuIFVFcnJvckNvZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzCiAqIEByZXR1cm4gVGhlIHZh
bHVlIG9mIHRoZSBwYXJzZWQgaW50ZWdlcgogKiBAc2VlIHVudW1fcGFyc2UKQEAgLTQ5MSw4ICs2
NDYsOCBAQCB1bnVtX3BhcnNlSW50NjQoY29uc3QgVU51bWJlckZvcm1hdCogIGZtdCwKICogQHBh
cmFtIGZtdCBUaGUgZm9ybWF0dGVyIHRvIHVzZS4KICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8g
cGFyc2UuCiAqIEBwYXJhbSB0ZXh0TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGV4dCwgb3IgLTEgaWYg
bnVsbC10ZXJtaW5hdGVkLgotKiBAcGFyYW0gcGFyc2VQb3MgSWYgbm90IDAsIG9uIGlucHV0IGEg
cG9pbnRlciB0byBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIG9mZnNldCBhdCB3aGljaAotKiB0
byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IDAsIG9uIG91dHB1dCB0aGUgb2Zmc2V0IGF0IHdoaWNo
IHBhcnNpbmcgZW5kZWQuCisqIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgTlVMTCwgb24gaW5wdXQg
YSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdoaWNoCisq
IHRvIGJlZ2luIHBhcnNpbmcuICBJZiBub3QgTlVMTCwgb24gb3V0cHV0IHRoZSBvZmZzZXQgYXQg
d2hpY2ggcGFyc2luZyBlbmRlZC4KICogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVy
cm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKICogQHJldHVybiBUaGUgdmFsdWUgb2YgdGhl
IHBhcnNlZCBkb3VibGUKICogQHNlZSB1bnVtX3BhcnNlCkBAIC01MTksOCArNjc0LDggQEAgdW51
bV9wYXJzZURvdWJsZSggICAgY29uc3QgICBVTnVtYmVyRm9ybWF0KiAgZm10LAogKiBAcGFyYW0g
Zm10IFRoZSBmb3JtYXR0ZXIgdG8gdXNlLgogKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBwYXJz
ZS4KICogQHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0ZXh0LCBvciAtMSBpZiBudWxs
LXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgMCwgb24gaW5wdXQgYSBwb2lu
dGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdoaWNoCi0qICAgICAg
ICAgICAgICAgICB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IDAsIG9uIG91dHB1dCB0aGUgb2Zm
c2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCisqIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgTlVM
TCwgb24gaW5wdXQgYSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0
IGF0IHdoaWNoCisqICAgICAgICAgICAgICAgICB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IE5V
TEwsIG9uIG91dHB1dCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCiAqIEBwYXJh
bSBvdXRCdWYgQSAoY2hhciAqKSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgcGFyc2VkIG51bWJlciBh
cyBhIHN0cmluZy4gIFRoZSBvdXRwdXQgc3RyaW5nCiAqICAgICAgICAgICAgICAgd2lsbCBiZSBu
dWwtdGVybWluYXRlZCBpZiB0aGVyZSBpcyBzdWZmaWNpZW50IHNwYWNlLgogKiBAcGFyYW0gb3V0
QnVmTGVuZ3RoIFRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyLiAgTWF5IGJlIHplcm8sIGlu
IHdoaWNoIGNhc2UKQEAgLTU1Miw3ICs3MDcsNyBAQCB1bnVtX3BhcnNlRGVjaW1hbChjb25zdCAg
IFVOdW1iZXJGb3JtYXQqICBmbXQsCiAgKiBAcGFyYW0gdGV4dExlbmd0aCB0aGUgbGVuZ3RoIG9m
IHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZAogICogQHBhcmFtIHBhcnNlUG9zIGEgcG9p
bnRlciB0byBhbiBvZmZzZXQgaW5kZXggaW50byB0ZXh0IGF0IHdoaWNoIHRvCiAgKiBiZWdpbiBw
YXJzaW5nLiBPbiBvdXRwdXQsICpwYXJzZVBvcyB3aWxsIHBvaW50IGFmdGVyIHRoZSBsYXN0Ci0g
KiBwYXJzZWQgY2hhcmFjdGVyLiAgVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIDAsIGluIHdoaWNoIGNh
c2UgcGFyc2luZworICogcGFyc2VkIGNoYXJhY3Rlci4gIFRoaXMgcGFyYW1ldGVyIG1heSBiZSBO
VUxMLCBpbiB3aGljaCBjYXNlIHBhcnNpbmcKICAqIGJlZ2lucyBhdCBvZmZzZXQgMC4KICAqIEBw
YXJhbSBjdXJyZW5jeSBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBwYXJz
ZWQgbnVsbC0KICAqIHRlcm1pbmF0ZWQgY3VycmVuY3kuICBUaGlzIGJ1ZmZlciBtdXN0IGhhdmUg
YSBjYXBhY2l0eSBvZiBhdCBsZWFzdApAQCAtNTcxLDkgKzcyNiwzNyBAQCB1bnVtX3BhcnNlRG91
YmxlQ3VycmVuY3koY29uc3QgVU51bWJlckZvcm1hdCogZm10LAogICAgICAgICAgICAgICAgICAg
ICAgICAgIFVDaGFyKiBjdXJyZW5jeSwKICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlKiBzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8qKgorICogUGFyc2Ug
YSBVQ2hhciBzdHJpbmcgaW50byBhIFVGb3JtYXR0YWJsZS4KKyAqIEV4YW1wbGUgY29kZToKKyAq
IFxzbmlwcGV0IHRlc3QvY2ludGx0c3QvY251bXRzdC5jIHVudW1fcGFyc2VUb1VGb3JtYXR0YWJs
ZQorICogQHBhcmFtIGZtdCB0aGUgZm9ybWF0dGVyIHRvIHVzZQorICogQHBhcmFtIHJlc3VsdCB0
aGUgVUZvcm1hdHRhYmxlIHRvIGhvbGQgdGhlIHJlc3VsdC4gSWYgTlVMTCwgYSBuZXcgVUZvcm1h
dHRhYmxlIHdpbGwgYmUgYWxsb2NhdGVkICh3aGljaCB0aGUgY2FsbGVyIG11c3QgY2xvc2Ugd2l0
aCB1Zm10X2Nsb3NlKS4KKyAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIHBhcnNlCisgKiBAcGFy
YW0gdGV4dExlbmd0aCB0aGUgbGVuZ3RoIG9mIHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRl
ZAorICogQHBhcmFtIHBhcnNlUG9zIGEgcG9pbnRlciB0byBhbiBvZmZzZXQgaW5kZXggaW50byB0
ZXh0IGF0IHdoaWNoIHRvCisgKiBiZWdpbiBwYXJzaW5nLiBPbiBvdXRwdXQsICpwYXJzZVBvcyB3
aWxsIHBvaW50IGFmdGVyIHRoZSBsYXN0CisgKiBwYXJzZWQgY2hhcmFjdGVyLiAgVGhpcyBwYXJh
bWV0ZXIgbWF5IGJlIE5VTEwgaW4gd2hpY2ggY2FzZSBwYXJzaW5nCisgKiBiZWdpbnMgYXQgb2Zm
c2V0IDAuCisgKiBAcGFyYW0gc3RhdHVzIGEgcG9pbnRlciB0byBhbiBpbnB1dC1vdXRwdXQgVUVy
cm9yQ29kZQorICogQHJldHVybiB0aGUgVUZvcm1hdHRhYmxlLiAgV2lsbCBiZSA9PXJlc3VsdCB1
bmxlc3MgTlVMTCB3YXMgcGFzc2VkIGluIGZvciByZXN1bHQsIGluIHdoaWNoIGNhc2UgaXQgd2ls
bCBiZSB0aGUgbmV3bHkgb3BlbmVkIFVGb3JtYXR0YWJsZS4KKyAqIEBzZWUgdWZtdF9nZXRUeXBl
CisgKiBAc2VlIHVmbXRfY2xvc2UKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLworVV9EUkFGVCBVRm9y
bWF0dGFibGUqIFVfRVhQT1JUMgordW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlKGNvbnN0IFVOdW1i
ZXJGb3JtYXQqIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRm9ybWF0dGFibGUgKnJl
c3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogdGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRMZW5ndGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCogcGFyc2VQb3MsIC8qIDAgPSBzdGFydCAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUqIHN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKwogLyoqCiAgKiBTZXQgdGhlIHBhdHRlcm4gdXNlZCBieSBhIFVOdW1iZXJGb3Jt
YXQuICBUaGlzIGNhbiBvbmx5IGJlIHVzZWQKLSAqIG9uIGEgRGVjaW1hbEZvcm1hdCwgb3RoZXIg
Zm9ybWF0cyByZXR1cm4gVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCisgKiBvbiBhIERlY2ltYWxG
b3JtYXQsIG90aGVyIGZvcm1hdHMgcmV0dXJuIFVfVU5TVVBQT1JURURfRVJST1IKICAqIGluIHRo
ZSBzdGF0dXMuCiAgKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXR0ZXIgdG8gc2V0LgogICogQHBh
cmFtIGxvY2FsaXplZCBUUlVFIGlmIHRoZSBwYXR0ZXJuIGlzIGxvY2FsaXplZCwgRkFMU0Ugb3Ro
ZXJ3aXNlLgpAQCAtNjIxLDYgKzgwNCwyMCBAQCB1bnVtX2dldEF2YWlsYWJsZShpbnQzMl90IGxv
Y2FsZUluZGV4KTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAogdW51bV9jb3VudEF2YWls
YWJsZSh2b2lkKTsKIAorI2lmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisvKioKKyAqIEBp
bnRlcm5hbAorICovCit0eXBlZGVmIGVudW0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZVZhbHVlIHsK
KyAgLyoqIEBpbnRlcm5hbCAqLworICBVTlVNX05PID0gMCwKKyAgLyoqIEBpbnRlcm5hbCAqLwor
ICBVTlVNX1lFUyA9IDEsCisgIC8qKiBAaW50ZXJuYWwgKi8KKyAgVU5VTV9NQVlCRSA9IDIKK30g
VU51bWJlckZvcm1hdEF0dHJpYnV0ZVZhbHVlOworI2VuZGlmCisKIC8qKiBUaGUgcG9zc2libGUg
VU51bWJlckZvcm1hdCBudW1lcmljIGF0dHJpYnV0ZXMgQHN0YWJsZSBJQ1UgMi4wICovCiB0eXBl
ZGVmIGVudW0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZSB7CiAgIC8qKiBQYXJzZSBpbnRlZ2VycyBv
bmx5ICovCkBAIC02NjcsNyArODY0LDU3IEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0QXR0
cmlidXRlIHsKICAgLyoqIExlbmllbnQgcGFyc2UgbW9kZSB1c2VkIGJ5IHJ1bGUtYmFzZWQgZm9y
bWF0cy4KICAgICogQHN0YWJsZSBJQ1UgMy4wCiAgICAqLwotICBVTlVNX0xFTklFTlRfUEFSU0UK
KyAgVU5VTV9MRU5JRU5UX1BBUlNFLAorI2lmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisg
IC8qKiBDb25zdW1lIGFsbCBpbnB1dC4gKG1heSB1c2UgZmFzdHBhdGgpLiBTZXQgdG8gVU5VTV9Z
RVMgKHJlcXVpcmUgZmFzdHBhdGgpLCBVTlVNX05PIChza2lwIGZhc3RwYXRoKSwgb3IgVU5VTV9N
QVlCRSAoaGV1cmlzdGljKS4KKyAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBJQ1UgQVBJLiBEbyBu
b3QgdXNlLgorICAgKiBAaW50ZXJuYWwKKyAgICovCisgIFVOVU1fUEFSU0VfQUxMX0lOUFVUID0g
VU5VTV9MRU5JRU5UX1BBUlNFICsgMSwKKyNlbmRpZgorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJ
CisgIC8qKiAKKyAgICAqIFNjYWxlLCB3aGljaCBhZGp1c3RzIHRoZSBwb3NpdGlvbiBvZiB0aGUK
KyAgICAqIGRlY2ltYWwgcG9pbnQgd2hlbiBmb3JtYXR0aW5nLiAgQW1vdW50cyB3aWxsIGJlIG11
bHRpcGxpZWQgYnkgMTAgXiAoc2NhbGUpCisgICAgKiBiZWZvcmUgdGhleSBhcmUgZm9ybWF0dGVk
LiAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzY2FsZSBpcyAwICggbm8gYWRqdXN0bWVudCAp
LgorICAgICoKKyAgICAqIDxwPkV4YW1wbGU6IHNldHRpbmcgdGhlIHNjYWxlIHRvIDMsIDEyMyBm
b3JtYXRzIGFzICIxMjMsMDAwIgorICAgICogPHA+RXhhbXBsZTogc2V0dGluZyB0aGUgc2NhbGUg
dG8gLTQsIDEyMyBmb3JtYXRzIGFzICIwLjAxMjMiCisgICAgKgorICAgKiBAZHJhZnQgSUNVIDUx
ICovCisgIFVOVU1fU0NBTEUgPSBVTlVNX0xFTklFTlRfUEFSU0UgKyAyLAorI2VuZGlmIC8qIFVf
SElERV9EUkFGVF9BUEkgKi8KKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgIC8qKiBD
b3VudCBvZiAicmVndWxhciIgbnVtZXJpYyBhdHRyaWJ1dGVzLgorICAgKiBAaW50ZXJuYWwgKi8K
KyAgVU5VTV9OVU1FUklDX0FUVFJJQlVURV9DT1VOVCA9IFVOVU1fTEVOSUVOVF9QQVJTRSArIDMs
CisKKyAgLyoqIE9uZSBiZWxvdyB0aGUgZmlyc3QgYml0ZmllbGQtYm9vbGVhbiBpdGVtLgorICAg
KiBBbGwgaXRlbXMgYWZ0ZXIgdGhpcyBvbmUgYXJlIHN0b3JlZCBpbiBib29sZWFuIGZvcm0uCisg
ICAqIEBpbnRlcm5hbCAqLworICBVTlVNX01BWF9OT05CT09MRUFOX0FUVFJJQlVURSA9IDB4MEZG
RiwKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgIC8qKiBJZiAxLCBzcGVj
aWZpZXMgdGhhdCBpZiBzZXR0aW5nIHRoZSAibWF4IGludGVnZXIgZGlnaXRzIiBhdHRyaWJ1dGUg
d291bGQgdHJ1bmNhdGUgYSB2YWx1ZSwgc2V0IGFuIGVycm9yIHN0YXR1cyByYXRoZXIgdGhhbiBz
aWxlbnRseSB0cnVuY2F0aW5nLgorICAgKiBGb3IgZXhhbXBsZSwgIGZvcm1hdHRpbmcgdGhlIHZh
bHVlIDEyMzQgd2l0aCA0IG1heCBpbnQgZGlnaXRzIHdvdWxkIHN1Y2NlZWQsIGJ1dCBmb3JtYXR0
aW5nIDEyMzQ1IHdvdWxkIGZhaWwuIFRoZXJlIGlzIG5vIGVmZmVjdCBvbiBwYXJzaW5nLgorICAg
KiBEZWZhdWx0OiAwIChub3Qgc2V0KQorICAgKiBAc3RhYmxlIElDVSA1MAorICAgKi8KKyAgVU5V
TV9GT1JNQVRfRkFJTF9JRl9NT1JFX1RIQU5fTUFYX0RJR0lUUyA9IDB4MTAwMCwKKyAgLyoqIAor
ICAgKiBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gMSwgc3BlY2lmaWVzIHRoYXQsIGlmIHRo
ZSBwYXR0ZXJuIGRvZXNuJ3QgY29udGFpbiBhbiBleHBvbmVudCwgdGhlIGV4cG9uZW50IHdpbGwg
bm90IGJlIHBhcnNlZC4gSWYgdGhlIHBhdHRlcm4gZG9lcyBjb250YWluIGFuIGV4cG9uZW50LCB0
aGlzIGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0LgorICAgKiBIYXMgbm8gZWZmZWN0IG9uIGZvcm1h
dHRpbmcuCisgICAqIERlZmF1bHQ6IDAgKHVuc2V0KQorICAgKiBAc3RhYmxlIElDVSA1MAorICAg
Ki8KKyAgVU5VTV9QQVJTRV9OT19FWFBPTkVOVCwKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxf
QVBJCisgIC8qKiBMaW1pdCBvZiBib29sZWFuIGF0dHJpYnV0ZXMuCisgICAqIEBpbnRlcm5hbCAq
LworICBVTlVNX0xJTUlUX0JPT0xFQU5fQVRUUklCVVRFCisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KIH0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZTsKIAogLyoqCkBAIC02NzcsNyAr
OTI0LDggQEAgdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3JtYXRBdHRyaWJ1dGUgewogKiBAcGFyYW0g
YXR0ciBUaGUgYXR0cmlidXRlIHRvIHF1ZXJ5OyBvbmUgb2YgVU5VTV9QQVJTRV9JTlRfT05MWSwg
VU5VTV9HUk9VUElOR19VU0VELAogKiBVTlVNX0RFQ0lNQUxfQUxXQVlTX1NIT1dOLCBVTlVNX01B
WF9JTlRFR0VSX0RJR0lUUywgVU5VTV9NSU5fSU5URUdFUl9ESUdJVFMsIFVOVU1fSU5URUdFUl9E
SUdJVFMsCiAqIFVOVU1fTUFYX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9NSU5fRlJBQ1RJT05fRElH
SVRTLCBVTlVNX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9NVUxUSVBMSUVSLAotKiBVTlVNX0dST1VQ
SU5HX1NJWkUsIFVOVU1fUk9VTkRJTkdfTU9ERSwgVU5VTV9GT1JNQVRfV0lEVEgsIFVOVU1fUEFE
RElOR19QT1NJVElPTiwgVU5VTV9TRUNPTkRBUllfR1JPVVBJTkdfU0laRS4KKyogVU5VTV9HUk9V
UElOR19TSVpFLCBVTlVNX1JPVU5ESU5HX01PREUsIFVOVU1fRk9STUFUX1dJRFRILCBVTlVNX1BB
RERJTkdfUE9TSVRJT04sIFVOVU1fU0VDT05EQVJZX0dST1VQSU5HX1NJWkUsCisqIFVOVU1fU0NB
TEUuCiAqIEByZXR1cm4gVGhlIHZhbHVlIG9mIGF0dHIuCiAqIEBzZWUgdW51bV9zZXRBdHRyaWJ1
dGUKICogQHNlZSB1bnVtX2dldERvdWJsZUF0dHJpYnV0ZQpAQCAtNzAwLDcgKzk0OCw3IEBAIHVu
dW1fZ2V0QXR0cmlidXRlKGNvbnN0IFVOdW1iZXJGb3JtYXQqICAgICAgICAgIGZtdCwKICogVU5V
TV9ERUNJTUFMX0FMV0FZU19TSE9XTiwgVU5VTV9NQVhfSU5URUdFUl9ESUdJVFMsIFVOVU1fTUlO
X0lOVEVHRVJfRElHSVRTLCBVTlVNX0lOVEVHRVJfRElHSVRTLAogKiBVTlVNX01BWF9GUkFDVElP
Tl9ESUdJVFMsIFVOVU1fTUlOX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9GUkFDVElPTl9ESUdJVFMs
IFVOVU1fTVVMVElQTElFUiwKICogVU5VTV9HUk9VUElOR19TSVpFLCBVTlVNX1JPVU5ESU5HX01P
REUsIFVOVU1fRk9STUFUX1dJRFRILCBVTlVNX1BBRERJTkdfUE9TSVRJT04sIFVOVU1fU0VDT05E
QVJZX0dST1VQSU5HX1NJWkUsCi0qIG9yIFVOVU1fTEVOSUVOVF9QQVJTRS4KKyogVU5VTV9MRU5J
RU5UX1BBUlNFLCBvciBVTlVNX1NDQUxFLgogKiBAcGFyYW0gbmV3VmFsdWUgVGhlIG5ldyB2YWx1
ZSBvZiBhdHRyLgogKiBAc2VlIHVudW1fZ2V0QXR0cmlidXRlCiAqIEBzZWUgdW51bV9nZXREb3Vi
bGVBdHRyaWJ1dGUKQEAgLTc4Myw3ICsxMDMxLDcgQEAgdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3Jt
YXRUZXh0QXR0cmlidXRlIHsKIC8qKgogKiBHZXQgYSB0ZXh0IGF0dHJpYnV0ZSBhc3NvY2lhdGVk
IHdpdGggYSBVTnVtYmVyRm9ybWF0LgogKiBBbiBleGFtcGxlIG9mIGEgdGV4dCBhdHRyaWJ1dGUg
aXMgdGhlIHN1ZmZpeCBmb3IgcG9zaXRpdmUgbnVtYmVycy4gIElmIHRoZSBmb3JtYXR0ZXIKLSog
ZG9lcyBub3QgdW5kZXJzdGFuZCB0aGUgYXR0cmlidXRyZSwgVV9VTlNVUFBPUlRFRF9FUlJPUiBp
cyByZXR1cm5lZCBhcyB0aGUgc3RhdHVzLgorKiBkb2VzIG5vdCB1bmRlcnN0YW5kIHRoZSBhdHRy
aWJ1dGUsIFVfVU5TVVBQT1JURURfRVJST1IgaXMgcmV0dXJuZWQgYXMgdGhlIHN0YXR1cy4KICog
UnVsZS1iYXNlZCBmb3JtYXR0ZXJzIG9ubHkgdW5kZXJzdGFuZCBVTlVNX0RFRkFVTFRfUlVMRVNF
VCBhbmQgVU5VTV9QVUJMSUNfUlVMRVNFVFMuCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0
byBxdWVyeS4KICogQHBhcmFtIHRhZyBUaGUgYXR0cmlidXRlIHRvIHF1ZXJ5OyBvbmUgb2YgVU5V
TV9QT1NJVElWRV9QUkVGSVgsIFVOVU1fUE9TSVRJVkVfU1VGRklYLApAQCAtODk1LDQxICsxMTQz
LDQxIEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0U3ltYm9sIHsKICAgLyoqIFRoZSBtb25l
dGFyeSBncm91cGluZyBzZXBhcmF0b3IgCiAgICAqIEBzdGFibGUgSUNVIDMuNgogICAgKi8KLSAg
VU5VTV9NT05FVEFSWV9HUk9VUElOR19TRVBBUkFUT1JfU1lNQk9MID0gMTcsICAKKyAgVU5VTV9N
T05FVEFSWV9HUk9VUElOR19TRVBBUkFUT1JfU1lNQk9MID0gMTcsCiAgIC8qKiBPbmUKLSAgICog
QGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX09ORV9E
SUdJVF9TWU1CT0wgPSAxOCwKICAgLyoqIFR3bwotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBA
c3RhYmxlIElDVSA0LjYKICAgICovCiAgIFVOVU1fVFdPX0RJR0lUX1NZTUJPTCA9IDE5LAogICAv
KiogVGhyZWUKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAq
LwogICBVTlVNX1RIUkVFX0RJR0lUX1NZTUJPTCA9IDIwLAogICAvKiogRm91cgotICAgKiBAZHJh
ZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICovCiAgIFVOVU1fRk9VUl9ESUdJ
VF9TWU1CT0wgPSAyMSwKICAgLyoqIEZpdmUKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0
YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX0ZJVkVfRElHSVRfU1lNQk9MID0gMjIsCiAgIC8q
KiBTaXgKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwog
ICBVTlVNX1NJWF9ESUdJVF9TWU1CT0wgPSAyMywKICAgLyoqIFNldmVuCi0gICAgKiBAZHJhZnQg
SUNVIDQuNgorICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX1NFVkVOX0RJR0lU
X1NZTUJPTCA9IDI0LAogICAvKiogRWlnaHQKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0
YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX0VJR0hUX0RJR0lUX1NZTUJPTCA9IDI1LAogICAv
KiogTmluZQotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICov
CiAgIFVOVU1fTklORV9ESUdJVF9TWU1CT0wgPSAyNiwKICAgLyoqIGNvdW50IHN5bWJvbCBjb25z
dGFudHMgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91
cmVuYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXJlbmFtZS5oCmlu
ZGV4IDQ2OGJkYmQwZjQ2OTI0ZGMyZWU5MzM3NDA4ZTg2NzJhMmU4NjdhNDkuLjZiMWY0OTA5ODc1
MDY5YjRkOWZlZWZkZDc0ODNmNWEwM2ZjNTA3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ljdS91bmljb2RlL3VyZW5hbWUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTAsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtOSw3ICs5LDcgQEAK
ICogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKICogICBpbmRlbnRhdGlvbjo0CiAqCi0qICAg
Q3JlYXRlZCBieTogUGVybCBzY3JpcHQgd3JpdHRlbiBieSBWbGFkaW1pciBXZWluc3RlaW4KKyog
ICBDcmVhdGVkIGJ5OiBQZXJsIHNjcmlwdCB0b29scy9nZW5yZW4ucGwgd3JpdHRlbiBieSBWbGFk
aW1pciBXZWluc3RlaW4KICoKICogIENvbnRhaW5zIGRhdGEgZm9yIHJlbmFtaW5nIElDVSBleHBv
cnRzLgogKiAgR2V0cyBpbmNsdWRlZCBieSB1bWFjaGluZS5oCkBAIC0yMSw5ICsyMSwxMyBAQAog
I2lmbmRlZiBVUkVOQU1FX0gKICNkZWZpbmUgVVJFTkFNRV9ICiAKLS8qIFVuY29tbWVudCB0aGUg
Zm9sbG93aW5nIGxpbmUgdG8gZGlzYWJsZSByZW5hbWluZyBvbiBwbGF0Zm9ybXMKLSAgIHRoYXQg
ZG8gbm90IHVzZSBBdXRvY29uZi4gKi8KLS8qICNkZWZpbmUgVV9ESVNBQkxFX1JFTkFNSU5HIDEg
Ki8KKy8qIFVfRElTQUJMRV9SRU5BTUlORyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgZm9sbG93aW5n
IHdheXM6CisgKiAgIC0gd2hlbiBydW5uaW5nIGNvbmZpZ3VyZSwgZS5nLgorICogICAgICAgIHJ1
bkNvbmZpZ3VyZUlDVSBMaW51eCAtLWRpc2FibGUtcmVuYW1pbmcKKyAqICAgLSBieSBjaGFuZ2lu
ZyB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIFVfRElTQUJMRV9SRU5BTUlORyBpbiB1Y29uZmlnLmgK
KyAqLworCisjaW5jbHVkZSAidW5pY29kZS91Y29uZmlnLmgiCiAKICNpZiAhVV9ESVNBQkxFX1JF
TkFNSU5HCiAKQEAgLTMxLDYgKzM1LDcgQEAKICAgIHRoZSBwbGF0Zm9ybSBhIGNoYW5jZSB0byBk
ZWZpbmUgaXQgZmlyc3QuCiAgICBOb3JtYWxseSAoaWYgdXR5cGVzLmggb3IgdW1hY2hpbmUuaCB3
YXMgaW5jbHVkZWQgZmlyc3QpIHRoaXMgd2lsbCBub3QgYmUgbmVjZXNzYXJ5IGFzIGl0IHdpbGwg
YWxyZWFkeSBiZSBkZWZpbmVkLgogICovCisKICNpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FCiAjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2VuZGlmCkBAIC00OCwxNCArNTMs
OSBAQAogCiAvKiBDIGV4cG9ydHMgcmVuYW1pbmcgZGF0YSAqLwogCi0jZGVmaW5lIERFQ1BPV0VS
UyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoREVDUE9XRVJTKQotI2RlZmluZSBERUNTVElDS1lU
QUIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERFQ1NUSUNLWVRBQikKLSNkZWZpbmUgTE5ubiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTE5ubikKICNkZWZpbmUgVF9DU3RyaW5nX2ludDY0VG9T
dHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19pbnQ2NFRvU3RyaW5nKQog
I2RlZmluZSBUX0NTdHJpbmdfaW50ZWdlclRvU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUX0NTdHJpbmdfaW50ZWdlclRvU3RyaW5nKQotI2RlZmluZSBUX0NTdHJpbmdfc3RyaWNtcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cmljbXApCiAjZGVmaW5lIFRfQ1N0
cmluZ19zdHJpbmdUb0ludGVnZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19z
dHJpbmdUb0ludGVnZXIpCi0jZGVmaW5lIFRfQ1N0cmluZ19zdHJuaWNtcCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cm5pY21wKQogI2RlZmluZSBUX0NTdHJpbmdfdG9Mb3dl
ckNhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ190b0xvd2VyQ2FzZSkKICNk
ZWZpbmUgVF9DU3RyaW5nX3RvVXBwZXJDYXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NT
dHJpbmdfdG9VcHBlckNhc2UpCiAjZGVmaW5lIFVDTlZfRlJPTV9VX0NBTExCQUNLX0VTQ0FQRSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNOVl9GUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFKQpAQCAt
NzUsNiArNzUsNyBAQAogI2RlZmluZSBfQVNDSUlEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShfQVNDSUlEYXRhKQogI2RlZmluZSBfQm9jdTFEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShfQm9jdTFEYXRhKQogI2RlZmluZSBfQ0VTVThEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShfQ0VTVThEYXRhKQorI2RlZmluZSBfQ29tcG91bmRUZXh0RGF0YSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoX0NvbXBvdW5kVGV4dERhdGEpCiAjZGVmaW5lIF9IWkRhdGEgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKF9IWkRhdGEpCiAjZGVmaW5lIF9JTUFQRGF0YSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoX0lNQVBEYXRhKQogI2RlZmluZSBfSVNDSUlEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShfSVNDSUlEYXRhKQpAQCAtMTAyLDIxICsxMDMsOCBAQAogI2RlZmluZSBfVVRGMzJM
RURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9VVEYzMkxFRGF0YSkKICNkZWZpbmUgX1VU
RjdEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfVVRGN0RhdGEpCiAjZGVmaW5lIF9VVEY4
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX1VURjhEYXRhKQotI2RlZmluZSBibXNfY2xv
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19jbG9zZSkKLSNkZWZpbmUgYm1zX2VtcHR5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfZW1wdHkpCi0jZGVmaW5lIGJtc19nZXREYXRh
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfZ2V0RGF0YSkKLSNkZWZpbmUgYm1zX29wZW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19vcGVuKQotI2RlZmluZSBibXNfc2VhcmNoIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfc2VhcmNoKQotI2RlZmluZSBibXNfc2V0VGFyZ2V0
U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfc2V0VGFyZ2V0U3RyaW5nKQotI2Rl
ZmluZSBidWlsZFdTQ29uZnVzYWJsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJ1aWxk
V1NDb25mdXNhYmxlRGF0YSkKICNkZWZpbmUgY21lbW9yeV9jbGVhbnVwIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShjbWVtb3J5X2NsZWFudXApCiAjZGVmaW5lIGNtZW1vcnlfaW5Vc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKGNtZW1vcnlfaW5Vc2UpCi0jZGVmaW5lIGQydXRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShkMnV0YWJsZSkKLSNkZWZpbmUgZGVsZXRlQ0VMaXN0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDRUxpc3QpCi0jZGVmaW5lIGRlbGV0ZUNoYXJzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDaGFycykKLSNkZWZpbmUgZGVsZXRlQ29sbERh
dGFDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDb2xsRGF0YUNhY2hl
RW50cnkpCi0jZGVmaW5lIGRlbGV0ZVN0cmluZ0xpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KGRlbGV0ZVN0cmluZ0xpc3QpCi0jZGVmaW5lIGRlbGV0ZVVuaWNvZGVTdHJpbmdLZXkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZVVuaWNvZGVTdHJpbmdLZXkpCiAjZGVmaW5lIGl6cnVs
ZV9jbG9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Nsb25lKQogI2RlZmluZSBp
enJ1bGVfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGl6cnVsZV9jbG9zZSkKICNkZWZp
bmUgaXpydWxlX2VxdWFscyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2VxdWFscykK
QEAgLTIxMiw4ICsyMDAsNiBAQAogI2RlZmluZSByZXNfbG9hZCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUocmVzX2xvYWQpCiAjZGVmaW5lIHJlc19yZWFkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShyZXNfcmVhZCkKICNkZWZpbmUgcmVzX3VubG9hZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
cmVzX3VubG9hZCkKLSNkZWZpbmUgdG11dGZtdEhhc2hUYWJsZVZhbHVlQ29tcGFyYXRvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodG11dGZtdEhhc2hUYWJsZVZhbHVlQ29tcGFyYXRvcikKLSNk
ZWZpbmUgdHJpZWRpY3Rfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodHJpZWRpY3Rfc3dh
cCkKICNkZWZpbmUgdV9VQ2hhcnNUb0NoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X1VD
aGFyc1RvQ2hhcnMpCiAjZGVmaW5lIHVfYXVzdHJjcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVfYXVzdHJjcHkpCiAjZGVmaW5lIHVfYXVzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X2F1c3RybmNweSkKQEAgLTIzOSw2ICsyMjUsNyBAQAogI2RlZmluZSB1X2Zlb2YgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfZmVvZikKICNkZWZpbmUgdV9mZmx1c2ggVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVfZmZsdXNoKQogI2RlZmluZSB1X2ZnZXRDb252ZXJ0ZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfZmdldENvbnZlcnRlcikKKyNkZWZpbmUgdV9mZ2V0TnVtYmVyRm9y
bWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5l
IHVfZmdldGMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGMpCiAjZGVmaW5lIHVfZmdl
dGNvZGVwYWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXRjb2RlcGFnZSkKICNkZWZp
bmUgdV9mZ2V0Y3ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGN4KQpAQCAtMjY3LDYg
KzI1NCw3IEBACiAjZGVmaW5lIHVfZnNldHRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2ZzZXR0cmFuc2xpdGVyYXRvcikKICNkZWZpbmUgdV9mc3Ryb3BlbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9mc3Ryb3BlbikKICNkZWZpbmUgdV9mdW5nZXRjIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1X2Z1bmdldGMpCisjZGVmaW5lIHVfZ2V0QmlkaVBhaXJlZEJyYWNr
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0QmlkaVBhaXJlZEJyYWNrZXQpCiAjZGVm
aW5lIHVfZ2V0Q29tYmluaW5nQ2xhc3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0Q29t
YmluaW5nQ2xhc3MpCiAjZGVmaW5lIHVfZ2V0RGF0YURpcmVjdG9yeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXREYXRhRGlyZWN0b3J5KQogI2RlZmluZSB1X2dldERhdGFWZXJzaW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldERhdGFWZXJzaW9uKQpAQCAtMjc2LDYgKzI2NCw3
IEBACiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKQogI2RlZmluZSB1X2dldEludFByb3BlcnR5
TWluVmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlNaW5WYWx1
ZSkKICNkZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eVZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X2dldEludFByb3BlcnR5VmFsdWUpCisjZGVmaW5lIHVfZ2V0TWFpblByb3BlcnRpZXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0TWFpblByb3BlcnRpZXMpCiAjZGVmaW5lIHVfZ2V0
TnVtZXJpY1ZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldE51bWVyaWNWYWx1ZSkK
ICNkZWZpbmUgdV9nZXRQcm9wZXJ0eUVudW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0
UHJvcGVydHlFbnVtKQogI2RlZmluZSB1X2dldFByb3BlcnR5TmFtZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXRQcm9wZXJ0eU5hbWUpCkBAIC0yODQsOSArMjczLDkgQEAKICNkZWZpbmUg
dV9nZXRVbmljb2RlUHJvcGVydGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRVbmlj
b2RlUHJvcGVydGllcykKICNkZWZpbmUgdV9nZXRVbmljb2RlVmVyc2lvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodV9nZXRVbmljb2RlVmVyc2lvbikKICNkZWZpbmUgdV9nZXRWZXJzaW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFZlcnNpb24pCisjZGVmaW5lIHVfZ2V0X3N0ZG91
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRfc3Rkb3V0KQogI2RlZmluZSB1X2hhc0Jp
bmFyeVByb3BlcnR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2hhc0JpbmFyeVByb3BlcnR5
KQogI2RlZmluZSB1X2luaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaW5pdCkKLSNkZWZp
bmUgdV9pc0RhdGFPbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0RhdGFPbGRlcikK
ICNkZWZpbmUgdV9pc0lESWdub3JhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzSURJ
Z25vcmFibGUpCiAjZGVmaW5lIHVfaXNJRFBhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
aXNJRFBhcnQpCiAjZGVmaW5lIHVfaXNJRFN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2lzSURTdGFydCkKQEAgLTMxOCw3ICszMDcsNiBAQAogI2RlZmluZSB1X2lzdGl0bGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfaXN0aXRsZSkKICNkZWZpbmUgdV9pc3VwcGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1X2lzdXBwZXIpCiAjZGVmaW5lIHVfaXN4ZGlnaXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfaXN4ZGlnaXQpCi0jZGVmaW5lIHVfbGVuZ3RoT2ZJZGVudGljYWxM
ZXZlbFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sZW5ndGhPZklkZW50aWNhbExldmVs
UnVuKQogI2RlZmluZSB1X2xvY2J1bmRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
bG9jYnVuZF9jbG9zZSkKICNkZWZpbmUgdV9sb2NidW5kX2dldE51bWJlckZvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2dldE51bWJlckZvcm1hdCkKICNkZWZpbmUgdV9s
b2NidW5kX2luaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbG9jYnVuZF9pbml0KQpAQCAt
MzM0LDcgKzMyMiw5IEBACiAjZGVmaW5lIHVfbWVtc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X21lbXNldCkKICNkZWZpbmUgdV9wYXJzZU1lc3NhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfcGFyc2VNZXNzYWdlKQogI2RlZmluZSB1X3BhcnNlTWVzc2FnZVdpdGhFcnJvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wYXJzZU1lc3NhZ2VXaXRoRXJyb3IpCisjZGVmaW5lIHVf
cHJpbnRmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3ByaW50ZikKICNkZWZpbmUgdV9wcmlu
dGZfcGFyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmX3BhcnNlKQorI2RlZmlu
ZSB1X3ByaW50Zl91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3ByaW50Zl91KQogI2RlZmlu
ZSB1X3JlbGVhc2VEZWZhdWx0Q29udmVydGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3Jl
bGVhc2VEZWZhdWx0Q29udmVydGVyKQogI2RlZmluZSB1X3NjYW5mX3BhcnNlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X3NjYW5mX3BhcnNlKQogI2RlZmluZSB1X3NldEF0b21pY0luY0RlY0Z1
bmN0aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9zZXRBdG9taWNJbmNEZWNGdW5jdGlv
bnMpCkBAIC00NDYsNyArNDM2LDEwIEBACiAjZGVmaW5lIHViaWRpX2dldE1heFZhbHVlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNYXhWYWx1ZSkKICNkZWZpbmUgdWJpZGlfZ2V0
TWVtb3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNZW1vcnkpCiAjZGVmaW5l
IHViaWRpX2dldE1pcnJvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0TWlycm9y
KQorI2RlZmluZSB1YmlkaV9nZXRQYWlyZWRCcmFja2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1YmlkaV9nZXRQYWlyZWRCcmFja2V0KQorI2RlZmluZSB1YmlkaV9nZXRQYWlyZWRCcmFja2V0
VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFpcmVkQnJhY2tldFR5cGUp
CiAjZGVmaW5lIHViaWRpX2dldFBhcmFMZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJp
ZGlfZ2V0UGFyYUxldmVsKQorI2RlZmluZSB1YmlkaV9nZXRQYXJhTGV2ZWxBdEluZGV4IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhTGV2ZWxBdEluZGV4KQogI2RlZmluZSB1
YmlkaV9nZXRQYXJhZ3JhcGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFn
cmFwaCkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYWdyYXBoQnlJbmRleCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWJpZGlfZ2V0UGFyYWdyYXBoQnlJbmRleCkKICNkZWZpbmUgdWJpZGlfZ2V0UHJv
Y2Vzc2VkTGVuZ3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQcm9jZXNzZWRM
ZW5ndGgpCkBAIC00NzEsNiArNDY0LDcgQEAKICNkZWZpbmUgdWJpZGlfcmVvcmRlckxvZ2ljYWwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3Jlb3JkZXJMb2dpY2FsKQogI2RlZmluZSB1
YmlkaV9yZW9yZGVyVmlzdWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9yZW9yZGVy
VmlzdWFsKQogI2RlZmluZSB1YmlkaV9zZXRDbGFzc0NhbGxiYWNrIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1YmlkaV9zZXRDbGFzc0NhbGxiYWNrKQorI2RlZmluZSB1YmlkaV9zZXRDb250ZXh0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRDb250ZXh0KQogI2RlZmluZSB1Ymlk
aV9zZXRJbnZlcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRJbnZlcnNlKQog
I2RlZmluZSB1YmlkaV9zZXRMaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRM
aW5lKQogI2RlZmluZSB1YmlkaV9zZXRQYXJhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Ymlk
aV9zZXRQYXJhKQpAQCAtNDk1LDYgKzQ4OSw3IEBACiAjZGVmaW5lIHVicmtfb3BlblJ1bGVzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX29wZW5SdWxlcykKICNkZWZpbmUgdWJya19wcmVj
ZWRpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcHJlY2VkaW5nKQogI2RlZmluZSB1
YnJrX3ByZXZpb3VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3ByZXZpb3VzKQorI2Rl
ZmluZSB1YnJrX3JlZnJlc2hVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19yZWZy
ZXNoVVRleHQpCiAjZGVmaW5lIHVicmtfc2FmZUNsb25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1YnJrX3NhZmVDbG9uZSkKICNkZWZpbmUgdWJya19zZXRUZXh0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1YnJrX3NldFRleHQpCiAjZGVmaW5lIHVicmtfc2V0VVRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVicmtfc2V0VVRleHQpCkBAIC01MTMsNiArNTA4LDcgQEAKICNkZWZpbmUg
dWNhbF9nZXREU1RTYXZpbmdzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERTVFNh
dmluZ3MpCiAjZGVmaW5lIHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNhbF9nZXREYXlPZldlZWtUeXBlKQogI2RlZmluZSB1Y2FsX2dldERlZmF1bHRUaW1l
Wm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXREZWZhdWx0VGltZVpvbmUpCisj
ZGVmaW5lIHVjYWxfZ2V0RmllbGREaWZmZXJlbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX2dldEZpZWxkRGlmZmVyZW5jZSkKICNkZWZpbmUgdWNhbF9nZXRHcmVnb3JpYW5DaGFuZ2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0R3JlZ29yaWFuQ2hhbmdlKQogI2RlZmlu
ZSB1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYWxfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSkKICNkZWZpbmUgdWNhbF9nZXRMaW1pdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRMaW1pdCkKQEAgLTUyMSwxMyArNTE3LDE4
IEBACiAjZGVmaW5lIHVjYWxfZ2V0Tm93IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dl
dE5vdykKICNkZWZpbmUgdWNhbF9nZXRUWkRhdGFWZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2dldFRaRGF0YVZlcnNpb24pCiAjZGVmaW5lIHVjYWxfZ2V0VGltZVpvbmVEaXNw
bGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZURpc3BsYXlO
YW1lKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lSUQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYWxfZ2V0VGltZVpvbmVJRCkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZUlERm9yV2luZG93
c0lEIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lSURGb3JXaW5kb3dz
SUQpCisjZGVmaW5lIHVjYWxfZ2V0VGltZVpvbmVUcmFuc2l0aW9uRGF0ZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRlKQogI2RlZmluZSB1Y2Fs
X2dldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VHlwZSkKICNkZWZpbmUg
dWNhbF9nZXRXZWVrZW5kVHJhbnNpdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9n
ZXRXZWVrZW5kVHJhbnNpdGlvbikKKyNkZWZpbmUgdWNhbF9nZXRXaW5kb3dzVGltZVpvbmVJRCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRXaW5kb3dzVGltZVpvbmVJRCkKICNkZWZp
bmUgdWNhbF9pbkRheWxpZ2h0VGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9pbkRh
eWxpZ2h0VGltZSkKICNkZWZpbmUgdWNhbF9pc1NldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNhbF9pc1NldCkKICNkZWZpbmUgdWNhbF9pc1dlZWtlbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjYWxfaXNXZWVrZW5kKQogI2RlZmluZSB1Y2FsX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfb3BlbikKICNkZWZpbmUgdWNhbF9vcGVuQ291bnRyeVRpbWVab25lcyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuQ291bnRyeVRpbWVab25lcykKKyNkZWZpbmUg
dWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX29wZW5UaW1lWm9uZUlERW51bWVyYXRpb24pCiAjZGVmaW5lIHVjYWxfb3BlblRpbWVab25l
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuVGltZVpvbmVzKQogI2RlZmluZSB1
Y2FsX3JvbGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfcm9sbCkKICNkZWZpbmUgdWNh
bF9zZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfc2V0KQpAQCAtNTYwLDYgKzU2MSw4
IEBACiAjZGVmaW5lIHVjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IpCiAjZGVmaW5lIHVjYXNlbWFwX2dldExv
Y2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0TG9jYWxlKQogI2RlZmlu
ZSB1Y2FzZW1hcF9nZXRPcHRpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9n
ZXRPcHRpb25zKQorI2RlZmluZSB1Y2FzZW1hcF9pbnRlcm5hbFVURjhUb1RpdGxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9pbnRlcm5hbFVURjhUb1RpdGxlKQorI2RlZmluZSB1
Y2FzZW1hcF9tYXBVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9tYXBVVEY4
KQogI2RlZmluZSB1Y2FzZW1hcF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1h
cF9vcGVuKQogI2RlZmluZSB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKQogI2RlZmluZSB1Y2FzZW1hcF9z
ZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3NldExvY2FsZSkKQEAg
LTU2OSwxMSArNTcyLDYgQEAKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvTG93ZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3V0ZjhUb0xvd2VyKQogI2RlZmluZSB1Y2FzZW1hcF91
dGY4VG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRvVGl0bGUp
CiAjZGVmaW5lIHVjYXNlbWFwX3V0ZjhUb1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FzZW1hcF91dGY4VG9VcHBlcikKLSNkZWZpbmUgdWNkX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y2RfY2xvc2UpCi0jZGVmaW5lIHVjZF9mbHVzaENhY2hlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2RfZmx1c2hDYWNoZSkKLSNkZWZpbmUgdWNkX2ZyZWVDYWNoZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNkX2ZyZWVDYWNoZSkKLSNkZWZpbmUgdWNkX2dldENvbGxhdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2RfZ2V0Q29sbGF0b3IpCi0jZGVmaW5lIHVjZF9v
cGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2Rfb3BlbikKICNkZWZpbmUgdWNoYXJfYWRk
UHJvcGVydHlTdGFydHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjaGFyX2FkZFByb3BlcnR5
U3RhcnRzKQogI2RlZmluZSB1Y2hhcl9zd2FwTmFtZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjaGFyX3N3YXBOYW1lcykKICNkZWZpbmUgdWNsbl9jbGVhbnVwT25lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2xuX2NsZWFudXBPbmUpCkBAIC02NTYsNiArNjU0LDcgQEAKICNkZWZpbmUg
dWNudl9pb19zdHJpcEFTQ0lJRm9yQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNu
dl9pb19zdHJpcEFTQ0lJRm9yQ29tcGFyZSkKICNkZWZpbmUgdWNudl9pb19zdHJpcEVCQ0RJQ0Zv
ckNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaW9fc3RyaXBFQkNESUNGb3JD
b21wYXJlKQogI2RlZmluZSB1Y252X2lzQW1iaWd1b3VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y252X2lzQW1iaWd1b3VzKQorI2RlZmluZSB1Y252X2lzRml4ZWRXaWR0aCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNudl9pc0ZpeGVkV2lkdGgpCiAjZGVmaW5lIHVjbnZfbG9hZCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9sb2FkKQogI2RlZmluZSB1Y252X2xvYWRTaGFyZWRE
YXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2xvYWRTaGFyZWREYXRhKQogI2RlZmlu
ZSB1Y252X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfb3BlbikKQEAgLTY5Nyw3
ICs2OTYsNiBAQAogI2RlZmluZSB1Y29sX2NhbGNTb3J0S2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y29sX2NhbGNTb3J0S2V5KQogI2RlZmluZSB1Y29sX2NhbGNTb3J0S2V5U2ltcGxlVGVy
dGlhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2FsY1NvcnRLZXlTaW1wbGVUZXJ0
aWFyeSkKICNkZWZpbmUgdWNvbF9jbG9uZUJpbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9jbG9uZUJpbmFyeSkKLSNkZWZpbmUgdWNvbF9jbG9uZVJ1bGVEYXRhIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2Nsb25lUnVsZURhdGEpCiAjZGVmaW5lIHVjb2xfY2xvc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvc2UpCiAjZGVmaW5lIHVjb2xfY2xvc2VFbGVt
ZW50cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9zZUVsZW1lbnRzKQogI2RlZmlu
ZSB1Y29sX2NvdW50QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2NvdW50
QXZhaWxhYmxlKQpAQCAtNzE0LDkgKzcxMiwxMSBAQAogI2RlZmluZSB1Y29sX2dldEF2YWlsYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRBdmFpbGFibGUpCiAjZGVmaW5lIHVj
b2xfZ2V0Qm91bmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Qm91bmQpCiAjZGVm
aW5lIHVjb2xfZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UpCisjZGVmaW5lIHVjb2xfZ2V0Q29sbGF0aW9u
S2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENvbGxhdGlvbktleSkKICNkZWZp
bmUgdWNvbF9nZXRDb250cmFjdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0
Q29udHJhY3Rpb25zKQogI2RlZmluZSB1Y29sX2dldENvbnRyYWN0aW9uc0FuZEV4cGFuc2lvbnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Q29udHJhY3Rpb25zQW5kRXhwYW5zaW9u
cykKICNkZWZpbmUgdWNvbF9nZXREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXREaXNwbGF5TmFtZSkKKyNkZWZpbmUgdWNvbF9nZXRFcXVpdmFsZW50UmVvcmRlckNv
ZGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29k
ZXMpCiAjZGVmaW5lIHVjb2xfZ2V0Rmlyc3RDRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNv
bF9nZXRGaXJzdENFKQogI2RlZmluZSB1Y29sX2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50KQogI2RlZmlu
ZSB1Y29sX2dldEtleXdvcmRWYWx1ZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0
S2V5d29yZFZhbHVlcykKQEAgLTczNSw4ICs3MzUsNiBAQAogI2RlZmluZSB1Y29sX2dldFJ1bGVz
RXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0UnVsZXNFeCkKICNkZWZpbmUgdWNv
bF9nZXRTaG9ydERlZmluaXRpb25TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
Z2V0U2hvcnREZWZpbml0aW9uU3RyaW5nKQogI2RlZmluZSB1Y29sX2dldFNvcnRLZXkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0U29ydEtleSkKLSNkZWZpbmUgdWNvbF9nZXRTb3J0
S2V5U2l6ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5U2l6ZSkKLSNk
ZWZpbmUgdWNvbF9nZXRTb3J0S2V5V2l0aEFsbG9jYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjb2xfZ2V0U29ydEtleVdpdGhBbGxvY2F0aW9uKQogI2RlZmluZSB1Y29sX2dldFN0cmVu
Z3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFN0cmVuZ3RoKQogI2RlZmluZSB1
Y29sX2dldFRhaWxvcmVkU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFRhaWxv
cmVkU2V0KQogI2RlZmluZSB1Y29sX2dldFVDQVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjb2xfZ2V0VUNBVmVyc2lvbikKQEAgLTc4OCw2ICs3ODYsNyBAQAogI2RlZmluZSB1Y29s
X3NldFZhcmlhYmxlVG9wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3NldFZhcmlhYmxl
VG9wKQogI2RlZmluZSB1Y29sX3N0cmNvbGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
c3RyY29sbCkKICNkZWZpbmUgdWNvbF9zdHJjb2xsSXRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9zdHJjb2xsSXRlcikKKyNkZWZpbmUgdWNvbF9zdHJjb2xsVVRGOCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNvbF9zdHJjb2xsVVRGOCkKICNkZWZpbmUgdWNvbF9zd2FwIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXApCiAjZGVmaW5lIHVjb2xfc3dhcEJpbmFyeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zd2FwQmluYXJ5KQogI2RlZmluZSB1Y29sX3N3
YXBJbnZlcnNlVUNBIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXBJbnZlcnNlVUNB
KQpAQCAtODA1LDEyICs4MDQsMTQgQEAKICNkZWZpbmUgdWNzZGV0X2VuYWJsZUlucHV0RmlsdGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZW5hYmxlSW5wdXRGaWx0ZXIpCiAjZGVm
aW5lIHVjc2RldF9nZXRBbGxEZXRlY3RhYmxlQ2hhcnNldHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjc2RldF9nZXRBbGxEZXRlY3RhYmxlQ2hhcnNldHMpCiAjZGVmaW5lIHVjc2RldF9nZXRD
b25maWRlbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0Q29uZmlkZW5jZSkK
KyNkZWZpbmUgdWNzZGV0X2dldERldGVjdGFibGVDaGFyc2V0cyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNzZGV0X2dldERldGVjdGFibGVDaGFyc2V0cykKICNkZWZpbmUgdWNzZGV0X2dldExh
bmd1YWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0TGFuZ3VhZ2UpCiAjZGVm
aW5lIHVjc2RldF9nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0TmFt
ZSkKICNkZWZpbmUgdWNzZGV0X2dldFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNz
ZGV0X2dldFVDaGFycykKICNkZWZpbmUgdWNzZGV0X2lzSW5wdXRGaWx0ZXJFbmFibGVkIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfaXNJbnB1dEZpbHRlckVuYWJsZWQpCiAjZGVmaW5l
IHVjc2RldF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfb3BlbikKICNkZWZp
bmUgdWNzZGV0X3NldERlY2xhcmVkRW5jb2RpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
c2RldF9zZXREZWNsYXJlZEVuY29kaW5nKQorI2RlZmluZSB1Y3NkZXRfc2V0RGV0ZWN0YWJsZUNo
YXJzZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9zZXREZXRlY3RhYmxlQ2hhcnNl
dCkKICNkZWZpbmUgdWNzZGV0X3NldFRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2Rl
dF9zZXRUZXh0KQogI2RlZmluZSB1Y3Vycl9jb3VudEN1cnJlbmNpZXMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjdXJyX2NvdW50Q3VycmVuY2llcykKICNkZWZpbmUgdWN1cnJfZm9yTG9jYWxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9mb3JMb2NhbGUpCkBAIC04MTgsOCArODE5
LDEwIEBACiAjZGVmaW5lIHVjdXJyX2dldERlZmF1bHRGcmFjdGlvbkRpZ2l0cyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKQogI2RlZmluZSB1
Y3Vycl9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y3Vycl9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlKQogI2RlZmluZSB1Y3Vycl9nZXROYW1lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXROYW1lKQorI2RlZmluZSB1Y3Vycl9nZXRO
dW1lcmljQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0TnVtZXJpY0NvZGUp
CiAjZGVmaW5lIHVjdXJyX2dldFBsdXJhbE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
dXJyX2dldFBsdXJhbE5hbWUpCiAjZGVmaW5lIHVjdXJyX2dldFJvdW5kaW5nSW5jcmVtZW50IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXRSb3VuZGluZ0luY3JlbWVudCkKKyNkZWZp
bmUgdWN1cnJfaXNBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2lzQXZh
aWxhYmxlKQogI2RlZmluZSB1Y3Vycl9vcGVuSVNPQ3VycmVuY2llcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWN1cnJfb3BlbklTT0N1cnJlbmNpZXMpCiAjZGVmaW5lIHVjdXJyX3JlZ2lzdGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9yZWdpc3RlcikKICNkZWZpbmUgdWN1cnJf
dW5yZWdpc3RlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfdW5yZWdpc3RlcikKQEAg
LTgzMyw2ICs4MzYsNyBAQAogI2RlZmluZSB1ZGF0X2dldDJEaWdpdFllYXJTdGFydCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXQyRGlnaXRZZWFyU3RhcnQpCiAjZGVmaW5lIHVkYXRf
Z2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldEF2YWlsYWJsZSkK
ICNkZWZpbmUgdWRhdF9nZXRDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9n
ZXRDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9nZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGF0X2dldENvbnRleHQpCiAjZGVmaW5lIHVkYXRfZ2V0TG9jYWxlQnlUeXBlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldExvY2FsZUJ5VHlwZSkKICNkZWZpbmUgdWRhdF9n
ZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0TnVtYmVyRm9y
bWF0KQogI2RlZmluZSB1ZGF0X2dldFN5bWJvbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRfZ2V0U3ltYm9scykKQEAgLTg0MCw4ICs4NDQsMTAgQEAKICNkZWZpbmUgdWRhdF9vcGVuIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X29wZW4pCiAjZGVmaW5lIHVkYXRfcGFyc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfcGFyc2UpCiAjZGVmaW5lIHVkYXRfcGFyc2VDYWxl
bmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9wYXJzZUNhbGVuZGFyKQorI2RlZmlu
ZSB1ZGF0X3JlZ2lzdGVyT3BlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3JlZ2lz
dGVyT3BlbmVyKQogI2RlZmluZSB1ZGF0X3NldDJEaWdpdFllYXJTdGFydCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdF9zZXQyRGlnaXRZZWFyU3RhcnQpCiAjZGVmaW5lIHVkYXRfc2V0Q2Fs
ZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0Q2FsZW5kYXIpCisjZGVmaW5l
IHVkYXRfc2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRDb250ZXh0
KQogI2RlZmluZSB1ZGF0X3NldExlbmllbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRf
c2V0TGVuaWVudCkKICNkZWZpbmUgdWRhdF9zZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVkYXRfc2V0TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1ZGF0X3NldFN5bWJvbHMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0U3ltYm9scykKQEAgLTg0OSw2ICs4NTUs
NyBAQAogI2RlZmluZSB1ZGF0X3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRh
dF90b1BhdHRlcm4pCiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVyblJlbGF0aXZlRGF0ZSkKICNkZWZpbmUgdWRh
dF90b1BhdHRlcm5SZWxhdGl2ZVRpbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdG9Q
YXR0ZXJuUmVsYXRpdmVUaW1lKQorI2RlZmluZSB1ZGF0X3VucmVnaXN0ZXJPcGVuZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdW5yZWdpc3Rlck9wZW5lcikKICNkZWZpbmUgdWRhdGFf
Y2hlY2tDb21tb25EYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0YV9jaGVja0NvbW1v
bkRhdGEpCiAjZGVmaW5lIHVkYXRhX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0
YV9jbG9zZSkKICNkZWZpbmUgdWRhdGFfY2xvc2VTd2FwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGF0YV9jbG9zZVN3YXBwZXIpCkBAIC04OTIsMTIgKzg5OSwxNyBAQAogI2RlZmluZSB1
ZGF0cGdfc2V0QXBwZW5kSXRlbU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19z
ZXRBcHBlbmRJdGVtTmFtZSkKICNkZWZpbmUgdWRhdHBnX3NldERhdGVUaW1lRm9ybWF0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0RGF0ZVRpbWVGb3JtYXQpCiAjZGVmaW5lIHVk
YXRwZ19zZXREZWNpbWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0RGVjaW1h
bCkKKyNkZWZpbmUgdWRpY3Rfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRpY3Rfc3dh
cCkKKyNkZWZpbmUgdWR0aXR2Zm10X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZHRp
dHZmbXRfY2xvc2UpCisjZGVmaW5lIHVkdGl0dmZtdF9mb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVkdGl0dmZtdF9mb3JtYXQpCisjZGVmaW5lIHVkdGl0dmZtdF9vcGVuIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1ZHRpdHZmbXRfb3BlbikKICNkZWZpbmUgdWVudW1fY2xvc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX2Nsb3NlKQogI2RlZmluZSB1ZW51bV9jb3VudCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fY291bnQpCiAjZGVmaW5lIHVlbnVtX25leHQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX25leHQpCiAjZGVmaW5lIHVlbnVtX25leHRE
ZWZhdWx0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9uZXh0RGVmYXVsdCkKICNkZWZp
bmUgdWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVlbnVtX29wZW5DaGFyU3RyaW5nc0VudW1lcmF0aW9uKQogI2RlZmluZSB1ZW51bV9vcGVu
RnJvbVN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9vcGVu
RnJvbVN0cmluZ0VudW1lcmF0aW9uKQorI2RlZmluZSB1ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51
bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX29wZW5VQ2hhclN0cmluZ3NF
bnVtZXJhdGlvbikKICNkZWZpbmUgdWVudW1fcmVzZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVlbnVtX3Jlc2V0KQogI2RlZmluZSB1ZW51bV91bmV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWVudW1fdW5leHQpCiAjZGVmaW5lIHVlbnVtX3VuZXh0RGVmYXVsdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWVudW1fdW5leHREZWZhdWx0KQpAQCAtOTA4LDM0ICs5MjAsNDkgQEAKICNk
ZWZpbmUgdWZpbGVfZ2V0Y2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmaWxlX2dldGNoKQog
I2RlZmluZSB1ZmlsZV9nZXRjaDMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZmlsZV9nZXRj
aDMyKQogI2RlZmluZSB1Zm10XzY0dG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10XzY0
dG91KQorI2RlZmluZSB1Zm10X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2Ns
b3NlKQogI2RlZmluZSB1Zm10X2RlZmF1bHRDUFRvVW5pY29kZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWZtdF9kZWZhdWx0Q1BUb1VuaWNvZGUpCiAjZGVmaW5lIHVmbXRfZGlnaXR2YWx1ZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9kaWdpdHZhbHVlKQorI2RlZmluZSB1Zm10X2dl
dEFycmF5SXRlbUJ5SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0QXJyYXlJ
dGVtQnlJbmRleCkKKyNkZWZpbmUgdWZtdF9nZXRBcnJheUxlbmd0aCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWZtdF9nZXRBcnJheUxlbmd0aCkKKyNkZWZpbmUgdWZtdF9nZXREYXRlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldERhdGUpCisjZGVmaW5lIHVmbXRfZ2V0RGVjTnVt
Q2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RGVjTnVtQ2hhcnMpCisjZGVm
aW5lIHVmbXRfZ2V0RG91YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldERvdWJs
ZSkKKyNkZWZpbmUgdWZtdF9nZXRJbnQ2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9n
ZXRJbnQ2NCkKKyNkZWZpbmUgdWZtdF9nZXRMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Zm10X2dldExvbmcpCisjZGVmaW5lIHVmbXRfZ2V0T2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Zm10X2dldE9iamVjdCkKKyNkZWZpbmUgdWZtdF9nZXRUeXBlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Zm10X2dldFR5cGUpCisjZGVmaW5lIHVmbXRfZ2V0VUNoYXJzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldFVDaGFycykKKyNkZWZpbmUgdWZtdF9pc051bWVyaWMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfaXNOdW1lcmljKQogI2RlZmluZSB1Zm10X2lz
ZGlnaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfaXNkaWdpdCkKKyNkZWZpbmUgdWZt
dF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X29wZW4pCiAjZGVmaW5lIHVmbXRf
cHRvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9wdG91KQogI2RlZmluZSB1Zm10X3V0
bzY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X3V0bzY0KQogI2RlZmluZSB1Zm10X3V0
b3AgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfdXRvcCkKKyNkZWZpbmUgdWdlbmRlcl9n
ZXRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWdlbmRlcl9nZXRJbnN0YW5jZSkK
KyNkZWZpbmUgdWdlbmRlcl9nZXRMaXN0R2VuZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Z2VuZGVyX2dldExpc3RHZW5kZXIpCiAjZGVmaW5lIHVoYXNoX2Nsb3NlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9jbG9zZSkKICNkZWZpbmUgdWhhc2hfY29tcGFyZUNhc2VsZXNzVW5p
Y29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUNhc2VsZXNz
VW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUNoYXJzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2NvbXBhcmVJQ2hh
cnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVJQ2hhcnMpCiAjZGVmaW5l
IHVoYXNoX2NvbXBhcmVMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJl
TG9uZykKKyNkZWZpbmUgdWhhc2hfY29tcGFyZVNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWhhc2hfY29tcGFyZVNjcmlwdFNldCkKICNkZWZpbmUgdWhhc2hfY29tcGFyZVVDaGFy
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZVVDaGFycykKICNkZWZpbmUg
dWhhc2hfY29tcGFyZVVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNo
X2NvbXBhcmVVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFzaF9jb3VudCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWhhc2hfY291bnQpCiAjZGVmaW5lIHVoYXNoX2RlbGV0ZUhhc2h0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlSGFzaHRhYmxlKQotI2RlZmluZSB1
aGFzaF9kZWxldGVVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9kZWxldGVV
T2JqZWN0KQotI2RlZmluZSB1aGFzaF9kZWxldGVVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9kZWxldGVVbmljb2RlU3RyaW5nKQorI2RlZmluZSB1aGFzaF9kZWxl
dGVTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVNjcmlwdFNl
dCkKICNkZWZpbmUgdWhhc2hfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9l
cXVhbHMpCisjZGVmaW5lIHVoYXNoX2VxdWFsc1NjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWhhc2hfZXF1YWxzU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9maW5kIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9maW5kKQotI2RlZmluZSB1aGFzaF9mcmVlQmxvY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2ZyZWVCbG9jaykKICNkZWZpbmUgdWhhc2hfZ2V0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9nZXQpCiAjZGVmaW5lIHVoYXNoX2dldGkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2dldGkpCiAjZGVmaW5lIHVoYXNoX2hhc2hD
YXNlbGVzc1VuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hD
YXNlbGVzc1VuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2hhc2hDaGFycyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaENoYXJzKQogI2RlZmluZSB1aGFzaF9oYXNoSUNoYXJz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoSUNoYXJzKQogI2RlZmluZSB1aGFz
aF9oYXNoTG9uZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaExvbmcpCisjZGVm
aW5lIHVoYXNoX2hhc2hTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hh
c2hTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2hhc2hVQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2hhc2hVQ2hhcnMpCi0jZGVmaW5lIHVoYXNoX2hhc2hVQ2hhcnNOIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoVUNoYXJzTikKICNkZWZpbmUgdWhhc2hfaGFz
aFVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hVbmljb2Rl
U3RyaW5nKQogI2RlZmluZSB1aGFzaF9pZ2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFz
aF9pZ2V0KQogI2RlZmluZSB1aGFzaF9pZ2V0aSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhh
c2hfaWdldGkpCkBAIC05ODUsNiArMTAxMiw3IEBACiAjZGVmaW5lIHVpdGVyX3NldFVURjE2QkUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVpdGVyX3NldFVURjE2QkUpCiAjZGVmaW5lIHVpdGVy
X3NldFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVpdGVyX3NldFVURjgpCiAjZGVmaW5l
IHVsZG5fY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fY2xvc2UpCisjZGVmaW5l
IHVsZG5fZ2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9nZXRDb250ZXh0
KQogI2RlZmluZSB1bGRuX2dldERpYWxlY3RIYW5kbGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWxkbl9nZXREaWFsZWN0SGFuZGxpbmcpCiAjZGVmaW5lIHVsZG5fZ2V0TG9jYWxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldExvY2FsZSkKICNkZWZpbmUgdWxkbl9rZXlEaXNw
bGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9rZXlEaXNwbGF5TmFtZSkKQEAg
LTk5Miw2ICsxMDIwLDcgQEAKICNkZWZpbmUgdWxkbl9sYW5ndWFnZURpc3BsYXlOYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2xhbmd1YWdlRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVs
ZG5fbG9jYWxlRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fbG9jYWxl
RGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWxkbl9vcGVuKQorI2RlZmluZSB1bGRuX29wZW5Gb3JDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bGRuX29wZW5Gb3JDb250ZXh0KQogI2RlZmluZSB1bGRuX3JlZ2lvbkRpc3BsYXlO
YW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX3JlZ2lvbkRpc3BsYXlOYW1lKQogI2Rl
ZmluZSB1bGRuX3NjcmlwdENvZGVEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWxkbl9zY3JpcHRDb2RlRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fc2NyaXB0RGlzcGxheU5h
bWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fc2NyaXB0RGlzcGxheU5hbWUpCkBAIC0x
MDI4LDYgKzEwNTcsNyBAQAogI2RlZmluZSB1bG9jX2dldERpc3BsYXlMYW5ndWFnZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5TGFuZ3VhZ2UpCiAjZGVmaW5lIHVsb2Nf
Z2V0RGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheU5h
bWUpCiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheVNjcmlwdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWxvY19nZXREaXNwbGF5U2NyaXB0KQorI2RlZmluZSB1bG9jX2dldERpc3BsYXlTY3JpcHRJ
bkNvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVNjcmlwdElu
Q29udGV4dCkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5VmFyaWFudCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWxvY19nZXREaXNwbGF5VmFyaWFudCkKICNkZWZpbmUgdWxvY19nZXRJU08zQ291
bnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRJU08zQ291bnRyeSkKICNkZWZp
bmUgdWxvY19nZXRJU08zTGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0
SVNPM0xhbmd1YWdlKQpAQCAtMTA3NSwxOCArMTEwNSwyMSBAQAogI2RlZmluZSB1bXNnX3RvUGF0
dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ190b1BhdHRlcm4pCiAjZGVmaW5lIHVt
c2dfdmZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ192Zm9ybWF0KQogI2RlZmlu
ZSB1bXNnX3ZwYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ192cGFyc2UpCi0jZGVm
aW5lIHVtdHhfYXRvbWljX2RlYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9hdG9taWNf
ZGVjKQotI2RlZmluZSB1bXR4X2F0b21pY19pbmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVt
dHhfYXRvbWljX2luYykKLSNkZWZpbmUgdW10eF9jbGVhbnVwIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bXR4X2NsZWFudXApCi0jZGVmaW5lIHVtdHhfZGVzdHJveSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW10eF9kZXN0cm95KQotI2RlZmluZSB1bXR4X2luaXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVtdHhfaW5pdCkKICNkZWZpbmUgdW10eF9sb2NrIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bXR4X2xvY2spCiAjZGVmaW5lIHVtdHhfdW5sb2NrIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bXR4X3VubG9jaykKICNkZWZpbmUgdW5pc2V0X2dldFVuaWNvZGUzMkluc3RhbmNl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bmlzZXRfZ2V0VW5pY29kZTMySW5zdGFuY2UpCiAj
ZGVmaW5lIHVub3JtMl9hcHBlbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9hcHBl
bmQpCiAjZGVmaW5lIHVub3JtMl9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0y
X2Nsb3NlKQorI2RlZmluZSB1bm9ybTJfY29tcG9zZVBhaXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVub3JtMl9jb21wb3NlUGFpcikKKyNkZWZpbmUgdW5vcm0yX2dldENvbWJpbmluZ0NsYXNz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MpCiAjZGVm
aW5lIHVub3JtMl9nZXREZWNvbXBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9y
bTJfZ2V0RGVjb21wb3NpdGlvbikKICNkZWZpbmUgdW5vcm0yX2dldEluc3RhbmNlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0SW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRO
RkNJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GQ0luc3RhbmNl
KQorI2RlZmluZSB1bm9ybTJfZ2V0TkZESW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtMl9nZXRORkRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0NDYXNlZm9sZElu
c3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5z
dGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRORktDSW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtMl9nZXRORktDSW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRORktESW5z
dGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktESW5zdGFuY2UpCisj
ZGVmaW5lIHVub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbikKICNkZWZpbmUgdW5vcm0yX2hhc0JvdW5kYXJ5
QWZ0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9oYXNCb3VuZGFyeUFmdGVyKQog
I2RlZmluZSB1bm9ybTJfaGFzQm91bmRhcnlCZWZvcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtMl9oYXNCb3VuZGFyeUJlZm9yZSkKICNkZWZpbmUgdW5vcm0yX2lzSW5lcnQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9pc0luZXJ0KQpAQCAtMTEwMCw3ICsxMTMzLDcgQEAK
ICNkZWZpbmUgdW5vcm1fY2xvc2VJdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9j
bG9zZUl0ZXIpCiAjZGVmaW5lIHVub3JtX2NvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtX2NvbXBhcmUpCiAjZGVmaW5lIHVub3JtX2NvbmNhdGVuYXRlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bm9ybV9jb25jYXRlbmF0ZSkKLSNkZWZpbmUgdW5vcm1fZ2V0RkNEVHJpZUlu
ZGV4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRGQ0RUcmllSW5kZXgpCisjZGVm
aW5lIHVub3JtX2dldEZDRDE2IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRGQ0Qx
NikKICNkZWZpbmUgdW5vcm1fZ2V0UXVpY2tDaGVjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW5vcm1fZ2V0UXVpY2tDaGVjaykKICNkZWZpbmUgdW5vcm1faXNOb3JtYWxpemVkIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9pc05vcm1hbGl6ZWQpCiAjZGVmaW5lIHVub3JtX2lzTm9y
bWFsaXplZFdpdGhPcHRpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9pc05vcm1h
bGl6ZWRXaXRoT3B0aW9ucykKQEAgLTExMjAsNiArMTE1Myw3IEBACiAjZGVmaW5lIHVudW1fZm9y
bWF0RG91YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdERvdWJsZSkKICNk
ZWZpbmUgdW51bV9mb3JtYXREb3VibGVDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW51bV9mb3JtYXREb3VibGVDdXJyZW5jeSkKICNkZWZpbmUgdW51bV9mb3JtYXRJbnQ2NCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9mb3JtYXRJbnQ2NCkKKyNkZWZpbmUgdW51bV9mb3Jt
YXRVRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0VUZvcm1h
dHRhYmxlKQogI2RlZmluZSB1bnVtX2dldEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodW51bV9nZXRBdHRyaWJ1dGUpCiAjZGVmaW5lIHVudW1fZ2V0QXZhaWxhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bnVtX2dldEF2YWlsYWJsZSkKICNkZWZpbmUgdW51bV9nZXREb3Vi
bGVBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0RG91YmxlQXR0cmli
dXRlKQpAQCAtMTEzMiwxMSArMTE2NiwyNCBAQAogI2RlZmluZSB1bnVtX3BhcnNlRG91YmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3BhcnNlRG91YmxlKQogI2RlZmluZSB1bnVtX3Bh
cnNlRG91YmxlQ3VycmVuY3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VEb3Vi
bGVDdXJyZW5jeSkKICNkZWZpbmUgdW51bV9wYXJzZUludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtX3BhcnNlSW50NjQpCisjZGVmaW5lIHVudW1fcGFyc2VUb1VGb3JtYXR0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlKQogI2RlZmlu
ZSB1bnVtX3NldEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRBdHRy
aWJ1dGUpCiAjZGVmaW5lIHVudW1fc2V0RG91YmxlQXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtX3NldERvdWJsZUF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9zZXRTeW1ib2wg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0U3ltYm9sKQogI2RlZmluZSB1bnVtX3Nl
dFRleHRBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0VGV4dEF0dHJp
YnV0ZSkKICNkZWZpbmUgdW51bV90b1BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVu
dW1fdG9QYXR0ZXJuKQorI2RlZmluZSB1bnVtc3lzX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtc3lzX2Nsb3NlKQorI2RlZmluZSB1bnVtc3lzX2dldERlc2NyaXB0aW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX2dldERlc2NyaXB0aW9uKQorI2RlZmluZSB1bnVt
c3lzX2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0TmFtZSkKKyNk
ZWZpbmUgdW51bXN5c19nZXRSYWRpeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19n
ZXRSYWRpeCkKKyNkZWZpbmUgdW51bXN5c19pc0FsZ29yaXRobWljIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtc3lzX2lzQWxnb3JpdGhtaWMpCisjZGVmaW5lIHVudW1zeXNfb3BlbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19vcGVuKQorI2RlZmluZSB1bnVtc3lzX29wZW5B
dmFpbGFibGVOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19vcGVuQXZhaWxh
YmxlTmFtZXMpCisjZGVmaW5lIHVudW1zeXNfb3BlbkJ5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW51bXN5c19vcGVuQnlOYW1lKQorI2RlZmluZSB1cGxydWxlc19jbG9zZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfY2xvc2UpCisjZGVmaW5lIHVwbHJ1bGVzX29wZW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX29wZW4pCisjZGVmaW5lIHVwbHJ1bGVz
X29wZW5Gb3JUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxydWxlc19vcGVuRm9yVHlw
ZSkKKyNkZWZpbmUgdXBscnVsZXNfc2VsZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxy
dWxlc19zZWxlY3QpCiAjZGVmaW5lIHVwbHVnX2Nsb3NlTGlicmFyeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBsdWdfY2xvc2VMaWJyYXJ5KQogI2RlZmluZSB1cGx1Z19maW5kTGlicmFyeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfZmluZExpYnJhcnkpCiAjZGVmaW5lIHVwbHVn
X2dldENvbmZpZ3VyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX2dldENvbmZp
Z3VyYXRpb24pCkBAIC0xMTYwLDEyICsxMjA3LDEyIEBACiAjZGVmaW5lIHVwbHVnX3NldFBsdWdM
ZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfc2V0UGx1Z0xldmVsKQogI2RlZmlu
ZSB1cGx1Z19zZXRQbHVnTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfc2V0UGx1
Z05hbWUpCiAjZGVmaW5lIHVwbHVnX3NldFBsdWdOb1VubG9hZCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBsdWdfc2V0UGx1Z05vVW5sb2FkKQotI2RlZmluZSB1cG5hbWVfc3dhcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBuYW1lX3N3YXApCiAjZGVmaW5lIHVwcm9wc19nZXRTb3VyY2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcm9wc19nZXRTb3VyY2UpCiAjZGVmaW5lIHVwcm9w
c3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXByb3BzdmVj
X2FkZFByb3BlcnR5U3RhcnRzKQogI2RlZmluZSB1cHJ2X2Flc3RybmNweSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9hZXN0cm5jcHkpCiAjZGVmaW5lIHVwcnZfYXNjaWlGcm9tRWJjZGlj
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2FzY2lpRnJvbUViY2RpYykKICNkZWZpbmUg
dXBydl9hc2NpaXRvbG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYXNjaWl0b2xv
d2VyKQorI2RlZmluZSB1cHJ2X2NhbGxvYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9j
YWxsb2MpCiAjZGVmaW5lIHVwcnZfY2VpbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9j
ZWlsKQogI2RlZmluZSB1cHJ2X2NudHRhYl9hZGRDb250cmFjdGlvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9jbnR0YWJfYWRkQ29udHJhY3Rpb24pCiAjZGVmaW5lIHVwcnZfY250dGFi
X2NoYW5nZUNvbnRyYWN0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NudHRhYl9j
aGFuZ2VDb250cmFjdGlvbikKQEAgLTEyMDIsNyArMTI0OSw2IEBACiAjZGVmaW5lIHVwcnZfZGVj
Q29udGV4dFNldFN0YXR1c0Zyb21TdHJpbmdRdWlldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9kZWNDb250ZXh0U2V0U3RhdHVzRnJvbVN0cmluZ1F1aWV0KQogI2RlZmluZSB1cHJ2X2Rl
Y0NvbnRleHRTZXRTdGF0dXNRdWlldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWND
b250ZXh0U2V0U3RhdHVzUXVpZXQpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFN0YXR1c1RvU3Ry
aW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTdGF0dXNUb1N0cmlu
ZykKLSNkZWZpbmUgdXBydl9kZWNDb250ZXh0VGVzdEVuZGlhbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWNDb250ZXh0VGVzdEVuZGlhbikKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0
VGVzdFNhdmVkU3RhdHVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRU
ZXN0U2F2ZWRTdGF0dXMpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRlc3RTdGF0dXMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RTdGF0dXMpCiAjZGVmaW5lIHVw
cnZfZGVjQ29udGV4dFplcm9TdGF0dXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVj
Q29udGV4dFplcm9TdGF0dXMpCkBAIC0xMjY4LDEyICsxMzE0LDE0IEBACiAjZGVmaW5lIHVwcnZf
ZGVjTnVtYmVyVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNOdW1iZXJW
ZXJzaW9uKQogI2RlZmluZSB1cHJ2X2RlY051bWJlclhvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBydl9kZWNOdW1iZXJYb3IpCiAjZGVmaW5lIHVwcnZfZGVjTnVtYmVyWmVybyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNOdW1iZXJaZXJvKQorI2RlZmluZSB1cHJ2X2RlbGV0
ZVVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVsZXRlVU9iamVjdCkKICNk
ZWZpbmUgdXBydl9kZWxldGVfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfZGVsZXRlX2NvbGxJdGVyYXRlKQogI2RlZmluZSB1cHJ2X2RsX2Nsb3NlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2RsX2Nsb3NlKQogI2RlZmluZSB1cHJ2X2RsX29wZW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfb3BlbikKLSNkZWZpbmUgdXBydl9kbF9zeW0gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfc3ltKQorI2RlZmluZSB1cHJ2X2Rsc3ltX2Z1
bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxzeW1fZnVuYykKICNkZWZpbmUgdXBy
dl9lYXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWFzdHJuY3B5KQogI2Rl
ZmluZSB1cHJ2X2ViY2RpY0Zyb21Bc2NpaSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9l
YmNkaWNGcm9tQXNjaWkpCisjZGVmaW5lIHVwcnZfZWJjZGljVG9Mb3dlcmNhc2VBc2NpaSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYmNkaWNUb0xvd2VyY2FzZUFzY2lpKQogI2RlZmlu
ZSB1cHJ2X2ViY2RpY3RvbG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWJjZGlj
dG9sb3dlcikKICNkZWZpbmUgdXBydl9mYWJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X2ZhYnMpCiAjZGVmaW5lIHVwcnZfZmxvb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
Zmxvb3IpCkBAIC0xMjk1LDEzICsxMzQzLDEzIEBACiAjZGVmaW5lIHVwcnZfaW5pdF9jb2xsSXRl
cmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pbml0X2NvbGxJdGVyYXRlKQogI2Rl
ZmluZSB1cHJ2X2luaXRfcGNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2luaXRfcGNl
KQogI2RlZmluZSB1cHJ2X2ludDMyQ29tcGFyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9pbnQzMkNvbXBhcmF0b3IpCisjZGVmaW5lIHVwcnZfaXNBU0NJSUxldHRlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0FTQ0lJTGV0dGVyKQogI2RlZmluZSB1cHJ2X2lzSW5m
aW5pdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNJbmZpbml0ZSkKICNkZWZpbmUg
dXBydl9pc0ludmFyaWFudFN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0lu
dmFyaWFudFN0cmluZykKICNkZWZpbmUgdXBydl9pc0ludmFyaWFudFVTdHJpbmcgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfaXNJbnZhcmlhbnRVU3RyaW5nKQogI2RlZmluZSB1cHJ2X2lz
TmFOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzTmFOKQogI2RlZmluZSB1cHJ2X2lz
TmVnYXRpdmVJbmZpbml0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc05lZ2F0aXZl
SW5maW5pdHkpCiAjZGVmaW5lIHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X2lzUG9zaXRpdmVJbmZpbml0eSkKLSNkZWZpbmUgdXBydl9pc1J1bGVX
aGl0ZVNwYWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzUnVsZVdoaXRlU3BhY2Up
CiAjZGVmaW5lIHVwcnZfaXRvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pdG91KQog
I2RlZmluZSB1cHJ2X2xvZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9sb2cpCiAjZGVm
aW5lIHVwcnZfbWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X21hbGxvYykKQEAg
LTEzMTIsNyArMTM2MCw2IEBACiAjZGVmaW5lIHVwcnZfbWluIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X21pbikKICNkZWZpbmUgdXBydl9tb2RmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X21vZGYpCiAjZGVmaW5lIHVwcnZfbmV3X2NvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X25ld19jb2xsSXRlcmF0ZSkKLSNkZWZpbmUgdXBydl9vcGVuUnVsZVdo
aXRlU3BhY2VTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfb3BlblJ1bGVXaGl0ZVNw
YWNlU2V0KQogI2RlZmluZSB1cHJ2X3BhcnNlQ3VycmVuY3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfcGFyc2VDdXJyZW5jeSkKICNkZWZpbmUgdXBydl9wYXRoSXNBYnNvbHV0ZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wYXRoSXNBYnNvbHV0ZSkKICNkZWZpbmUgdXBydl9w
b3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcG93KQpAQCAtMTMyMCw5ICsxMzY3LDEy
IEBACiAjZGVmaW5lIHVwcnZfcmVhbGxvYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9y
ZWFsbG9jKQogI2RlZmluZSB1cHJ2X3JvdW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X3JvdW5kKQogI2RlZmluZSB1cHJ2X3NvcnRBcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9zb3J0QXJyYXkpCisjZGVmaW5lIHVwcnZfc3RhYmxlQmluYXJ5U2VhcmNoIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0YWJsZUJpbmFyeVNlYXJjaCkKICNkZWZpbmUgdXBydl9z
dHJDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0ckNvbXBhcmUpCiAjZGVm
aW5lIHVwcnZfc3RyZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0cmR1cCkKKyNk
ZWZpbmUgdXBydl9zdHJpY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0cmljbXAp
CiAjZGVmaW5lIHVwcnZfc3RybmR1cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zdHJu
ZHVwKQorI2RlZmluZSB1cHJ2X3N0cm5pY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X3N0cm5pY21wKQogI2RlZmluZSB1cHJ2X3N5bnRheEVycm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X3N5bnRheEVycm9yKQogI2RlZmluZSB1cHJ2X3RpbWV6b25lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X3RpbWV6b25lKQogI2RlZmluZSB1cHJ2X3RvdXBwZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfdG91cHBlcikKQEAgLTEzODYsNiArMTQzNiw3IEBACiAj
ZGVmaW5lIHVyZWdleF9vcGVuVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9v
cGVuVVRleHQpCiAjZGVmaW5lIHVyZWdleF9wYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cmVnZXhfcGF0dGVybikKICNkZWZpbmUgdXJlZ2V4X3BhdHRlcm5VVGV4dCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXJlZ2V4X3BhdHRlcm5VVGV4dCkKKyNkZWZpbmUgdXJlZ2V4X3JlZnJl
c2hVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZnJlc2hVVGV4dCkKICNk
ZWZpbmUgdXJlZ2V4X3JlZ2lvbkVuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3Jl
Z2lvbkVuZCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvbkVuZDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnZXhfcmVnaW9uRW5kNjQpCiAjZGVmaW5lIHVyZWdleF9yZWdpb25TdGFydCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZ2lvblN0YXJ0KQpAQCAtMTQxNCw2ICsxNDY1
LDE5IEBACiAjZGVmaW5lIHVyZWdleF91c2VBbmNob3JpbmdCb3VuZHMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVyZWdleF91c2VBbmNob3JpbmdCb3VuZHMpCiAjZGVmaW5lIHVyZWdleF91c2VU
cmFuc3BhcmVudEJvdW5kcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3VzZVRyYW5z
cGFyZW50Qm91bmRzKQogI2RlZmluZSB1cmVnZXhfdXRleHRfdW5lc2NhcGVfY2hhckF0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXRleHRfdW5lc2NhcGVfY2hhckF0KQorI2RlZmlu
ZSB1cmVnaW9uX2FyZUVxdWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2FyZUVx
dWFsKQorI2RlZmluZSB1cmVnaW9uX2NvbnRhaW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnaW9uX2NvbnRhaW5zKQorI2RlZmluZSB1cmVnaW9uX2dldEF2YWlsYWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRBdmFpbGFibGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0
Q29udGFpbmVkUmVnaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250
YWluZWRSZWdpb25zKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnNPZlR5cGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9uc09mVHlw
ZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluaW5nUmVnaW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb24pCisjZGVmaW5lIHVyZWdpb25fZ2V0
Q29udGFpbmluZ1JlZ2lvbk9mVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9n
ZXRDb250YWluaW5nUmVnaW9uT2ZUeXBlKQorI2RlZmluZSB1cmVnaW9uX2dldE51bWVyaWNDb2Rl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldE51bWVyaWNDb2RlKQorI2RlZmlu
ZSB1cmVnaW9uX2dldFByZWZlcnJlZFZhbHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJl
Z2lvbl9nZXRQcmVmZXJyZWRWYWx1ZXMpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uQ29kZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Db2RlKQorI2RlZmluZSB1
cmVnaW9uX2dldFJlZ2lvbkZyb21Db2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9u
X2dldFJlZ2lvbkZyb21Db2RlKQorI2RlZmluZSB1cmVnaW9uX2dldFJlZ2lvbkZyb21OdW1lcmlj
Q29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Gcm9tTnVtZXJp
Y0NvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXJlZ2lvbl9nZXRUeXBlKQogI2RlZmluZSB1cmVzX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVzX2Nsb3NlKQogI2RlZmluZSB1cmVzX2NvcHlSZXNiIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVzX2NvcHlSZXNiKQogI2RlZmluZSB1cmVzX2NvdW50QXJyYXlJdGVtcyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jb3VudEFycmF5SXRlbXMpCkBAIC0xNDU3LDEzICsx
NTIxLDE5IEBACiAjZGVmaW5lIHVyZXNfb3BlblUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVy
ZXNfb3BlblUpCiAjZGVmaW5lIHVyZXNfcmVzZXRJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXJlc19yZXNldEl0ZXJhdG9yKQogI2RlZmluZSB1cmVzX3N3YXAgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZXNfc3dhcCkKKyNkZWZpbmUgdXNjcmlwdF9icmVha3NCZXR3ZWVuTGV0
dGVycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9icmVha3NCZXR3ZWVuTGV0dGVy
cykKICNkZWZpbmUgdXNjcmlwdF9jbG9zZVJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNj
cmlwdF9jbG9zZVJ1bikKICNkZWZpbmUgdXNjcmlwdF9nZXRDb2RlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c2NyaXB0X2dldENvZGUpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0TmFtZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXROYW1lKQorI2RlZmluZSB1c2NyaXB0X2dldFNh
bXBsZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTYW1wbGVTdHJp
bmcpCisjZGVmaW5lIHVzY3JpcHRfZ2V0U2FtcGxlVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1c2Ny
aXB0X2dldFNjcmlwdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTY3JpcHQp
CiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zKQogI2RlZmluZSB1c2NyaXB0X2dldFNo
b3J0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTaG9ydE5hbWUpCisj
ZGVmaW5lIHVzY3JpcHRfZ2V0VXNhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRf
Z2V0VXNhZ2UpCiAjZGVmaW5lIHVzY3JpcHRfaGFzU2NyaXB0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c2NyaXB0X2hhc1NjcmlwdCkKKyNkZWZpbmUgdXNjcmlwdF9pc0Nhc2VkIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lzQ2FzZWQpCisjZGVmaW5lIHVzY3JpcHRfaXNSaWdo
dFRvTGVmdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9pc1JpZ2h0VG9MZWZ0KQog
I2RlZmluZSB1c2NyaXB0X25leHRSdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRf
bmV4dFJ1bikKICNkZWZpbmUgdXNjcmlwdF9vcGVuUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c2NyaXB0X29wZW5SdW4pCiAjZGVmaW5lIHVzY3JpcHRfcmVzZXRSdW4gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzY3JpcHRfcmVzZXRSdW4pCkBAIC0xNTY3LDYgKzE2MzcsMTEgQEAKICNk
ZWZpbmUgdXNwb29mX2dldEFsbG93ZWRMb2NhbGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3Bvb2ZfZ2V0QWxsb3dlZExvY2FsZXMpCiAjZGVmaW5lIHVzcG9vZl9nZXRBbGxvd2VkVW5pY29k
ZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEFsbG93ZWRVbmljb2RlU2V0
KQogI2RlZmluZSB1c3Bvb2ZfZ2V0Q2hlY2tzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bv
b2ZfZ2V0Q2hlY2tzKQorI2RlZmluZSB1c3Bvb2ZfZ2V0SW5jbHVzaW9uU2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0SW5jbHVzaW9uU2V0KQorI2RlZmluZSB1c3Bvb2ZfZ2V0
SW5jbHVzaW9uVW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldElu
Y2x1c2lvblVuaWNvZGVTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZWNvbW1lbmRlZFNldCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlY29tbWVuZGVkU2V0KQorI2RlZmluZSB1
c3Bvb2ZfZ2V0UmVjb21tZW5kZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3Bvb2ZfZ2V0UmVjb21tZW5kZWRVbmljb2RlU2V0KQorI2RlZmluZSB1c3Bvb2ZfZ2V0UmVzdHJp
Y3Rpb25MZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlc3RyaWN0aW9u
TGV2ZWwpCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXNwb29mX2dldFNrZWxldG9uKQogI2RlZmluZSB1c3Bvb2ZfZ2V0U2tlbGV0b25VVEY4IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0b25VVEY4KQogI2RlZmluZSB1
c3Bvb2ZfZ2V0U2tlbGV0b25Vbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3Bvb2ZfZ2V0U2tlbGV0b25Vbmljb2RlU3RyaW5nKQpAQCAtMTU3OCwyMyArMTY1MywyNSBAQAog
I2RlZmluZSB1c3Bvb2Zfc2V0QWxsb3dlZExvY2FsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzcG9vZl9zZXRBbGxvd2VkTG9jYWxlcykKICNkZWZpbmUgdXNwb29mX3NldEFsbG93ZWRVbmlj
b2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0QWxsb3dlZFVuaWNvZGVT
ZXQpCiAjZGVmaW5lIHVzcG9vZl9zZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
cG9vZl9zZXRDaGVja3MpCisjZGVmaW5lIHVzcG9vZl9zZXRSZXN0cmljdGlvbkxldmVsIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0UmVzdHJpY3Rpb25MZXZlbCkKICNkZWZpbmUg
dXNwb29mX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zd2FwKQogI2RlZmlu
ZSB1c3ByZXBfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9jbG9zZSkKICNk
ZWZpbmUgdXNwcmVwX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9vcGVuKQog
I2RlZmluZSB1c3ByZXBfb3BlbkJ5VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVw
X29wZW5CeVR5cGUpCiAjZGVmaW5lIHVzcHJlcF9wcmVwYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3ByZXBfcHJlcGFyZSkKICNkZWZpbmUgdXNwcmVwX3N3YXAgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzcHJlcF9zd2FwKQotI2RlZmluZSB1c3RyX2ZvbGRDYXNlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3RyX2ZvbGRDYXNlKQotI2RlZmluZSB1c3RyX3RvTG93ZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfdG9Mb3dlcikKLSNkZWZpbmUgdXN0cl90b1RpdGxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvVGl0bGUpCi0jZGVmaW5lIHVzdHJfdG9VcHBl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90b1VwcGVyKQotI2RlZmluZSB1dGV4dF9j
YXNlQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2FzZUNvbXBhcmUpCi0j
ZGVmaW5lIHV0ZXh0X2Nhc2VDb21wYXJlTmF0aXZlTGltaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHV0ZXh0X2Nhc2VDb21wYXJlTmF0aXZlTGltaXQpCisjZGVmaW5lIHVzdHJfaGFzaENoYXJz
TiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl9oYXNoQ2hhcnNOKQorI2RlZmluZSB1c3Ry
X2hhc2hJQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2hhc2hJQ2hhcnNOKQor
I2RlZmluZSB1c3RyX2hhc2hVQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2hh
c2hVQ2hhcnNOKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5hbEZvbGQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsRm9sZCkKKyNkZWZpbmUgdXN0cmNhc2VfaW50ZXJu
YWxUb0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5hbFRvTG93
ZXIpCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXN0cmNhc2VfaW50ZXJuYWxUb1RpdGxlKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5h
bFRvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsVG9VcHBl
cikKKyNkZWZpbmUgdXN0cmNhc2VfbWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2Fz
ZV9tYXApCisjZGVmaW5lIHVzdHJjYXNlX3NldFRlbXBDYXNlTWFwTG9jYWxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9zZXRUZW1wQ2FzZU1hcExvY2FsZSkKICNkZWZpbmUgdXRl
eHRfY2hhcjMyQXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NoYXIzMkF0KQogI2Rl
ZmluZSB1dGV4dF9jbG9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2xvbmUpCiAj
ZGVmaW5lIHV0ZXh0X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jbG9zZSkK
LSNkZWZpbmUgdXRleHRfY29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY29t
cGFyZSkKLSNkZWZpbmUgdXRleHRfY29tcGFyZU5hdGl2ZUxpbWl0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1dGV4dF9jb21wYXJlTmF0aXZlTGltaXQpCiAjZGVmaW5lIHV0ZXh0X2NvcHkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvcHkpCiAjZGVmaW5lIHV0ZXh0X2N1cnJlbnQz
MiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY3VycmVudDMyKQogI2RlZmluZSB1dGV4
dF9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2VxdWFscykKQEAgLTE3NDMs
NDk5ICsxODIwLDYgQEAKICNkZWZpbmUgenRyYW5zX3NldFRpbWUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHp0cmFuc19zZXRUaW1lKQogI2RlZmluZSB6dHJhbnNfc2V0VG8gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHp0cmFuc19zZXRUbykKIAotCi0vKiBDKysgY2xhc3MgbmFtZXMgcmVuYW1p
bmcgZGVmaW5lcyAqLwotCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCi0jaWYgIVVfSEFWRV9OQU1FU1BB
Q0UKLQotI2RlZmluZSBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uKQotI2RlZmluZSBBbHRlcm5hdGVTdWJz
dGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQWx0ZXJuYXRlU3Vic3Rp
dHV0aW9uU3VidGFibGUpCi0jZGVmaW5lIEFuY2hvclRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShBbmNob3JUYWJsZSkKLSNkZWZpbmUgQW5kQ29uc3RyYWludCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQW5kQ29uc3RyYWludCkKLSNkZWZpbmUgQW5udWFsVGltZVpvbmVSdWxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShBbm51YWxUaW1lWm9uZVJ1bGUpCi0jZGVmaW5lIEFueVRyYW5z
bGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbnlUcmFuc2xpdGVyYXRvcikKLSNk
ZWZpbmUgQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBBcmFiaWNTaGFwaW5nIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShBcmFiaWNTaGFwaW5nKQotI2RlZmluZSBBcmdFeHRyYWN0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFyZ0V4dHJhY3RvcikKLSNkZWZpbmUgQk1QU2V0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCTVBTZXQpCi0jZGVmaW5lIEJhY2t3YXJkVVRyaWUyU3Ry
aW5nSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhY2t3YXJkVVRyaWUyU3RyaW5n
SXRlcmF0b3IpCi0jZGVmaW5lIEJhZENoYXJhY3RlclRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShCYWRDaGFyYWN0ZXJUYWJsZSkKLSNkZWZpbmUgQmFzaWNDYWxlbmRhckZhY3RvcnkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhc2ljQ2FsZW5kYXJGYWN0b3J5KQotI2RlZmluZSBCYXNp
Y1RpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCYXNpY1RpbWVab25lKQotI2RlZmlu
ZSBCaW5hcnlTZWFyY2hMb29rdXBUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmluYXJ5
U2VhcmNoTG9va3VwVGFibGUpCi0jZGVmaW5lIEJveWVyTW9vcmVTZWFyY2ggVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEJveWVyTW9vcmVTZWFyY2gpCi0jZGVmaW5lIEJyZWFrSXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEJyZWFrSXRlcmF0b3IpCi0jZGVmaW5lIEJyZWFrVHJhbnNs
aXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJyZWFrVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIEJ1ZGRoaXN0Q2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1ZGRoaXN0
Q2FsZW5kYXIpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVIb3Jpem9udGFsTm9kZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRDb21wYWN0VHJpZUhvcml6b250YWxOb2RlKQotI2RlZmlu
ZSBCdWlsZENvbXBhY3RUcmllTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRDb21w
YWN0VHJpZU5vZGUpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVWZXJ0aWNhbE5vZGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFjdFRyaWVWZXJ0aWNhbE5vZGUpCi0jZGVmaW5l
IEJ1aWxkZXJTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkZXJTY3JpcHRT
ZXQpCi0jZGVmaW5lIEJ5dGVTaW5rIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCeXRlU2luaykK
LSNkZWZpbmUgQ0VCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFQnVmZmVyKQotI2Rl
ZmluZSBDRUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDRUNhbGVuZGFyKQotI2Rl
ZmluZSBDRUxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFTGlzdCkKLSNkZWZpbmUgQ0VU
b1N0cmluZ3NNYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFVG9TdHJpbmdzTWFwKQotI2Rl
ZmluZSBDRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0ZhY3RvcnkpCi0jZGVmaW5l
IENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhcikKLSNkZWZpbmUgQ2Fs
ZW5kYXJBc3Ryb25vbWVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckFzdHJvbm9t
ZXIpCi0jZGVmaW5lIENhbGVuZGFyQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVu
ZGFyQ2FjaGUpCi0jZGVmaW5lIENhbGVuZGFyRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2FsZW5kYXJEYXRhKQotI2RlZmluZSBDYWxlbmRhclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENhbGVuZGFyU2VydmljZSkKLSNkZWZpbmUgQ2Fub25JdGVyRGF0YSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2Fub25JdGVyRGF0YSkKLSNkZWZpbmUgQ2Fub25JdGVyRGF0YVNpbmds
ZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2Fub25JdGVyRGF0YVNpbmdsZXRvbikKLSNk
ZWZpbmUgQ2Fub25NYXJrRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbk1hcmtG
aWx0ZXIpCi0jZGVmaW5lIENhbm9uU2hhcGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2Fu
b25TaGFwaW5nKQotI2RlZmluZSBDYW5vbmljYWxJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2Fub25pY2FsSXRlcmF0b3IpCi0jZGVmaW5lIENhc2VNYXBUcmFuc2xpdGVyYXRvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBD
aGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJs
ZSkKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25G
b3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZv
cm1hdDNTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdDb250ZXh0dWFs
U3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlKQotI2RlZmluZSBDaGFpbmluZ0NvbnRleHR1YWxT
dWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdDb250
ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUpCi0jZGVmaW5lIENoYXJTdHJpbmcgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJTdHJpbmcpCi0jZGVmaW5lIENoYXJTdWJzdGl0dXRpb25GaWx0
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJTdWJzdGl0dXRpb25GaWx0ZXIpCi0jZGVm
aW5lIENoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyYWN0ZXJJ
dGVyYXRvcikKLSNkZWZpbmUgQ2hhcmFjdGVyTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcmFjdGVyTm9kZSkKLSNkZWZpbmUgQ2hhcnNldERldGVjdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0RGV0ZWN0b3IpCi0jZGVmaW5lIENoYXJzZXRNYXRjaCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldE1hdGNoKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfMjAyMiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjIpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ18yMDIyQ04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ18yMDIy
Q04pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIySlAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ18yMDIySlApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIyS1IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ18yMDIyS1IpCi0jZGVmaW5lIENoYXJzZXRS
ZWNvZ184ODU5XzEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzEp
Ci0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ184ODU5XzFfZGEpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfZGUpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ184ODU5XzFfZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ184ODU5XzFfZW4pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfZXMpCi0jZGVmaW5lIENoYXJzZXRS
ZWNvZ184ODU5XzFfZnIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5
XzFfZnIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfaXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfaXQpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5
XzFfbmwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfbmwpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfbm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ184ODU5XzFfbm8pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfcHQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfcHQpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzFfc3YgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z184ODU5XzFfc3YpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5
XzJfY3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzJfY3MpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzJfaHUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ184ODU5XzJfaHUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzJfcGwgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzJfcGwpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzJfcm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z184ODU5XzJfcm8pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5
XzVfcnUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzVfcnUpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ184ODU5XzYpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzZfYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzZfYXIpCi0jZGVmaW5lIENoYXJzZXRS
ZWNvZ184ODU5XzcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5Xzcp
Ci0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzdfZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ184ODU5XzdfZWwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzggVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzgpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ184ODU5XzhfSV9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfOF9JX2hlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV84X2hlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV84X2hlKQotI2RlZmluZSBDaGFyc2V0UmVj
b2dfODg1OV85IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV85KQot
I2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV85X3RyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGFyc2V0UmVjb2dfODg1OV85X3RyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDIwX2FyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyKQotI2RlZmluZSBD
aGFyc2V0UmVjb2dfSUJNNDIwX2FyX2x0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nX0lCTTQyMF9hcl9sdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBfYXJfcnRs
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX3J0bCkKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nX0lCTTQyNF9oZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9sdHIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGVfbHRyKQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX3J0bCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcnNldFJlY29nX0lCTTQyNF9oZV9ydGwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19LT0k4X1Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19LT0k4X1IpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ19VVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRG
OCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8xNl9CRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nX1VURl8xNl9CRSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8xNl9M
RSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8xNl9MRSkKLSNkZWZp
bmUgQ2hhcnNldFJlY29nX1VURl8zMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nX1VURl8zMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8zMl9CRSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8zMl9CRSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X1VURl8zMl9MRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8zMl9M
RSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VuaWNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ19Vbmljb2RlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfYmlnNSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2JpZzUpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z19ldWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19ldWMpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ19ldWNfanAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z19ldWNfanApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19ldWNfa3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ19ldWNfa3IpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19nYl8xODAz
MCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2diXzE4MDMwKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfbWJjcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
X21iY3MpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19zYmNzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfc2JjcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3NqaXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19zamlzKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
d2luZG93c18xMjUxIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfd2luZG93
c18xMjUxKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfd2luZG93c18xMjU2IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfd2luZG93c18xMjU2KQotI2RlZmluZSBDaGFyc2V0UmVj
b2duaXplciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nbml6ZXIpCi0jZGVm
aW5lIENoZWNrZWRBcnJheUJ5dGVTaW5rIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGVja2Vk
QXJyYXlCeXRlU2luaykKLSNkZWZpbmUgQ2hpbmVzZUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGluZXNlQ2FsZW5kYXIpCi0jZGVmaW5lIENob2ljZUZvcm1hdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hvaWNlRm9ybWF0KQotI2RlZmluZSBDbGFzc0RlZkZvcm1hdDFUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZGb3JtYXQxVGFibGUpCi0jZGVmaW5l
IENsYXNzRGVmRm9ybWF0MlRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFzc0RlZkZv
cm1hdDJUYWJsZSkKLSNkZWZpbmUgQ2xhc3NEZWZpbml0aW9uVGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENsYXNzRGVmaW5pdGlvblRhYmxlKQotI2RlZmluZSBDbG9ja01hdGggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENsb2NrTWF0aCkKLSNkZWZpbmUgQ29sbERhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENvbGxEYXRhKQotI2RlZmluZSBDb2xsRGF0YUNhY2hlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb2xsRGF0YUNhY2hlKQotI2RlZmluZSBDb2xsRGF0YUNhY2hlRW50
cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxEYXRhQ2FjaGVFbnRyeSkKLSNkZWZpbmUg
Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsYXRp
b25FbGVtZW50SXRlcmF0b3IpCi0jZGVmaW5lIENvbGxhdGlvbktleSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ29sbGF0aW9uS2V5KQotI2RlZmluZSBDb2xsYXRpb25Mb2NhbGVMaXN0RW51bWVy
YXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbkxvY2FsZUxpc3RFbnVtZXJh
dGlvbikKLSNkZWZpbmUgQ29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdG9y
KQotI2RlZmluZSBDb2xsYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxh
dG9yRmFjdG9yeSkKLSNkZWZpbmUgQ29tcGFjdFRyaWVEaWN0aW9uYXJ5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDb21wYWN0VHJpZURpY3Rpb25hcnkpCi0jZGVmaW5lIENvbXBhY3RUcmllRW51
bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBhY3RUcmllRW51bWVyYXRpb24p
Ci0jZGVmaW5lIENvbXBvc2VOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29t
cG9zZU5vcm1hbGl6ZXIyKQotI2RlZmluZSBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBDb25mdXNh
YmxlZGF0YUJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbmZ1c2FibGVkYXRhQnVp
bGRlcikKLSNkZWZpbmUgQ29udGV4dHVhbEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3Ip
Ci0jZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25CYXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uQmFzZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0
aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1
dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVhbFN1
YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1dGlv
bkZvcm1hdDNTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVhbFN1YnN0
aXR1dGlvbkZvcm1hdDNTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1
YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3Vi
dGFibGUpCi0jZGVmaW5lIENvcHRpY0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b3B0aWNDYWxlbmRhcikKLSNkZWZpbmUgQ292ZXJhZ2VGb3JtYXQxVGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvdmVyYWdlRm9ybWF0MVRhYmxlKQotI2RlZmluZSBDb3ZlcmFnZUZvcm1h
dDJUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VGb3JtYXQyVGFibGUpCi0j
ZGVmaW5lIENvdmVyYWdlVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvdmVyYWdlVGFi
bGUpCi0jZGVmaW5lIEN1cnJlbmN5QW1vdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJy
ZW5jeUFtb3VudCkKLSNkZWZpbmUgQ3VycmVuY3lGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEN1cnJlbmN5Rm9ybWF0KQotI2RlZmluZSBDdXJyZW5jeVBsdXJhbEluZm8gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5UGx1cmFsSW5mbykKLSNkZWZpbmUgQ3VycmVuY3lVbml0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeVVuaXQpCi0jZGVmaW5lIEN1cnNpdmVB
dHRhY2htZW50U3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnNpdmVBdHRhY2ht
ZW50U3VidGFibGUpCi0jZGVmaW5lIERUUmVkdW5kYW50RW51bWVyYXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKERUUmVkdW5kYW50RW51bWVyYXRpb24pCi0jZGVmaW5lIERUU2tlbGV0b25F
bnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRFRTa2VsZXRvbkVudW1lcmF0aW9u
KQotI2RlZmluZSBEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlRm9ybWF0
KQotI2RlZmluZSBEYXRlRm9ybWF0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0
ZUZvcm1hdFN5bWJvbHMpCi0jZGVmaW5lIERhdGVJbnRlcnZhbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGF0ZUludGVydmFsKQotI2RlZmluZSBEYXRlSW50ZXJ2YWxGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKERhdGVJbnRlcnZhbEZvcm1hdCkKLSNkZWZpbmUgRGF0ZUludGVydmFs
SW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZUludGVydmFsSW5mbykKLSNkZWZpbmUg
RGF0ZVRpbWVNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZU1hdGNoZXIp
Ci0jZGVmaW5lIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKQotI2RlZmluZSBEYXRlVGltZVJ1bGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lUnVsZSkKLSNkZWZpbmUgRGVjaW1hbEZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1hbEZvcm1hdCkKLSNkZWZpbmUgRGVjaW1hbEZv
cm1hdFN5bWJvbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY2ltYWxGb3JtYXRTeW1ib2xz
KQotI2RlZmluZSBEZWNvbXBvc2VOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RGVjb21wb3NlTm9ybWFsaXplcjIpCi0jZGVmaW5lIERlZmF1bHRDYWxlbmRhckZhY3RvcnkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERlZmF1bHRDYWxlbmRhckZhY3RvcnkpCi0jZGVmaW5lIERl
ZmF1bHRDaGFyTWFwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWZhdWx0Q2hhck1hcHBl
cikKLSNkZWZpbmUgRGV2aWNlVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERldmljZVRh
YmxlKQotI2RlZmluZSBEaWN0aW9uYXJ5QnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKERpY3Rpb25hcnlCcmVha0VuZ2luZSkKLSNkZWZpbmUgRGlnaXRMaXN0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShEaWdpdExpc3QpCi0jZGVmaW5lIERpc3RhbmNlSW5mbyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoRGlzdGFuY2VJbmZvKQotI2RlZmluZSBFbnVtVG9PZmZzZXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEVudW1Ub09mZnNldCkKLSNkZWZpbmUgRXJyb3JDb2RlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShFcnJvckNvZGUpCi0jZGVmaW5lIEVzY2FwZVRyYW5zbGl0ZXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFc2NhcGVUcmFuc2xpdGVyYXRvcikKLSNkZWZp
bmUgRXRoaW9waWNDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXRoaW9waWNDYWxl
bmRhcikKLSNkZWZpbmUgRXZlbnRMaXN0ZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXZl
bnRMaXN0ZW5lcikKLSNkZWZpbmUgRXh0ZW5zaW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEV4dGVuc2lvblN1YnRhYmxlKQotI2RlZmluZSBGQ0ROb3JtYWxpemVyMiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoRkNETm9ybWFsaXplcjIpCi0jZGVmaW5lIEZDRFRyaWVTaW5nbGV0
b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZDRFRyaWVTaW5nbGV0b24pCi0jZGVmaW5lIEZl
YXR1cmVMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZlYXR1cmVMaXN0VGFibGUp
Ci0jZGVmaW5lIEZpZWxkUG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9z
aXRpb24pCi0jZGVmaW5lIEZpZWxkUG9zaXRpb25IYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShGaWVsZFBvc2l0aW9uSGFuZGxlcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkl0ZXJhdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uSXRlcmF0b3IpCi0jZGVmaW5l
IEZpZWxkUG9zaXRpb25JdGVyYXRvckhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZp
ZWxkUG9zaXRpb25JdGVyYXRvckhhbmRsZXIpCi0jZGVmaW5lIEZpZWxkUG9zaXRpb25Pbmx5SGFu
ZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbk9ubHlIYW5kbGVyKQot
I2RlZmluZSBGaWx0ZXJlZE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWx0
ZXJlZE5vcm1hbGl6ZXIyKQotI2RlZmluZSBGb250UnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRm9udFJ1bnMpCi0jZGVmaW5lIEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9y
bWF0KQotI2RlZmluZSBGb3JtYXQxQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEZvcm1hdDFBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0MkFuY2hvclRhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShGb3JtYXQyQW5jaG9yVGFibGUpCi0jZGVmaW5lIEZvcm1hdDNBbmNo
b3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0M0FuY2hvclRhYmxlKQotI2Rl
ZmluZSBGb3JtYXROYW1lRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1h
dE5hbWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgRm9ybWF0UGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShGb3JtYXRQYXJzZXIpCi0jZGVmaW5lIEZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGb3JtYXR0YWJsZSkKLSNkZWZpbmUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IpCi0jZGVm
aW5lIEZvcndhcmRVVHJpZTJTdHJpbmdJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Rm9yd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yKQotI2RlZmluZSBGcmFjdGlvbmFsUGFydFN1YnN0
aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRp
b24pCi0jZGVmaW5lIEZ1bmN0aW9uUmVwbGFjZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZ1
bmN0aW9uUmVwbGFjZXIpCi0jZGVmaW5lIEdERUZNYXJrRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShHREVGTWFya0ZpbHRlcikKLSNkZWZpbmUgR1hMYXlvdXRFbmdpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEdYTGF5b3V0RW5naW5lKQotI2RlZmluZSBHbHlwaERlZmluaXRpb25U
YWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhEZWZpbml0aW9uVGFibGVI
ZWFkZXIpCi0jZGVmaW5lIEdseXBoSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEds
eXBoSXRlcmF0b3IpCi0jZGVmaW5lIEdseXBoTG9va3VwVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEdseXBoTG9va3VwVGFibGVIZWFkZXIpCi0jZGVmaW5lIEdseXBoUG9zaXRp
b25BZGp1c3RtZW50cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlvbkFkanVz
dG1lbnRzKQotI2RlZmluZSBHbHlwaFBvc2l0aW9uaW5nTG9va3VwUHJvY2Vzc29yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uaW5nTG9va3VwUHJvY2Vzc29yKQotI2RlZmlu
ZSBHbHlwaFBvc2l0aW9uaW5nVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEds
eXBoUG9zaXRpb25pbmdUYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhTdWJzdGl0dXRpb25Mb29r
dXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoU3Vic3RpdHV0aW9uTG9v
a3VwUHJvY2Vzc29yKQotI2RlZmluZSBHbHlwaFN1YnN0aXR1dGlvblRhYmxlSGVhZGVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFN1YnN0aXR1dGlvblRhYmxlSGVhZGVyKQotI2RlZmlu
ZSBHb29kU3VmZml4VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdvb2RTdWZmaXhUYWJs
ZSkKLSNkZWZpbmUgR3JlZ28gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdyZWdvKQotI2RlZmlu
ZSBHcmVnb3JpYW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR3JlZ29yaWFuQ2Fs
ZW5kYXIpCi0jZGVmaW5lIEhhbk9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShIYW5PcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSGFuZ3VsT3BlblR5cGVM
YXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEhhbmd1bE9wZW5UeXBlTGF5b3V0
RW5naW5lKQotI2RlZmluZSBIZWJyZXdDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
SGVicmV3Q2FsZW5kYXIpCi0jZGVmaW5lIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeSkKLSNkZWZpbmUgSUNVQnJl
YWtJdGVyYXRvclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUJyZWFrSXRlcmF0
b3JTZXJ2aWNlKQotI2RlZmluZSBJQ1VDb2xsYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKElDVUNvbGxhdG9yRmFjdG9yeSkKLSNkZWZpbmUgSUNVQ29sbGF0b3JTZXJ2aWNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VDb2xsYXRvclNlcnZpY2UpCi0jZGVmaW5lIElDVURh
dGFUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVRGF0YVRhYmxlKQotI2RlZmluZSBJ
Q1VMYW5ndWFnZUJyZWFrRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTGFuZ3Vh
Z2VCcmVha0ZhY3RvcnkpCi0jZGVmaW5lIElDVUxvY2FsZVNlcnZpY2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKElDVUxvY2FsZVNlcnZpY2UpCi0jZGVmaW5lIElDVU5vdGlmaWVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShJQ1VOb3RpZmllcikKLSNkZWZpbmUgSUNVTnVtYmVyRm9ybWF0RmFj
dG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTnVtYmVyRm9ybWF0RmFjdG9yeSkKLSNk
ZWZpbmUgSUNVTnVtYmVyRm9ybWF0U2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNV
TnVtYmVyRm9ybWF0U2VydmljZSkKLSNkZWZpbmUgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkpCi0jZGVmaW5l
IElDVVNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2UpCi0jZGVmaW5l
IElDVVNlcnZpY2VGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VTZXJ2aWNlRmFj
dG9yeSkKLSNkZWZpbmUgSUNVU2VydmljZUtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNV
U2VydmljZUtleSkKLSNkZWZpbmUgSUNVX1V0aWxpdHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KElDVV9VdGlsaXR5KQotI2RlZmluZSBJRE5BIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJRE5B
KQotI2RlZmluZSBJbmRpYW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWFu
Q2FsZW5kYXIpCi0jZGVmaW5lIEluZGljQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoSW5kaWNDbGFzc1RhYmxlKQotI2RlZmluZSBJbmRpY09wZW5UeXBlTGF5b3V0RW5naW5lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY09wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmlu
ZSBJbmRpY1JlYXJyYW5nZW1lbnRQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElu
ZGljUmVhcnJhbmdlbWVudFByb2Nlc3NvcikKLSNkZWZpbmUgSW5kaWNSZW9yZGVyaW5nIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY1Jlb3JkZXJpbmcpCi0jZGVmaW5lIEluaXRpYWxUaW1l
Wm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluaXRpYWxUaW1lWm9uZVJ1bGUpCi0j
ZGVmaW5lIElucHV0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5wdXRUZXh0KQotI2Rl
ZmluZSBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElu
dGVncmFsUGFydFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgSXNsYW1pY0NhbGVuZGFyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShJc2xhbWljQ2FsZW5kYXIpCi0jZGVmaW5lIEl0ZXJhdGVkQ2hhciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSXRlcmF0ZWRDaGFyKQotI2RlZmluZSBKYXBhbmVzZUNh
bGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShKYXBhbmVzZUNhbGVuZGFyKQotI2RlZmlu
ZSBLZXJuVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtlcm5UYWJsZSkKLSNkZWZpbmUg
S2V5d29yZEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShLZXl3b3JkRW51bWVy
YXRpb24pCi0jZGVmaW5lIEtobWVyQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
S2htZXJDbGFzc1RhYmxlKQotI2RlZmluZSBLaG1lck9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShLaG1lck9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBL
aG1lclJlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyUmVvcmRlcmluZykK
LSNkZWZpbmUgTEVDaGFyTWFwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUNoYXJNYXBw
ZXIpCi0jZGVmaW5lIExFRm9udEluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUZv
bnRJbnN0YW5jZSkKLSNkZWZpbmUgTEVHbHlwaEZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTEVHbHlwaEZpbHRlcikKLSNkZWZpbmUgTEVHbHlwaFN0b3JhZ2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExFR2x5cGhTdG9yYWdlKQotI2RlZmluZSBMRUluc2VydGlvbkNhbGxiYWNrIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUluc2VydGlvbkNhbGxiYWNrKQotI2RlZmluZSBMRUlu
c2VydGlvbkxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFSW5zZXJ0aW9uTGlzdCkKLSNk
ZWZpbmUgTFhVdGlsaXRpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExYVXRpbGl0aWVzKQot
I2RlZmluZSBMYW5ndWFnZUJyZWFrRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYW5n
dWFnZUJyZWFrRW5naW5lKQotI2RlZmluZSBMYW5ndWFnZUJyZWFrRmFjdG9yeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTGFuZ3VhZ2VCcmVha0ZhY3RvcnkpCi0jZGVmaW5lIExheW91dEVuZ2lu
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGF5b3V0RW5naW5lKQotI2RlZmluZSBMaWdhdHVy
ZVN1YnN0aXR1dGlvblByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGlnYXR1cmVT
dWJzdGl0dXRpb25Qcm9jZXNzb3IpCi0jZGVmaW5lIExpZ2F0dXJlU3Vic3RpdHV0aW9uU3VidGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExpZ2F0dXJlU3Vic3RpdHV0aW9uU3VidGFibGUp
Ci0jZGVmaW5lIExvY0RhdGFQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY0RhdGFQ
YXJzZXIpCi0jZGVmaW5lIExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlKQot
I2RlZmluZSBMb2NhbGVCYXNlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlQmFzZWQp
Ci0jZGVmaW5lIExvY2FsZURpc3BsYXlOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9j
YWxlRGlzcGxheU5hbWVzKQotI2RlZmluZSBMb2NhbGVEaXNwbGF5TmFtZXNJbXBsIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShMb2NhbGVEaXNwbGF5TmFtZXNJbXBsKQotI2RlZmluZSBMb2NhbGVL
ZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZUtleSkKLSNkZWZpbmUgTG9jYWxlS2V5
RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlS2V5RmFjdG9yeSkKLSNkZWZp
bmUgTG9jYWxlUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlUnVucykKLSNkZWZp
bmUgTG9jYWxlVXRpbGl0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlVXRpbGl0eSkK
LSNkZWZpbmUgTG9jYWxpemF0aW9uSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxp
emF0aW9uSW5mbykKLSNkZWZpbmUgTG9va3VwTGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMb29rdXBMaXN0VGFibGUpCi0jZGVmaW5lIExvb2t1cFByb2Nlc3NvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTG9va3VwUHJvY2Vzc29yKQotI2RlZmluZSBMb29rdXBTdWJ0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3VwU3VidGFibGUpCi0jZGVmaW5lIExvb2t1cFRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBUYWJsZSkKLSNkZWZpbmUgTG93ZXJj
YXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvd2VyY2FzZVRyYW5z
bGl0ZXJhdG9yKQotI2RlZmluZSBNUHJlRml4dXBzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShN
UHJlRml4dXBzKQotI2RlZmluZSBNYXJrQXJyYXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1h
cmtBcnJheSkKLSNkZWZpbmUgTWFya1RvQmFzZVBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE1hcmtUb0Jhc2VQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBN
YXJrVG9MaWdhdHVyZVBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KE1hcmtUb0xpZ2F0dXJlUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWFya1RvTWFya1Bv
c2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1hcmtUb01hcmtQb3Np
dGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBNZWFzdXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShNZWFzdXJlKQotI2RlZmluZSBNZWFzdXJlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShNZWFzdXJlRm9ybWF0KQotI2RlZmluZSBNZWFzdXJlVW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTWVhc3VyZVVuaXQpCi0jZGVmaW5lIE1lc3NhZ2VGb3JtYXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE1lc3NhZ2VGb3JtYXQpCi0jZGVmaW5lIE1lc3NhZ2VGb3JtYXRBZGFwdGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZXNzYWdlRm9ybWF0QWRhcHRlcikKLSNkZWZpbmUgTW9k
dWx1c1N1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9kdWx1c1N1YnN0aXR1
dGlvbikKLSNkZWZpbmUgTW9vblJpc2VTZXRDb29yZEZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE1vb25SaXNlU2V0Q29vcmRGdW5jKQotI2RlZmluZSBNb29uVGltZUFuZ2xlRnVuYyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9vblRpbWVBbmdsZUZ1bmMpCi0jZGVmaW5lIE1vcnBoU3Vi
dGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1vcnBoU3VidGFibGVIZWFkZXIp
Ci0jZGVmaW5lIE1vcnBoVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1vcnBo
VGFibGVIZWFkZXIpCi0jZGVmaW5lIE11bHRpcGxlU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE11bHRpcGxlU3Vic3RpdHV0aW9uU3VidGFibGUpCi0jZGVmaW5l
IE11bHRpcGxpZXJTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11bHRpcGxp
ZXJTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE11dGFibGVUcmllRGljdGlvbmFyeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTXV0YWJsZVRyaWVEaWN0aW9uYXJ5KQotI2RlZmluZSBNdXRhYmxlVHJp
ZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdXRhYmxlVHJpZUVudW1lcmF0
aW9uKQotI2RlZmluZSBORkZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5GRmFjdG9y
eSkKLSNkZWZpbmUgTkZLREJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZLREJ1ZmZl
cikKLSNkZWZpbmUgTkZSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1bGUpCi0jZGVm
aW5lIE5GUnVsZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZSdWxlU2V0KQotI2RlZmlu
ZSBORlN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZTdWJzdGl0dXRpb24p
Ci0jZGVmaW5lIE5HcmFtUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOR3JhbVBhcnNl
cikKLSNkZWZpbmUgTmFtZVRvRW51bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTmFtZVRvRW51
bSkKLSNkZWZpbmUgTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTm9uQ29udGV4dHVhbEds
eXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb25Db250
ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IpCi0jZGVmaW5lIE5vbkNvbnRpZ3VvdXNF
bnVtVG9PZmZzZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vbkNvbnRpZ3VvdXNFbnVtVG9P
ZmZzZXQpCi0jZGVmaW5lIE5vb3BOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Tm9vcE5vcm1hbGl6ZXIyKQotI2RlZmluZSBOb3JtMkFsbE1vZGVzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShOb3JtMkFsbE1vZGVzKQotI2RlZmluZSBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvcikK
LSNkZWZpbmUgTm9ybWFsaXplciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcikK
LSNkZWZpbmUgTm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIy
KQotI2RlZmluZSBOb3JtYWxpemVyMkZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5v
cm1hbGl6ZXIyRmFjdG9yeSkKLSNkZWZpbmUgTm9ybWFsaXplcjJJbXBsIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShOb3JtYWxpemVyMkltcGwpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyV2l0aEltcGwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIyV2l0aEltcGwpCi0jZGVmaW5lIE51
bGxTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bGxTdWJzdGl0dXRpb24p
Ci0jZGVmaW5lIE51bGxUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVs
bFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE51bWJlckZvcm1hdCkKLSNkZWZpbmUgTnVtYmVyRm9ybWF0RmFjdG9yeSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTnVtYmVyRm9ybWF0RmFjdG9yeSkKLSNkZWZpbmUgTnVtYmVyaW5n
U3lzdGVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJpbmdTeXN0ZW0pCi0jZGVmaW5l
IE51bWVyYXRvclN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVtZXJhdG9y
U3Vic3RpdHV0aW9uKQotI2RlZmluZSBPbHNvblRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShPbHNvblRpbWVab25lKQotI2RlZmluZSBPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIE9wZW5UeXBl
VXRpbGl0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPcGVuVHlwZVV0aWxpdGllcykKLSNk
ZWZpbmUgT3JDb25zdHJhaW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPckNvbnN0cmFpbnQp
Ci0jZGVmaW5lIFBDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUENFQnVmZmVyKQot
I2RlZmluZSBQYWlyUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgUGFpclBvc2l0
aW9uaW5nRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWlyUG9zaXRp
b25pbmdGb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ1N1YnRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWlyUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUg
UGFyYWdyYXBoTGF5b3V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJhZ3JhcGhMYXlvdXQp
Ci0jZGVmaW5lIFBhcnNlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFyc2VEYXRhKQot
I2RlZmluZSBQYXJzZVBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJzZVBvc2l0
aW9uKQotI2RlZmluZSBQYXR0ZXJuTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXR0ZXJu
TWFwKQotI2RlZmluZSBQYXR0ZXJuTWFwSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFBhdHRlcm5NYXBJdGVyYXRvcikKLSNkZWZpbmUgUGVyc2lhbkNhbGVuZGFyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShQZXJzaWFuQ2FsZW5kYXIpCi0jZGVmaW5lIFBsdXJhbEZvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsRm9ybWF0KQotI2RlZmluZSBQbHVyYWxLZXl3b3Jk
RW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBsdXJhbEtleXdvcmRFbnVtZXJh
dGlvbikKLSNkZWZpbmUgUGx1cmFsUnVsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBsdXJh
bFJ1bGVzKQotI2RlZmluZSBQcm9wZXJ0eUFsaWFzZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFByb3BlcnR5QWxpYXNlcykKLSNkZWZpbmUgUHRuRWxlbSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUHRuRWxlbSkKLSNkZWZpbmUgUHRuU2tlbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFB0blNrZWxldG9uKQotI2RlZmluZSBRdWFudGlmaWVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShRdWFudGlmaWVyKQotI2RlZmluZSBSQkJJRGF0YVdyYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFJCQklEYXRhV3JhcHBlcikKLSNkZWZpbmUgUkJCSU5vZGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJCQklOb2RlKQotI2RlZmluZSBSQkJJUnVsZUJ1aWxkZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFJCQklSdWxlQnVpbGRlcikKLSNkZWZpbmUgUkJCSVJ1bGVTY2FubmVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJUnVsZVNjYW5uZXIpCi0jZGVmaW5lIFJCQklTZXRC
dWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJU2V0QnVpbGRlcikKLSNkZWZpbmUg
UkJCSVN0YXRlRGVzY3JpcHRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN0YXRlRGVz
Y3JpcHRvcikKLSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSQkJJU3ltYm9sVGFibGUpCi0jZGVmaW5lIFJCQklTeW1ib2xUYWJsZUVudHJ5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShSQkJJU3ltYm9sVGFibGVFbnRyeSkKLSNkZWZpbmUgUkJCSVRhYmxl
QnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVRhYmxlQnVpbGRlcikKLSNkZWZp
bmUgUkNFQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQ0VCdWZmZXIpCi0jZGVmaW5l
IFJhbmdlRGVzY3JpcHRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmFuZ2VEZXNjcmlwdG9y
KQotI2RlZmluZSBSZWdleENvbXBpbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ2V4Q29t
cGlsZSkKLSNkZWZpbmUgUmVnZXhNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWdl
eE1hdGNoZXIpCi0jZGVmaW5lIFJlZ2V4UGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UmVnZXhQYXR0ZXJuKQotI2RlZmluZSBSZWdleFN0YXRpY1NldHMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFJlZ2V4U3RhdGljU2V0cykKLSNkZWZpbmUgUmVndWxhckV4cHJlc3Npb24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFJlZ3VsYXJFeHByZXNzaW9uKQotI2RlZmluZSBSZWxhdGl2ZURh
dGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlbGF0aXZlRGF0ZUZvcm1hdCkKLSNk
ZWZpbmUgUmVtb3ZlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlbW92
ZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBSZW9yZGVyaW5nQnVmZmVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShSZW9yZGVyaW5nQnVmZmVyKQotI2RlZmluZSBSZXBsYWNlYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUmVwbGFjZWFibGUpCi0jZGVmaW5lIFJlcGxhY2VhYmxlR2x1ZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVwbGFjZWFibGVHbHVlKQotI2RlZmluZSBSZXNvdXJj
ZUJ1bmRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVzb3VyY2VCdW5kbGUpCi0jZGVmaW5l
IFJpc2VTZXRDb29yZEZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJpc2VTZXRDb29yZEZ1
bmMpCi0jZGVmaW5lIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVCYXNlZENvbGxhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRDb2xsYXRvcikKLSNkZWZpbmUgUnVsZUJh
c2VkTnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWROdW1iZXJG
b3JtYXQpCi0jZGVmaW5lIFJ1bGVCYXNlZFRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSdWxlQmFzZWRUaW1lWm9uZSkKLSNkZWZpbmUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBS
dWxlQ2hhaW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVDaGFpbikKLSNkZWZpbmUgUnVs
ZUNoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQ2hhcmFjdGVy
SXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVIYWxmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxl
SGFsZikKLSNkZWZpbmUgUnVsZVBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZVBh
cnNlcikKLSNkZWZpbmUgUnVuQXJyYXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bkFycmF5
KQotI2RlZmluZSBTUFVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNQVVN0cmluZykK
LSNkZWZpbmUgU1BVU3RyaW5nUG9vbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU1BVU3RyaW5n
UG9vbCkKLSNkZWZpbmUgU2FmZVpvbmVTdHJpbmdGb3JtYXRQdHIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFNhZmVab25lU3RyaW5nRm9ybWF0UHRyKQotI2RlZmluZSBTYW1lVmFsdWVTdWJzdGl0
dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNhbWVWYWx1ZVN1YnN0aXR1dGlvbikKLSNk
ZWZpbmUgU2NyaXB0TGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTY3JpcHRMaXN0
VGFibGUpCi0jZGVmaW5lIFNjcmlwdFJ1bkl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTY3JpcHRSdW5JdGVyYXRvcikKLSNkZWZpbmUgU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTY3JpcHRTZXQpCi0jZGVmaW5lIFNjcmlwdFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTY3JpcHRUYWJsZSkKLSNkZWZpbmUgU2VhcmNoSXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNlYXJjaEl0ZXJhdG9yKQotI2RlZmluZSBTZWdtZW50QXJyYXlQcm9jZXNz
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlZ21lbnRBcnJheVByb2Nlc3NvcikKLSNkZWZp
bmUgU2VnbWVudFNpbmdsZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VnbWVu
dFNpbmdsZVByb2Nlc3NvcikKLSNkZWZpbmUgU2VsZWN0Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTZWxlY3RGb3JtYXQpCi0jZGVmaW5lIFNlcnZpY2VFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU2VydmljZUVudW1lcmF0aW9uKQotI2RlZmluZSBTZXJ2aWNlTGlz
dGVuZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlcnZpY2VMaXN0ZW5lcikKLSNkZWZpbmUg
U2ltcGxlQXJyYXlQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZUFycmF5
UHJvY2Vzc29yKQotI2RlZmluZSBTaW1wbGVEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTaW1wbGVEYXRlRm9ybWF0KQotI2RlZmluZSBTaW1wbGVGYWN0b3J5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTaW1wbGVGYWN0b3J5KQotI2RlZmluZSBTaW1wbGVMb2NhbGVLZXlGYWN0
b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVMb2NhbGVLZXlGYWN0b3J5KQotI2Rl
ZmluZSBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
aW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBTaW1wbGVTaW5nbGV0b24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZVNpbmdsZXRvbikKLSNkZWZpbmUgU2ltcGxlVGltZVpv
bmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZVRpbWVab25lKQotI2RlZmluZSBTaW5n
bGVQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2lu
Z2xlUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVBvc2l0aW9uaW5n
Rm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmlu
Z0Zvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUg
U2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0
aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlU3Vi
c3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25TdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlU3Vic3RpdHV0aW9uU3VidGFibGUp
Ci0jZGVmaW5lIFNpbmdsZVRhYmxlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
aW5nbGVUYWJsZVByb2Nlc3NvcikKLSNkZWZpbmUgU3Bvb2ZEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTcG9vZkRhdGEpCi0jZGVmaW5lIFNwb29mSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU3Bvb2ZJbXBsKQotI2RlZmluZSBTdGF0ZVRhYmxlUHJvY2Vzc29yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTdGF0ZVRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IpCi0jZGVmaW5lIFN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
dHJpbmdFbnVtZXJhdGlvbikKLSNkZWZpbmUgU3RyaW5nTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU3RyaW5nTGlzdCkKLSNkZWZpbmUgU3RyaW5nTG9jYWxpemF0aW9uSW5mbyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nTG9jYWxpemF0aW9uSW5mbykKLSNkZWZpbmUgU3RyaW5n
TWF0Y2hlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nTWF0Y2hlcikKLSNkZWZpbmUg
U3RyaW5nUGFpciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUGFpcikKLSNkZWZpbmUg
U3RyaW5nUGllY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ1BpZWNlKQotI2RlZmlu
ZSBTdHJpbmdSZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUmVwbGFjZXIp
Ci0jZGVmaW5lIFN0cmluZ1NlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nU2Vh
cmNoKQotI2RlZmluZSBTdHJpbmdUb0NFc01hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Ry
aW5nVG9DRXNNYXApCi0jZGVmaW5lIFN0eWxlUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U3R5bGVSdW5zKQotI2RlZmluZSBTdWJzdGl0dXRpb25Mb29rdXAgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN1YnN0aXR1dGlvbkxvb2t1cCkKLSNkZWZpbmUgU3VidGFibGVQcm9jZXNzb3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFN1YnRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBTdW5UaW1l
QW5nbGVGdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdW5UaW1lQW5nbGVGdW5jKQotI2Rl
ZmluZSBTeW1ib2xUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3ltYm9sVGFibGUpCi0j
ZGVmaW5lIFRaRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRaRW51bWVyYXRp
b24pCi0jZGVmaW5lIFRhaXdhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUYWl3
YW5DYWxlbmRhcikKLSNkZWZpbmUgVGFyZ2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUYXJn
ZXQpCi0jZGVmaW5lIFRlcm5hcnlOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUZXJuYXJ5
Tm9kZSkKLSNkZWZpbmUgVGV4dFRyaWVNYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRleHRU
cmllTWFwKQotI2RlZmluZSBUZXh0VHJpZU1hcFNlYXJjaFJlc3VsdEhhbmRsZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRleHRUcmllTWFwU2VhcmNoUmVzdWx0SGFuZGxlcikKLSNkZWZpbmUg
VGhhaUJyZWFrRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaGFpQnJlYWtFbmdpbmUp
Ci0jZGVmaW5lIFRoYWlMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlM
YXlvdXRFbmdpbmUpCi0jZGVmaW5lIFRoYWlTaGFwaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUaGFpU2hhcGluZykKLSNkZWZpbmUgVGliZXRhbkNsYXNzVGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRpYmV0YW5DbGFzc1RhYmxlKQotI2RlZmluZSBUaWJldGFuT3BlblR5cGVMYXlv
dXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpYmV0YW5PcGVuVHlwZUxheW91dEVu
Z2luZSkKLSNkZWZpbmUgVGliZXRhblJlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRpYmV0YW5SZW9yZGVyaW5nKQotI2RlZmluZSBUaW1lQXJyYXlUaW1lWm9uZVJ1bGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFRpbWVBcnJheVRpbWVab25lUnVsZSkKLSNkZWZpbmUgVGltZVVu
aXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVVbml0KQotI2RlZmluZSBUaW1lVW5pdEFt
b3VudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVVuaXRBbW91bnQpCi0jZGVmaW5lIFRp
bWVVbml0Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lVW5pdEZvcm1hdCkKLSNk
ZWZpbmUgVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lKQotI2RlZmlu
ZSBUaW1lWm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lUnVsZSkKLSNk
ZWZpbmUgVGltZVpvbmVUcmFuc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lWm9u
ZVRyYW5zaXRpb24pCi0jZGVmaW5lIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShUaXRsZWNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVHJhbnNsaXRl
cmF0aW9uUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0aW9uUnVsZSkK
LSNkZWZpbmUgVHJhbnNsaXRlcmF0aW9uUnVsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRyYW5zbGl0ZXJhdGlvblJ1bGVEYXRhKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlU2V0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlU2V0KQotI2RlZmlu
ZSBUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3Ip
Ci0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yQWxpYXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRy
YW5zbGl0ZXJhdG9yQWxpYXMpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yRW50cnkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yRW50cnkpCi0jZGVmaW5lIFRyYW5zbGl0ZXJh
dG9ySURQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9ySURQYXJz
ZXIpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUcmFuc2xpdGVyYXRvclBhcnNlcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSkKLSNkZWZpbmUg
VHJhbnNsaXRlcmF0b3JTcGVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRv
clNwZWMpCi0jZGVmaW5lIFRyaVN0YXRlU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUcmlTdGF0ZVNpbmdsZXRvbikKLSNkZWZpbmUgVHJpZVdvcmREaWN0aW9uYXJ5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUcmllV29yZERpY3Rpb25hcnkpCi0jZGVmaW5lIFRyaW1tZWRBcnJh
eVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpbW1lZEFycmF5UHJvY2Vzc29y
KQotI2RlZmluZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBVQ29sbGF0aW9uUENFIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShVQ29sbGF0aW9uUENFKQotI2RlZmluZSBVRGF0YVBhdGhJdGVyYXRv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVURhdGFQYXRoSXRlcmF0b3IpCi0jZGVmaW5lIFVM
b2NSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVTG9jUnVucykKLSNkZWZpbmUgVU1lbW9y
eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVU1lbW9yeSkKLSNkZWZpbmUgVU9iamVjdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVU9iamVjdCkKLSNkZWZpbmUgVVN0YWNrIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShVU3RhY2spCi0jZGVmaW5lIFVTdHJpbmdFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVVN0cmluZ0VudW1lcmF0aW9uKQotI2RlZmluZSBVVFM0NiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVVRTNDYpCi0jZGVmaW5lIFVUcmllMlNpbmdsZXRvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVVRyaWUyU2luZ2xldG9uKQotI2RlZmluZSBVVmVjdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yKQotI2RlZmluZSBVVmVjdG9yMzIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3IzMikKLSNkZWZpbmUgVVZlY3RvcjY0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yNjQpCi0jZGVmaW5lIFVuZXNjYXBlVHJhbnNsaXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IpCi0jZGVm
aW5lIFVuaGFuZGxlZEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5oYW5kbGVkRW5n
aW5lKQotI2RlZmluZSBVbmljb2RlQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFVuaWNvZGVBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZp
bmUgVW5pY29kZUZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUZpbHRlcikK
LSNkZWZpbmUgVW5pY29kZUZ1bmN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVG
dW5jdG9yKQotI2RlZmluZSBVbmljb2RlTWF0Y2hlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VW5pY29kZU1hdGNoZXIpCi0jZGVmaW5lIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFVu
aWNvZGVSZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVJlcGxhY2VyKQot
I2RlZmluZSBVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU2V0KQot
I2RlZmluZSBVbmljb2RlU2V0SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNv
ZGVTZXRJdGVyYXRvcikKLSNkZWZpbmUgVW5pY29kZVNldFN0cmluZ1NwYW4gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFVuaWNvZGVTZXRTdHJpbmdTcGFuKQotI2RlZmluZSBVbmljb2RlU3RyaW5n
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU3RyaW5nKQotI2RlZmluZSBVcHBlcmNh
c2VUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVXBwZXJjYXNlVHJhbnNs
aXRlcmF0b3IpCi0jZGVmaW5lIFZUWlJlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVlRa
UmVhZGVyKQotI2RlZmluZSBWVFpXcml0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZUWldy
aXRlcikKLSNkZWZpbmUgVlRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWVGltZVpv
bmUpCi0jZGVmaW5lIFZhbHVlUmVjb3JkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWYWx1ZVJl
Y29yZCkKLSNkZWZpbmUgVmFsdWVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWYWx1ZVJ1
bnMpCi0jZGVmaW5lIFpTRkNhY2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZDYWNoZSkK
LSNkZWZpbmUgWlNGQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWlNGQ2FjaGVF
bnRyeSkKLSNkZWZpbmUgWlNGU3RyaW5nUG9vbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWlNG
U3RyaW5nUG9vbCkKLSNkZWZpbmUgWlNGU3RyaW5nUG9vbENodW5rIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShaU0ZTdHJpbmdQb29sQ2h1bmspCi0jZGVmaW5lIFpvbmVNZXRhIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShab25lTWV0YSkKLSNkZWZpbmUgWm9uZVN0cmluZ0Zvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ0Zvcm1hdCkKLSNkZWZpbmUgWm9uZVN0cmluZ0lu
Zm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdJbmZvKQotI2RlZmluZSBab25l
U3RyaW5nU2VhcmNoUmVzdWx0SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0
cmluZ1NlYXJjaFJlc3VsdEhhbmRsZXIpCi0jZGVmaW5lIFpvbmVTdHJpbmdzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShab25lU3RyaW5ncykKLSNkZWZpbmUgY29sbEl0ZXJhdGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKGNvbGxJdGVyYXRlKQotI2RlZmluZSBsb2NhbGVfc2V0X2RlZmF1bHRf
aW50ZXJuYWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGxvY2FsZV9zZXRfZGVmYXVsdF9pbnRl
cm5hbCkKLSNkZWZpbmUgdXRpbDY0X2Zyb21Eb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHV0aWw2NF9mcm9tRG91YmxlKQotI2RlZmluZSB1dGlsNjRfcG93IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1dGlsNjRfcG93KQotI2RlZmluZSB1dGlsNjRfdG91IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1dGlsNjRfdG91KQotCi0jZW5kaWYKLSNlbmRpZgotCiAjZW5kaWYKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXNjcmlwdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRleCBlZTIx
Yzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRhZmFiNTNm
ZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aWN1L3VuaWNvZGUvdXNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91c2NyaXB0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAg
Q29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyAqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogICoKQEAgLTQ0LDE4MiArNDQsMzY5IEBACiAgKiBAc3RhYmxlIElD
VSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVTY3JpcHRDb2RlIHsKKyAgICAvKgorICAgICAqIE5v
dGU6IFVTY3JpcHRDb2RlIGNvbnN0YW50cyBhbmQgdGhlaXIgSVNPIHNjcmlwdCBjb2RlIGNvbW1l
bnRzCisgICAgICogYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRj
aGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVVNDUklQVF88VW5pY29kZSBTY3JpcHQgdmFsdWUg
bmFtZT4gPSA8aW50ZWdlcj4sICAvICogPElTTyBzY3JpcHQgY29kZT4gKiAvCisgICAgICovCisK
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSU5WQUxJRF9DT0RF
ID0gLTEsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0NPTU1P
TiAgICAgICA9ICAwLCAgLyogWnl5eSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9JTkhFUklURUQgICAgPSAgMSwgIC8qIFppbmggKi8gLyogIkNvZGUgZm9y
IGluaGVyaXRlZCBzY3JpcHQiLCBmb3Igbm9uLXNwYWNpbmcgY29tYmluaW5nIG1hcmtzOyBhbHNv
IFFhYWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQVJB
QklDICAgICAgID0gIDIsICAvKiBBcmFiICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0FSTUVOSUFOICAgICA9ICAzLCAgLyogQXJtbiAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CRU5HQUxJICAgICAgPSAgNCwgIC8q
IEJlbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQk9Q
T01PRk8gICAgID0gIDUsICAvKiBCb3BvICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0NIRVJPS0VFICAgICA9ICA2LCAgLyogQ2hlciAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DT1BUSUMgICAgICAgPSAgNywgIC8q
IENvcHQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ1lS
SUxMSUMgICAgID0gIDgsICAvKiBDeXJsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0RFU0VSRVQgICAgICA9ICA5LCAgLyogRHNydCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ERVZBTkFHQVJJICAgPSAxMCwgIC8q
IERldmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfRVRI
SU9QSUMgICAgID0gMTEsICAvKiBFdGhpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0dFT1JHSUFOICAgICA9IDEyLCAgLyogR2VvciAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HT1RISUMgICAgICAgPSAxMywgIC8q
IEdvdGggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1JF
RUsgICAgICAgID0gMTQsICAvKiBHcmVrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0dVSkFSQVRJICAgICA9IDE1LCAgLyogR3VqciAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HVVJNVUtISSAgICAgPSAxNiwgIC8q
IEd1cnUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEFO
ICAgICAgICAgID0gMTcsICAvKiBIYW5pICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0hBTkdVTCAgICAgICA9IDE4LCAgLyogSGFuZyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IRUJSRVcgICAgICAgPSAxOSwgIC8q
IEhlYnIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSElS
QUdBTkEgICAgID0gMjAsICAvKiBIaXJhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0tBTk5BREEgICAgICA9IDIxLCAgLyogS25kYSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LQVRBS0FOQSAgICAgPSAyMiwgIC8q
IEthbmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0hN
RVIgICAgICAgID0gMjMsICAvKiBLaG1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX0xBTyAgICAgICAgICA9IDI0LCAgLyogTGFvbyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9MQVRJTiAgICAgICAgPSAyNSwgIC8q
IExhdG4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTUFM
QVlBTEFNICAgID0gMjYsICAvKiBNbHltICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX01PTkdPTElBTiAgICA9IDI3LCAgLyogTW9uZyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NWUFOTUFSICAgICAgPSAyOCwgIC8q
IE15bXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT0dI
QU0gICAgICAgID0gMjksICAvKiBPZ2FtICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX09MRF9JVEFMSUMgICA9IDMwLCAgLyogSXRhbCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PUklZQSAgICAgICAgPSAzMSwgIC8q
IE9yeWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfUlVO
SUMgICAgICAgID0gMzIsICAvKiBSdW5yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX1NJTkhBTEEgICAgICA9IDMzLCAgLyogU2luaCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9TWVJJQUMgICAgICAgPSAzNCwgIC8q
IFN5cmMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEFN
SUwgICAgICAgID0gMzUsICAvKiBUYW1sICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX1RFTFVHVSAgICAgICA9IDM2LCAgLyogVGVsdSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USEFBTkEgICAgICAgPSAzNywgIC8q
IFRoYWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEhB
SSAgICAgICAgID0gMzgsICAvKiBUaGFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgICBVU0NSSVBUX1RJQkVUQU4gICAgICA9IDM5LCAgLyogVGlidCAqLwogICAgICAgLyoq
IENhbmFkaWFuX0Fib3JpZ2luYWwgc2NyaXB0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVT
Q1JJUFRfQ0FOQURJQU5fQUJPUklHSU5BTCA9IDQwLCAgLyogQ2FucyAqLwogICAgICAgLyoqIENh
bmFkaWFuX0Fib3JpZ2luYWwgc2NyaXB0IChhbGlhcykuIEBzdGFibGUgSUNVIDIuMiAqLwogICAg
ICAgVVNDUklQVF9VQ0FTICAgICAgICAgPSBVU0NSSVBUX0NBTkFESUFOX0FCT1JJR0lOQUwsCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1lJICAgICAgICAgICA9
IDQxLCAgLyogWWlpaSAqLworICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSAzLjIgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEFHQUxPRyAgICAg
ID0gNDIsICAvKiBUZ2xnICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0hBTlVOT08gICAgICA9IDQzLCAgLyogSGFubyAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CVUhJRCAgICAgICAgPSA0NCwgIC8qIEJ1aGQgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEFHQkFOV0EgICAg
ID0gNDUsICAvKiBUYWdiICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNCBA
c3RhYmxlIElDVSAyLjYgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9CUkFJTExFICAgICAg
PSA0NiwgIC8qIEJyYWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVT
Q1JJUFRfQ1lQUklPVCAgICAgID0gNDcsICAvKiBDcHJ0ICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMi42ICovCiAgICAgICBVU0NSSVBUX0xJTUJVICAgICAgICA9IDQ4LCAgLyogTGltYiAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9MSU5FQVJfQiAgICAg
PSA0OSwgIC8qIExpbmIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVT
Q1JJUFRfT1NNQU5ZQSAgICAgID0gNTAsICAvKiBPc21hICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMi42ICovCiAgICAgICBVU0NSSVBUX1NIQVZJQU4gICAgICA9IDUxLCAgLyogU2hhdyAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9UQUlfTEUgICAgICAg
PSA1MiwgIC8qIFRhbGUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVT
Q1JJUFRfVUdBUklUSUMgICAgID0gNTMsICAvKiBVZ2FyICovCiAKICAgICAgIC8qKiBOZXcgc2Ny
aXB0IGNvZGUgaW4gVW5pY29kZSA0LjAuMSBAc3RhYmxlIElDVSAzLjAgKi8KICAgICAgIFVTQ1JJ
UFRfS0FUQUtBTkFfT1JfSElSQUdBTkEgPSA1NCwvKkhya3QgKi8KIAotICAgICAgLyogTmV3IHNj
cmlwdHMgaW4gVW5pY29kZSA0LjEgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgICAvKiBOZXcgc2Ny
aXB0cyBpbiBVbmljb2RlIDQuMSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAg
ICAgVVNDUklQVF9CVUdJTkVTRSAgICAgID0gNTUsIC8qIEJ1Z2kgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfR0xBR09MSVRJQyAgICA9IDU2LCAvKiBHbGFn
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0tIQVJPU0hU
SEkgICAgPSA1NywgLyogS2hhciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAg
ICAgVVNDUklQVF9TWUxPVElfTkFHUkkgID0gNTgsIC8qIFN5bG8gKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfTkVXX1RBSV9MVUUgICA9IDU5LCAvKiBUYWx1
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX1RJRklOQUdI
ICAgICAgPSA2MCwgLyogVGZuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAg
ICAgVVNDUklQVF9PTERfUEVSU0lBTiAgID0gNjEsIC8qIFhwZW8gKi8KIAotICAgICAgLyogTmV3
IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSAzLjYgKi8KKyAgICAgIC8q
IE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQkFMSU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA2
MiwgLyogQmFsaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9CQVRBSyAgICAgICAgICAgICAgICAgICAgICAgICA9IDYzLCAvKiBCYXRrICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JMSVNTWU1CT0xTICAgICAgICAg
ICAgICAgICAgID0gNjQsIC8qIEJsaXMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfQlJBSE1JICAgICAgICAgICAgICAgICAgICAgICAgPSA2NSwgLyogQnJh
aCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DSEFNICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDY2LCAvKiBDaGFtICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0NJUlRIICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNjcsIC8qIENpcnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfT0xEX0NIVVJDSF9TTEFWT05JQ19DWVJJTExJQyAgPSA2OCwgLyogQ3lycyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ERU1PVElDX0VHWVBUSUFO
ICAgICAgICAgICAgICA9IDY5LCAvKiBFZ3lkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCiAgICAgICBVU0NSSVBUX0hJRVJBVElDX0VHWVBUSUFOICAgICAgICAgICAgID0gNzAsIC8q
IEVneWggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfRUdZ
UFRJQU5fSElFUk9HTFlQSFMgICAgICAgICAgPSA3MSwgLyogRWd5cCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9LSFVUU1VSSSAgICAgICAgICAgICAgICAg
ICAgICA9IDcyLCAvKiBHZW9rICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAg
ICBVU0NSSVBUX1NJTVBMSUZJRURfSEFOICAgICAgICAgICAgICAgID0gNzMsIC8qIEhhbnMgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVFJBRElUSU9OQUxf
SEFOICAgICAgICAgICAgICAgPSA3NCwgLyogSGFudCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuNiAqLwogICAgICAgVVNDUklQVF9QQUhBV0hfSE1PTkcgICAgICAgICAgICAgICAgICA9IDc1
LCAvKiBIbW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBU
X09MRF9IVU5HQVJJQU4gICAgICAgICAgICAgICAgID0gNzYsIC8qIEh1bmcgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfSEFSQVBQQU5fSU5EVVMgICAgICAg
ICAgICAgICAgPSA3NywgLyogSW5kcyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwog
ICAgICAgVVNDUklQVF9KQVZBTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDc4LCAvKiBKYXZh
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0tBWUFIX0xJ
ICAgICAgICAgICAgICAgICAgICAgID0gNzksIC8qIEthbGkgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU5fRlJBS1RVUiAgICAgICAgICAgICAgICAg
PSA4MCwgLyogTGF0ZiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVND
UklQVF9MQVRJTl9HQUVMSUMgICAgICAgICAgICAgICAgICA9IDgxLCAvKiBMYXRnICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xFUENIQSAgICAgICAgICAg
ICAgICAgICAgICAgID0gODIsIC8qIExlcGMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYg
Ki8KICAgICAgIFVTQ1JJUFRfTElORUFSX0EgICAgICAgICAgICAgICAgICAgICAgPSA4MywgLyog
TGluYSAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NQU5E
QUlDICAgICAgICAgICAgICAgICAgICAgICA9IDg0LCAvKiBNYW5kICovCiAgICAgICAvKiogQHN0
YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01BTkRBRUFOICAgICAgICAgICAgICAgICAg
ICAgID0gVVNDUklQVF9NQU5EQUlDLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9NQVlBTl9ISUVST0dMWVBIUyAgICAgICAgICAgICA9IDg1LCAvKiBNYXlhICov
CiAgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElDX0hJ
RVJPR0xZUEhTICAgICAgICAgID0gODYsIC8qIE1lcm8gKi8KICAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTUVST0lUSUMgICAgICAgICAgICAgICAgICAgICAgPSBV
U0NSSVBUX01FUk9JVElDX0hJRVJPR0xZUEhTLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAq
LwogICAgICAgVVNDUklQVF9OS08gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDg3LCAvKiBO
a29vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX09SS0hP
TiAgICAgICAgICAgICAgICAgICAgICAgID0gODgsIC8qIE9ya2ggKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX1BFUk1JQyAgICAgICAgICAgICAgICAg
ICAgPSA4OSwgLyogUGVybSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9QSEFHU19QQSAgICAgICAgICAgICAgICAgICAgICA9IDkwLCAvKiBQaGFnICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1BIT0VOSUNJQU4gICAg
ICAgICAgICAgICAgICAgID0gOTEsIC8qIFBobnggKi8KLSAgICAgIFVTQ1JJUFRfUEhPTkVUSUNf
UE9MTEFSRCAgICAgICAgICAgICAgPSA5MiwgLyogUGxyZCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDUyICovCisgICAgICBVU0NSSVBUX01JQU8gICAgICAgICAgICAgICAgICAgICAgICAgID0g
OTIsIC8qIFBscmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KKyAgICAgIFVTQ1JJ
UFRfUEhPTkVUSUNfUE9MTEFSRCAgICAgICAgICAgICAgPSBVU0NSSVBUX01JQU8sCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1JPTkdPUk9OR08gICAgICAgICAg
ICAgICAgICAgID0gOTMsIC8qIFJvcm8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfU0FSQVRJICAgICAgICAgICAgICAgICAgICAgICAgPSA5NCwgLyogU2Fy
YSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9FU1RSQU5H
RUxPX1NZUklBQyAgICAgICAgICAgICA9IDk1LCAvKiBTeXJlICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1dFU1RFUk5fU1lSSUFDICAgICAgICAgICAgICAg
ID0gOTYsIC8qIFN5cmogKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfRUFTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NywgLyogU3lybiAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9URU5HV0FSICAgICAgICAg
ICAgICAgICAgICAgICA9IDk4LCAvKiBUZW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCiAgICAgICBVU0NSSVBUX1ZBSSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gOTksIC8q
IFZhaWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVklT
SUJMRV9TUEVFQ0ggICAgICAgICAgICAgICAgPSAxMDAsLyogVmlzcCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DVU5FSUZPUk0gICAgICAgICAgICAgICAg
ICAgICA9IDEwMSwvKiBYc3V4ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAg
ICBVU0NSSVBUX1VOV1JJVFRFTl9MQU5HVUFHRVMgICAgICAgICAgID0gMTAyLC8qIFp4eHggKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVU5LTk9XTiAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMDMsLyogWnp6eiAqLyAvKiBVbmtub3duPSJDb2RlIGZvciB1
bmNvZGVkIHNjcmlwdCIsIGZvciB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzICovCiAKLSAgICAgIC8q
IE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgMy44ICovCisgICAg
ICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX0NBUklBTiAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTA0LC8qIENhcmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVT
Q1JJUFRfSkFQQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsLyogSnBhbiAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MQU5OQSAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEwNiwvKiBMYW5hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44
ICovCiAgICAgICBVU0NSSVBUX0xZQ0lBTiAgICAgICAgICAgICAgICAgICAgICAgID0gMTA3LC8q
IEx5Y2kgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTFlE
SUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDgsLyogTHlkaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9PTF9DSElLSSAgICAgICAgICAgICAgICAg
ICAgICA9IDEwOSwvKiBPbGNrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAg
ICBVU0NSSVBUX1JFSkFORyAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwLC8qIFJqbmcgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU0FVUkFTSFRSQSAg
ICAgICAgICAgICAgICAgICAgPSAxMTEsLyogU2F1ciAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuOCAqLwogICAgICAgVVNDUklQVF9TSUdOX1dSSVRJTkcgICAgICAgICAgICAgICAgICA9IDEx
MiwvKiBTZ253ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBU
X1NVTkRBTkVTRSAgICAgICAgICAgICAgICAgICAgID0gMTEzLC8qIFN1bmQgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTU9PTiAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMTQsLyogTW9vbiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwog
ICAgICAgVVNDUklQVF9NRUlURUlfTUFZRUsgICAgICAgICAgICAgICAgICA9IDExNSwvKiBNdGVp
ICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJ
Q1UgNC4wICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0lNUEVSSUFMX0FSQU1B
SUMgICAgICAgICAgICAgID0gMTE2LC8qIEFybWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
LjAgKi8KICAgICAgIFVTQ1JJUFRfQVZFU1RBTiAgICAgICAgICAgICAgICAgICAgICAgPSAxMTcs
LyogQXZzdCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9D
SEFLTUEgICAgICAgICAgICAgICAgICAgICAgICA9IDExOCwvKiBDYWttICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0tPUkVBTiAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTE5LC8qIEtvcmUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAg
ICAgIFVTQ1JJUFRfS0FJVEhJICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAsLyogS3RoaSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9NQU5JQ0hBRUFO
ICAgICAgICAgICAgICAgICAgICA9IDEyMSwvKiBNYW5pICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgNC4wICovCiAgICAgICBVU0NSSVBUX0lOU0NSSVBUSU9OQUxfUEFITEFWSSAgICAgICAgID0g
MTIyLC8qIFBobGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJ
UFRfUFNBTFRFUl9QQUhMQVZJICAgICAgICAgICAgICAgPSAxMjMsLyogUGhscCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9CT09LX1BBSExBVkkgICAgICAg
ICAgICAgICAgICA9IDEyNCwvKiBQaGx2ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICov
CiAgICAgICBVU0NSSVBUX0lOU0NSSVBUSU9OQUxfUEFSVEhJQU4gICAgICAgID0gMTI1LC8qIFBy
dGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfU0FNQVJJ
VEFOICAgICAgICAgICAgICAgICAgICAgPSAxMjYsLyogU2FtciAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9UQUlfVklFVCAgICAgICAgICAgICAgICAgICAg
ICA9IDEyNywvKiBUYXZ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBV
U0NSSVBUX01BVEhFTUFUSUNBTF9OT1RBVElPTiAgICAgICAgID0gMTI4LC8qIFptdGggKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfU1lNQk9MUyAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMjksLyogWnN5bSAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNv
ZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDQuNCAqLworICAgICAgLyogTmV3IHNjcmlw
dCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwog
ICAgICAgVVNDUklQVF9CQU1VTSAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMCwvKiBCYW11
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX0xJU1UgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTMxLC8qIExpc3UgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfTkFLSElfR0VCQSAgICAgICAgICAgICAgICAgICAg
PSAxMzIsLyogTmtnYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAgVVND
UklQVF9PTERfU09VVEhfQVJBQklBTiAgICAgICAgICAgICA9IDEzMywvKiBTYXJiICovCiAKLSAg
ICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgNC42ICov
CisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0JBU1NBX1ZBSCAgICAgICAgICAgICAg
ICAgICAgID0gMTM0LC8qIEJhc3MgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAg
ICAgIFVTQ1JJUFRfRFVQTE9ZQU5fU0hPUlRBTkQgICAgICAgICAgICAgPSAxMzUsLyogRHVwbCAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9FTEJBU0FOICAg
ICAgICAgICAgICAgICAgICAgICA9IDEzNiwvKiBFbGJhICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgNC42ICovCiAgICAgICBVU0NSSVBUX0dSQU5USEEgICAgICAgICAgICAgICAgICAgICAgID0g
MTM3LC8qIEdyYW4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJ
UFRfS1BFTExFICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzgsLyogS3BlbCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9MT01BICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEzOSwvKiBMb21hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICov
CiAgICAgICBVU0NSSVBUX01FTkRFICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQwLC8qIE1l
bmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUVST0lU
SUNfQ1VSU0lWRSAgICAgICAgICAgICAgPSAxNDEsLyogTWVyYyAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9PTERfTk9SVEhfQVJBQklBTiAgICAgICAgICAg
ICA9IDE0MiwvKiBOYXJiICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBV
U0NSSVBUX05BQkFUQUVBTiAgICAgICAgICAgICAgICAgICAgID0gMTQzLC8qIE5iYXQgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfUEFMTVlSRU5FICAgICAg
ICAgICAgICAgICAgICAgPSAxNDQsLyogUGFsbSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQu
NiAqLwogICAgICAgVVNDUklQVF9TSU5ESEkgICAgICAgICAgICAgICAgICAgICAgICA9IDE0NSwv
KiBTaW5kICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX1dB
UkFOR19DSVRJICAgICAgICAgICAgICAgICAgID0gMTQ2LC8qIFdhcmEgKi8KIAorICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9BRkFLQSAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDE0NywvKiBBZmFrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisg
ICAgICBVU0NSSVBUX0pVUkNIRU4gICAgICAgICAgICAgICAgICAgICAgID0gMTQ4LC8qIEp1cmMg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfTVJPICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxNDksLyogTXJvbyAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuOCAqLworICAgICAgVVNDUklQVF9OVVNIVSAgICAgICAgICAgICAgICAgICAgICAgICA9
IDE1MCwvKiBOc2h1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NS
SVBUX1NIQVJBREEgICAgICAgICAgICAgICAgICAgICAgID0gMTUxLC8qIFNocmQgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfU09SQV9TT01QRU5HICAgICAg
ICAgICAgICAgICAgPSAxNTIsLyogU29yYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAq
LworICAgICAgVVNDUklQVF9UQUtSSSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1MywvKiBU
YWtyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1RBTkdV
VCAgICAgICAgICAgICAgICAgICAgICAgID0gMTU0LC8qIFRhbmcgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfV09MRUFJICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxNTUsLyogV29sZSAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICAg
IFVTQ1JJUFRfQU5BVE9MSUFOX0hJRVJPR0xZUEhTICAgICAgICAgPSAxNTYsLyogSGx1dyAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBVU0NSSVBUX0tIT0pLSSAgICAgICAg
ICAgICAgICAgICAgICAgID0gMTU3LC8qIEtob2ogKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
OSAqLworICAgICAgVVNDUklQVF9USVJIVVRBICAgICAgICAgICAgICAgICAgICAgICA9IDE1OCwv
KiBUaXJoICovCisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgICAgVVNDUklQVF9D
QVVDQVNJQU5fQUxCQU5JQU4gICAgICAgICAgICA9IDE1OSwvKiBBZ2hiICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAgIFVTQ1JJUFRfTUFIQUpBTkkgICAgICAgICAgICAgICAg
ICAgICAgPSAxNjAsLyogTWFoaiAqLworCiAgICAgICAvKiBQcml2YXRlIHVzZSBjb2RlcyBmcm9t
IFFhYWEgLSBRYWJ4IGFyZSBub3Qgc3VwcG9ydGVkICovCi0gICAgICBVU0NSSVBUX0NPREVfTElN
SVQgICAgPSAxNDcKKworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLworICAgICAgVVNDUklQ
VF9DT0RFX0xJTUlUICAgID0gMTYxCiB9IFVTY3JpcHRDb2RlOwogCiAvKioKQEAgLTI3Nyw5ICs0
NjQsOSBAQCBVX1NUQUJMRSBVU2NyaXB0Q29kZSAgVV9FWFBPUlQyCiB1c2NyaXB0X2dldFNjcmlw
dChVQ2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJyKTsKIAogLyoqCi0gKiBJcyBjb2Rl
IHBvaW50IGMgdXNlZCBpbiBzY3JpcHQgc2M/Ci0gKiBUaGF0IGlzLCBkb2VzIGNvZGUgcG9pbnQg
YyBoYXZlIHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUgc2MsCi0gKiBvciBkbyBjb2RlIHBvaW50
IGMncyBTY3JpcHRfRXh0ZW5zaW9ucyBpbmNsdWRlIHNjcmlwdCBjb2RlIHNjPworICogRG8gdGhl
IFNjcmlwdF9FeHRlbnNpb25zIG9mIGNvZGUgcG9pbnQgYyBjb250YWluIHNjcmlwdCBzYz8KKyAq
IElmIGMgZG9lcyBub3QgaGF2ZSBleHBsaWNpdCBTY3JpcHRfRXh0ZW5zaW9ucywgdGhlbiB0aGlz
IHRlc3RzIHdoZXRoZXIKKyAqIGMgaGFzIHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUgc2MuCiAg
KgogICogU29tZSBjaGFyYWN0ZXJzIGFyZSBjb21tb25seSB1c2VkIGluIG11bHRpcGxlIHNjcmlw
dHMuCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5p
Y29kZS5vcmcvcmVwb3J0cy90cjI0Ly4KQEAgLTI4OCwxNSArNDc1LDIyIEBAIHVzY3JpcHRfZ2V0
U2NyaXB0KFVDaGFyMzIgY29kZXBvaW50LCBVRXJyb3JDb2RlICplcnIpOwogICogaW4gZnV0dXJl
IHZlcnNpb25zIG9mIHRoZSBVbmljb2RlIFN0YW5kYXJkLCBhbmQgdGh1cyBpbiBJQ1UuCiAgKiBA
cGFyYW0gYyBjb2RlIHBvaW50CiAgKiBAcGFyYW0gc2Mgc2NyaXB0IGNvZGUKLSAqIEByZXR1cm4g
VFJVRSBpZiBTY3JpcHQoYyk9PXNjIG9yIHNjIGlzIGluIFNjcmlwdF9FeHRlbnNpb25zKGMpCi0g
KiBAZHJhZnQgSUNVIDQuNgorICogQHJldHVybiBUUlVFIGlmIHNjIGlzIGluIFNjcmlwdF9FeHRl
bnNpb25zKGMpCisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZUIFVCb29sIFVfRVhQT1JU
MgorVV9TVEFCTEUgVUJvb2wgVV9FWFBPUlQyCiB1c2NyaXB0X2hhc1NjcmlwdChVQ2hhcjMyIGMs
IFVTY3JpcHRDb2RlIHNjKTsKIAogLyoqCiAgKiBXcml0ZXMgY29kZSBwb2ludCBjJ3MgU2NyaXB0
X0V4dGVuc2lvbnMgYXMgYSBsaXN0IG9mIFVTY3JpcHRDb2RlIHZhbHVlcwotICogdG8gdGhlIG91
dHB1dCBzY3JpcHRzIGFycmF5LgorICogdG8gdGhlIG91dHB1dCBzY3JpcHRzIGFycmF5IGFuZCBy
ZXR1cm5zIHRoZSBudW1iZXIgb2Ygc2NyaXB0IGNvZGVzLgorICogLSBJZiBjIGRvZXMgaGF2ZSBT
Y3JpcHRfRXh0ZW5zaW9ucywgdGhlbiB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlCisgKiAgIChu
b3JtYWxseSBDb21tb24gb3IgSW5oZXJpdGVkKSBpcyBub3QgaW5jbHVkZWQuCisgKiAtIElmIGMg
ZG9lcyBub3QgaGF2ZSBTY3JpcHRfRXh0ZW5zaW9ucywgdGhlbiB0aGUgb25lIFNjcmlwdCBjb2Rl
IGlzIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBhcnJheS4KKyAqIC0gSWYgYyBpcyBub3QgYSB2YWxp
ZCBjb2RlIHBvaW50LCB0aGVuIHRoZSBvbmUgVVNDUklQVF9VTktOT1dOIGNvZGUgaXMgd3JpdHRl
bi4KKyAqIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIDEsCisgKiB0aGVu
IHRoZSBvdXRwdXQgYXJyYXkgY29udGFpbnMgZXhhY3RseSBjJ3Mgc2luZ2xlIFNjcmlwdCBjb2Rl
LgorICogSWYgdGhlIHJldHVybiB2YWx1ZSBpcyBuPj0yLCB0aGVuIHRoZSBvdXRwdXQgYXJyYXkg
Y29udGFpbnMgYydzIG4gU2NyaXB0X0V4dGVuc2lvbnMgc2NyaXB0IGNvZGVzLgogICoKICAqIFNv
bWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRzLgogICog
Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3Jn
L3JlcG9ydHMvdHIyNC8uCkBAIC0zMTQsMTMgKzUwOCwxMjAgQEAgdXNjcmlwdF9oYXNTY3JpcHQo
VUNoYXIzMiBjLCBVU2NyaXB0Q29kZSBzYyk7CiAgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhl
IFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKICAqICAgICAg
ICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQg
b3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUg
VXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCi0gKiBAcmV0dXJuIG51bWJlciBvZiBzY3JpcHQgY29k
ZXMgaW4gYydzIFNjcmlwdF9FeHRlbnNpb25zLAorICogQHJldHVybiBudW1iZXIgb2Ygc2NyaXB0
IGNvZGVzIGluIGMncyBTY3JpcHRfRXh0ZW5zaW9ucywgb3IgMSBmb3IgdGhlIHNpbmdsZSBTY3Jp
cHQgdmFsdWUsCiAgKiAgICAgICAgIHdyaXR0ZW4gdG8gc2NyaXB0cyB1bmxlc3MgVV9CVUZGRVJf
T1ZFUkZMT1dfRVJST1IgaW5kaWNhdGVzIGluc3VmZmljaWVudCBjYXBhY2l0eQotICogQGRyYWZ0
IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQ5CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9S
VDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lv
bnMoVUNoYXIzMiBjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHRDb2RlICpz
Y3JpcHRzLCBpbnQzMl90IGNhcGFjaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKmVycm9yQ29kZSk7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorCisvKioKKyAq
IFNjcmlwdCB1c2FnZSBjb25zdGFudHMuCisgKiBTZWUgVUFYICMzMSBVbmljb2RlIElkZW50aWZp
ZXIgYW5kIFBhdHRlcm4gU3ludGF4LgorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRz
L3RyMzEvI1RhYmxlX0NhbmRpZGF0ZV9DaGFyYWN0ZXJzX2Zvcl9FeGNsdXNpb25fZnJvbV9JZGVu
dGlmaWVycworICoKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLwordHlwZWRlZiBlbnVtIFVTY3JpcHRV
c2FnZSB7CisgICAgLyoqIE5vdCBlbmNvZGVkIGluIFVuaWNvZGUuIEBkcmFmdCBJQ1UgNTEgKi8K
KyAgICBVU0NSSVBUX1VTQUdFX05PVF9FTkNPREVELAorICAgIC8qKiBVbmtub3duIHNjcmlwdCB1
c2FnZS4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfVU5LTk9XTiwKKyAgICAv
KiogQ2FuZGlkYXRlIGZvciBFeGNsdXNpb24gZnJvbSBJZGVudGlmaWVycy4gQGRyYWZ0IElDVSA1
MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfRVhDTFVERUQsCisgICAgLyoqIExpbWl0ZWQgVXNlIHNj
cmlwdC4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfTElNSVRFRF9VU0UsCisg
ICAgLyoqIEFzcGlyYXRpb25hbCBVc2Ugc2NyaXB0LiBAZHJhZnQgSUNVIDUxICovCisgICAgVVND
UklQVF9VU0FHRV9BU1BJUkFUSU9OQUwsCisgICAgLyoqIFJlY29tbWVuZGVkIHNjcmlwdC4gQGRy
YWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfUkVDT01NRU5ERUQKK30gVVNjcmlwdFVz
YWdlOworCisvKioKKyAqIFdyaXRlcyB0aGUgc2NyaXB0IHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5n
LgorICogVGhpcyBzdHJpbmcgbm9ybWFsbHkgY29uc2lzdHMgb2Ygb25lIGNvZGUgcG9pbnQgYnV0
IG1pZ2h0IGJlIGxvbmdlci4KKyAqIFRoZSBzdHJpbmcgaXMgZW1wdHkgaWYgdGhlIHNjcmlwdCBp
cyBub3QgZW5jb2RlZC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcGFy
YW0gZGVzdCBvdXRwdXQgc3RyaW5nIGFycmF5CisgKiBAcGFyYW0gY2FwYWNpdHkgbnVtYmVyIG9m
IFVDaGFycyBpbiB0aGUgZGVzdCBhcnJheQorICogQHBhcmFtIHBFcnJvckNvZGUgc3RhbmRhcmQg
SUNVIGluL291dCBlcnJvciBjb2RlLCBtdXN0IHBhc3MgVV9TVUNDRVNTKCkgb24gaW5wdXQKKyAq
IEByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGgsIGV2ZW4gaWYgVV9CVUZGRVJfT1ZFUkZMT1dfRVJS
T1IKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgordXNj
cmlwdF9nZXRTYW1wbGVTdHJpbmcoVVNjcmlwdENvZGUgc2NyaXB0LCBVQ2hhciAqZGVzdCwgaW50
MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiBVX1NIT1dfQ1BM
VVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorY2xhc3MgVW5pY29kZVN0cmluZzsKK1Vf
TkFNRVNQQUNFX0VORAorCisvKioKKyAqIFJldHVybnMgdGhlIHNjcmlwdCBzYW1wbGUgY2hhcmFj
dGVyIHN0cmluZy4KKyAqIFRoaXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9uZSBjb2Rl
IHBvaW50IGJ1dCBtaWdodCBiZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5IGlmIHRo
ZSBzY3JpcHQgaXMgbm90IGVuY29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29k
ZQorICogQHJldHVybiB0aGUgc2FtcGxlIGNoYXJhY3RlciBzdHJpbmcKKyAqIEBkcmFmdCBJQ1Ug
NTEKKyAqLworVV9DT01NT05fQVBJIGljdTo6VW5pY29kZVN0cmluZyBVX0VYUE9SVDIKK3VzY3Jp
cHRfZ2V0U2FtcGxlVW5pY29kZVN0cmluZyhVU2NyaXB0Q29kZSBzY3JpcHQpOworCisjZW5kaWYK
KworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHQgdXNhZ2UgYWNjb3JkaW5nIHRvIFVBWCAjMzEg
VW5pY29kZSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheC4KKyAqIFJldHVybnMgVVNDUklQ
VF9VU0FHRV9OT1RfRU5DT0RFRCBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkIGluIFVuaWNv
ZGUuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHJldHVybiBzY3JpcHQg
dXNhZ2UKKyAqIEBzZWUgVVNjcmlwdFVzYWdlCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJB
RlQgVVNjcmlwdFVzYWdlIFVfRVhQT1JUMgordXNjcmlwdF9nZXRVc2FnZShVU2NyaXB0Q29kZSBz
Y3JpcHQpOworCisvKioKKyAqIFJldHVybnMgVFJVRSBpZiB0aGUgc2NyaXB0IGlzIHdyaXR0ZW4g
cmlnaHQtdG8tbGVmdC4KKyAqIEZvciBleGFtcGxlLCBBcmFiIGFuZCBIZWJyLgorICoKKyAqIEBw
YXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc2NyaXB0IGlz
IHJpZ2h0LXRvLWxlZnQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVQm9vbCBVX0VY
UE9SVDIKK3VzY3JpcHRfaXNSaWdodFRvTGVmdChVU2NyaXB0Q29kZSBzY3JpcHQpOworCisvKioK
KyAqIFJldHVybnMgVFJVRSBpZiB0aGUgc2NyaXB0IGFsbG93cyBsaW5lIGJyZWFrcyBiZXR3ZWVu
IGxldHRlcnMgKGV4Y2x1ZGluZyBoeXBoZW5hdGlvbikuCisgKiBTdWNoIGEgc2NyaXB0IHR5cGlj
YWxseSByZXF1aXJlcyBkaWN0aW9uYXJ5LWJhc2VkIGxpbmUgYnJlYWtpbmcuCisgKiBGb3IgZXhh
bXBsZSwgSGFuaSBhbmQgVGhhaS4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisg
KiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGluZSBicmVha3MgYmV0d2VlbiBs
ZXR0ZXJzCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1
c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKy8qKgor
ICogUmV0dXJucyBUUlVFIGlmIGluIG1vZGVybiAob3IgbW9zdCByZWNlbnQpIHVzYWdlIG9mIHRo
ZSBzY3JpcHQgY2FzZSBkaXN0aW5jdGlvbnMgYXJlIGN1c3RvbWFyeS4KKyAqIEZvciBleGFtcGxl
LCBMYXRuIGFuZCBDeXJsLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEBy
ZXR1cm4gVFJVRSBpZiB0aGUgc2NyaXB0IGlzIGNhc2VkCisgKiBAZHJhZnQgSUNVIDUxCisgKi8K
K1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1c2NyaXB0X2lzQ2FzZWQoVVNjcmlwdENvZGUgc2Ny
aXB0KTsKKworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VzZXQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91c2V0LmgKaW5kZXggNzdhYjA2MzQyZjI2ZTljNzBl
MjczMDI0ZmE2ZWJlZjU2MmNkNTk4MS4uNDA1MTBjZDQxNjdjOGY3N2Q1MDY2MWRmZmY3ZmUwOWI5
ZWY4MDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vz
ZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXNldC5oCkBAIC0x
LDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQg
KEMpIDIwMDItMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHly
aWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCkBAIC04OSwxMyArODksNyBAQCBlbnVtIHsKICAgICAgKiBvZiBlYWNo
IGV4aXN0aW5nIGVsZW1lbnQgaW4gdGhlIHNldC4KICAgICAgKiBAc3RhYmxlIElDVSAzLjIKICAg
ICAgKi8KLSAgICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNCwKLSAgICAKLSAgICAvKioKLSAg
ICAgKiBFbm91Z2ggZm9yIGFueSBzaW5nbGUtY29kZSBwb2ludCBzZXQKLSAgICAgKiBAaW50ZXJu
YWwKLSAgICAgKi8KLSAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFDSVRZPTgK
KyAgICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNAogfTsKIAogLyoqCkBAIC0yMDcsNiArMjAx
LDE2IEBAIHR5cGVkZWYgZW51bSBVU2V0U3BhbkNvbmRpdGlvbiB7CiAgICAgVVNFVF9TUEFOX0NP
TkRJVElPTl9DT1VOVAogfSBVU2V0U3BhbkNvbmRpdGlvbjsKIAorZW51bSB7CisgICAgLyoqCisg
ICAgICogQ2FwYWNpdHkgb2YgVVNlcmlhbGl6ZWRTZXQ6OnN0YXRpY0FycmF5LgorICAgICAqIEVu
b3VnaCBmb3IgYW55IHNpbmdsZS1jb2RlIHBvaW50IHNldC4KKyAgICAgKiBBbHNvIHByb3ZpZGVz
IHBhZGRpbmcgZm9yIG5pY2Ugc2l6ZW9mKFVTZXJpYWxpemVkU2V0KS4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjQKKyAgICAgKi8KKyAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFD
SVRZPTgKK307CisKIC8qKgogICogQSBzZXJpYWxpemVkIGZvcm0gb2YgYSBVbmljb2RlIHNldC4g
IExpbWl0ZWQgbWFuaXB1bGF0aW9ucyBhcmUKICAqIHBvc3NpYmxlIGRpcmVjdGx5IG9uIGEgc2Vy
aWFsaXplZCBzZXQuICBTZWUgYmVsb3cuCkBAIC0yNDcsNyArMjUxLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgVVNlcmlhbGl6ZWRTZXQgewogICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KIFVfU1RBQkxFIFVT
ZXQqIFVfRVhQT1JUMgotdXNldF9vcGVuRW1wdHkoKTsKK3VzZXRfb3BlbkVtcHR5KHZvaWQpOwog
CiAvKioKICAqIENyZWF0ZXMgYSBVU2V0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSByYW5nZSBv
ZiBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNv
ZGUvdXN0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VzdHJpbmcu
aAppbmRleCAyZWUxNmU5OWNmM2MwMDdhYjc1ZWMxZjZiZDQxYzE1YWVhZDkyOTUyLi5kMmVhMzFj
Njc0N2Y4ZjFjMWViMDM3MGUyODQzYzNmNjQ0OThiMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXN0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTIsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTIwLDkgKzIwLDE0IEBACiAjaW5jbHVkZSAi
dW5pY29kZS9wdXRpbC5oIgogI2luY2x1ZGUgInVuaWNvZGUvdWl0ZXIuaCIKIAotLyoqIFNpbXBs
ZSBkZWNsYXJhdGlvbiBmb3IgdV9zdHJUb1RpdGxlKCkgdG8gYXZvaWQgaW5jbHVkaW5nIHVuaWNv
ZGUvdWJyay5oLiBAc3RhYmxlIElDVSAyLjEqLworLyoqCisgKiBcZGVmIFVCUktfVFlQRURFRl9V
QlJFQUtfSVRFUkFUT1IKKyAqIEBpbnRlcm5hbCAKKyAqLworCiAjaWZuZGVmIFVCUktfVFlQRURF
Rl9VQlJFQUtfSVRFUkFUT1IKICMgICBkZWZpbmUgVUJSS19UWVBFREVGX1VCUkVBS19JVEVSQVRP
UgorLyoqIFNpbXBsZSBkZWNsYXJhdGlvbiBmb3IgdV9zdHJUb1RpdGxlKCkgdG8gYXZvaWQgaW5j
bHVkaW5nIHVuaWNvZGUvdWJyay5oLiBAc3RhYmxlIElDVSAyLjEqLwogICAgIHR5cGVkZWYgc3Ry
dWN0IFVCcmVha0l0ZXJhdG9yIFVCcmVha0l0ZXJhdG9yOwogI2VuZGlmCiAKQEAgLTE0Niw4ICsx
NTEsOCBAQCB1X3N0cmNhdChVQ2hhciAgICAgKmRzdCwKICAqIElmIDxjb2RlPm4mbHQ7PTA8L2Nv
ZGU+IHRoZW4gZHN0IGlzIG5vdCBtb2RpZmllZC4KICAqCiAgKiBAcGFyYW0gZHN0IFRoZSBkZXN0
aW5hdGlvbiBzdHJpbmcuCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nLgotICogQHBh
cmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYXBwZW5kLgorICogQHBh
cmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBuPD0wKS4K
KyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFwcGVuZDsg
bm8tb3AgaWYgPD0wLgogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZHN0PC9jb2RlPi4K
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC01NTAsOSArNTU1LDkgQEAgdV9zdHJDYXNlQ29t
cGFyZShjb25zdCBVQ2hhciAqczEsIGludDMyX3QgbGVuZ3RoMSwKICAqIENvbXBhcmUgdHdvIHVz
dHJpbmdzIGZvciBiaXR3aXNlIGVxdWFsaXR5LiAKICAqIENvbXBhcmVzIGF0IG1vc3QgPGNvZGU+
bjwvY29kZT4gY2hhcmFjdGVycy4KICAqCi0gKiBAcGFyYW0gdWNzMSBBIHN0cmluZyB0byBjb21w
YXJlLgotICogQHBhcmFtIHVjczIgQSBzdHJpbmcgdG8gY29tcGFyZS4KLSAqIEBwYXJhbSBuIFRo
ZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvbXBhcmUuCisgKiBAcGFyYW0gdWNz
MSBBIHN0cmluZyB0byBjb21wYXJlIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIG48PTApLgorICog
QHBhcmFtIHVjczIgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBu
PD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNv
bXBhcmU7IGFsd2F5cyByZXR1cm5zIDAgaWYgbjw9MC4KICAqIEByZXR1cm4gMCBpZiA8Y29kZT5z
MTwvY29kZT4gYW5kIDxjb2RlPnMyPC9jb2RlPiBhcmUgYml0d2lzZSBlcXVhbDsgYSBuZWdhdGl2
ZQogICogdmFsdWUgaWYgPGNvZGU+czE8L2NvZGU+IGlzIGJpdHdpc2UgbGVzcyB0aGFuIDxjb2Rl
PnMyPC9jb2RlPjsgYSBwb3NpdGl2ZQogICogdmFsdWUgaWYgPGNvZGU+czE8L2NvZGU+IGlzIGJp
dHdpc2UgZ3JlYXRlciB0aGFuIDxjb2RlPnMyPC9jb2RlPi4KQEAgLTY2Nyw4ICs2NzIsOCBAQCB1
X3N0cmNweShVQ2hhciAgICAgKmRzdCwKICAqIGlmIHRoZSBsZW5ndGggb2YgPGNvZGU+c3JjPC9j
b2RlPiBpcyBsZXNzIHRoYW4gPGNvZGU+bjwvY29kZT4uCiAgKgogICogQHBhcmFtIGRzdCBUaGUg
ZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZy4KLSAq
IEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvcHkuCisgKiBA
cGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIG48PTAp
LgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weTsg
bm8tb3AgaWYgPD0wLgogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZHN0PC9jb2RlPi4K
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC03NDIsOCArNzQ3LDggQEAgVV9TVEFCTEUgY2hh
ciogVV9FWFBPUlQyIHVfYXVzdHJuY3B5KGNoYXIgKmRzdCwKIC8qKgogICogU3lub255bSBmb3Ig
bWVtY3B5KCksIGJ1dCB3aXRoIFVDaGFycyBvbmx5LgogICogQHBhcmFtIGRlc3QgVGhlIGRlc3Rp
bmF0aW9uIHN0cmluZwotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZwotICogQHBhcmFt
IGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb3B5CisgKiBAcGFyYW0gc3JjIFRo
ZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIGNvdW50PD0wKQorICogQHBh
cmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb3B5OyBuby1vcCBpZiA8PTAK
ICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRlc3Q8L2NvZGU+CiAgKiBAc3RhYmxlIElD
VSAyLjAKICAqLwpAQCAtNzUzLDggKzc1OCw4IEBAIHVfbWVtY3B5KFVDaGFyICpkZXN0LCBjb25z
dCBVQ2hhciAqc3JjLCBpbnQzMl90IGNvdW50KTsKIC8qKgogICogU3lub255bSBmb3IgbWVtbW92
ZSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBwYXJhbSBkZXN0IFRoZSBkZXN0aW5hdGlv
biBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcKLSAqIEBwYXJhbSBjb3Vu
dCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gbW92ZQorICogQHBhcmFtIHNyYyBUaGUgc291
cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBjb3VudDw9MCkKKyAqIEBwYXJhbSBj
b3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gbW92ZTsgbm8tb3AgaWYgPD0wCiAgKiBA
cmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9jb2RlPgogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KQEAgLTkxOCw3ICs5MjMsNyBAQCB1X21lbXJjaHIzMihjb25zdCBVQ2hhciAqcywgVUNo
YXIzMiBjLCBpbnQzMl90IGNvdW50KTsKICAqICAgIH0KICAqIDwvcHJlPgogICogCi0gKiBOb3Rl
IHRoYXQgdGhlIG1hY3JvcyB3aWxsIE5PVCBjb25zaXN0ZW50bHkgd29yayBpZiB0aGVpciBhcmd1
bWVudCBpcyBhbm90aGVyICNkZWZpbmUuIAorICogTm90ZSB0aGF0IHRoZSBtYWNyb3Mgd2lsbCBO
T1QgY29uc2lzdGVudGx5IHdvcmsgaWYgdGhlaXIgYXJndW1lbnQgaXMgYW5vdGhlciA8Y29kZT4j
ZGVmaW5lPC9jb2RlPi4gCiAgKiAgVGhlIGZvbGxvd2luZyB3aWxsIG5vdCB3b3JrIG9uIGFsbCBw
bGF0Zm9ybXMsIGRvbid0IHVzZSBpdC4KICAqIAogICogPHByZT4KQEAgLTkzNCw3ICs5MzksNyBA
QCB1X21lbXJjaHIzMihjb25zdCBVQ2hhciAqcywgVUNoYXIzMiBjLCBpbnQzMl90IGNvdW50KTsK
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCiAjaWYgZGVmaW5lZChVX0RFQ0xBUkVfVVRGMTYpCi0j
ICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNo
YXIgdmFyWyhsZW5ndGgpKzFdPVVfREVDTEFSRV9VVEYxNihjcykKKyMgICBkZWZpbmUgVV9TVFJJ
TkdfREVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciAqdmFyPShjb25zdCBV
Q2hhciAqKVVfREVDTEFSRV9VVEYxNihjcykKICAgICAvKipAc3RhYmxlIElDVSAyLjAgKi8KICMg
ICBkZWZpbmUgVV9TVFJJTkdfSU5JVCh2YXIsIGNzLCBsZW5ndGgpCiAjZWxpZiBVX1NJWkVPRl9X
Q0hBUl9UPT1VX1NJWkVPRl9VQ0hBUiAmJiAoVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1J
TFkgfHwgKFVfU0laRU9GX1VDSEFSID09IDIgJiYgZGVmaW5lZChVX1dDSEFSX0lTX1VURjE2KSkp
CkBAIC05NDIsNyArOTQ3LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVDaGFyMzIg
YywgaW50MzJfdCBjb3VudCk7CiAgICAgLyoqQHN0YWJsZSBJQ1UgMi4wICovCiAjICAgZGVmaW5l
IFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3RoKQogI2VsaWYgVV9TSVpFT0ZfVUNIQVI9PTEg
JiYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKLSMgICBkZWZpbmUgVV9TVFJJTkdf
REVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0aCkrMV09
eyAoY29uc3QgVUNoYXIgKiljcyB9CisjICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywg
bGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgdmFyWyhsZW5ndGgpKzFdPWNzCiAgICAgLyoqQHN0
YWJsZSBJQ1UgMi4wICovCiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3Ro
KQogI2Vsc2UKQEAgLTExNTQsMTAgKzExNTksMTIgQEAgdV9zdHJUb1RpdGxlKFVDaGFyICpkZXN0
LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKICNlbmRpZgogCiAvKioKLSAqIENhc2UtZm9sZCB0aGUg
Y2hhcmFjdGVycyBpbiBhIHN0cmluZy4KKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4g
YSBzdHJpbmcuCisgKgogICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQg
bm90IGNvbnRleHQtc2Vuc2l0aXZlLAogICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hl
dGhlciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCi0gKiBhbmQg
ZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdJJyBpbiBDYXNlRm9sZGluZy50eHQuCisg
KiBhbmQgZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50
eHQuCisgKgogICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUg
b3JpZ2luYWwuCiAgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciBhcmUgYWxsb3dlZCB0byBvdmVybGFwLgogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91dGYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91dGYuaAppbmRleCBmNzk0Nzk5MzVkNGExZDZiMWJlZmNkNDA1Y2QwNGY1MjM4MWI5M2U3
Li5mNTk1NGZlOWZlNjk5ODkzYmQzMThlMjQ3NzI5MjZjMTc1YTIwYzc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ljdS91bmljb2RlL3V0Zi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDExLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yMiwx
NSArMjIsMjAgQEAKICAqIGEgc3Vycm9nYXRlIG9yIGEgbm9uLWNoYXJhY3RlciBldGMuCiAgKgog
ICogVGhlIFVDaGFyIGFuZCBVQ2hhcjMyIGRhdGEgdHlwZXMgZm9yIFVuaWNvZGUgY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMKLSAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lcy5oIGJlY2F1c2Ug
dGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCisgKiBhcmUgZGVmaW5lZCBpbiB1bWFjaGlu
ZS5oIGJlY2F1c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCiAgKgotICogdXRmLmgg
aXMgaW5jbHVkZWQgYnkgdXR5cGVzLmggYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4LmggYW5kIHV0
ZjE2LmggYWZ0ZXIgc29tZQotICogY29tbW9uIGRlZmluaXRpb25zLiBUaG9zZSBmaWxlcyBkZWZp
bmUgbWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCisgKiBJZiBVX05P
X0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyBpcyAwIHRoZW4gdXRmLmggaXMgaW5jbHVkZWQg
YnkgdXR5cGVzLmgKKyAqIGFuZCBpdHNlbGYgaW5jbHVkZXMgdXRmOC5oIGFuZCB1dGYxNi5oIGFm
dGVyIHNvbWUKKyAqIGNvbW1vbiBkZWZpbml0aW9ucy4KKyAqIElmIFVfTk9fREVGQVVMVF9JTkNM
VURFX1VURl9IRUFERVJTIGlzIDEgdGhlbiBlYWNoIG9mIHRoZXNlIGhlYWRlcnMgbXVzdCBiZQor
ICogaW5jbHVkZWQgZXhwbGljaXRseSBpZiB0aGVpciBkZWZpbml0aW9ucyBhcmUgdXNlZC4KKyAq
CisgKiB1dGY4LmggYW5kIHV0ZjE2LmggZGVmaW5lIG1hY3JvcyBmb3IgZWZmaWNpZW50bHkgZ2V0
dGluZyBjb2RlIHBvaW50cwogICogaW4gYW5kIG91dCBvZiBVVEYtOC8xNiBzdHJpbmdzLgogICog
dXRmMTYuaCBtYWNyb3MgaGF2ZSAiVTE2XyIgcHJlZml4ZXMuCiAgKiB1dGY4LmggZGVmaW5lcyBz
aW1pbGFyIG1hY3JvcyB3aXRoICJVOF8iIHByZWZpeGVzIGZvciBVVEYtOCBzdHJpbmcgaGFuZGxp
bmcuCiAgKgotICogSUNVIHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdzLgorICogSUNV
IG1vc3RseSBwcm9jZXNzZXMgMTYtYml0IFVuaWNvZGUgc3RyaW5ncy4KICAqIE1vc3Qgb2YgdGhl
IHRpbWUsIHN1Y2ggc3RyaW5ncyBhcmUgd2VsbC1mb3JtZWQgVVRGLTE2LgogICogU2luZ2xlLCB1
bnBhaXJlZCBzdXJyb2dhdGVzIG11c3QgYmUgaGFuZGxlZCBhcyB3ZWxsLCBhbmQgYXJlIHRyZWF0
ZWQgaW4gSUNVCiAgKiBsaWtlIHJlZ3VsYXIgY29kZSBwb2ludHMgd2hlcmUgcG9zc2libGUuCkBA
IC00MiwxNSArNDcsMTYgQEAKICAqIElDVSBmdW5jdGlvbnMgaGFuZGxlIHN1cHBsZW1lbnRhcnkg
Y29kZSBwb2ludHMgKFUrMTAwMDAuLlUrMTBmZmZmKQogICogYnV0IGFyZSBvcHRpbWl6ZWQgZm9y
IHRoZSBtdWNoIG1vcmUgZnJlcXVlbnRseSBvY2N1cnJpbmcgQk1QIGNvZGUgcG9pbnRzLgogICoK
LSAqIHV0Zi5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIu
IElmIHRoaXMgbWF0Y2hlcyB3Y2hhcl90LCB0aGVuCi0gKiBVQ2hhciBpcyBkZWZpbmVkIHRvIGJl
IGV4YWN0bHkgd2NoYXJfdCwgb3RoZXJ3aXNlIHVpbnQxNl90LgorICogdW1hY2hpbmUuaCBkZWZp
bmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgorICogV2hlcmUgYXZh
aWxhYmxlLCBVQ2hhciBpcyBkZWZpbmVkIHRvIGJlIGEgY2hhcjE2X3QKKyAqIG9yIGEgd2NoYXJf
dCAoaWYgdGhhdCBpcyBhbiB1bnNpZ25lZCAxNi1iaXQgdHlwZSksIG90aGVyd2lzZSB1aW50MTZf
dC4KICAqCiAgKiBVQ2hhcjMyIGlzIGRlZmluZWQgdG8gYmUgYSBzaWduZWQgMzItYml0IGludGVn
ZXIgKGludDMyX3QpLCBsYXJnZSBlbm91Z2ggZm9yIGEgMjEtYml0CiAgKiBVbmljb2RlIGNvZGUg
cG9pbnQgKFVuaWNvZGUgc2NhbGFyIHZhbHVlLCAwLi4weDEwZmZmZikuCiAgKiBCZWZvcmUgSUNV
IDIuNCwgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIzMiB3YXMgc2ltaWxhcmx5IHBsYXRmb3JtLWRl
cGVuZGVudCBhcwogICogdGhlIGRlZmluaXRpb24gb2YgVUNoYXIuIEZvciBkZXRhaWxzIHNlZSB0
aGUgZG9jdW1lbnRhdGlvbiBmb3IgVUNoYXIzMiBpdHNlbGYuCiAgKgotICogdXRmLmggYWxzbyBk
ZWZpbmVzIGEgc21hbGwgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBzaW5nbGUgVW5pY29kZSBjb2Rl
IHBvaW50cy4KKyAqIHV0Zi5oIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNyb3MgZm9y
IHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgogICogVGhlc2UgYXJlIHNpbXBsZSBjaGVja3Mg
Zm9yIHN1cnJvZ2F0ZXMgYW5kIG5vbi1jaGFyYWN0ZXJzLgogICogRm9yIGFjdHVhbCBVbmljb2Rl
IGNoYXJhY3RlciBwcm9wZXJ0aWVzIHNlZSB1Y2hhci5oLgogICoKQEAgLTU5LDkgKzY1LDYgQEAK
ICAqIFRoZSBtYWNyb3Mgd2lsbCBkZXRlY3QgaWYgYSBzdXJyb2dhdGUgY29kZSB1bml0IGlzIHVu
cGFpcmVkCiAgKiAobGVhZCB1bml0IHdpdGhvdXQgdHJhaWwgdW5pdCBvciB2aWNlIHZlcnNhKSBh
bmQganVzdCByZXR1cm4gdGhlIHVuaXQgaXRzZWxmCiAgKiBhcyB0aGUgY29kZSBwb2ludC4KLSAq
IChJdCBpcyBhbiBhY2NpZGVudGFsIHByb3BlcnR5IG9mIFVuaWNvZGUgYW5kIFVURi0xNiB0aGF0
IGFsbAotICogbWFsZm9ybWVkIHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIHVuYW1iaWd1b3Vz
bHkgd2l0aCBhIGRpc3RpbmN0IHN1YnJhbmdlCi0gKiBvZiBVbmljb2RlIGNvZGUgcG9pbnRzLikK
ICAqCiAgKiBUaGUgcmVndWxhciAic2FmZSIgbWFjcm9zIHJlcXVpcmUgdGhhdCB0aGUgaW5pdGlh
bCwgcGFzc2VkLWluIHN0cmluZyBpbmRleAogICogaXMgd2l0aGluIGJvdW5kcy4gVGhleSBvbmx5
IGNoZWNrIHRoZSBpbmRleCB3aGVuIHRoZXkgcmVhZCBtb3JlIHRoYW4gb25lCkBAIC05NSw3ICs5
OCw3IEBACiAgKiBjb2RlIHBvaW50IHZhbHVlcyAoMC4uVSsxMGZmZmYpLiBUaGV5IGFyZSBpbmRp
Y2F0ZWQgd2l0aCBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4KICAqCiAgKiBGb3IgbW9yZSBpbmZv
cm1hdGlvbiBzZWUgdGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICogKGh0dHA6
Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0cDovL3Vz
ZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdlOjwvZW0+
CiAgKiBJQ1UgY29kaW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91bGQgYmUg
Zm9sbG93ZWQgd2hlbiB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0xMDgsMzIgKzExMSwxMiBAQAog
I2lmbmRlZiBfX1VURl9IX18KICNkZWZpbmUgX19VVEZfSF9fCiAKLSNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hpbmUuaCIKIC8qIGluY2x1ZGUgdGhl
IHV0ZlhYLmggYWZ0ZXIgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyAqLwogCiAvKiBzaW5nbGUt
Y29kZSBwb2ludCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqLwogCiAvKioKLSAqIFRoaXMgdmFsdWUgaXMgaW50ZW5kZWQgZm9yIHNlbnRp
bmVsIHZhbHVlcyBmb3IgQVBJcyB0aGF0Ci0gKiAodGFrZSBvcikgcmV0dXJuIHNpbmdsZSBjb2Rl
IHBvaW50cyAoVUNoYXIzMikuCi0gKiBJdCBpcyBvdXRzaWRlIG9mIHRoZSBVbmljb2RlIGNvZGUg
cG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCi0gKiAKLSAqIEZvciBleGFtcGxlLCBhICJkb25lIiBv
ciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQotICogY291bGQgYmUgaW5kaWNhdGVkIHdpdGgg
VV9TRU5USU5FTC4KLSAqCi0gKiBJQ1UgQVBJcyBkZXNpZ25lZCBiZWZvcmUgSUNVIDIuNCB1c3Vh
bGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgotICogdmFsdWVzLCBtb3N0bHkgMHhm
ZmZmLgotICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tCi0gKiBhY3R1
YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5jdGlvbnMgbGlrZQotICogQ2hh
cmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3RyaW5nOjpsZW5ndGgoKS4KLSAq
Ci0gKiBAcmV0dXJuIC0xCi0gKiBAc2VlIFVDaGFyMzIKLSAqIEBzdGFibGUgSUNVIDIuNAotICov
Ci0jZGVmaW5lIFVfU0VOVElORUwgKC0xKQotCi0vKioKICAqIElzIHRoaXMgY29kZSBwb2ludCBh
IFVuaWNvZGUgbm9uY2hhcmFjdGVyPwogICogQHBhcmFtIGMgMzItYml0IGNvZGUgcG9pbnQKICAq
IEByZXR1cm4gVFJVRSBvciBGQUxTRQpAQCAtMjI3LDEwICsyMTAsMTQgQEAKIAogLyogaW5jbHVk
ZSB0aGUgdXRmWFguaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KIAorI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUwor
CiAjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCiAjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgog
CiAvKiB1dGZfb2xkLmggY29udGFpbnMgZGVwcmVjYXRlZCwgcHJlLUlDVSAyLjQgZGVmaW5pdGlv
bnMgKi8KICNpbmNsdWRlICJ1bmljb2RlL3V0Zl9vbGQuaCIKIAotI2VuZGlmCisjZW5kaWYgIC8q
ICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAqLworCisjZW5kaWYgIC8qIF9fVVRG
X0hfXyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V0
ZjE2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmMTYuaAppbmRleCA1
MDc5YzExNDZiM2QzNDcyMzBjZDY5OGEwZTEzOTY4OTdlNDg0NWFkLi5iZGQ4OGE4YjljNGYwMGVh
MGRmMjcyYWMwMmY2OTY3ZWY2MTA4OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaWN1L3VuaWNvZGUvdXRmMTYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3Vu
aWNvZGUvdXRmMTYuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksMTEgKzE5LDkgQEAKICAq
IFxicmllZiBDIEFQSTogMTYtYml0IFVuaWNvZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAKICAqIFRo
aXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggMTYtYml0IFVuaWNvZGUgKFVURi0x
NikgY29kZSB1bml0cyBhbmQgc3RyaW5ncy4KLSAqIHV0ZjE2LmggaXMgaW5jbHVkZWQgYnkgdXRm
LmggYWZ0ZXIgdW5pY29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlv
bnMuCiAgKgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUgSUNVIFVz
ZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2Vy
Z3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9y
Zy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVs
aW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRo
ZXNlIG1hY3Jvcy4KQEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19VVEYxNl9IX18KICNkZWZp
bmUgX19VVEYxNl9IX18KIAotLyogdXRmLmggbXVzdCBiZSBpbmNsdWRlZCBmaXJzdC4gKi8KKyNp
bmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjaWZuZGVmIF9fVVRGX0hfXwogIyAgIGluY2x1
ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAgLTE4Miw2ICsxODAsOSBAQAogICogVGhlIG9m
ZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIG9yIHRyYWlsIHN1cnJvZ2F0ZSB1bml0
CiAgKiBmb3IgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1h
Y3JvIHdpbGwgcmVhZAogICogdGhlIGFkamFjZW50IG1hdGNoaW5nIHN1cnJvZ2F0ZSBhcyB3ZWxs
LgorICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVk
IHN0cmluZy4KKyAqCiAgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHNpbmdsZSwgdW5wYWly
ZWQgc3Vycm9nYXRlLCB0aGVuIHRoYXQgaXRzZWxmCiAgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRo
ZSBjb2RlIHBvaW50LgogICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZp
Y2llbnQgd2l0aCBVMTZfTkVYVF9VTlNBRkUgb3IgVTE2X05FWFQuCkBAIC0xOTksNyArMjAwLDcg
QEAKICAgICBpZihVMTZfSVNfU1VSUk9HQVRFKGMpKSB7IFwKICAgICAgICAgdWludDE2X3QgX19j
MjsgXAogICAgICAgICBpZihVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAotICAgICAgICAg
ICAgaWYoKGkpKzE8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsg
XAorICAgICAgICAgICAgaWYoKGkpKzEhPShsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShz
KVsoaSkrMV0pKSB7IFwKICAgICAgICAgICAgICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZ
KChjKSwgX19jMik7IFwKICAgICAgICAgICAgIH0gXAogICAgICAgICB9IGVsc2UgeyBcCkBAIC0y
NDQsNiArMjQ1LDggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4p
CiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQgY2hlY2tz
IGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2
ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogVGhlIG9mZnNldCBtYXkgcG9p
bnQgdG8gdGhlIGxlYWQgc3Vycm9nYXRlIHVuaXQKICAqIGZvciBhIHN1cHBsZW1lbnRhcnkgY29k
ZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkCiAgKiB0aGUgZm9sbG93
aW5nIHRyYWlsIHN1cnJvZ2F0ZSBhcyB3ZWxsLgpAQCAtMjYyLDcgKzI2NSw3IEBACiAgICAgKGMp
PShzKVsoaSkrK107IFwKICAgICBpZihVMTZfSVNfTEVBRChjKSkgeyBcCiAgICAgICAgIHVpbnQx
Nl90IF9fYzI7IFwKLSAgICAgICAgaWYoKGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2My
PShzKVsoaSldKSkgeyBcCisgICAgICAgIGlmKChpKSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlM
KF9fYzI9KHMpWyhpKV0pKSB7IFwKICAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgICAgICAo
Yyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZKChjKSwgX19jMik7IFwKICAgICAgICAgfSBcCkBAIC0z
NDAsNiArMzQzLDggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNh
ZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3Ry
aW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEg
TlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3Ry
aW5nCiAgKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCiAgKiBAcGFy
YW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKQEAgLTM0Nyw3ICszNTIsNyBAQAogICogQHN0YWJsZSBJ
Q1UgMi40CiAgKi8KICNkZWZpbmUgVTE2X0ZXRF8xKHMsIGksIGxlbmd0aCkgeyBcCi0gICAgaWYo
VTE2X0lTX0xFQUQoKHMpWyhpKSsrXSkgJiYgKGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgo
cylbaV0pKSB7IFwKKyAgICBpZihVMTZfSVNfTEVBRCgocylbKGkpKytdKSAmJiAoaSkhPShsZW5n
dGgpICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKICAgICAgICAgKysoaSk7IFwKICAgICB9
IFwKIH0KQEAgLTM3OCwxNiArMzgzLDE4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0
aW9uLikKICAqICJTYWZlIiBtYWNybywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBj
aGVja3MgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5l
Z2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25z
dCBVQ2hhciAqIHN0cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxl
bmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90
IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJf
dCBzdHJpbmcgbGVuZ3RoCiAgKiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tp
cAogICogQHNlZSBVMTZfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2Rl
ZmluZSBVMTZfRldEX04ocywgaSwgbGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7
IFwKLSAgICB3aGlsZShfX04+MCAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4w
ICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAg
ICAgICBVMTZfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAgICAgICAtLV9fTjsgXAogICAgIH0g
XApAQCAtNTk4LDE1ICs2MDUsMTcgQEAKICAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBz
YW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFp
cmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICog
VGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgor
ICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgc3Rh
cnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNl
dCwgc3RhcnQ8PWk8PWxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBA
cGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisg
KiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBw
YXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFUxNl9TRVRfQ1BfTElN
SVRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVMTZfU0VUX0NQX0xJ
TUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYmIChpKTwo
bGVuZ3RoKSAmJiBVMTZfSVNfTEVBRCgocylbKGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ld
KSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8fCAobGVuZ3RoKTww
KSAmJiBVMTZfSVNfTEVBRCgocylbKGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBc
CiAgICAgICAgICsrKGkpOyBcCiAgICAgfSBcCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmOC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91
bmljb2RlL3V0ZjguaAppbmRleCA2NDA1Nzk1YTVhMWM1MzY5ODg0NmQxMTAxNTY5OWI2MWMzMTAy
MjI0Li4yMWU1ZjNkMDQ3OTA1MzE1NWYyOTRjNDI4ODRmNDI3NGRhNTQ0ZWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmOC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dGY4LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA5LCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTMs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAg
LTE5LDExICsxOSw5IEBACiAgKiBcYnJpZWYgQyBBUEk6IDgtYml0IFVuaWNvZGUgaGFuZGxpbmcg
bWFjcm9zCiAgKiAKICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggOC1i
aXQgVW5pY29kZSAoVVRGLTgpIGNvZGUgdW5pdHMgKGJ5dGVzKSBhbmQgc3RyaW5ncy4KLSAqIHV0
ZjguaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmgKLSAqIGFu
ZCBzb21lIGNvbW1vbiBkZWZpbml0aW9ucy4KICAqCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBz
ZWUgdXRmLmggYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBTdHJpbmdzIGNoYXB0ZXIKLSAqIChodHRw
Oi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9zdHJpbmdzLmh0bWwpLgorICogKGh0dHA6Ly91
c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL3N0cmluZ3MpLgogICoKICAqIDxlbT5Vc2FnZTo8L2Vt
PgogICogSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJl
IGZvbGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgpAQCAtMzQsNyArMzIsNyBAQAogI2lm
bmRlZiBfX1VURjhfSF9fCiAjZGVmaW5lIF9fVVRGOF9IX18KIAotLyogdXRmLmggbXVzdCBiZSBp
bmNsdWRlZCBmaXJzdC4gKi8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjaWZuZGVm
IF9fVVRGX0hfXwogIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAgLTYyLDEz
ICs2MCw0MSBAQCBVX0NGVU5DIFVfSU1QT1JUIGNvbnN0IHVpbnQ4X3QgLyogVV9JTVBPUlQyPyAq
LyAvKlVfSU1QT1JUKi8KIHV0ZjhfY291bnRUcmFpbEJ5dGVzWzI1Nl07CiAKIC8qKgotICogQ291
bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIENvdW50cyB0aGUg
dHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlLgorICogUmV0dXJucyAwIGZvciAwLi4w
eGJmIGFzIHdlbGwgYXMgZm9yIDB4ZmUgYW5kIDB4ZmYuCiAgKgogICogVGhpcyBpcyBpbnRlcm5h
bCBzaW5jZSBpdCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IGV4dGVybmFs
IGNsaWVudHM7CiAgKiBob3dldmVyIGl0IGlzIGNhbGxlZCBieSBwdWJsaWMgbWFjcm9zIGluIHRo
aXMgZmlsZSBhbmQgdGh1cyBtdXN0IHJlbWFpbiBzdGFibGUuCisgKgorICogTm90ZTogQmVnaW5u
aW5nIHdpdGggSUNVIDUwLCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhIG11bHRpLWNvbmRpdGlv
biBleHByZXNzaW9uCisgKiB3aGljaCB3YXMgc2hvd24gaW4gMjAxMiAob24geDg2LTY0KSB0byBj
b21waWxlIHRvIGZhc3QsIGJyYW5jaC1mcmVlIGNvZGUuCisgKiBsZWFkQnl0ZSBpcyBldmFsdWF0
ZWQgbXVsdGlwbGUgdGltZXMuCisgKgorICogVGhlIHByZS1JQ1UgNTAgaW1wbGVtZW50YXRpb24g
dXNlZCB0aGUgZXhwb3J0ZWQgYXJyYXkgdXRmOF9jb3VudFRyYWlsQnl0ZXM6CisgKiAjZGVmaW5l
IFU4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbbGVh
ZEJ5dGVdKQorICogbGVhZEJ5dGUgd2FzIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCisgKgorICog
QHBhcmFtIGxlYWRCeXRlIFRoZSBmaXJzdCBieXRlIG9mIGEgVVRGLTggc2VxdWVuY2UuIE11c3Qg
YmUgMC4uMHhmZi4KICAqIEBpbnRlcm5hbAogICovCi0jZGVmaW5lIFU4X0NPVU5UX1RSQUlMX0JZ
VEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQor
I2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgXAorICAgICgobGVhZEJ5dGUp
PDB4ZjAgPyBcCisgICAgICAgICgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkg
OiBcCisgICAgICAgIChsZWFkQnl0ZSk8MHhmZSA/IDMrKChsZWFkQnl0ZSk+PTB4ZjgpKygobGVh
ZEJ5dGUpPj0weGZjKSA6IDApCisKKy8qKgorICogQ291bnRzIHRoZSB0cmFpbCBieXRlcyBmb3Ig
YSBVVEYtOCBsZWFkIGJ5dGUgb2YgYSB2YWxpZCBVVEYtOCBzZXF1ZW5jZS4KKyAqIFRoZSBtYXhp
bXVtIHN1cHBvcnRlZCBsZWFkIGJ5dGUgaXMgMHhmNCBjb3JyZXNwb25kaW5nIHRvIFUrMTBGRkZG
LgorICogbGVhZEJ5dGUgbWlnaHQgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgorICoKKyAq
IFRoaXMgaXMgaW50ZXJuYWwgc2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJl
Y3RseSBieSBleHRlcm5hbCBjbGllbnRzOworICogaG93ZXZlciBpdCBpcyBjYWxsZWQgYnkgcHVi
bGljIG1hY3JvcyBpbiB0aGlzIGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxlLgorICoK
KyAqIEBwYXJhbSBsZWFkQnl0ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBN
dXN0IGJlIDAuLjB4ZmYuCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVOF9DT1VOVF9UUkFJ
TF9CWVRFU19VTlNBRkUobGVhZEJ5dGUpIFwKKyAgICAoKChsZWFkQnl0ZSk+PTB4YzApKygobGVh
ZEJ5dGUpPj0weGUwKSsoKGxlYWRCeXRlKT49MHhmMCkpCiAKIC8qKgogICogTWFzayBhIFVURi04
IGxlYWQgYnl0ZSwgbGVhdmUgb25seSB0aGUgbG93ZXIgYml0cyB0aGF0IGZvcm0gcGFydCBvZiB0
aGUgY29kZSBwb2ludCB2YWx1ZS4KQEAgLTIwNiwyNCArMjMyLDYwIEBAIHV0ZjhfYmFjazFTYWZl
Qm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogVGhl
IG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0
cmFpbCBieXRlcwogICogZm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8g
d2lsbCByZWFkIGFsbCBvZiB0aGUgYnl0ZXMKICAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisg
KiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcu
CisgKgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNl
cXVlbmNlLCB0aGVuCiAgKiBjIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICogSXRlcmF0
aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhUX1VOU0FG
RSBvciBVOF9ORVhULgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAq
IEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0Ci0gKiBAcGFyYW0gaSBzdHJpbmcg
b2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcg
bGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0Cisg
KiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3Ro
CisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIGMgb3V0
cHV0IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0byA8MCBpbiBjYXNlIG9mIGFuIGVycm9yCiAgKiBA
c2VlIFU4X0dFVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0dF
VChzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSB7IFwKLSAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9
KGludDMyX3QpKGkpOyBcCisgICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAogICAgIFU4
X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgX3U4X2dldF9pbmRleCk7IFwKICAgICBVOF9ORVhUKHMs
IF91OF9nZXRfaW5kZXgsIGxlbmd0aCwgYyk7IFwKIH0KIAorI2lmbmRlZiBVX0hJREVfRFJBRlRf
QVBJCisvKioKKyAqIEdldCBhIGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIHJhbmRvbS1h
Y2Nlc3Mgb2Zmc2V0LAorICogd2l0aG91dCBjaGFuZ2luZyB0aGUgb2Zmc2V0LgorICogVGhlIG9m
ZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0cmFp
bCBieXRlcworICogZm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2ls
bCByZWFkIGFsbCBvZiB0aGUgYnl0ZXMKKyAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisgKiBU
aGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisg
KgorICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVl
bmNlLCB0aGVuCisgKiBjIGlzIHNldCB0byBVK0ZGRkQuCisgKiBJdGVyYXRpb24gdGhyb3VnaCBh
IHN0cmluZyBpcyBtb3JlIGVmZmljaWVudCB3aXRoIFU4X05FWFRfVU5TQUZFIG9yIFU4X05FWFRf
T1JfRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4g
YSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4g
aWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9HRVQoKSBpZiB0aGF0IGRpc3RpbmN0aW9u
IGlzIGltcG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCisg
KiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBAcGFyYW0g
aSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBAcGFy
YW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFy
MzIgdmFyaWFibGUsIHNldCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBV
OF9HRVQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9HRVRfT1JfRkZGRChzLCBz
dGFydCwgaSwgbGVuZ3RoLCBjKSB7IFwKKyAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9KGkpOyBc
CisgICAgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBfdThfZ2V0X2luZGV4KTsgXAorICAgIFU4
X05FWFRfT1JfRkZGRChzLCBfdThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBcCit9CisjZW5kaWYg
LyogVV9ISURFX0RSQUZUX0FQSSAqLworCiAvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndhcmQgaXRl
cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioK
QEAgLTI0NSwxOSArMzA3LDE2IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpz
LCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICovCiAjZGVmaW5lIFU4X05FWFRfVU5TQUZF
KHMsIGksIGMpIHsgXAogICAgIChjKT0odWludDhfdCkocylbKGkpKytdOyBcCi0gICAgaWYoKHVp
bnQ4X3QpKChjKS0weGMwKTwweDM1KSB7IFwKLSAgICAgICAgdWludDhfdCBfX2NvdW50PVU4X0NP
VU5UX1RSQUlMX0JZVEVTKGMpOyBcCi0gICAgICAgIFU4X01BU0tfTEVBRF9CWVRFKGMsIF9fY291
bnQpOyBcCi0gICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKLSAgICAgICAgLyogZWFjaCBmb2xs
b3dpbmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKLSAgICAgICAg
Y2FzZSAzOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwK
LSAgICAgICAgY2FzZSAyOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10m
MHgzZik7IFwKLSAgICAgICAgY2FzZSAxOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChz
KVsoaSkrK10mMHgzZik7IFwKLSAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8gb3B0aW1p
emUgc3dpdGNoKCkgKi8gXAotICAgICAgICAgICAgYnJlYWs7IFwKKyAgICBpZigoYyk+PTB4ODAp
IHsgXAorICAgICAgICBpZigoYyk8MHhlMCkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmMHgx
Zik8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIH0gZWxzZSBpZigoYyk8MHhmMCkg
eyBcCisgICAgICAgICAgICAvKiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhlIHVwcGVy
IGJpdHMgYXJlIHRydW5jYXRlZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hhcikgKi8g
XAorICAgICAgICAgICAgKGMpPShVQ2hhcikoKChjKTw8MTIpfCgoKHMpW2ldJjB4M2YpPDw2KXwo
KHMpWyhpKSsxXSYweDNmKSk7IFwKKyAgICAgICAgICAgIChpKSs9MjsgXAorICAgICAgICB9IGVs
c2UgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmNyk8PDE4KXwoKChzKVtpXSYweDNmKTw8MTIp
fCgoKHMpWyhpKSsxXSYweDNmKTw8Nil8KChzKVsoaSkrMl0mMHgzZik7IFwKKyAgICAgICAgICAg
IChpKSs9MzsgXAogICAgICAgICB9IFwKICAgICB9IFwKIH0KQEAgLTI2OCwxNCArMzI3LDE2IEBA
IHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQz
Ml90IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKICAqICJT
YWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBi
b3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10
ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVh
ZCBieXRlIG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZSwKICAqIGluIHdoaWNoIGNhc2UgdGhlIG1h
Y3JvIHdpbGwgcmVhZCB0aGUgd2hvbGUgc2VxdWVuY2UuCiAgKiBJZiB0aGUgb2Zmc2V0IHBvaW50
cyB0byBhIHRyYWlsIGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgogICog
YyBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50
OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3Ro
Ci0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3Ry
aW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0
cmluZyBsZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8g
PDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9ORVhUX1VOU0FGRQogICogQHN0YWJs
ZSBJQ1UgMi40CkBAIC0yODYsNyArMzQ3LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVp
bnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgIHVpbnQ4X3QgX190
MSwgX190MjsgXAogICAgICAgICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAq
LyBcCiAgICAgICAgICAgICAoMHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCi0gICAgICAgICAg
ICAoKChpKSsxKTwobGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkg
fHwgKGxlbmd0aCk8MCkgJiYgXAogICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0w
eDgwKSk8PTB4M2YgJiYgXAogICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0t
MHg4MCkpPD0gMHgzZiBcCiAgICAgICAgICkgeyBcCkBAIC0yOTUsMTkgKzM1Niw3MCBAQCB1dGY4
X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBp
KTsKICAgICAgICAgICAgIChpKSs9MjsgXAogICAgICAgICB9IGVsc2UgaWYoIC8qIGhhbmRsZSBV
KzAwODAuLlUrMDdGRiBpbmxpbmUgKi8gXAogICAgICAgICAgICAgKChjKTwweGUwICYmIChjKT49
MHhjMikgJiYgXAotICAgICAgICAgICAgKChpKTwobGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAg
KChpKSE9KGxlbmd0aCkpICYmIFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgocylbaV0t
MHg4MCkpPD0weDNmIFwKICAgICAgICAgKSB7IFwKLSAgICAgICAgICAgIChjKT0oVUNoYXIpKCgo
KGMpJjB4MWYpPDw2KXxfX3QxKTsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxf
X3QxOyBcCiAgICAgICAgICAgICArKyhpKTsgXAotICAgICAgICB9IGVsc2UgaWYoVThfSVNfTEVB
RChjKSkgeyBcCisgICAgICAgIH0gZWxzZSB7IFwKICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIGNh
bGwgZm9yICJjb21wbGljYXRlZCIgYW5kIGVycm9yIGNhc2VzICovIFwKLSAgICAgICAgICAgIChj
KT11dGY4X25leHRDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCAmKGkpLCAoaW50MzJf
dCkobGVuZ3RoKSwgYywgLTEpOyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVC
b2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0xKTsgXAorICAgICAg
ICB9IFwKKyAgICB9IFwKK30KKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAqIEdl
dCBhIGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIGNvZGUgcG9pbnQgYm91bmRhcnkgb2Zm
c2V0LAorICogYW5kIGFkdmFuY2UgdGhlIG9mZnNldCB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGJv
dW5kYXJ5LgorICogKFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKKyAqICJT
YWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBi
b3VuZGFyaWVzLgorICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10
ZXJtaW5hdGVkIHN0cmluZy4KKyAqCisgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVh
ZCBieXRlIG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZSwKKyAqIGluIHdoaWNoIGNhc2UgdGhlIG1h
Y3JvIHdpbGwgcmVhZCB0aGUgd2hvbGUgc2VxdWVuY2UuCisgKiBJZiB0aGUgb2Zmc2V0IHBvaW50
cyB0byBhIHRyYWlsIGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgorICog
YyBpcyBzZXQgdG8gVStGRkZELgorICoKKyAqIFRoaXMgbWFjcm8gZG9lcyBub3QgZGlzdGluZ3Vp
c2ggYmV0d2VlbiBhIHJlYWwgVStGRkZEIGluIHRoZSB0ZXh0CisgKiBhbmQgVStGRkZEIHJldHVy
bmVkIGZvciBhbiBpbGwtZm9ybWVkIHNlcXVlbmNlLgorICogVXNlIFU4X05FWFQoKSBpZiB0aGF0
IGRpc3RpbmN0aW9uIGlzIGltcG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90
ICogc3RyaW5nCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxs
ZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0g
YyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9mIGFuIGVy
cm9yCisgKiBAc2VlIFU4X05FWFQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9O
RVhUX09SX0ZGRkQocywgaSwgbGVuZ3RoLCBjKSB7IFwKKyAgICAoYyk9KHVpbnQ4X3QpKHMpWyhp
KSsrXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIHVpbnQ4X3QgX190MSwgX190
MjsgXAorICAgICAgICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAqLyBcCisg
ICAgICAgICAgICAoMHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCisgICAgICAgICAgICAoKChp
KSsxKTwobGVuZ3RoKSB8fCAobGVuZ3RoKTwwKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWlu
dDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiAmJiBcCisgICAgICAgICAgICAoX190Mj0odWludDhf
dCkoKHMpWyhpKSsxXS0weDgwKSk8PSAweDNmIFwKKyAgICAgICAgKSB7IFwKKyAgICAgICAgICAg
IC8qIG5vIG5lZWQgZm9yIChjJjB4ZikgYmVjYXVzZSB0aGUgdXBwZXIgYml0cyBhcmUgdHJ1bmNh
dGVkIGFmdGVyIDw8MTIgaW4gdGhlIGNhc3QgdG8gKFVDaGFyKSAqLyBcCisgICAgICAgICAgICAo
Yyk9KFVDaGFyKSgoKGMpPDwxMil8KF9fdDE8PDYpfF9fdDIpOyBcCisgICAgICAgICAgICAoaSkr
PTI7IFwKKyAgICAgICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYgaW5saW5l
ICovIFwKKyAgICAgICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKKyAgICAgICAg
ICAgICgoaSkhPShsZW5ndGgpKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMp
W2ldLTB4ODApKTw9MHgzZiBcCisgICAgICAgICkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykm
MHgxZik8PDYpfF9fdDE7IFwKKyAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgIH0gZWxzZSB7
IFwKLSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBcCisgICAgICAgICAgICAvKiBmdW5jdGlv
biBjYWxsIGZvciAiY29tcGxpY2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCisgICAgICAgICAg
ICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGxl
bmd0aCksIGMsIC0zKTsgXAogICAgICAgICB9IFwKICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJ
REVfRFJBRlRfQVBJICovCiAKIC8qKgogICogQXBwZW5kIGEgY29kZSBwb2ludCB0byBhIHN0cmlu
Zywgb3ZlcndyaXRpbmcgMSB0byA0IGJ5dGVzLgpAQCAtMzUxLDkgKzQ2Myw5IEBAIHV0ZjhfYmFj
azFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwog
ICogdGhlbiBpc0Vycm9yIGlzIHNldCB0byBUUlVFLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVp
bnQ4X3QgKiBzdHJpbmcgYnVmZmVyCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJl
IGk8Y2FwYWNpdHkKLSAqIEBwYXJhbSBjYXBhY2l0eSBzaXplIG9mIHRoZSBzdHJpbmcgYnVmZmVy
Ci0gKiBAcGFyYW0gYyBjb2RlIHBvaW50IHRvIGFwcGVuZAorICogQHBhcmFtIGkgaW50MzJfdCBz
dHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8Y2FwYWNpdHkKKyAqIEBwYXJhbSBjYXBhY2l0eSBpbnQz
Ml90IHNpemUgb2YgdGhlIHN0cmluZyBidWZmZXIKKyAqIEBwYXJhbSBjIFVDaGFyMzIgY29kZSBw
b2ludCB0byBhcHBlbmQKICAqIEBwYXJhbSBpc0Vycm9yIG91dHB1dCBVQm9vbCBzZXQgdG8gVFJV
RSBpZiBhbiBlcnJvciBvY2N1cnMsIG90aGVyd2lzZSBub3QgbW9kaWZpZWQKICAqIEBzZWUgVThf
QVBQRU5EX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC0zNjksNyArNDgxLDcgQEAgdXRm
OF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3Qg
aSk7CiAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3QpKCgoKGMpPj42KSYweDNmKXwweDgwKTsg
XAogICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpJjB4M2YpfDB4ODApOyBcCiAgICAg
fSBlbHNlIHsgXAotICAgICAgICAoaSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMy
X3QpKGkpLCAoaW50MzJfdCkoY2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAorICAgICAgICAo
aSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGkpLCAoY2FwYWNpdHkpLCBjLCAmKGlzRXJy
b3IpKTsgXAogICAgIH0gXAogfQogCkBAIC0zODQsNyArNDk2LDcgQEAgdXRmOF9iYWNrMVNhZmVC
b2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiBAc3Rh
YmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9GV0RfMV9VTlNBRkUocywgaSkgeyBcCi0gICAg
KGkpKz0xK1U4X0NPVU5UX1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKKyAgICAoaSkrPTErVThfQ09V
TlRfVFJBSUxfQllURVNfVU5TQUZFKCh1aW50OF90KShzKVtpXSk7IFwKIH0KIAogLyoqCkBAIC0z
OTIsOSArNTA0LDExIEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQz
Ml90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJhdGlvbi4p
CiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBz
dHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3Ig
YSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAq
IHN0cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICog
QHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBv
ZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcg
bGVuZ3RoCiAgKiBAc2VlIFU4X0ZXRF8xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8K
QEAgLTQwMiw3ICs1MTYsNyBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywg
aW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAgICB1aW50OF90IF9fYj0odWludDhfdCkocylb
KGkpKytdOyBcCiAgICAgaWYoVThfSVNfTEVBRChfX2IpKSB7IFwKICAgICAgICAgdWludDhfdCBf
X2NvdW50PVU4X0NPVU5UX1RSQUlMX0JZVEVTKF9fYik7IFwKLSAgICAgICAgaWYoKGkpK19fY291
bnQ+KGxlbmd0aCkpIHsgXAorICAgICAgICBpZigoaSkrX19jb3VudD4obGVuZ3RoKSAmJiAobGVu
Z3RoKT49MCkgeyBcCiAgICAgICAgICAgICBfX2NvdW50PSh1aW50OF90KSgobGVuZ3RoKS0oaSkp
OyBcCiAgICAgICAgIH0gXAogICAgICAgICB3aGlsZShfX2NvdW50PjAgJiYgVThfSVNfVFJBSUwo
KHMpW2ldKSkgeyBcCkBAIC00MzgsMTYgKzU1MiwxOCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3Jl
bWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwg
c2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBj
YW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJh
bSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11
c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFt
IGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVu
Z3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9p
bnRzIHRvIHNraXAKICAqIEBzZWUgVThfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQK
ICAqLwogI2RlZmluZSBVOF9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIHsgXAogICAgIGludDMyX3Qg
X19OPShuKTsgXAotICAgIHdoaWxlKF9fTj4wICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgd2hp
bGUoX19OPjAgJiYgKChpKTwobGVuZ3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkg
eyBcCiAgICAgICAgIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAgLS1fX047IFwK
ICAgICB9IFwKQEAgLTQ3OSwxNCArNTk1LDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1
aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBj
aGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAg
KgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0
YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZz
ZXQsIG11c3QgYmUgc3RhcnQ8PWkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0
cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNl
dCwgbXVzdCBiZSBzdGFydDw9aQogICogQHNlZSBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFCiAgKiBA
c3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIGkp
IHsgXAogICAgIGlmKFU4X0lTX1RSQUlMKChzKVsoaSldKSkgeyBcCi0gICAgICAgIChpKT11dGY4
X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAgICAgKGkpPXV0
ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQogCkBAIC01NDcs
OCArNjYzLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qg
c3RhcnQsIGludDMyX3QgaSk7CiAgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2Fs
IFVURi04IHNlcXVlbmNlLCB0aGVuIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUuCiAgKgog
ICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0
aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQs
IG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5n
IG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBt
dXN0IGJlIHN0YXJ0PGkKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQg
dG8gPDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9QUkVWX1VOU0FGRQogICogQHN0
YWJsZSBJQ1UgMi40CkBAIC01NTYsMTMgKzY3Miw0MiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICNkZWZpbmUgVThfUFJF
VihzLCBzdGFydCwgaSwgYykgeyBcCiAgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKICAg
ICBpZigoYyk+PTB4ODApIHsgXAotICAgICAgICBpZigoYyk8PTB4YmYpIHsgXAotICAgICAgICAg
ICAgKGMpPXV0ZjhfcHJldkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAm
KGkpLCBjLCAtMSk7IFwKLSAgICAgICAgfSBlbHNlIHsgXAotICAgICAgICAgICAgKGMpPVVfU0VO
VElORUw7IFwKLSAgICAgICAgfSBcCisgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHko
KGNvbnN0IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBcCisgICAgfSBcCit9CisK
KyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0
IGZyb20gb25lIGNvZGUgcG9pbnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZQorICogYW5k
IGdldCB0aGUgY29kZSBwb2ludCBiZXR3ZWVuIHRoZW0uCisgKiAoUHJlLWRlY3JlbWVudGluZyBi
YWNrd2FyZCBpdGVyYXRpb24uKQorICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwg
c2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCisgKgorICogVGhlIGlucHV0IG9m
ZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0cmluZyBsZW5ndGguCisgKiBJZiB0aGUgb2Zm
c2V0IGlzIGJlaGluZCBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsIHRoZW4gdGhlIG1hY3JvIHdpbGwg
cmVhZAorICogdGhlIHdob2xlIHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQg
YSBsZWFkIGJ5dGUsIHRoZW4gdGhhdCBpdHNlbGYKKyAqIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhl
IGNvZGUgcG9pbnQuCisgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2FsIFVURi04
IHNlcXVlbmNlLCB0aGVuIGMgaXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRv
ZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICog
YW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBV
OF9QUkVWKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFt
IHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRp
bmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcg
b2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlh
YmxlLCBzZXQgdG8gVStGRkZEIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfUFJFVgor
ICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFU4X1BSRVZfT1JfRkZGRChzLCBzdGFydCwg
aSwgYykgeyBcCisgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKKyAgICBpZigoYyk+PTB4
ODApIHsgXAorICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90
ICopcywgc3RhcnQsICYoaSksIGMsIC0zKTsgXAogICAgIH0gXAogfQorI2VuZGlmIC8qIFVfSElE
RV9EUkFGVF9BUEkgKi8KIAogLyoqCiAgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZyb20gb25l
IGNvZGUgcG9pbnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZS4KQEAgLTU4NiwxNCArNzMx
LDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0
LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVu
Y2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWlu
dDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVz
dWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQorICog
QHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQor
ICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKICAqIEBz
ZWUgVThfQkFDS18xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThf
QkFDS18xKHMsIHN0YXJ0LCBpKSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylbLS0oaSldKSkg
eyBcCi0gICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQzMl90KShp
KSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkpKTsgXAog
ICAgIH0gXAogfQogCkBAIC02MjYsOCArNzcxLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0
IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAiU2FmZSIgbWFjcm8s
IGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4K
ICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQg
aW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZz
ZXQsIG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3QgaW5kZXggb2YgdGhl
IHN0YXJ0IG9mIHRoZSBzdHJpbmcKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBzdGFydDxpCiAgKiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tp
cAogICogQHNlZSBVOF9CQUNLX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKQEAgLTY2Niwx
NSArODExLDE3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90
IHN0YXJ0LCBpbnQzMl90IGkpOwogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUg
YXMgdGhlIHN0cmluZyBsZW5ndGguCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdh
bCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3Ro
IGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBh
cmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0
cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3Qg
YmUgc3RhcnQ8PWk8PWxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBA
cGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisg
KiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8PWxlbmd0
aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBzZWUgVThfU0VU
X0NQX0xJTUlUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfU0VU
X0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYm
IChpKTwobGVuZ3RoKSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8
fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFU4X0JBQ0tfMShzLCBz
dGFydCwgaSk7IFwKICAgICAgICAgVThfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAgIH0gXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V0Zl9vbGQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dGZfb2xkLmgKaW5kZXggODUwNGEw
MzBkZGZjNGRiYWUzNjNlNWI1ZmE2YzVkMTU4YmI3Y2NlMy4uZjkxMjViMWRkMmVkN2UxYzY4NGRh
MTY1NGY1ZTQ3ZGQ3Y2Q1ZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lj
dS91bmljb2RlL3V0Zl9vbGQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNv
ZGUvdXRmX29sZC5oCkBAIC0xICsxLDExNjkgQEAKLS8qIFRoaXMgZmlsZSBpcyBpbnRlbnRpb25h
bGx5IGxlZnQgYmxhbmsuICovCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENv
cHlyaWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdXRmX29sZC5oCisqICAgZW5jb2Rp
bmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRh
dGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMnNlcDIxCisqICAgY3JlYXRlZCBieTogTWFy
a3VzIFcuIFNjaGVyZXIKKyovCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQyBBUEk6IERl
cHJlY2F0ZWQgbWFjcm9zIGZvciBVbmljb2RlIHN0cmluZyBoYW5kbGluZworICovCisKKy8qKgor
ICogCisgKiBUaGUgbWFjcm9zIGluIHV0Zl9vbGQuaCBhcmUgYWxsIGRlcHJlY2F0ZWQgYW5kIHRo
ZWlyIHVzZSBkaXNjb3VyYWdlZC4KKyAqIFNvbWUgb2YgdGhlIGRlc2lnbiBwcmluY2lwbGVzIGJl
aGluZCB0aGUgc2V0IG9mIFVURiBtYWNyb3MKKyAqIGhhdmUgY2hhbmdlZCBvciBwcm92ZWQgaW1w
cmFjdGljYWwuCisgKiBBbG1vc3QgYWxsIG9mIHRoZSBvbGQgIlVURiBtYWNyb3MiIGFyZSBhdCBs
ZWFzdCByZW5hbWVkLgorICogSWYgeW91IGFyZSBsb29raW5nIGZvciBhIG5ldyBlcXVpdmFsZW50
IHRvIGFuIG9sZCBtYWNybywgcGxlYXNlIHNlZSB0aGUKKyAqIGNvbW1lbnQgYXQgdGhlIG9sZCBv
bmUuCisgKgorICogQnJpZWYgc3VtbWFyeSBvZiByZWFzb25zIGZvciBkZXByZWNhdGlvbjoKKyAq
IC0gU3dpdGNoIG9uIFVURl9TSVpFIChzZWxlY3Rpb24gb2YgVVRGLTgvMTYvMzIgZGVmYXVsdCBz
dHJpbmcgcHJvY2Vzc2luZykKKyAqICAgd2FzIGltcHJhY3RpY2FsLgorICogLSBTd2l0Y2ggb24g
VVRGX1NBRkUgZXRjLiAoc2VsZWN0aW9uIG9mIHVuc2FmZS9zYWZlL3N0cmljdCBkZWZhdWx0IHN0
cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgb2YgbGl0dGxlIHVzZSBhbmQgaW1wcmFjdGljYWwu
CisgKiAtIFdob2xlIGNsYXNzZXMgb2YgbWFjcm9zIGJlY2FtZSBvYnNvbGV0ZSBvdXRzaWRlIG9m
IHRoZSBVVEZfU0laRS9VVEZfU0FGRQorICogICBzZWxlY3Rpb24gZnJhbWV3b3JrOiBVVEYzMl8g
bWFjcm9zIChhbGwgdHJpdmlhbCkKKyAqICAgYW5kIFVURl8gZGVmYXVsdCBhbmQgaW50ZXJtZWRp
YXRlIG1hY3JvcyAoYWxsIGFsaWFzZXMpLgorICogLSBUaGUgc2VsZWN0aW9uIGZyYW1ld29yayBh
bHNvIGNhdXNlZCBtYW55IG1hY3JvIGFsaWFzZXMuCisgKiAtIENoYW5nZSBpbiBVbmljb2RlIHN0
YW5kYXJkOiAiaXJyZWd1bGFyIiBzZXF1ZW5jZXMgKDMuMCkgYmVjYW1lIGlsbGVnYWwgKDMuMiku
CisgKiAtIENoYW5nZSBvZiBsYW5ndWFnZSBpbiBVbmljb2RlIHN0YW5kYXJkOgorICogICBHcm93
aW5nIGRpc3RpbmN0aW9uIGJldHdlZW4gaW50ZXJuYWwgeC1iaXQgVW5pY29kZSBzdHJpbmdzIGFu
ZCBleHRlcm5hbCBVVEYteAorICogICBmb3Jtcywgd2l0aCB0aGUgZm9ybWVyIG1vcmUgbGVuaWVu
dC4KKyAqICAgU3VnZ2VzdHMgcmVuYW1pbmcgb2YgVVRGMTZfIG1hY3JvcyB0byBVMTZfLgorICog
LSBUaGUgcHJlZml4ICJVVEZfIiB3aXRob3V0IGEgd2lkdGggbnVtYmVyIGNvbmZ1c2VkIHNvbWUg
dXNlcnMuCisgKiAtICJTYWZlIiBhcHBlbmQgbWFjcm9zIG5lZWRlZCB0aGUgYWRkaXRpb24gb2Yg
YW4gZXJyb3IgaW5kaWNhdG9yIG91dHB1dC4KKyAqIC0gIlNhZmUiIFVURi04IG1hY3JvcyB1c2Vk
IGxlZ2l0aW1hdGUgKGlmIHJhcmVseSB1c2VkKSBjb2RlIHBvaW50IHZhbHVlcworICogICB0byBp
bmRpY2F0ZSBlcnJvciBjb25kaXRpb25zLgorICogLSBUaGUgdXNlIG9mIHRoZSAiX0NIQVIiIGlu
Zml4IGZvciBjb2RlIHBvaW50IG9wZXJhdGlvbnMgY29uZnVzZWQgc29tZSB1c2Vycy4KKyAqCisg
KiBNb3JlIGRldGFpbHM6CisgKgorICogVW50aWwgSUNVIDIuMiwgdXRmLmggdGhlb3JldGljYWxs
eSBhbGxvd2VkIHRvIGNob29zZSBhbW9uZyBVVEYtOC8xNi8zMgorICogZm9yIHN0cmluZyBwcm9j
ZXNzaW5nLCBhbmQgYW1vbmcgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1bHQgbWFjcm9zIGZvciB0
aGF0LgorICoKKyAqIEl0IHByb3ZlZCBuZWFybHkgaW1wb3NzaWJsZSB0byB3cml0ZSBub24tdHJp
dmlhbCwgaGlnaC1wZXJmb3JtYW5jZSBjb2RlCisgKiB0aGF0IGlzIFVURi1nZW5lcmljLgorICog
VW5zYWZlIGRlZmF1bHQgbWFjcm9zIHdvdWxkIGJlIGRhbmdlcm91cyBmb3IgZGVmYXVsdCBzdHJp
bmcgcHJvY2Vzc2luZywKKyAqIGFuZCB0aGUgbWFpbiByZWFzb24gZm9yIHRoZSAic3RyaWN0IiB2
ZXJzaW9ucyBkaXNhcHBlYXJlZDoKKyAqIEJldHdlZW4gVW5pY29kZSAzLjAgYW5kIDMuMiBhbGwg
ImlycmVndWxhciIgVVRGLTggc2VxdWVuY2VzIGJlY2FtZSBpbGxlZ2FsLgorICogVGhlIG9ubHkg
b3RoZXIgY29uZGl0aW9ucyB0aGF0ICJzdHJpY3QiIGNoZWNrZWQgZm9yIHdlcmUgbm9uLWNoYXJh
Y3RlcnMsCisgKiB3aGljaCBhcmUgdmFsaWQgZHVyaW5nIHByb2Nlc3NpbmcuIE9ubHkgZHVyaW5n
IHRleHQgaW5wdXQvb3V0cHV0IHNob3VsZCB0aGV5CisgKiBiZSBjaGVja2VkLCBhbmQgYXQgdGhh
dCB0aW1lIG90aGVyIHdlbGwtZm9ybWVkbmVzcyBjaGVja3MgbWF5IGJlCisgKiBuZWNlc3Nhcnkg
b3IgdXNlZnVsIGFzIHdlbGwuCisgKiBUaGlzIGNhbiBzdGlsbCBiZSBkb25lIGJ5IHVzaW5nIFUx
Nl9ORVhUIGFuZCBVX0lTX1VOSUNPREVfTk9OQ0hBUgorICogb3IgVV9JU19VTklDT0RFX0NIQVIu
CisgKgorICogVGhlIG9sZCBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBhbHNvIHVzZWQgc29tZSBub3Jt
YWwgVW5pY29kZSBjb2RlIHBvaW50cworICogdG8gaW5kaWNhdGUgbWFsZm9ybWVkIHNlcXVlbmNl
cy4KKyAqIFRoZSBuZXcgVVRGOF8gbWFjcm9zIHdpdGhvdXQgc3VmZml4IHVzZSBuZWdhdGl2ZSB2
YWx1ZXMgaW5zdGVhZC4KKyAqCisgKiBUaGUgZW50aXJlIGNvbnRlbnRzIG9mIHV0ZjMyLmggd2Fz
IG1vdmVkIGhlcmUgd2l0aG91dCByZXBsYWNlbWVudAorICogYmVjYXVzZSBhbGwgdGhvc2UgbWFj
cm9zIHdlcmUgdHJpdmlhbCBhbmQKKyAqIHdlcmUgbWVhbmluZ2Z1bCBvbmx5IGluIHRoZSBmcmFt
ZXdvcmsgb2YgY2hvb3NpbmcgdGhlIFVURiBzaXplLgorICoKKyAqIFNlZSBKaXR0ZXJidWcgMjE1
MCBhbmQgaXRzIGRpc2N1c3Npb24gb24gdGhlIElDVSBtYWlsaW5nIGxpc3QKKyAqIGluIFNlcHRl
bWJlciAyMDAyLgorICoKKyAqIDxocj4KKyAqCisgKiA8ZW0+T2Jzb2xldGUgcGFydDwvZW0+IG9m
IHByZS1JQ1UgMi40IHV0Zi5oIGZpbGUgZG9jdW1lbnRhdGlvbjoKKyAqCisgKiA8cD5UaGUgb3Jp
Z2luYWwgY29uY2VwdCBmb3IgdGhlc2UgZmlsZXMgd2FzIGZvciBJQ1UgdG8gYWxsb3cKKyAqIGlu
IHByaW5jaXBsZSB0byBzZXQgd2hpY2ggVVRGIChVVEYtOC8xNi8zMikgaXMgdXNlZCBpbnRlcm5h
bGx5CisgKiBieSBkZWZpbmluZyBVVEZfU0laRSB0byBlaXRoZXIgOCwgMTYsIG9yIDMyLiB1dGYu
aCB3b3VsZCB0aGVuIGRlZmluZSB0aGUgVUNoYXIgdHlwZQorICogYWNjb3JkaW5nbHkuIFVURi0x
NiB3YXMgdGhlIGRlZmF1bHQuPC9wPgorICoKKyAqIDxwPlRoaXMgY29uY2VwdCBoYXMgYmVlbiBh
YmFuZG9uZWQuCisgKiBBIGxvdCBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFzc3VtZXMgVUNoYXIg
c3RyaW5ncyBhcmUgaW4gVVRGLTE2LgorICogVGhpcyBpcyBlc3BlY2lhbGx5IHRydWUgZm9yIGxv
dy1sZXZlbCBjb2RlIGxpa2UKKyAqIGNvbnZlcnNpb24sIG5vcm1hbGl6YXRpb24sIGFuZCBjb2xs
YXRpb24uCisgKiBUaGUgdXRmLmggaGVhZGVyIGVuZm9yY2VzIHRoZSBkZWZhdWx0IG9mIFVURi0x
Ni4KKyAqIFRoZSBVVEYtOCBhbmQgVVRGLTMyIG1hY3JvcyByZW1haW4gZm9yIG5vdyBmb3IgY29t
cGxldGVuZXNzIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LjwvcD4KKyAqCisgKiA8cD5BY2Nv
cmRpbmdseSwgdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25lZCAxNi1iaXQgaW50
ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KKyAqIFVDaGFyIGlzIGRlZmluZWQg
dG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2X3QuPC9wPgorICoKKyAqIDxw
PlVDaGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAoaW50MzJf
dCksIGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQKKyAqIFVuaWNvZGUgY29kZSBwb2ludCAoVW5p
Y29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KKyAqIEJlZm9yZSBJQ1UgMi40LCB0aGUg
ZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5kZW50IGFz
CisgKiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVu
dGF0aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi48L3A+CisgKgorICogPHA+dXRmLmggYWxzbyBkZWZp
bmVzIGEgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBoYW5kbGluZyBzaW5nbGUgVW5pY29kZSBjb2Rl
IHBvaW50cyBhbmQKKyAqIGZvciB1c2luZyBVVEYgVW5pY29kZSBzdHJpbmdzLiBJdCBpbmNsdWRl
cyB1dGY4LmgsIHV0ZjE2LmgsIGFuZCB1dGYzMi5oIGZvciB0aGUgYWN0dWFsCisgKiBpbXBsZW1l
bnRhdGlvbnMgb2YgdGhvc2UgbWFjcm9zIGFuZCB0aGVuIGFsaWFzZXMgb25lIHNldCBvZiB0aGVt
IChmb3IgVVRGLTE2KSBmb3IgZ2VuZXJhbCB1c2UuCisgKiBUaGUgVVRGLXNwZWNpZmljIG1hY3Jv
cyBoYXZlIHRoZSBVVEYgc2l6ZSBpbiB0aGUgbWFjcm8gbmFtZSBwcmVmaXhlcyAoVVRGMTZfLi4u
KSwgd2hpbGUKKyAqIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhbHdheXMgYmVnaW4gd2l0aCBV
VEZfLi4uPC9wPgorICoKKyAqIDxwPk1hbnkgc3RyaW5nIG9wZXJhdGlvbnMgY2FuIGJlIGRvbmUg
d2l0aCBvciB3aXRob3V0IGVycm9yIGNoZWNraW5nLgorICogV2hlcmUgc3VjaCBhIGRpc3RpbmN0
aW9uIGlzIHVzZWZ1bCwgdGhlcmUgYXJlIHR3byB2ZXJzaW9ucyBvZiB0aGUgbWFjcm9zLCAidW5z
YWZlIiBhbmQgInNhZmUiCisgKiBvbmVzIHdpdGggLi4uX1VOU0FGRSBhbmQgLi4uX1NBRkUgc3Vm
Zml4ZXMuIFRoZSB1bnNhZmUgbWFjcm9zIGFyZSBmYXN0IGJ1dCBtYXkgY2F1c2UKKyAqIHByb2dy
YW0gZmFpbHVyZXMgaWYgdGhlIHN0cmluZ3MgYXJlIG5vdCB3ZWxsLWZvcm1lZC4gVGhlIHNhZmUg
bWFjcm9zIGhhdmUgYW4gYWRkaXRpb25hbCwgYm9vbGVhbgorICogcGFyYW1ldGVyICJzdHJpY3Qi
LiBJZiBzdHJpY3QgaXMgRkFMU0UsIHRoZW4gb25seSBpbGxlZ2FsIHNlcXVlbmNlcyBhcmUgZGV0
ZWN0ZWQuCisgKiBPdGhlcndpc2UsIGlycmVndWxhciBzZXF1ZW5jZXMgYW5kIG5vbi1jaGFyYWN0
ZXJzIGFyZSBkZXRlY3RlZCBhcyB3ZWxsIChsaWtlIHNpbmdsZSBzdXJyb2dhdGVzKS4KKyAqIFNh
ZmUgbWFjcm9zIHJldHVybiBzcGVjaWFsIGVycm9yIGNvZGUgcG9pbnRzIGZvciBpbGxlZ2FsL2ly
cmVndWxhciBzZXF1ZW5jZXM6CisgKiBUeXBpY2FsbHksIFUrZmZmZiwgb3IgdmFsdWVzIHRoYXQg
d291bGQgcmVzdWx0IGluIGEgY29kZSB1bml0IHNlcXVlbmNlIG9mIHRoZSBzYW1lIGxlbmd0aAor
ICogYXMgdGhlIGVycm9uZW91cyBpbnB1dCBzZXF1ZW5jZS48YnI+CisgKiBOb3RlIHRoYXQgX1VO
U0FGRSBtYWNyb3MgaGF2ZSBmZXdlciBwYXJhbWV0ZXJzOiBUaGV5IGRvIG5vdCBoYXZlIHRoZSBz
dHJpY3RuZXNzIHBhcmFtZXRlciwgYW5kCisgKiB0aGV5IGRvIG5vdCBoYXZlIHN0YXJ0L2xlbmd0
aCBwYXJhbWV0ZXJzIGZvciBib3VuZGFyeSBjaGVja2luZy48L3A+CisgKgorICogPHA+SGVyZSwg
dGhlIG1hY3JvcyBhcmUgYWxpYXNlZCBpbiB0d28gc3RlcHM6CisgKiBJbiB0aGUgZmlyc3Qgc3Rl
cCwgdGhlIFVURi1zcGVjaWZpYyBtYWNyb3Mgd2l0aCBVVEYxNl8gcHJlZml4IGFuZCBfVU5TQUZF
IGFuZCBfU0FGRSBzdWZmaXhlcyBhcmUKKyAqIGFsaWFzZWQgYWNjb3JkaW5nIHRvIHRoZSBVVEZf
U0laRSB0byBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgdGhlIHNhbWUgc3VmZml4ZXMgYW5k
IHNpZ25hdHVyZXMuCisgKiBUaGVuLCBpbiBhIHNlY29uZCBzdGVwLCB0aGUgZGVmYXVsdCwgZ2Vu
ZXJhbCBhbGlhcyBtYWNyb3MgYXJlIHNldCB0byB1c2UgZWl0aGVyIHRoZSB1bnNhZmUgb3IKKyAq
IHRoZSBzYWZlL25vdCBzdHJpY3QgKGRlZmF1bHQpIG9yIHRoZSBzYWZlL3N0cmljdCBtYWNybzsK
KyAqIHRoZXNlIGdlbmVyYWwgbWFjcm9zIGRvIG5vdCBoYXZlIGEgc3RyaWN0bmVzcyBwYXJhbWV0
ZXIuPC9wPgorICoKKyAqIDxwPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdCBj
aG9pY2UgZm9yIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyB0byBiZSB1bnNhZmUsIHNhZmUvbm90
IHN0cmljdCBvciBzYWZlL3N0cmljdC4KKyAqIFRoZSBkZWZhdWx0IGlzIHNhZmUvbm90IHN0cmlj
dC4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNlbGVjdCB0aGUgdW5zYWZlIG1hY3JvcyBhcyB0
aGUgYmFzaXMgZm9yCisgKiBVbmljb2RlIHN0cmluZyBoYW5kbGluZyBpbiBJQ1UhIFRvIHNlbGVj
dCB0aGlzLCBkZWZpbmUgVVRGX1NBRkUsIFVURl9TVFJJQ1QsIG9yIFVURl9VTlNBRkUuPC9wPgor
ICoKKyAqIDxwPkZvciBnZW5lcmFsIHVzZSwgb25lIHNob3VsZCB1c2UgdGhlIGRlZmF1bHQsIGdl
bmVyYWwgbWFjcm9zIHdpdGggVVRGXyBwcmVmaXggYW5kIG5vIF9TQUZFL19VTlNBRkUgc3VmZml4
LgorICogT25seSBpbiBzb21lIGNhc2VzIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY29udHJvbCB0
aGUgY2hvaWNlIG9mIG1hY3JvIGRpcmVjdGx5IGFuZCB1c2UgYSBsZXNzIGdlbmVyaWMgYWxpYXMu
CisgKiBGb3IgZXhhbXBsZSwgaWYgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCBhIHN0cmluZyBpcyB3
ZWxsLWZvcm1lZCBhbmQgdGhlIGluZGV4IHdpbGwgc3RheSB3aXRoaW4gdGhlIGJvdW5kcywKKyAq
IHRoZW4gdGhlIF9VTlNBRkUgdmVyc2lvbiBtYXkgYmUgdXNlZC4KKyAqIElmIGEgVVRGLTggc3Ry
aW5nIGlzIHRvIGJlIHByb2Nlc3NlZCwgdGhlbiB0aGUgbWFjcm9zIHdpdGggVVRGOF8gcHJlZml4
ZXMgbmVlZCB0byBiZSB1c2VkLjwvcD4KKyAqCisgKiA8aHI+CisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIHRoZSBtYWNyb3MgaW4gdXRmLmgsIHV0ZjE2LmgsIHV0ZjguaCBpbnN0ZWFk
LgorICovCisKKyNpZm5kZWYgX19VVEZfT0xEX0hfXworI2RlZmluZSBfX1VURl9PTERfSF9fCisK
KyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0Zi5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdXRmOC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRmMTYuaCIK
KworLyogRm9ybWVybHkgdXRmLmgsIHBhcnQgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmZGVmIFVfVVNFX1VURl9ERVBSRUNBVEVT
CisvKioKKyAqIFVuaWNvZGUgc3RyaW5nIGFuZCBhcnJheSBvZmZzZXQgYW5kIGluZGV4IHR5cGUu
CisgKiBJQ1UgYWx3YXlzIGNvdW50cyBVbmljb2RlIGNvZGUgdW5pdHMgKFVDaGFycykgZm9yCisg
KiBzdHJpbmcgb2Zmc2V0cywgaW5kZXhlcywgYW5kIGxlbmd0aHMsIG5vdCBVbmljb2RlIGNvZGUg
cG9pbnRzLgorICoKKyAqIEBvYnNvbGV0ZSBJQ1UgMi42LiBVc2UgaW50MzJfdCBkaXJlY3RseSBp
bnN0ZWFkIHNpbmNlIHRoaXMgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGF0IHJlbGVhc2UuCisg
Ki8KK3R5cGVkZWYgaW50MzJfdCBVVGV4dE9mZnNldDsKKyNlbmRpZgorCisvKiogTnVtYmVyIG9m
IGJpdHMgaW4gYSBVbmljb2RlIHN0cmluZyBjb2RlIHVuaXQgLSBJQ1UgdXNlcyAxNi1iaXQgVW5p
Y29kZS4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURl9TSVpFIDE2CisKKy8qKgorICogVGhlIGRlZmF1bHQgY2hvaWNlIGZvciBnZW5l
cmFsIFVuaWNvZGUgc3RyaW5nIG1hY3JvcyBpcyB0byB1c2UgdGhlIC4uLl9TQUZFIG1hY3JvIGlt
cGxlbWVudGF0aW9ucworICogd2l0aCBzdHJpY3Q9RkFMU0UuCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX1NBRkUK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyN1
bmRlZiBVVEZfVU5TQUZFCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1
dGZfb2xkLmguICovCisjdW5kZWYgVVRGX1NUUklDVAorCisvKioKKyAqIFVURjhfRVJST1JfVkFM
VUVfMSBhbmQgVVRGOF9FUlJPUl9WQUxVRV8yIGFyZSBzcGVjaWFsIGVycm9yIHZhbHVlcyBmb3Ig
VVRGLTgsCisgKiB3aGljaCBuZWVkIDEgb3IgMiBieXRlcyBpbiBVVEYtODoKKyAqIFxjb2RlCisg
KiBVKzAwMTUgPSBOQUsgPSBOZWdhdGl2ZSBBY2tub3dsZWRnZSwgQzAgY29udHJvbCBjaGFyYWN0
ZXIKKyAqIFUrMDA5ZiA9IGhpZ2hlc3QgQzEgY29udHJvbCBjaGFyYWN0ZXIKKyAqIFxlbmRjb2Rl
CisgKgorICogVGhlc2UgYXJlIHVzZWQgYnkgVVRGOF8uLi5fU0FGRSBtYWNyb3Mgc28gdGhhdCB0
aGV5IGNhbiByZXR1cm4gYW4gZXJyb3IgdmFsdWUKKyAqIHRoYXQgbmVlZHMgdGhlIHNhbWUgbnVt
YmVyIG9mIGNvZGUgdW5pdHMgKGJ5dGVzKSBhcyB3ZXJlIHNlZW4gYnkKKyAqIGEgbWFjcm8uIFRo
ZXkgc2hvdWxkIGJlIHRlc3RlZCB3aXRoIFVURl9JU19FUlJPUigpIG9yIFVURl9JU19WQUxJRCgp
LgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURjhfRVJST1JfVkFMVUVfMSAweDE1CisKKy8qKgorICogU2VlIGRvY3Vt
ZW50YXRpb24gb24gVVRGOF9FUlJPUl9WQUxVRV8xIGZvciBkZXRhaWxzLgorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
RjhfRVJST1JfVkFMVUVfMiAweDlmCisKKy8qKgorICogRXJyb3IgdmFsdWUgZm9yIGFsbCBVVEZz
LiBUaGlzIGNvZGUgcG9pbnQgdmFsdWUgd2lsbCBiZSBzZXQgYnkgbWFjcm9zIHdpdGggZXJyb3IK
KyAqIGNoZWNraW5nIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLgorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9FUlJP
Ul9WQUxVRSAweGZmZmYKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCBjb2RlIGFuIGVycm9y
IHZhbHVlCisgKiBhcyByZXR1cm5lZCBieSBvbmUgb2YgdGhlIG1hY3JvcyBmb3IgYW55IFVURj8K
KyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAq
LworI2RlZmluZSBVVEZfSVNfRVJST1IoYykgXAorICAgICgoKGMpJjB4ZmZmZSk9PTB4ZmZmZSB8
fCAoYyk9PVVURjhfRVJST1JfVkFMVUVfMSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVfMikKKwor
LyoqCisgKiBUaGlzIGlzIGEgY29tYmluZWQgbWFjcm86IElzIGMgYSB2YWxpZCBVbmljb2RlIHZh
bHVlIF9hbmRfIG5vdCBhbiBlcnJvciBjb2RlPworICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19WQUxJRChjKSBc
CisgICAgKFVURl9JU19VTklDT0RFX0NIQVIoYykgJiYgXAorICAgICAoYykhPVVURjhfRVJST1Jf
VkFMVUVfMSAmJiAoYykhPVVURjhfRVJST1JfVkFMVUVfMikKKworLyoqCisgKiBJcyB0aGlzIGNv
ZGUgdW5pdCBvciBjb2RlIHBvaW50IGEgc3Vycm9nYXRlIChVK2Q4MDAuLlUrZGZmZik/CisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRFIGFuZCBVMTZfSVNf
U1VSUk9HQVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19TVVJST0dBVEUo
dWNoYXIpICgoKHVjaGFyKSYweGZmZmZmODAwKT09MHhkODAwKQorCisvKioKKyAqIElzIGEgZ2l2
ZW4gMzItYml0IGNvZGUgcG9pbnQgYSBVbmljb2RlIG5vbmNoYXJhY3Rlcj8KKyAqCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9OT05DSEFSLCBzZWUgdXRm
X29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX05PTkNIQVIoYykgXAorICAgICgo
Yyk+PTB4ZmRkMCAmJiBcCisgICAgICgodWludDMyX3QpKGMpPD0weGZkZWYgfHwgKChjKSYweGZm
ZmUpPT0weGZmZmUpICYmIFwKKyAgICAgKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpCisKKy8qKgor
ICogSXMgYSBnaXZlbiAzMi1iaXQgdmFsdWUgYSBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgKDAu
LlUrMTBmZmZmKQorICogdGhhdCBjYW4gYmUgYXNzaWduZWQgYSBjaGFyYWN0ZXI/CisgKgorICog
Q29kZSBwb2ludHMgdGhhdCBhcmUgbm90IGNoYXJhY3RlcnMgaW5jbHVkZToKKyAqIC0gc2luZ2xl
IHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyAoVStkODAwLi5VK2RmZmYsIDIwNDggY29kZSBwb2ludHMp
CisgKiAtIHRoZSBsYXN0IHR3byBjb2RlIHBvaW50cyBvbiBlYWNoIHBsYW5lIChVK19fZmZmZSBh
bmQgVStfX2ZmZmYsIDM0IGNvZGUgcG9pbnRzKQorICogLSBVK2ZkZDAuLlUrZmRlZiAobmV3IHdp
dGggVW5pY29kZSAzLjEsIDMyIGNvZGUgcG9pbnRzKQorICogLSB0aGUgaGlnaGVzdCBVbmljb2Rl
IGNvZGUgcG9pbnQgdmFsdWUgaXMgVSsxMGZmZmYKKyAqCisgKiBUaGlzIG1lYW5zIHRoYXQgYWxs
IGNvZGUgcG9pbnRzIGJlbG93IFUrZDgwMCBhcmUgY2hhcmFjdGVyIGNvZGUgcG9pbnRzLAorICog
YW5kIHRoYXQgYm91bmRhcnkgaXMgdGVzdGVkIGZpcnN0IGZvciBwZXJmb3JtYW5jZS4KKyAqCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9DSEFSLCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX0NIQVIoYykgXAorICAgICgo
dWludDMyX3QpKGMpPDB4ZDgwMCB8fCBcCisgICAgICAgICgodWludDMyX3QpKGMpPjB4ZGZmZiAm
JiBcCisgICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiAmJiBcCisgICAgICAgICAhVVRG
X0lTX1VOSUNPREVfTk9OQ0hBUihjKSkpCisKKy8qIEZvcm1lcmx5IHV0ZjguaCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8q
KgorICogQ291bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQ09VTlRfVFJBSUxfQllURVMsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkg
KHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKworLyoqCisgKiBNYXNr
IGEgVVRGLTggbGVhZCBieXRlLCBsZWF2ZSBvbmx5IHRoZSBsb3dlciBiaXRzIHRoYXQgZm9ybSBw
YXJ0IG9mIHRoZSBjb2RlIHBvaW50IHZhbHVlLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9NQVNLX0xFQURfQllURSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBV
VEY4X01BU0tfTEVBRF9CWVRFKGxlYWRCeXRlLCBjb3VudFRyYWlsQnl0ZXMpICgobGVhZEJ5dGUp
Jj0oMTw8KDYtKGNvdW50VHJhaWxCeXRlcykpKS0xKQorCisvKiogSXMgdGhpcyB0aGlzIGNvZGUg
cG9pbnQgYSBzaW5nbGUgY29kZSB1bml0IChieXRlKT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfSVNf
U0lOR0xFKHVjaGFyKSAoKCh1Y2hhcikmMHg4MCk9PTApCisvKiogSXMgdGhpcyB0aGlzIGNvZGUg
dW5pdCB0aGUgbGVhZCBjb2RlIHVuaXQgKGJ5dGUpIG9mIGEgY29kZSBwb2ludD8gQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19MRUFELCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEY4X0lTX0xFQUQodWNoYXIpICgodWludDhfdCkoKHVjaGFyKS0weGMwKTwweDNlKQor
LyoqIElzIHRoaXMgdGhpcyBjb2RlIHVuaXQgYSB0cmFpbGluZyBjb2RlIHVuaXQgKGJ5dGUpIG9m
IGEgY29kZSBwb2ludD8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19UUkFJ
TCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9JU19UUkFJTCh1Y2hhcikgKCgodWNo
YXIpJjB4YzApPT0weDgwKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2RlIHZhbHVlIG5l
ZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
VXNlIFU4X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4N2YpIGluc3RlYWQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAoKHVpbnQz
Ml90KShjKT4weDdmKQorCisvKioKKyAqIEdpdmVuIHRoZSBsZWFkIGNoYXJhY3RlciwgaG93IG1h
bnkgYnl0ZXMgYXJlIHRha2VuIGJ5IHRoaXMgY29kZSBwb2ludC4KKyAqIElDVSBkb2VzIG5vdCBk
ZWFsIHdpdGggY29kZSBwb2ludHMgPjB4MTBmZmZmCisgKiB1bmxlc3MgbmVjZXNzYXJ5IGZvciBh
ZHZhbmNpbmcgaW4gdGhlIGJ5dGUgc3RyZWFtLgorICoKKyAqIFRoZXNlIGxlbmd0aCBtYWNyb3Mg
dGFrZSBpbnRvIGFjY291bnQgdGhhdCBmb3IgdmFsdWVzID4weDEwZmZmZgorICogdGhlIFVURjhf
QVBQRU5EX0NIQVJfU0FGRSBtYWNyb3Mgd291bGQgd3JpdGUgdGhlIGVycm9yIGNvZGUgcG9pbnQg
MHhmZmZmCisgKiB3aXRoIDMgYnl0ZXMuCisgKiBDb2RlIHBvaW50IGNvbXBhcmlzb25zIG5lZWQg
dG8gYmUgaW4gdWludDMyX3QgYmVjYXVzZSBVQ2hhcjMyCisgKiBtYXkgYmUgYSBzaWduZWQgdHlw
ZSwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBtdXN0IGJlIHJlY29nbml6ZWQuCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0xFTkdUSCBpbnN0ZWFkLCBzZWUgdXRmLmguCisgKi8KKyNp
ZiAxCisjICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVpbnQzMl90
KShjKTw9MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZmYgPyAy
IDogXAorICAgICAgICAgICAgICAgICgodWludDMyX3QpKChjKS0weDEwMDAwKT4weGZmZmZmID8g
MyA6IDQpIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZWxzZQorIyAgIGRlZmluZSBV
VEY4X0NIQVJfTEVOR1RIKGMpIFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2YgPyAxIDog
XAorICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmID8gMiA6IFwKKyAgICAgICAgICAg
ICAgICAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMyA6IFwKKyAgICAgICAgICAgICAgICAgICAg
KCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmID8gNCA6IFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgodWludDMyX3QpKGMpPD0weDNmZmZmZmYgPyA1IDogXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgodWludDMyX3QpKGMpPD0weDdmZmZmZmZmID8gNiA6IDMpIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgICAgICAgICApIFwKKyAgICAgICAgICAgICAg
ICApIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZW5kaWYKKworLyoqIFRoZSBtYXhp
bXVtIG51bWJlciBvZiBieXRlcyBwZXIgY29kZSBwb2ludC4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVOF9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4
X01BWF9DSEFSX0xFTkdUSCA0CisKKy8qKiBBdmVyYWdlIG51bWJlciBvZiBjb2RlIHVuaXRzIGNv
bXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjhfQVJSQVlfU0laRShzaXplKSAoKDUqKHNpemUpKS8yKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9HRVRfVU5TQUZFLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwK
KyAgICBpbnQzMl90IF91dGY4X2dldF9jaGFyX3Vuc2FmZV9pbmRleD0oaW50MzJfdCkoaSk7IFwK
KyAgICBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBfdXRmOF9nZXRfY2hhcl91bnNhZmVf
aW5kZXgpOyBcCisgICAgVVRGOF9ORVhUX0NIQVJfVU5TQUZFKHMsIF91dGY4X2dldF9jaGFyX3Vu
c2FmZV9pbmRleCwgYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVOF9H
RVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9HRVRfQ0hBUl9TQUZF
KHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgaW50MzJfdCBfdXRmOF9n
ZXRfY2hhcl9zYWZlX2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIFVURjhfU0VUX0NIQVJfU1RB
UlRfU0FGRShzLCBzdGFydCwgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCk7IFwKKyAgICBVVEY4
X05FWFRfQ0hBUl9TQUZFKHMsIF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXgsIGxlbmd0aCwgYywg
c3RyaWN0KTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9O
RVhUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORVhUX0NIQVJfVU5T
QUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoKHVpbnQ4X3Qp
KChjKS0weGMwKTwweDM1KSB7IFwKKyAgICAgICAgdWludDhfdCBfX2NvdW50PVVURjhfQ09VTlRf
VFJBSUxfQllURVMoYyk7IFwKKyAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShjLCBfX2NvdW50
KTsgXAorICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBcCisgICAgICAgIC8qIGVhY2ggZm9sbG93
aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBcCisgICAgICAgIGNh
c2UgMzogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCisg
ICAgICAgIGNhc2UgMjogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4
M2YpOyBcCisgICAgICAgIGNhc2UgMTogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylb
KGkpKytdJjB4M2YpOyBcCisgICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVzIHRvIG9wdGltaXpl
IHN3aXRjaCgpICovIFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAgIH0gXAorICAgIH0g
XAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9BUFBFTkRfVU5T
QUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1VOU0FGRShz
LCBpLCBjKSB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAgICAgKHMp
WyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIGlmKCh1aW50
MzJfdCkoYyk8PTB4N2ZmKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3QpKCgo
Yyk+PjYpfDB4YzApOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIGlmKCh1aW50
MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhf
dCkoKChjKT4+MTIpfDB4ZTApOyBcCisgICAgICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAg
ICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChjKT4+MTgpfDB4ZjApOyBcCisgICAgICAgICAg
ICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKCgoYyk+PjEyKSYweDNmKXwweDgwKTsgXAorICAg
ICAgICAgICAgfSBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+Nikm
MHgzZil8MHg4MCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3Qp
KCgoYykmMHgzZil8MHg4MCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVThfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKSB7IFwKKyAgICAoaSkrPTErVVRGOF9DT1VOVF9UUkFJ
TF9CWVRFUygocylbaV0pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFU4X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9GV0Rf
Tl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBfX049KG4pOyBcCisgICAgd2hpbGUo
X19OPjApIHsgXAorICAgICAgICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAt
LV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4
X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lTX1RSQUlM
KChzKVtpXSkpIHsgLS0oaSk7IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNl
IFU4X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORVhUX0NI
QVJfU0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVsoaSkrK107
IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICBpZihVVEY4X0lTX0xFQUQoYykpIHsg
XAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keShzLCAmKGkpLCAoaW50MzJf
dCkobGVuZ3RoKSwgYywgc3RyaWN0KTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAg
ICAoYyk9VVRGOF9FUlJPUl9WQUxVRV8xOyBcCisgICAgICAgIH0gXAorICAgIH0gXAorfQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjKSAg
eyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZikgeyBcCisgICAgICAgIChzKVsoaSkrK109
KHVpbnQ4X3QpKGMpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAoaSk9dXRmOF9hcHBlbmRD
aGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50MzJfdCkobGVuZ3RoKSwgYywgTlVMTCk7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThf
RldEXzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfRldEXzFfU0FGRShzLCBpLCBs
ZW5ndGgpIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVThfRldEX04sIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfRldE
X05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIFU4X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfU0VUX0NQX1NUQVJULCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkp
IFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVThfUFJFVl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjhfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAor
ICAgIGlmKFVURjhfSVNfVFJBSUwoYykpIHsgXAorICAgICAgICB1aW50OF90IF9fYiwgX19jb3Vu
dD0xLCBfX3NoaWZ0PTY7IFwKK1wKKyAgICAgICAgLyogYyBpcyBhIHRyYWlsIGJ5dGUgKi8gXAor
ICAgICAgICAoYykmPTB4M2Y7IFwKKyAgICAgICAgZm9yKDs7KSB7IFwKKyAgICAgICAgICAgIF9f
Yj0ocylbLS0oaSldOyBcCisgICAgICAgICAgICBpZihfX2I+PTB4YzApIHsgXAorICAgICAgICAg
ICAgICAgIFVURjhfTUFTS19MRUFEX0JZVEUoX19iLCBfX2NvdW50KTsgXAorICAgICAgICAgICAg
ICAgIChjKXw9KFVDaGFyMzIpX19iPDxfX3NoaWZ0OyBcCisgICAgICAgICAgICAgICAgYnJlYWs7
IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgICAgICAoYyl8PShVQ2hhcjMy
KShfX2ImMHgzZik8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICArK19fY291bnQ7IFwKKyAg
ICAgICAgICAgICAgICBfX3NoaWZ0Kz02OyBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgfSBc
CisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JB
Q0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS18xX1VOU0FG
RShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lTX1RSQUlMKChzKVstLShpKV0pKSB7fSBcCit9
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTl9VTlNBRkUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1VOU0FGRShzLCBpLCBuKSB7
IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAg
IFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAor
fQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfTElNSVRf
VU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX0xJTUlUX1VO
U0FGRShzLCBpKSB7IFwKKyAgICBVVEY4X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAgICBVVEY4
X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNl
IFU4X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9QUkVWX0NI
QVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsg
XAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKChjKTw9MHhiZikgeyBcCisgICAg
ICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KHMsIHN0YXJ0LCAmKGkpLCBjLCBzdHJp
Y3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEY4X0VSUk9SX1ZB
TFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgVThfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9CQUNLX04sIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjhfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pIFU4X0JBQ0tfTihz
LCBzdGFydCwgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThf
U0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX0xJ
TUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkgVThfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBp
LCBsZW5ndGgpCisKKy8qIEZvcm1lcmx5IHV0ZjE2LmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBJcyB1Y2hhciBhIGZp
cnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNf
TEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9JU19G
SVJTVF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmYzAwKT09MHhkODAwKQorCisv
KiogSXMgdWNoYXIgYSBzZWNvbmQvdHJhaWwgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZm
ZmZmYzAwKT09MHhkYzAwKQorCisvKiogQXNzdW1pbmcgYyBpcyBhIHN1cnJvZ2F0ZSwgaXMgaXQg
YSBmaXJzdC9sZWFkIHN1cnJvZ2F0ZT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
X0lTX1NVUlJPR0FURV9MRUFEIGFuZCBVMTZfSVNfU1VSUk9HQVRFX0xFQUQsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURl9JU19TVVJST0dBVEVfRklSU1QoYykgKCgoYykmMHg0MDApPT0w
KQorCisvKiogSGVscGVyIGNvbnN0YW50IGZvciBVVEYxNl9HRVRfUEFJUl9WQUxVRS4gQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU1VSUk9HQVRFX09GRlNFVCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NVUlJPR0FURV9PRkZTRVQgKCgweGQ4MDA8PDEwVUwpKzB4
ZGMwMC0weDEwMDAwKQorCisvKiogR2V0IHRoZSBVVEYtMzIgdmFsdWUgZnJvbSB0aGUgc3Vycm9n
YXRlIGNvZGUgdW5pdHMuIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVF9T
VVBQTEVNRU5UQVJZLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9HRVRfUEFJUl9W
QUxVRShmaXJzdCwgc2Vjb25kKSBcCisgICAgKCgoZmlyc3QpPDwxMFVMKSsoc2Vjb25kKS1VVEZf
U1VSUk9HQVRFX09GRlNFVCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9GSVJTVF9TVVJST0dBVEUo
c3VwcGxlbWVudGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpPj4xMCkrMHhkN2MwKQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfVFJBSUwsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURl9TRUNPTkRfU1VSUk9HQVRFKHN1cHBsZW1lbnRhcnkpIChVQ2hh
cikoKChzdXBwbGVtZW50YXJ5KSYweDNmZil8MHhkYzAwKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
MTZfTEVBRChzdXBwbGVtZW50YXJ5KSBVVEZfRklSU1RfU1VSUk9HQVRFKHN1cHBsZW1lbnRhcnkp
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfVFJBSUwoc3VwcGxlbWVudGFyeSkgVVRGX1NFQ09O
RF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZf
SVNfU0lOR0xFKHVjaGFyKSAhVVRGX0lTX1NVUlJPR0FURSh1Y2hhcikKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjE2X0lTX0xFQUQodWNoYXIpIFVURl9JU19GSVJTVF9TVVJST0dBVEUodWNoYXIp
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9JU19UUkFJTCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfVFJBSUwodWNoYXIpIFVURl9JU19TRUNP
TkRfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2RlIHZhbHVl
IG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGluc3RlYWQs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FRURfTVVMVElQTEVfVUNIQVIoYykg
KCh1aW50MzJfdCkoYyk+MHhmZmZmKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVMTZfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9DSEFSX0xF
TkdUSChjKSAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMSA6IDIpCisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEYxNl9NQVhfQ0hBUl9MRU5HVEggMgorCisvKiogQXZlcmFnZSBudW1iZXIgb2Yg
Y29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYuIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9BUlJBWV9TSVpFKHNpemUpIChz
aXplKQorCisvKioKKyAqIEdldCBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gYW4gb2Zmc2V0IHRo
YXQgcG9pbnRzIHRvIGFueQorICogb2YgdGhlIGNvZGUgdW5pdHMgdGhhdCBiZWxvbmcgdG8gdGhh
dCBjb2RlIHBvaW50LgorICogQXNzdW1lIDA8PWk8bGVuZ3RoLgorICoKKyAqIFRoaXMgY291bGQg
YmUgdXNlZCBmb3IgaXRlcmF0aW9uIHRvZ2V0aGVyIHdpdGgKKyAqIFVURjE2X0NIQVJfTEVOR1RI
KCkgYW5kIFVURl9JU19FUlJPUigpLAorICogYnV0IHRoZSB1c2Ugb2YgVVRGMTZfTkVYVF9DSEFS
W19VTlNBRkVdKCkgYW5kCisgKiBVVEYxNl9QUkVWX0NIQVJbX1VOU0FGRV0oKSBpcyBtb3JlIGVm
ZmljaWVudCBmb3IgdGhhdC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGMTZfR0VUX0NIQVJf
VU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZfSVNfU1VS
Uk9HQVRFKGMpKSB7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NVUlJPR0FURV9GSVJTVChjKSkgeyBc
CisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCAocylbKGkpKzFdKTsg
XAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFM
VUUoKHMpWyhpKS0xXSwgKGMpKTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjE2X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3Ry
aWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCisgICAgaWYoVVRGX0lTX1NVUlJPR0FURShjKSkg
eyBcCisgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NVUlJPR0FU
RV9GSVJTVChjKSkgeyBcCisgICAgICAgICAgICBpZigoaSkrMTwobGVuZ3RoKSAmJiBVVEZfSVNf
U0VDT05EX1NVUlJPR0FURShfX2MyPShzKVsoaSkrMV0pKSB7IFwKKyAgICAgICAgICAgICAgICAo
Yyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCBfX2MyKTsgXAorICAgICAgICAgICAgICAgIC8q
IHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigp
IGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAgfSBlbHNlIGlmKHN0
cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9nYXRlICov
IFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgICAgICB9
IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYoKGkpLTE+PShzdGFydCkgJiYg
VVRGX0lTX0ZJUlNUX1NVUlJPR0FURShfX2MyPShzKVsoaSktMV0pKSB7IFwKKyAgICAgICAgICAg
ICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoX19jMiwgKGMpKTsgXAorICAgICAgICAgICAg
ICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19F
UlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAgfSBlbHNl
IGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgc2Vjb25kIHN1cnJv
Z2F0ZSAqLyBcCisgICAgICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAg
ICAgICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3RyaWN0KSAmJiAhVVRGX0lT
X1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X05FWFRf
VU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJfVU5TQUZF
KHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoVVRGX0lTX0ZJUlNU
X1NVUlJPR0FURShjKSkgeyBcCisgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyks
IChzKVsoaSkrK10pOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFUxNl9BUFBFTkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgaWYoKHVpbnQzMl90KShj
KTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKGMpOyBcCisgICAg
fSBlbHNlIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKT4+MTApKzB4ZDdj
MCk7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYykmMHgzZmYpfDB4ZGMwMCk7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0ZXRF8xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEXzFfVU5T
QUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoKHMpWyhpKSsrXSkp
IHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYxNl9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBfX049KG4p
OyBcCisgICAgd2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEYxNl9GV0RfMV9VTlNBRkUocywg
aSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBp
ZihVVEZfSVNfU0VDT05EX1NVUlJPR0FURSgocylbaV0pKSB7IFwKKyAgICAgICAgLS0oaSk7IFwK
KyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfTkVYVCBpbnN0
ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJfU0FGRShzLCBp
LCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZihV
VEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAor
ICAgICAgICBpZigoaSk8KGxlbmd0aCkgJiYgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUoX19jMj0o
cylbKGkpXSkpIHsgXAorICAgICAgICAgICAgKysoaSk7IFwKKyAgICAgICAgICAgIChjKT1VVEYx
Nl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAvKiBzdHJpY3Q6ICgo
YykmMHhmZmZlKT09MHhmZmZlIGlzIGNhdWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQgVVRGX0lT
X1VOSUNPREVfQ0hBUigpICovIFwKKyAgICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAg
ICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgKGMp
PVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0cmljdCkg
JiYgIVVURl9JU19VTklDT0RFX0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1bm1hdGNoZWQgc2Vj
b25kIHN1cnJvZ2F0ZSBvciBvdGhlciBub24tY2hhcmFjdGVyICovIFwKKyAgICAgICAgKGMpPVVU
Rl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
VXNlIFUxNl9BUFBFTkQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZf
QVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCko
Yyk8PTB4ZmZmZikgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KShjKTsgXAorICAg
IH0gZWxzZSBpZigodWludDMyX3QpKGMpPD0weDEwZmZmZikgeyBcCisgICAgICAgIGlmKChpKSsx
PChsZW5ndGgpKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgoKGMpPj4x
MCkrMHhkN2MwKTsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYykmMHgz
ZmYpfDB4ZGMwMCk7IFwKKyAgICAgICAgfSBlbHNlIC8qIG5vdCBlbm91Z2ggc3BhY2UgKi8geyBc
CisgICAgICAgICAgICAocylbKGkpKytdPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9IFwK
KyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgZXJyb3IgdmFsdWUgKi8geyBcCisgICAg
ICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShzLCBpLCBs
ZW5ndGgpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfTiwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEX05fU0FGRShzLCBpLCBsZW5ndGgs
IG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1BfU1RBUlQo
cywgc3RhcnQsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9Q
UkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfUFJFVl9DSEFSX1VO
U0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVURl9JU19T
RUNPTkRfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVF
KChzKVstLShpKV0sIChjKSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX1NFQ09ORF9T
VVJST0dBVEUoKHMpWy0tKGkpXSkpIHsgXAorICAgICAgICAtLShpKTsgXAorICAgIH0gXAorfQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OX1VOU0FGRSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19OX1VOU0FGRShzLCBpLCBuKSB7
IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAg
IFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAgICB9IFwK
K30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1J
VF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX0xJTUlU
X1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKChzKVsoaSkt
MV0pKSB7IFwKKyAgICAgICAgKysoaSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFVzZSBVMTZfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEYxNl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwKKyAgICAo
Yyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKGMpKSB7IFwK
KyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZigoaSk+KHN0YXJ0KSAmJiBVVEZf
SVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAgICAgICAgICAgLS0o
aSk7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAoYykpOyBc
CisgICAgICAgICAgICAvKiBzdHJpY3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNhdWdodCBi
eSBVVEZfSVNfRVJST1IoKSBhbmQgVVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAgICAgICAg
fSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNvbmQgc3Vy
cm9nYXRlICovIFwKKyAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICAgICAg
fSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKSB7
IFwKKyAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSBvciBvdGhlciBub24tY2hh
cmFjdGVyICovIFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgVTE2X0JB
Q0tfMShzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19OX1NBRkUo
cywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04ocywgc3RhcnQsIGksIG4pCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0
aCkgVTE2X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKQorCisvKiBGb3JtZXJseSB1
dGYzMi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLworCisvKgorKiBPbGQgZG9jdW1lbnRhdGlvbjoKKyoKKyogICBUaGlzIGZpbGUg
ZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIFVURi0zMiBjb2RlIHVuaXRzIGFuZCBjb2RlIHBv
aW50cy4KKyogICBTaWduYXR1cmVzIGFuZCBzZW1hbnRpY3MgYXJlIHRoZSBzYW1lIGFzIGZvciB0
aGUgc2ltaWxhcmx5IG5hbWVkIG1hY3JvcworKiAgIGluIHV0ZjE2LmguCisqICAgdXRmMzIuaCBp
cyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmg8L3A+CisqICAgYW5k
IHNvbWUgY29tbW9uIGRlZmluaXRpb25zLgorKiAgIDxwPjxiPlVzYWdlOjwvYj4gIElDVSBjb2Rp
bmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVu
IHVzaW5nIHRoZXNlIG1hY3Jvcy4KKyogICAgICAgICAgICAgICAgICBDb21wb3VuZCBzdGF0ZW1l
bnRzIChjdXJseSBicmFjZXMge30pIG11c3QgYmUgdXNlZCAgZm9yIGlmLWVsc2Utd2hpbGUuLi4K
KyogICAgICAgICAgICAgICAgICBib2RpZXMgYW5kIGFsbCBtYWNybyBzdGF0ZW1lbnRzIHNob3Vs
ZCBiZSB0ZXJtaW5hdGVkIHdpdGggc2VtaWNvbG9uLjwvcD4KKyovCisKKy8qIGludGVybmFsIGRl
ZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpIFwKKyAgICAoIShzdHJp
Y3QpID8gXAorICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiA6IFwKKyAgICAgICAgVVRG
X0lTX1VOSUNPREVfQ0hBUihjKSkKKworLyoKKyAqIEZvciB0aGUgc2VtYW50aWNzIG9mIGFsbCBv
ZiB0aGVzZSBtYWNyb3MsIHNlZSB1dGYxNi5oLgorICogVGhlIFVURi0zMiB2ZXJzaW9ucyBhcmUg
dHJpdmlhbCBiZWNhdXNlIGFueSBjb2RlIHBvaW50IGlzCisgKiBlbmNvZGVkIHVzaW5nIGV4YWN0
bHkgb25lIGNvZGUgdW5pdC4KKyAqLworCisvKiBzaW5nbGUtY29kZSBwb2ludCBkZWZpbml0aW9u
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiBj
bGFzc2VzIG9mIGNvZGUgdW5pdCB2YWx1ZXMgKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TSU5HTEUodWNo
YXIpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMzJfSVNfTEVBRCh1Y2hhcikgMAorLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19UUkFJTCh1
Y2hhcikgMAorCisvKiBudW1iZXIgb2YgY29kZSB1bml0cyBwZXIgY29kZSBwb2ludCAqLworCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjMyX05FRURfTVVMVElQTEVfVUNIQVIoYykgMAorLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9DSEFSX0xFTkdU
SChjKSAxCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjMyX01BWF9DSEFSX0xFTkdUSCAxCisKKy8qIGF2ZXJhZ2UgbnVtYmVy
IG9mIGNvZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2ICovCisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVJSQVlf
U0laRShzaXplKSAoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykg
eyBcCisgICAgKGMpPShzKVtpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jz
b2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1NBRkUocywg
c3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCisgICAg
aWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1Jf
VkFMVUU7IFwKKyAgICB9IFwKK30KKworLyogZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJkIGl0ZXJh
dGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYzMl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBc
Cit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChz
KVsoaSkrK109KGMpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAor
ICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEX05fVU5TQUZFKHMsIGksIG4pIHsgXAor
ICAgIChpKSs9KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMs
IGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywg
c3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKCFVVEYzMl9JU19TQUZF
KGMsIHN0cmljdCkpIHsgXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBc
Cit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpIHsgXAor
ICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0o
Yyk7IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgMHhmZmZkICovIHsgXAorICAg
ICAgICAocylbKGkpKytdPTB4ZmZmZDsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0ZXRF8x
X1NBRkUocywgaSwgbGVuZ3RoKSB7IFwKKyAgICArKyhpKTsgXAorfQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0ZX
RF9OX1NBRkUocywgaSwgbGVuZ3RoLCBuKSB7IFwKKyAgICBpZigoKGkpKz0obikpPihsZW5ndGgp
KSB7IFwKKyAgICAgICAgKGkpPShsZW5ndGgpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJf
U0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgeyBcCit9CisKKy8qIGRlZmluaXRpb25z
IHdpdGggYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAg
ICAoYyk9KHMpWy0tKGkpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9VTlNBRkUocywgaSkg
eyBcCisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fVU5TQUZFKHMsIGksIG4p
IHsgXAorICAgIChpKS09KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElNSVRfVU5T
QUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBp
LCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoIVVURjMyX0lT
X1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgeyBcCisgICAg
LS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikgeyBc
CisgICAgKGkpLT0obik7IFwKKyAgICBpZigoaSk8KHN0YXJ0KSkgeyBcCisgICAgICAgIChpKT0o
c3RhcnQpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElNSVRfU0FGRShz
LCBpLCBsZW5ndGgpIHsgXAorfQorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAyIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKioKKyAq
IEVzdGltYXRlIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBmb3IgYSBzdHJpbmcgYmFzZWQgb24g
dGhlIG51bWJlciBvZiBVVEYtMTYgY29kZSB1bml0cy4KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQVJSQVlfU0la
RShzaXplKSBVVEYxNl9BUlJBWV9TSVpFKHNpemUpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFUxNl9HRVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEZfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgICBVVEYxNl9HRVRfQ0hB
Ul9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfR0VU
IGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUl9TQUZFKHMs
IHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgVVRGMTZfR0VUX0NIQVJfU0FGRShzLCBzdGFy
dCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZf
TkVYVF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgICBVVEYxNl9ORVhUX0NIQVJf
VU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X05FWFQg
aW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX05FWFRfQ0hBUl9TQUZFKHMs
IGksIGxlbmd0aCwgYywgc3RyaWN0KSAgVVRGMTZfTkVYVF9DSEFSX1NBRkUocywgaSwgbGVuZ3Ro
LCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9BUFBFTkRfQ0hB
Ul9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgIFVURjE2X0FQUEVORF9DSEFSX1VOU0FGRShz
LCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9BUFBFTkQgaW5zdGVh
ZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSX1NBRkUocywgaSwg
bGVuZ3RoLCBjKSAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMp
CisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xX1VOU0FG
RSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF8xX1VOU0FGRShzLCBpKSAgICAg
ICAgICAgICAgICAgICAgICAgVVRGMTZfRldEXzFfVU5TQUZFKHMsIGkpCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGX0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSAgICAgICAgICAgICAgICAgVVRGMTZf
RldEXzFfU0FGRShzLCBpLCBsZW5ndGgpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldEX05fVU5T
QUZFKHMsIGksIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9G
V0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF9OX1NBRkUocywgaSwgbGVu
Z3RoLCBuKSAgICAgICAgICAgICAgVVRGMTZfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pCisK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVF9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFSVF9VTlNB
RkUocywgaSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJULCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFy
dCwgaSkgICAgICAgICBVVEYxNl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBpKQorCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9QUkVWX1VOU0FGRSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9VTlNBRkUocywgaSwgYykgICAg
ICAgICAgICAgICAgVVRGMTZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSAgIFVURjE2
X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9CQUNLXzFfVU5TQUZFKHMsIGkpICAgICAgICAgICAgICAgICAgICAg
IFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tf
MV9TQUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS18xX1NBRkUocywg
c3RhcnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JB
Q0tfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLX05fVU5TQUZF
KHMsIGksIG4pICAgICAgICAgICAgICAgICAgIFVURjE2X0JBQ0tfTl9VTlNBRkUocywgaSwgbikK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0LCBpLCBuKSAgICAg
ICAgICAgICAgVVRGMTZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pCisKKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVF9VTlNBRkUsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9VTlNBRkUocywgaSkgICAg
ICAgICAgICAgIFVURjE2X1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3Ro
KSBVVEYxNl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKy8qIERl
ZmluZSBkZWZhdWx0IG1hY3JvcyAoVVRGLTE2ICJzYWZlIikgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICogRG9lcyB0aGlzIGNvZGUgdW5pdCBhbG9uZSBl
bmNvZGUgYSBjb2RlIHBvaW50IChCTVAsIG5vdCBhIHN1cnJvZ2F0ZSk/CisgKiBTYW1lIGFzIFVU
RjE2X0lTX1NJTkdMRS4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19T
SU5HTEUgYW5kIFUxNl9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X0lTX1NJTkdMRSh1Y2hhcikgVTE2X0lTX1NJTkdMRSh1Y2hhcikKKworLyoqCisgKiBJcyB0aGlz
IGNvZGUgdW5pdCB0aGUgZmlyc3Qgb25lIG9mIHNldmVyYWwgKGEgbGVhZCBzdXJyb2dhdGUpPwor
ICogU2FtZSBhcyBVVEYxNl9JU19MRUFELgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVX0lTX0xFQUQgYW5kIFUxNl9JU19MRUFELCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9JU19MRUFEKHVjaGFyKSBVMTZfSVNfTEVBRCh1Y2hhcikKKworLyoqCisgKiBJcyB0
aGlzIGNvZGUgdW5pdCBvbmUgb2Ygc2V2ZXJhbCBidXQgbm90IHRoZSBmaXJzdCBvbmUgKGEgdHJh
aWwgc3Vycm9nYXRlKT8KKyAqIFNhbWUgYXMgVVRGMTZfSVNfVFJBSUwuCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwgc2VlIHV0
Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfSVNfVFJBSUwodWNoYXIpIFUxNl9JU19UUkFJTCh1
Y2hhcikKKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSBwb2ludCByZXF1aXJlIG11bHRpcGxlIGNv
ZGUgdW5pdHMgKGlzIGl0IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50KT8KKyAqIFNhbWUgYXMg
VVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hBUi4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBV
MTZfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHhmZmZmKSBpbnN0ZWFkLgorICovCisj
ZGVmaW5lIFVURl9ORUVEX01VTFRJUExFX1VDSEFSKGMpIFVURjE2X05FRURfTVVMVElQTEVfVUNI
QVIoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIHRvIGVuY29kZSB0
aGlzIGNvZGUgcG9pbnQgKDEgb3IgMik/CisgKiBTYW1lIGFzIFVURjE2X0NIQVJfTEVOR1RILgor
ICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9DSEFSX0xFTkdUSChjKSBVMTZfTEVOR1RIKGMpCisKKy8q
KgorICogSG93IG1hbnkgY29kZSB1bml0cyBhcmUgdXNlZCBhdCBtb3N0IGZvciBhbnkgVW5pY29k
ZSBjb2RlIHBvaW50ICgyKT8KKyAqIFNhbWUgYXMgVVRGMTZfTUFYX0NIQVJfTEVOR1RILgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTUFYX0xFTkdUSCwgc2VlIHV0Zl9v
bGQuaC4KKyAqLworI2RlZmluZSBVVEZfTUFYX0NIQVJfTEVOR1RIIFUxNl9NQVhfTEVOR1RICisK
Ky8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBjb250YWlucyB0aGUgY29kZSB1
bml0IGkuCisgKiBpIGNvdWxkIHBvaW50IHRvIHRoZSBsZWFkIG9yIHRoZSB0cmFpbCBzdXJyb2dh
dGUgZm9yIHRoZSBjb2RlIHBvaW50LgorICogaSBpcyBub3QgbW9kaWZpZWQuCisgKiBTYW1lIGFz
IFVURjE2X0dFVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmlu
ZSBVVEZfR0VUX0NIQVIocywgc3RhcnQsIGksIGxlbmd0aCwgYykgVTE2X0dFVChzLCBzdGFydCwg
aSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRoYXQgc3Rh
cnRzIGF0IGNvZGUgdW5pdCBpCisgKiBhbmQgYWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1
bml0cyBvZiB0aGlzIGNvZGUgcG9pbnQgKHBvc3QtaW5jcmVtZW50KS4KKyAqIGkgbXVzdCBwb2lu
dCB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIGEgY29kZSBwb2ludC4KKyAqIE90aGVyd2lzZSBj
IGlzIHNldCB0byB0aGUgdHJhaWwgdW5pdCAoc3Vycm9nYXRlKSBpdHNlbGYuCisgKiBTYW1lIGFz
IFVURjE2X05FWFRfQ0hBUi4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVu
Z3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVYVCwgc2Vl
IHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSKHMsIGksIGxlbmd0aCwgYykg
VTE2X05FWFQocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFwcGVuZCB0aGUgY29kZSB1bml0
cyBvZiBjb2RlIHBvaW50IGMgdG8gdGhlIHN0cmluZyBhdCBpbmRleCBpCisgKiBhbmQgYWR2YW5j
ZSBpIHRvIGJleW9uZCB0aGUgbmV3IGNvZGUgdW5pdHMgKHBvc3QtaW5jcmVtZW50KS4KKyAqIFRo
ZSBjb2RlIHVuaXRzIGJlZ2lubmluZyBhdCBpbmRleCBpIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisg
KiBTYW1lIGFzIFVURjE2X0FQUEVORF9DSEFSLgorICogXHByZSAwPD1jPD0weDEwZmZmZgorICog
XHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLgorICovCisj
ZGVmaW5lIFVURl9BUFBFTkRfQ0hBUihzLCBpLCBsZW5ndGgsIGMpIFVURjE2X0FQUEVORF9DSEFS
X1NBRkUocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFkdmFuY2UgaSB0byBiZXlvbmQgdGhl
IGNvZGUgdW5pdHMgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBiZWdpbnMgYXQgaS4KKyAqIEkuZS4s
IGFkdmFuY2UgaSBieSBvbmUgY29kZSBwb2ludC4KKyAqIFNhbWUgYXMgVVRGMTZfRldEXzEuCisg
KiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLgorICovCisj
ZGVmaW5lIFVURl9GV0RfMShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShzLCBpLCBsZW5ndGgpCisK
Ky8qKgorICogQWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1bml0cyBvZiB0aGUgbiBjb2Rl
IHBvaW50cyB3aGVyZSB0aGUgZmlyc3Qgb25lIGJlZ2lucyBhdCBpLgorICogSS5lLiwgYWR2YW5j
ZSBpIGJ5IG4gY29kZSBwb2ludHMuCisgKiBTYW1lIGFzIFVUMTZfRldEX04uCisgKiBccHJlIDA8
PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
Rl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pCisKKy8q
KgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBpIGFuZCBhZGp1c3QgaXQgc28gdGhh
dCBpdCBwb2ludHMgdG8gdGhlIGJlZ2lubmluZworICogb2YgYSBjb2RlIHBvaW50LgorICogVGhl
IGlucHV0IGluZGV4IHBvaW50cyB0byBhbnkgY29kZSB1bml0IG9mIGEgY29kZSBwb2ludCBhbmQg
aXMgbW92ZWQgdG8gcG9pbnQgdG8KKyAqIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhlIHNhbWUg
Y29kZSBwb2ludC4gaSBpcyBuZXZlciBpbmNyZW1lbnRlZC4KKyAqIEluIG90aGVyIHdvcmRzLCBp
ZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgbWF0
Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgZGVjcmVtZW50ZWQuIE90aGVyd2lz
ZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0YXJ0IGFuIGl0
ZXJhdGlvbiB3aXRoIFVURl9ORVhUX0NIQVIoKSBmcm9tIGEgcmFuZG9tIGluZGV4LgorICogU2Ft
ZSBhcyBVVEYxNl9TRVRfQ0hBUl9TVEFSVC4KKyAqIFxwcmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBc
cG9zdCBzdGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX1NF
VF9DSEFSX1NUQVJUKHMsIHN0YXJ0LCBpKSBVMTZfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKQor
CisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRoYXQgaGFzIGNvZGUgdW5pdHMgYmVm
b3JlIGkKKyAqIGFuZCBtb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0
aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGlzIGNvZGUgcG9pbnQg
KHByZS1pbmNyZW1lbnQpLgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQg
YWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2Vk
KS4KKyAqIFNhbWUgYXMgVVRGMTZfUFJFVl9DSEFSLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgK
KyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X1BSRVYsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX1BSRVZf
Q0hBUihzLCBzdGFydCwgaSwgYykgVTE2X1BSRVYocywgc3RhcnQsIGksIGMpCisKKy8qKgorICog
TW92ZSBpIGJhY2t3YXJkICh0b3dhcmRzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZykKKyAq
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMgY29kZSB1
bml0cyBiZWZvcmUgaS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBvbmUgY29kZSBwb2lu
dC4KKyAqIGkgbXVzdCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IGFmdGVyIHRoZSBsYXN0
IHVuaXQgb2YgYSBjb2RlIHBvaW50IChpPT1sZW5ndGggaXMgYWxsb3dlZCkuCisgKiBTYW1lIGFz
IFVURjE2X0JBQ0tfMS4KKyAqIFxwcmUgc3RhcnQ8aTw9bGVuZ3RoCisgKiBccG9zdCBzdGFydDw9
aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNL
XzEsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMShzLCBzdGFydCwgaSkg
VTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqCisgKiBNb3ZlIGkgYmFja3dhcmQgKHRvd2Fy
ZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5p
dCBvZiB0aGUgbiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgY29kZSB1bml0cyBiZWZvcmUgaS4KKyAq
IEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBuIGNvZGUgcG9pbnRzLgorICogaSBtdXN0IHBvaW50
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9p
bnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfQkFDS19OLgorICog
XHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4K
KyAqLworI2RlZmluZSBVVEZfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKSBVMTZfQkFDS19OKHMsIHN0
YXJ0LCBpLCBuKQorCisvKioKKyAqIFRha2UgdGhlIHJhbmRvbS1hY2Nlc3MgaW5kZXggaSBhbmQg
YWRqdXN0IGl0IHNvIHRoYXQgaXQgcG9pbnRzIGJleW9uZAorICogYSBjb2RlIHBvaW50LiBUaGUg
aW5wdXQgaW5kZXggcG9pbnRzIGJleW9uZCBhbnkgY29kZSB1bml0CisgKiBvZiBhIGNvZGUgcG9p
bnQgYW5kIGlzIG1vdmVkIHRvIHBvaW50IGJleW9uZCB0aGUgbGFzdCBjb2RlIHVuaXQgb2YgdGhl
IHNhbWUKKyAqIGNvZGUgcG9pbnQuIGkgaXMgbmV2ZXIgZGVjcmVtZW50ZWQuCisgKiBJbiBvdGhl
ciB3b3JkcywgaWYgaSBwb2ludHMgdG8gYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBpcyBwcmVjZWRl
ZCBieSBhIG1hdGNoaW5nCisgKiBsZWFkIHN1cnJvZ2F0ZSwgdGhlbiBpIGlzIGluY3JlbWVudGVk
LiBPdGhlcndpc2UgaXQgaXMgbm90IG1vZGlmaWVkLgorICogVGhpcyBjYW4gYmUgdXNlZCB0byBz
dGFydCBhbiBpdGVyYXRpb24gd2l0aCBVVEZfUFJFVl9DSEFSKCkgZnJvbSBhIHJhbmRvbSBpbmRl
eC4KKyAqIFNhbWUgYXMgVVRGMTZfU0VUX0NIQVJfTElNSVQuCisgKiBccHJlIHN0YXJ0PGk8PWxl
bmd0aAorICogXHBvc3Qgc3RhcnQ8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9TRVRfQ0hBUl9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSBVMTZfU0VUX0NQX0xJ
TUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9B
UEkgKi8KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3Uv
dW5pY29kZS91dHlwZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dHlw
ZXMuaAppbmRleCAxYmNmN2Y1ZDM5MDlmZjY2YjY1OGVhOTViYTRhMmNkZWI1NDljOWMzLi44Zjky
NGM5ZDE0MjQxNzkyODQ2NGI3OTQ0Nzk2MTIxNzYwMTAyOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXR5cGVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ljdS91bmljb2RlL3V0eXBlcy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zNCw5ICszNCwxMyBAQAogCiAKICNpbmNs
dWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCi0jaW5jbHVkZSAidW5pY29kZS91dGYuaCIKICNpbmNs
dWRlICJ1bmljb2RlL3V2ZXJzaW9uLmgiCiAjaW5jbHVkZSAidW5pY29kZS91Y29uZmlnLmgiCisj
aW5jbHVkZSA8ZmxvYXQuaD4KKworI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVS
UworIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCisjZW5kaWYKIAogLyohCiAgKiBcZmlsZQpA
QCAtNTMsNyArNTcsNyBAQAogICogXGRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQogICogQGludGVy
bmFsCiAgKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogIyAgIGlm
bmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQogIyAgICAgICBkZWZpbmUgVV9TSE9XX0NQTFVTUExV
U19BUEkgMAogIyAgIGVuZGlmCkBAIC02Nyw2ICs3MSwxMiBAQAogLyoqCiAgKiBcZGVmIFVfSElE
RV9EUkFGVF9BUEkKICAqIERlZmluZSB0aGlzIHRvIDEgdG8gcmVxdWVzdCB0aGF0IGRyYWZ0IEFQ
SSBiZSAiaGlkZGVuIgorICogQGludGVybmFsCisgKi8KKy8qKgorICogXGRlZiBVX0hJREVfSU5U
RVJOQUxfQVBJCisgKiBEZWZpbmUgdGhpcyB0byAxIHRvIHJlcXVlc3QgdGhhdCBpbnRlcm5hbCBB
UEkgYmUgImhpZGRlbiIKKyAqIEBpbnRlcm5hbAogICovCiAjaWYgIVVfREVGQVVMVF9TSE9XX0RS
QUZUICYmICFkZWZpbmVkKFVfU0hPV19EUkFGVF9BUEkpCiAjZGVmaW5lIFVfSElERV9EUkFGVF9B
UEkgMQpAQCAtNzUsMTE2ICs4NSw4IEBACiAjZGVmaW5lIFVfSElERV9JTlRFUk5BTF9BUEkgMQog
I2VuZGlmCiAKLSNpZmRlZiBVX0hJREVfRFJBRlRfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91ZHJh
ZnQuaCIKLSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCi0jaW5jbHVkZSAi
dW5pY29kZS91ZGVwcmN0ZC5oIgotI2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVDQVRFRF9B
UEkKLSNpbmNsdWRlICJ1bmljb2RlL3VvYnNsZXRlLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElE
RV9JTlRFUk5BTF9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3VpbnRybmFsLmgiCi0jZW5kaWYKLQot
I2lmZGVmIFVfSElERV9TWVNURU1fQVBJCi0jaW5jbHVkZSAidW5pY29kZS91c3lzdGVtLmgiCi0j
ZW5kaWYKLQogLyoqIEB9ICovCiAKLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogY2hhciBD
aGFyYWN0ZXIgc2V0IGZhbWlseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioKLSAqIFVfQ0hBUlNF
VF9GQU1JTFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBB
U0NJSSBiYXNlZCBwbGF0Zm9ybS4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVmaW5lIFVf
QVNDSUlfRkFNSUxZIDAKLQotLyoqCi0gKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRo
aXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gRUJDRElDIGJhc2VkIHBsYXRmb3JtLgot
ICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNkZWZpbmUgVV9FQkNESUNfRkFNSUxZIDEKLQotLyoq
Ci0gKiBcZGVmIFVfQ0hBUlNFVF9GQU1JTFkKLSAqCi0gKiA8cD5UaGVzZSBkZWZpbml0aW9ucyBh
bGxvdyB0byBzcGVjaWZ5IHRoZSBlbmNvZGluZyBvZiB0ZXh0Ci0gKiBpbiB0aGUgY2hhciBkYXRh
IHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgcGxhdGZvcm0gYW5kIHRoZSBjb21waWxlci4KLSAqIEl0
IGlzIGVub3VnaCB0byBkZXRlcm1pbmUgdGhlIGNvZGUgcG9pbnQgdmFsdWVzIG9mICJpbnZhcmlh
bnQgY2hhcmFjdGVycyIsCi0gKiB3aGljaCBhcmUgdGhlIG9uZXMgc2hhcmVkIGJ5IGFsbCBlbmNv
ZGluZ3MgdGhhdCBhcmUgaW4gdXNlCi0gKiBvbiBhIGdpdmVuIHBsYXRmb3JtLjwvcD4KLSAqCi0g
KiA8cD5UaG9zZSAiaW52YXJpYW50IGNoYXJhY3RlcnMiIHNob3VsZCBiZSBhbGwgdGhlIHVwcGVy
Y2FzZSBhbmQgbG93ZXJjYXNlCi0gKiBsYXRpbiBsZXR0ZXJzLCB0aGUgZGlnaXRzLCB0aGUgc3Bh
Y2UsIGFuZCAiYmFzaWMgcHVuY3R1YXRpb24iLgotICogQWxzbywgJ1xcbicsICdcXHInLCAnXFx0
JyBzaG91bGQgYmUgYXZhaWxhYmxlLjwvcD4KLSAqCi0gKiA8cD5UaGUgbGlzdCBvZiAiaW52YXJp
YW50IGNoYXJhY3RlcnMiIGlzOjxicj4KLSAqIFxjb2RlCi0gKiAgICBBLVogIGEteiAgMC05ICBT
UEFDRSAgIiAgJSAgJmFtcDsgICcgICggICkgICogICsgICwgIC0gIC4gIC8gIDogIDsgIDwgID0g
ID4gID8gIF8KLSAqIFxlbmRjb2RlCi0gKiA8YnI+Ci0gKiAoNTIgbGV0dGVycyArIDEwIG51bWJl
cnMgKyAyMCBwdW5jL3N5bS9zcGFjZSA9IDgyIHRvdGFsKTwvcD4KLSAqCi0gKiA8cD5UaGlzIG1h
dGNoZXMgdGhlIElCTSBTeW50YWN0aWMgQ2hhcmFjdGVyIFNldCAoQ1MgNjQwKS48L3A+Ci0gKgot
ICogPHA+SW4gb3RoZXIgd29yZHMsIGFsbCB0aGUgZ3JhcGhpYyBjaGFyYWN0ZXJzIGluIDctYml0
IEFTQ0lJIHNob3VsZAotICogYmUgc2FmZWx5IGFjY2Vzc2libGUgZXhjZXB0IHRoZSBmb2xsb3dp
bmc6PC9wPgotICoKLSAqIFxjb2RlCi0gKiAgICAnXCcgPGJhY2tzbGFzaD4KLSAqICAgICdbJyA8
bGVmdCBicmFja2V0PgotICogICAgJ10nIDxyaWdodCBicmFja2V0PgotICogICAgJ3snIDxsZWZ0
IGJyYWNlPgotICogICAgJ30nIDxyaWdodCBicmFjZT4KLSAqICAgICdeJyA8Y2lyY3VtZmxleD4K
LSAqICAgICd+JyA8dGlsZGU+Ci0gKiAgICAnIScgPGV4Y2xhbWF0aW9uIG1hcms+Ci0gKiAgICAn
IycgPG51bWJlciBzaWduPgotICogICAgJ3wnIDx2ZXJ0aWNhbCBsaW5lPgotICogICAgJyQnIDxk
b2xsYXIgc2lnbj4KLSAqICAgICdAJyA8Y29tbWVyY2lhbCBhdD4KLSAqICAgICdgJyA8Z3JhdmUg
YWNjZW50PgotICogXGVuZGNvZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0KLSNpZm5kZWYg
VV9DSEFSU0VUX0ZBTUlMWQotIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIDAKLSNlbmRpZgot
Ci0vKioKLSAqIFxkZWYgVV9DSEFSU0VUX0lTX1VURjgKLSAqCi0gKiBIYXJkY29kZSB0aGUgZGVm
YXVsdCBjaGFyc2V0IHRvIFVURi04LgotICoKLSAqIElmIHRoaXMgaXMgc2V0IHRvIDEsIHRoZW4K
LSAqIC0gSUNVIHdpbGwgYXNzdW1lIHRoYXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhciosIFN0cmlu
Z1BpZWNlLCBzdGQ6OnN0cmluZyBldGMuCi0gKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwgcmVnYXJk
bGVzcyBvZiB3aGF0IHRoZSBzeXN0ZW0gQVBJIHVzZXMKLSAqIC0gc29tZSBJQ1UgY29kZSB3aWxs
IHVzZSBmYXN0IGZ1bmN0aW9ucyBsaWtlIHVfc3RyRnJvbVVURjgoKQotICogICByYXRoZXIgdGhh
biB0aGUgbW9yZSBnZW5lcmFsIGFuZCBtb3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9uIEFQSSAo
dWNudi5oKQotICogLSB1Y252X2dldERlZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMgIlVURi04
IgotICogLSB1Y252X3NldERlZmF1bHROYW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwgbm90IGNo
YW5nZSB0aGUgZGVmYXVsdCBjaGFyc2V0Ci0gKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNVIGFyZSBz
bWFsbGVyCi0gKiAtIG1vcmUgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0aGUgVUNP
TkZJR19OT19DT05WRVJTSU9OIGJ1aWxkLXRpbWUKLSAqICAgY29uZmlndXJhdGlvbiBvcHRpb24g
KHNlZSB1bmljb2RlL3Vjb25maWcuaCkKLSAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBi
dWlsZCBvcHRpb24gaW4gdWNvbmZpZy5oIGlzIG1vcmUgdXNhYmxlCi0gKgotICogQHN0YWJsZSBJ
Q1UgNC4yCi0gKiBAc2VlIFVDT05GSUdfTk9fQ09OVkVSU0lPTgotICovCi0jaWZuZGVmIFVfQ0hB
UlNFVF9JU19VVEY4Ci0jICAgZGVmaW5lIFVfQ0hBUlNFVF9JU19VVEY4IDAKLSNlbmRpZgotCiAv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCiAvKiBJQ1VEQVRBIG5hbWluZyBzY2hlbWUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCkBAIC0yMzIsOSArMTM0LDExIEBACiAgKiBJQ1UgMS44Lnggb24gRUJDRElD
LCBldGMuLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRBX05BTUUg
ICAgImljdWR0IiBVX0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUiAgLyoq
PCBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBVX0lDVV9W
RVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUgorI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCiAjZGVmaW5lIFVfVVNSREFUQV9OQU1FICAgICJ1c3JkdCIgVV9JQ1VfVkVSU0lPTl9T
SE9SVCBVX0lDVURBVEFfVFlQRV9MRVRURVIgIC8qKjwgQGludGVybmFsICovCi0jZGVmaW5lIFVf
VVNFX1VTUkRBVEEgICAgIDAgIC8qKjwgQGludGVybmFsICovCisjZGVmaW5lIFVfVVNFX1VTUkRB
VEEgICAgIDEgIC8qKjwgQGludGVybmFsICovCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KIAogLyoqCiAgKiAgVV9JQ1VfRU5UUllfUE9JTlQgaXMgdGhlIG5hbWUgb2YgdGhlIERM
TCBlbnRyeSBwb2ludCB0byB0aGUgSUNVIGRhdGEgbGlicmFyeS4KQEAgLTI0NywzOCArMTUxLDI4
IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcI2RlZmluZSBVX0lDVV9F
TlRSWV9QT0lOVCBpY3VkdDE5X2RhdAogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUg
VV9JQ1VEQVRBX0VOVFJZX1BPSU5UICBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChVX0lDVV9W
RVJTSU9OX01BSk9SX05VTSwgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0pCisjZGVmaW5lIFVfSUNV
REFUQV9FTlRSWV9QT0lOVCAgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQoVV9JQ1VfVkVSU0lP
Tl9NQUpPUl9OVU0sVV9MSUJfU1VGRklYX0NfTkFNRSkKIAorI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCiAvKioKLSAqIERvIG5vdCB1c2UuCisgKiBEbyBub3QgdXNlLiBOb3RlIHRoYXQgaXQn
cyBPSyBmb3IgdGhlIDJuZCBhcmd1bWVudCB0byBiZSB1bmRlZmluZWQgKGxpdGVyYWwpLgogICog
QGludGVybmFsCiAgKi8KLSNkZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3Is
IG1pbm9yKSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikKKyNkZWZpbmUg
VV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3Isc3VmZikgVV9ERUZfSUNVREFUQV9FTlRS
WV9QT0lOVChtYWpvcixzdWZmKQorCiAvKioKICAqIERvIG5vdCB1c2UuCiAgKiBAaW50ZXJuYWwK
ICAqLwogI2lmbmRlZiBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UCiAvKiBhZmZlY3RlZCBieSBz
eW1ib2wgcmVuYW1pbmcuIFNlZSBwbGF0Zm9ybS5oICovCi0jZGVmaW5lIFVfREVGX0lDVURBVEFf
RU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBpY3VkdCMjbWFqb3IjI21pbm9yIyNfZGF0Ci0jZW5k
aWYKLQotLyoqCi0gKiBcZGVmIFVfQ0FMTENPTlYKLSAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJ
Ti9VX0NERUNMX0VORCwgdGhpcyBxdWFsaWZpZXIgaXMgbmVjZXNzYXJ5Ci0gKiBpbiBjYWxsYmFj
ayBmdW5jdGlvbiB0eXBlZGVmcyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50
aW9uCi0gKiBpcyBjb21wYXRpYmxlLgotICoKLSAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24t
SUNVLUFQSSBmdW5jdGlvbnMuCi0gKiBXaGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQ
SSwKLSAqIHlvdSBtdXN0IHVzZSB0aGUgVV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4K
LSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jaWYgZGVmaW5lZChPUzM5MCkgJiYgZGVmaW5lZChY
UF9DUExVU1BMVVMpCi0jICAgIGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wKKyNpZm5kZWYgVV9M
SUJfU1VGRklYX0NfTkFNRQorI2RlZmluZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9y
LCBzdWZmKSBpY3VkdCMjbWFqb3IjI19kYXQKICNlbHNlCi0jICAgIGRlZmluZSBVX0NBTExDT05W
IFVfRVhQT1JUMgorI2RlZmluZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBzdWZm
KSBpY3VkdCMjc3VmZiAjIyBtYWpvciMjX2RhdAorI2VuZGlmCiAjZW5kaWYKKyNlbmRpZiAgLyog
VV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqIFxkZWYgTlVMTApAQCAtMjg2LDcgKzE4
MCw3IEBACiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmbmRlZiBOVUxMCi0jaWZkZWYgWFBf
Q1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCAgICAwCiAjZWxzZQog
I2RlZmluZSBOVUxMICAgICgodm9pZCAqKTApCkBAIC0zMTUsNTQgKzIwOSwxNyBAQCB0eXBlZGVm
IGRvdWJsZSBVRGF0ZTsKIC8qKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBwZXIgZGF5IEBz
dGFibGUgSUNVIDIuMCAqLwogI2RlZmluZSBVX01JTExJU19QRVJfREFZICAgICAgICg4NjQwMDAw
MCkKIAotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiBVQ2xhc3NJRC1iYXNlZCBSVFRJICov
Ci0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogCisgKiBNYXhpbXVtIFVEYXRlIHZhbHVlIAor
ICogQHN0YWJsZSBJQ1UgNC44IAorICovIAorI2RlZmluZSBVX0RBVEVfTUFYIERCTF9NQVgKIAog
LyoqCi0gKiBVQ2xhc3NJRCBpcyB1c2VkIHRvIGlkZW50aWZ5IGNsYXNzZXMgd2l0aG91dCB1c2lu
ZyBSVFRJLCBzaW5jZSBSVFRJCi0gKiBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgQysrIGNv
bXBpbGVycy4gIEVhY2ggY2xhc3MgaGllcmFyY2h5IHdoaWNoIG5lZWRzCi0gKiB0byBpbXBsZW1l
bnQgcG9seW1vcnBoaWMgY2xvbmUoKSBvciBvcGVyYXRvcj09KCkgZGVmaW5lcyB0d28gbWV0aG9k
cywKLSAqIGRlc2NyaWJlZCBpbiBkZXRhaWwgYmVsb3cuICBVQ2xhc3NJRCB2YWx1ZXMgY2FuIGJl
IGNvbXBhcmVkIHVzaW5nCi0gKiBvcGVyYXRvcj09KCkuIE5vdGhpbmcgZWxzZSBzaG91bGQgYmUg
ZG9uZSB3aXRoIHRoZW0uCi0gKgotICogXHBhcgotICogZ2V0RHluYW1pY0NsYXNzSUQoKSBpcyBk
ZWNsYXJlZCBpbiB0aGUgYmFzZSBjbGFzcyBvZiB0aGUgaGllcmFyY2h5IGFzCi0gKiBhIHB1cmUg
dmlydHVhbC4gIEVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBpdCBpbiB0aGUgc2Ft
ZSB3YXk6Ci0gKgotICogXGNvZGUKLSAqICAgICAgY2xhc3MgQmFzZSB7Ci0gKiAgICAgIHB1Ymxp
YzoKLSAqICAgICAgICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25z
dCA9IDA7Ci0gKiAgICAgIH0KLSAqCi0gKiAgICAgIGNsYXNzIERlcml2ZWQgewotICogICAgICBw
dWJsaWM6Ci0gKiAgICAgICAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkg
Y29uc3QKLSAqICAgICAgICAgICAgeyByZXR1cm4gRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgp
OyB9Ci0gKiAgICAgIH0KLSAqIFxlbmRjb2RlCi0gKgotICogRWFjaCBjb25jcmV0ZSBjbGFzcyBp
bXBsZW1lbnRzIGdldFN0YXRpY0NsYXNzSUQoKSBhcyB3ZWxsLCB3aGljaCBhbGxvd3MKLSAqIGNs
aWVudHMgdG8gdGVzdCBmb3IgYSBzcGVjaWZpYyB0eXBlLgotICoKLSAqIFxjb2RlCi0gKiAgICAg
IGNsYXNzIERlcml2ZWQgewotICogICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICBzdGF0aWMgVUNs
YXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQoKTsKLSAqICAgICAgcHJpdmF0ZToKLSAq
ICAgICAgICAgIHN0YXRpYyBjaGFyIGZnQ2xhc3NJRDsKLSAqICAgICAgfQotICoKLSAqICAgICAg
Ly8gSW4gRGVyaXZlZC5jcHA6Ci0gKiAgICAgIFVDbGFzc0lEIERlcml2ZWQ6OmdldFN0YXRpY0Ns
YXNzSUQoKQotICogICAgICAgIHsgcmV0dXJuIChVQ2xhc3NJRCkmRGVyaXZlZDo6ZmdDbGFzc0lE
OyB9Ci0gKiAgICAgIGNoYXIgRGVyaXZlZDo6ZmdDbGFzc0lEID0gMDsgLy8gVmFsdWUgaXMgaXJy
ZWxldmFudAotICogXGVuZGNvZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi10eXBlZGVmIHZv
aWQqIFVDbGFzc0lEOworICogTWluaW11bSBVRGF0ZSB2YWx1ZSAKKyAqIEBzdGFibGUgSUNVIDQu
OCAKKyAqLyAKKyNkZWZpbmUgVV9EQVRFX01JTiAtVV9EQVRFX01BWAogCiAvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCiAvKiBTaGFyZWQgbGlicmFyeS9ETEwgaW1wb3J0LWV4cG9ydCBBUEkgY29udHJv
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCkBAIC0zNzMsNyArMjMwLDcgQEAgdHlw
ZWRlZiB2b2lkKiBVQ2xhc3NJRDsKICAqIElDVSBpcyBzZXBhcmF0ZWQgaW50byB0aHJlZSBsaWJy
YXJpZXMuCiAgKi8KIAotLyoKKy8qKgogICogXGRlZiBVX0NPTUJJTkVEX0lNUExFTUVOVEFUSU9O
CiAgKiBTZXQgdG8gZXhwb3J0IGxpYnJhcnkgc3ltYm9scyBmcm9tIGluc2lkZSB0aGUgSUNVIGxp
YnJhcnkKICAqIHdoZW4gYWxsIG9mIElDVSBpcyBpbiBhIHNpbmdsZSBsaWJyYXJ5LgpAQCAtNTQw
LDkgKzM5Nyw5IEBAIHR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CiAgKgogICogTm90ZTogVGhpcyBp
cyBjdXJyZW50bHkgb25seSBkb25lIG9uIFdpbmRvd3MgYmVjYXVzZQogICogc29tZSBMaW51eC9V
bml4IGNvbXBpbGVycyBoYXZlIHByb2JsZW1zIHdpdGggZGVmaW5pbmcgZ2xvYmFsIG5ldy9kZWxl
dGUuCi0gKiBPbiBXaW5kb3dzLCBVX1dJTkRPV1MgaXMgZGVmaW5lZCwgYW5kIGl0IGlzIF9NU0Nf
VkVSPj0xMjAwIGZvciBNU1ZDIDYuMCBhbmQgaGlnaGVyLgorICogT24gV2luZG93cywgaXQgaXMg
X01TQ19WRVI+PTEyMDAgZm9yIE1TVkMgNi4wIGFuZCBoaWdoZXIuCiAgKi8KLSNpZiBkZWZpbmVk
KFhQX0NQTFVTUExVUykgJiYgZGVmaW5lZChXSU4zMikgJiYgVV9ERUJVRyAmJiBVX09WRVJSSURF
X0NYWF9BTExPQ0FUSU9OICYmIChfTVNDX1ZFUj49MTIwMCkgJiYgIWRlZmluZWQoVV9TVEFUSUNf
SU1QTEVNRU5UQVRJT04pICYmIChkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9OKSB8fCBk
ZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExFTUVOVEFU
SU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VUX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZ
T1VURVhfSU1QTEVNRU5UQVRJT04pKQorI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmIFVfREVC
VUcgJiYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDApICYmICFk
ZWZpbmVkKFVfU1RBVElDX0lNUExFTUVOVEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1PTl9JTVBM
RU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQo
VV9JT19JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikg
fHwgZGVmaW5lZChVX0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSkKIAogI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCiAvKioKQEAgLTc0Myw2ICs2MDAsNyBAQCB0eXBlZGVmIGVudW0gVUVycm9y
Q29kZSB7CiAgICAgVV9VTkRFRklORURfS0VZV09SRCwgICAgICAgICAgICAgIC8qKjwgVW5kZWZp
bmVkIFBsdXJhbCBrZXl3b3JkICovCiAgICAgVV9ERUZBVUxUX0tFWVdPUkRfTUlTU0lORywgICAg
ICAgIC8qKjwgTWlzc2luZyBERUZBVUxUIHJ1bGUgaW4gcGx1cmFsIHJ1bGVzICovCiAgICAgVV9E
RUNJTUFMX05VTUJFUl9TWU5UQVhfRVJST1IsICAgIC8qKjwgRGVjaW1hbCBudW1iZXIgc3ludGF4
IGVycm9yICovCisgICAgVV9GT1JNQVRfSU5FWEFDVF9FUlJPUiwgICAgICAgICAgIC8qKjwgQ2Fu
bm90IGZvcm1hdCBhIG51bWJlciBleGFjdGx5IGFuZCByb3VuZGluZyBtb2RlIGlzIFJPVU5EX1VO
TkVDRVNTQVJZIEBzdGFibGUgSUNVIDQuOCAqLwogICAgIFVfRk1UX1BBUlNFX0VSUk9SX0xJTUlU
LCAgICAgICAgICAvKio8IFRoZSBsaW1pdCBmb3IgZm9ybWF0IGxpYnJhcnkgZXJyb3JzICovCiAK
ICAgICAvKgpAQCAtODI2LDcgKzY4NCw3IEBAIHR5cGVkZWYgZW51bSBVRXJyb3JDb2RlIHsKIC8q
IFVzZSB0aGUgZm9sbG93aW5nIHRvIGRldGVybWluZSBpZiBhbiBVRXJyb3JDb2RlIHJlcHJlc2Vu
dHMgKi8KIC8qIG9wZXJhdGlvbmFsIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gKi8KIAotI2lmZGVmIFhQ
X0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAgICAgLyoqCiAgICAgICogRG9lcyB0aGUg
ZXJyb3IgY29kZSBpbmRpY2F0ZSBzdWNjZXNzPwogICAgICAqIEBzdGFibGUgSUNVIDIuMApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dmVybnVtLmgKaW5kZXggNzIyMTYxMjky
MDkyZGE2MDYyODljMDZlYzIzNjEzMDg1MzkxYzQxOC4uYmQwYjBjOTg5OGEyMzU3OWU4ZmI4MTE5
ZjZjZDE2MzlhYzJhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91
bmljb2RlL3V2ZXJudW0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUv
dXZlcm51bS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSog
ICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0xMiw1NyArMTIsNjYgQEAKICogICBDcmVh
dGVkIGJ5OiBWbGFkaW1pciBXZWluc3RlaW4KICogICBVcGRhdGVkIGJ5OiBTdGV2ZW4gUi4gTG9v
bWlzCiAqCi0qICBHZXRzIGluY2x1ZGVkIGJ5IHV2ZXJzaW9uLmggYW5kIG90aGVyIGZpbGVzLgot
KgotKiBJTVBPUlRBTlQ6IFdoZW4gdXBkYXRpbmcgdmVyc2lvbiwgdGhlIGZvbGxvd2luZyB0aGlu
Z3MgbmVlZCB0byBiZSBkb25lOgotKiBzb3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51bS5oIC0g
dGhpcyBmaWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAotKiAgICAgICAgcGF0Y2hsZXZlbCwgc3Vm
Zml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50cywgbmFtZXNwYWNlLAotKiAgICAg
ICAgICAgICAgICAgICAgcmVuYW1pbmcgbWFjcm8sIGFuZCBjb3B5cmlnaHQKLSoKLSogVGhlIGZv
bGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCwgd2hpY2ggY2FuIGJlIGRv
bmUKLSogIGJ5IHJ1bm5pbmcgdGhlIFVOSVggbWFrZWZpbGUgdGFyZ2V0ICd1cGRhdGUtd2luZG93
cy1tYWtlZmlsZXMnIGluIGljdS9zb3VyY2UuCi0qCi0qCi0qIHNvdXJjZS9jb21tb24vY29tbW9u
LnZjcHJvaiAtIHVwZGF0ZSAnT3V0cHV0IGZpbGUgbmFtZScgb24gdGhlIGxpbmsgdGFiIHNvCi0q
ICAgICAgICAgICAgICAgICAgIHRoYXQgaXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9taW5vciBj
b21iaW5hdGlvbgotKiBzb3VyY2UvaTE4bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBj
b21tb24udmNwcm9qCi0qIHNvdXJjZS9sYXlvdXQvbGF5b3V0LnZjcHJvaiAtIHNhbWUgYXMgZm9y
IHRoZSBjb21tb24udmNwcm9qCi0qIHNvdXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3Byb2ogLSBz
YW1lCi0qIHNvdXJjZS9zdHViZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUg
Y29tbW9uLnZjcHJvagotKiBzb3VyY2UvaW8vaW8udmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNv
bW1vbi52Y3Byb2oKLSogc291cmNlL2RhdGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFU
QV9OQU1FIHNvIHRoYXQgaXQgY29udGFpbnMKLSogICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4K
ICovCiAKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogZGVmaW5pdGlvbnMgb2YgSUNV
IHZlcnNpb24gbnVtYmVycworICoKKyAqIFRoaXMgZmlsZSBpcyBpbmNsdWRlZCBieSB1dmVyc2lv
bi5oIGFuZCBvdGhlciBmaWxlcy4gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkKKyAqIG1hY3JvcyBh
bmQgZGVmaW5pdGlvbnMuIFRoZSBhY3R1YWwgdmVyc2lvbiBudW1iZXJzIGFyZSBkZWZpbmVkIGhl
cmUuCisgKi8KKworIC8qCisgICogSU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRo
ZSBmb2xsb3dpbmcgdGhpbmdzIG5lZWQgdG8gYmUgZG9uZToKKyAgKiBzb3VyY2UvY29tbW9uL3Vu
aWNvZGUvdXZlcm51bS5oIC0gdGhpcyBmaWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAorICAqICAg
ICAgICBwYXRjaGxldmVsLCBzdWZmaXgsIHZlcnNpb24sIHNob3J0IHZlcnNpb24gY29uc3RhbnRz
LCBuYW1lc3BhY2UsCisgICogICAgICAgICAgICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQg
Y29weXJpZ2h0CisgICoKKyAgKiBUaGUgZm9sbG93aW5nIGZpbGVzIG5lZWQgdG8gYmUgdXBkYXRl
ZCBhcyB3ZWxsLCB3aGljaCBjYW4gYmUgZG9uZQorICAqICBieSBydW5uaW5nIHRoZSBVTklYIG1h
a2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRvd3MtbWFrZWZpbGVzJyBpbiBpY3Uvc291cmNlLgor
ICAqCisgICoKKyAgKiBzb3VyY2UvY29tbW9uL2NvbW1vbi52Y3Byb2ogLSB1cGRhdGUgJ091dHB1
dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbworICAqICAgICAgICAgICAgICAgICAgIHRo
YXQgaXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbgorICAqIHNvdXJj
ZS9pMThuL2kxOG4udmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAgKiBz
b3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJv
agorICAqIHNvdXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3Byb2ogLSBzYW1lCisgICogc291cmNl
L3N0dWJkYXRhL3N0dWJkYXRhLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9q
CisgICogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9q
CisgICogc291cmNlL2RhdGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9OQU1FIHNv
IHRoYXQgaXQgY29udGFpbnMKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbmV3
IG1ham9yL21pbm9yIGNvbWJpbmF0aW9uIGFuZCB0aGUgVW5pY29kZSB2ZXJzaW9uLgorICAqLwor
CiAjaWZuZGVmIFVWRVJOVU1fSAogI2RlZmluZSBVVkVSTlVNX0gKIAotLyoqIFRoZSBzdGFuZGFy
ZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVhY2ggbGlicmFyeS4g
CisvKiogVGhlIHN0YW5kYXJkIGNvcHlyaWdodCBub3RpY2UgdGhhdCBnZXRzIGNvbXBpbGVkIGlu
dG8gZWFjaCBsaWJyYXJ5LgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNl
cXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUg
VV9DT1BZUklHSFRfU1RSSU5HIFwKLSAgIiBDb3B5cmlnaHQgKEMpIDIwMTEsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4gIgorICAiIENvcHlyaWdodCAoQykgMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAi
CiAKLS8qKiBUaGUgY3VycmVudCBJQ1UgbWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLiAKKy8q
KiBUaGUgY3VycmVudCBJQ1UgbWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICogIFRoaXMg
dmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAg
QHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNAor
I2RlZmluZSBVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA1MgogCi0vKiogVGhlIGN1cnJlbnQgSUNV
IG1pbm9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisvKiogVGhlIGN1cnJlbnQgSUNVIG1pbm9y
IHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRo
ZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0j
ZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNIDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9N
SU5PUl9OVU0gMQogCi0vKiogVGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBh
biBpbnRlZ2VyLiAgCisvKiogVGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBh
biBpbnRlZ2VyLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQg
cmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1Vf
VkVSU0lPTl9QQVRDSExFVkVMX05VTSAxCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZF
TF9OVU0gMAogCi0vKiogVGhlIGN1cnJlbnQgSUNVIGJ1aWxkIGxldmVsIHZlcnNpb24gYXMgYW4g
aW50ZWdlci4gIAorLyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFu
IGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSBpcyBmb3IgdXNlIGJ5IElDVSBjbGllbnRzLiBJdCBk
ZWZhdWx0cyB0byAwLgogICogIEBzdGFibGUgSUNVIDQuMAogICovCkBAIC03MCwzOSArNzksNTkg
QEAKICNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9CVUlMRExFVkVMX05VTSAwCiAjZW5kaWYKIAotLyoq
IEdsdWVkIHZlcnNpb24gc3VmZml4IGZvciByZW5hbWVycyAKKy8qKiBHbHVlZCB2ZXJzaW9uIHN1
ZmZpeCBmb3IgcmVuYW1lcnMKICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJz
ZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5l
IFVfSUNVX1ZFUlNJT05fU1VGRklYIF80NgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NVRkZJWCBf
NTIKIAotLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycyAKKy8q
KgorICogXGRlZiBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisg
Ki8KKy8qKgorICogXGRlZiBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCisgKiBAaW50ZXJu
YWwKKyAqLworLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycwog
ICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2Yg
SUNVLgogICogIElmIGEgY3VzdG9tIHN1ZmZpeCAoc3VjaCBhcyBtYXRjaGluZyBsaWJyYXJ5IHN1
ZmZpeGVzKSBpcyBkZXNpcmVkLCB0aGlzIGNhbiBiZSBtb2RpZmllZC4KICAqICBOb3RlIHRoYXQg
aWYgcHJlc2VudCwgcGxhdGZvcm0uaCBtYXkgY29udGFpbiBhbiBlYXJsaWVyIGRlZmluaXRpb24g
b2YgdGhpcyBtYWNyby4KKyAqICBcZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQogICogIEBz
dGFibGUgSUNVIDQuMgogICovCisKICNpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCi0j
ZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICB4ICMjIF80NgorI2lmZGVmIFVf
SEFWRV9MSUJfU1VGRklYCisjZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5
LHopIHggIyMgeSAjIyAgegorI2RlZmluZSBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4
LHkseikgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkseikKKyNkZWZpbmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgs
VV9JQ1VfVkVSU0lPTl9TVUZGSVgsVV9MSUJfU1VGRklYX0NfTkFNRSkKKyNlbHNlCisjZGVmaW5l
IFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5KSB4ICMjIHkKKyNkZWZpbmUgVV9ERUYy
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5KSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHgseSkKKyNkZWZpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVGMl9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHgsVV9JQ1VfVkVSU0lPTl9TVUZGSVgpCisjZW5kaWYKICNlbmRp
ZgogCiAvKiogVGhlIGN1cnJlbnQgSUNVIGxpYnJhcnkgdmVyc2lvbiBhcyBhIGRvdHRlZC1kZWNp
bWFsIHN0cmluZy4gVGhlIHBhdGNobGV2ZWwKLSAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJp
bmcgaWYgaXQgbm9uLXplcm8uIAorICogIG9ubHkgYXBwZWFycyBpbiB0aGlzIHN0cmluZyBpZiBp
dCBub24temVyby4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50
IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNV
X1ZFUlNJT04gIjQuNi4xIgorI2RlZmluZSBVX0lDVV9WRVJTSU9OICI1Mi4xIgogCi0vKiogVGhl
IGN1cnJlbnQgSUNVIGxpYnJhcnkgbWFqb3IvbWlub3IgdmVyc2lvbiBhcyBhIHN0cmluZyB3aXRo
b3V0IGRvdHMsIGZvciBsaWJyYXJ5IG5hbWUgc3VmZml4ZXMuIAorLyoqIFRoZSBjdXJyZW50IElD
VSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBkb3RzLCBm
b3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4g
dGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi42CiAgKi8K
LSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TSE9SVCAiNDYiCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05f
U0hPUlQgIjUyIgogCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKiBEYXRhIHZlcnNp
b24gaW4gSUNVNEMuCiAgKiBAaW50ZXJuYWwgSUNVIDQuNCBJbnRlcm5hbCBVc2UgT25seQogICoq
LwotI2RlZmluZSBVX0lDVV9EQVRBX1ZFUlNJT04gIjQuNiIKKyNkZWZpbmUgVV9JQ1VfREFUQV9W
RVJTSU9OICI1Mi4xIgorI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAgKiBJQ1UgY29sbGF0aW9uIGZyYW1ld29yayB2ZXJzaW9uIGluZm9y
bWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXZl
cnNpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCmlu
ZGV4IGU1NGNkNTVhNjdjYmM0Y2M2OTJlNGUzNjkyMWRhMmIzNmFkMTVhNWYuLjc0ZTMwOTEwNTUx
NGFkZjM4MjM3YTNiN2E0MDk4MDFhODE1YTVkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDExLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC02Nyw3ICs2Nyw4
IEBAIHR5cGVkZWYgdWludDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwog
ICogV2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgYmVnaW5zIGFuIGV4dGVybiAiQysrIiBsaW5r
YWdlIGJsb2NrICh0byBwcm90ZWN0CiAgKiBhZ2FpbnN0IGNhc2VzIGluIHdoaWNoIGFuIGV4dGVy
bmFsIGNsaWVudCBpbmNsdWRlcyBJQ1UgaGVhZGVyIGZpbGVzIGluc2lkZQogICogYW4gZXh0ZXJu
ICJDIiBsaW5rYWdlIGJsb2NrKS4KLSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgbmFt
ZXNwYWNlcywgaXQgYWxzbyBiZWdpbnMgYSBuYW1lc3BhY2UgYmxvY2suCisgKgorICogSXQgYWxz
byBiZWdpbnMgYSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jay4KICAqIEBzdGFibGUgSUNV
IDIuNAogICovCiAKQEAgLTc3LDggKzc4LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5m
b1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBXaGVuIG5vdCBjb21waWxpbmcgZm9yIEMrKywg
aXQgZG9lcyBub3RoaW5nLgogICogV2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgZW5kcyB0aGUg
ZXh0ZXJuICJDKysiIGJsb2NrIGJlZ3VuIGJ5CiAgKiBVX05BTUVTUEFDRV9CRUdJTi4KLSAqIElm
IHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgbmFtZXNwYWNlcywgaXQgYWxzbyBlbmRzIHRoZSBu
YW1lc3BhY2UgYmxvY2sKLSAqIGJlZ3VuIGJ5IFVfTkFNRVNQQUNFX0JFR0lOLgorICoKKyAqIEl0
IGFsc28gZW5kcyB0aGUgdmVyc2lvbmVkLUlDVS1uYW1lc3BhY2UgYmxvY2sgYmVndW4gYnkgVV9O
QU1FU1BBQ0VfQkVHSU4uCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC04Niw3ICs4Nyw5
IEBAIHR5cGVkZWYgdWludDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwog
ICogXGRlZiBVX05BTUVTUEFDRV9VU0UKICAqIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5IHRoYXQg
dGhlIHJlc3Qgb2YgdGhlIGNvZGUgdXNlcyB0aGUKICAqIHB1YmxpYyBJQ1UgQysrIEFQSSBuYW1l
c3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFjZXMsIHRo
aXMgZG9lcyBub3RoaW5nLgorICogVGhpcyBpcyBpbnZva2VkIGJ5IGRlZmF1bHQ7IHdlIHJlY29t
bWVuZCB0aGF0IHlvdSB0dXJuIGl0IG9mZjoKKyAqIFNlZSB0aGUgIlJlY29tbWVuZGVkIEJ1aWxk
IE9wdGlvbnMiIHNlY3Rpb24gb2YgdGhlIElDVTRDIHJlYWRtZQorICogKGh0dHA6Ly9zb3VyY2Uu
aWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdHJ1bmsvcmVhZG1lLmh0bWwjUmVjQnVpbGQp
CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC05NCwxMyArOTcsMTQgQEAgdHlwZWRlZiB1
aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBcZGVmIFVfTkFN
RVNQQUNFX1FVQUxJRklFUgogICogVGhpcyBpcyB1c2VkIHRvIHF1YWxpZnkgdGhhdCBhIGZ1bmN0
aW9uIG9yIGNsYXNzIGlzIHBhcnQgb2YKICAqIHRoZSBwdWJsaWMgSUNVIEMrKyBBUEkgbmFtZXNw
YWNlLgotICogSWYgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBuYW1lc3BhY2VzLCB0aGlz
IGRvZXMgbm90aGluZy4KKyAqCisgKiBUaGlzIG1hY3JvIGlzIHVubmVjZXNzYXJ5IHNpbmNlIElD
VSA0OSByZXF1aXJlcyBuYW1lc3BhY2Ugc3VwcG9ydC4KKyAqIFlvdSBjYW4ganVzdCB1c2UgImlj
dTo6IiBpbnN0ZWFkLgogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KIAogLyogRGVmaW5lIG5hbWVz
cGFjZSBzeW1ib2xzIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBpdC4gKi8KLSNpZmRlZiBYUF9D
UExVU1BMVVMKLSNpZiBVX0hBVkVfTkFNRVNQQUNFCisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBp
ZiBVX0RJU0FCTEVfUkVOQU1JTkcKICMgICAgICAgZGVmaW5lIFVfSUNVX05BTUVTUEFDRSBpY3UK
ICAgICAgICAgbmFtZXNwYWNlIFVfSUNVX05BTUVTUEFDRSB7IH0KQEAgLTEyMiwxMiArMTI2LDYg
QEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAg
ICAgICAgIFVfTkFNRVNQQUNFX1VTRQogIyAgIGVuZGlmCiAjZWxzZQotIyAgIGRlZmluZSBVX05B
TUVTUEFDRV9CRUdJTiBleHRlcm4gIkMrKyIgewotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9FTkQg
fQotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UKLSMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfUVVB
TElGSUVSCi0jZW5kaWYKLSNlbHNlCiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0JFR0lOCiAjICAg
ZGVmaW5lIFVfTkFNRVNQQUNFX0VORAogIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UKQEAgLTE4
MCw3ICsxNzgsNyBAQCB1X3ZlcnNpb25Gcm9tVVN0cmluZyhVVmVyc2lvbkluZm8gdmVyc2lvbkFy
cmF5LCBjb25zdCBVQ2hhciAqdmVyc2lvblN0cmluZyk7CiAgKiBAc3RhYmxlIElDVSAyLjQKICAq
LwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVfdmVyc2lvblRvU3RyaW5nKFVWZXJzaW9uSW5m
byB2ZXJzaW9uQXJyYXksIGNoYXIgKnZlcnNpb25TdHJpbmcpOwordV92ZXJzaW9uVG9TdHJpbmco
Y29uc3QgVVZlcnNpb25JbmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7CiAK
IC8qKgogICogR2V0cyB0aGUgSUNVIHJlbGVhc2UgdmVyc2lvbi4gIFRoZSB2ZXJzaW9uIGFycmF5
IHN0b3JlcyB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9ieXRlc3RyZWFtLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2J5dGVzdHJl
YW0uaAppbmRleCBmYjllMDdhMjVkY2Q5Yjk1ZDlhMzdhMGI4YTcyYjM1ZTYzYTFmZmI4Li4xNzRh
YTM4YWZjZTA3MDIwMTRhYmE4OGU1MjkzN2VmZTRhYmVjMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL2J5dGVzdHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L2J5dGVzdHJlYW0uaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogLy8gQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIC8vCiAvLyBDb3B5cmlnaHQgMjAwNyBHb29n
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAg
ICAqIFZpcnR1YWwgZGVzdHJ1Y3Rvci4KICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAqLwotICB2
aXJ0dWFsIH5CeXRlU2luaygpIHsgfQorICB2aXJ0dWFsIH5CeXRlU2luaygpOwogCiAgIC8qKgog
ICAgKiBBcHBlbmQgImJ5dGVzWzAsbi0xXSIgdG8gdGhpcy4KQEAgLTE1MCwxMiArMTUwLDE3IEBA
IHB1YmxpYzoKICAgICovCiAgIENoZWNrZWRBcnJheUJ5dGVTaW5rKGNoYXIqIG91dGJ1ZiwgaW50
MzJfdCBjYXBhY2l0eSk7CiAgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElD
VSA0LjIKKyAgICovCisgIHZpcnR1YWwgfkNoZWNrZWRBcnJheUJ5dGVTaW5rKCk7CisgIC8qKgog
ICAgKiBSZXR1cm5zIHRoZSBzaW5rIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZSwgd2l0aG91dCBtb2Rp
ZnlpbmcgdGhlIGJ1ZmZlci4KICAgICogVXNlZnVsIGZvciByZXVzaW5nIGJvdGggdGhlIGJ1ZmZl
ciBhbmQgdGhlIHNpbmsgZm9yIG11bHRpcGxlIHN0cmVhbXMuCiAgICAqIFJlc2V0cyB0aGUgc3Rh
dGUgdG8gTnVtYmVyT2ZCeXRlc1dyaXR0ZW4oKT1OdW1iZXJPZkJ5dGVzQXBwZW5kZWQoKT0wCiAg
ICAqIGFuZCBPdmVyZmxvd2VkKCk9RkFMU0UuCiAgICAqIEByZXR1cm4gKnRoaXMKLSAgICogQGRy
YWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICB2aXJ0dWFsIENoZWNr
ZWRBcnJheUJ5dGVTaW5rJiBSZXNldCgpOwogICAvKioKQEAgLTIwMSw3ICsyMDYsNyBAQCBwdWJs
aWM6CiAgICAqIElmIE92ZXJmbG93ZWQoKSB0aGVuIE51bWJlck9mQnl0ZXNBcHBlbmRlZCgpPk51
bWJlck9mQnl0ZXNXcml0dGVuKCkKICAgICogZWxzZSB0aGV5IHJldHVybiB0aGUgc2FtZSBudW1i
ZXIuCiAgICAqIEByZXR1cm4gbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gdG8gdGhlIGJ1ZmZlcgot
ICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICovCiAgIGludDMy
X3QgTnVtYmVyT2ZCeXRlc0FwcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gYXBwZW5kZWRfOyB9CiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIu
aCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmgKaW5kZXggYjc2YTFmODU2
Mjk5MjNiZGRiODQ2ZTk4YTA4NDgzMzQ3Y2E0ZWU0YS4uZTNjY2IyNTgxNTRjYzIxNjA5OGViYzI3
MzlmYjdiNjgyMjA1OWM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2Nh
bHBvaW50ZXIuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2FscG9pbnRlci5oCkBA
IC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cHlyaWdodCAoQykgMjAwOS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCkBAIC0xNDQsNiArMTQ0LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
cHRyPXA7CiAgICAgfQogcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEFjdHVhbCBwb2ludGVy
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLwogICAgIFQgKnB0cjsKIHByaXZhdGU6CiAgICAg
Ly8gTm8gY29tcGFyaXNvbiBvcGVyYXRvcnMgd2l0aCBvdGhlciBMb2NhbFBvaW50ZXJCYXNlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaAppbmRleCAzZGU0MGQyNTY1NTNjNGFhZjFlYzA0ODMx
ZTk5YzU1M2ZkN2M0NmU5Li4xYjJhYjMwNmVhMzM3ODI5ZmQ5OWIyYzBmMjgyNzBkMjljN2JiMmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3BsYXRmb3JtLmgKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oCkBAIC0xLDE1ICsxLDExIEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMywg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0q
IE5vdGU6IGF1dG9jb25mIGNyZWF0ZXMgcGxhdGZvcm0uaCBmcm9tIHBsYXRmb3JtLmguaW4gYXQg
Y29uZmlndXJlIHRpbWUuCi0qCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSoKICogIEZJTEUgTkFN
RSA6IHBsYXRmb3JtLmgKICoKICogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlv
bgpAQCAtMjMsMzc5ICsxOSw3MzcgQEAKICNpZm5kZWYgX1BMQVRGT1JNX0gKICNkZWZpbmUgX1BM
QVRGT1JNX0gKIAorI2luY2x1ZGUgInVuaWNvZGUvdWNvbmZpZy5oIgorI2luY2x1ZGUgInVuaWNv
ZGUvdXZlcm51bS5oIgorCiAvKioKLSAqIFxmaWxlIAotICogXGJyaWVmIEJhc2ljIHR5cGVzIGZv
ciB0aGUgcGxhdGZvcm0gCisgKiBcZmlsZQorICogXGJyaWVmIEJhc2ljIHR5cGVzIGZvciB0aGUg
cGxhdGZvcm0uCisgKgorICogVGhpcyBmaWxlIHVzZWQgdG8gYmUgZ2VuZXJhdGVkIGJ5IGF1dG9j
b25mL2NvbmZpZ3VyZS4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCBwbGF0Zm9ybS5oIGlzIGEg
bm9ybWFsIHNvdXJjZSBmaWxlLAorICogdG8gc2ltcGxpZnkgY3Jvc3MtY29tcGlsaW5nIGFuZCB3
b3JraW5nIHdpdGggbm9uLWF1dG9jb25mL21ha2UgYnVpbGQgc3lzdGVtcy4KKyAqCisgKiBXaGVu
IGEgdmFsdWUgaW4gdGhpcyBmaWxlIGRvZXMgbm90IHdvcmsgb24gYSBwbGF0Zm9ybSwgdGhlbiBw
bGVhc2UKKyAqIHRyeSB0byBkZXJpdmUgaXQgZnJvbSB0aGUgVV9QTEFURk9STSB2YWx1ZQorICog
KGZvciB3aGljaCB3ZSBtaWdodCBuZWVkIGEgbmV3IHZhbHVlIGNvbnN0YW50IGluIHJhcmUgY2Fz
ZXMpCisgKiBhbmQvb3IgZnJvbSBvdGhlciBtYWNyb3MgdGhhdCBhcmUgcHJlZGVmaW5lZCBieSB0
aGUgY29tcGlsZXIKKyAqIG9yIGRlZmluZWQgaW4gc3RhbmRhcmQgKFBPU0lYIG9yIHBsYXRmb3Jt
IG9yIGNvbXBpbGVyKSBoZWFkZXJzLgorICoKKyAqIEFzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQs
IHlvdSBjYW4gYWRkIGFuIGV4cGxpY2l0IDxjb2RlPiNkZWZpbmU8L2NvZGU+IGZvciBzb21lIG1h
Y3JvcworICogYmVmb3JlIGl0IGlzIGZpcnN0IHRlc3RlZCwgb3IgYWRkIGFuIGVxdWl2YWxlbnQg
LUQgbWFjcm8gZGVmaW5pdGlvbgorICogdG8gdGhlIGNvbXBpbGVyJ3MgY29tbWFuZCBsaW5lLgor
ICoKKyAqIE5vdGU6IFNvbWUgY29tcGlsZXJzIHByb3ZpZGUgd2F5cyB0byBzaG93IHRoZSBwcmVk
ZWZpbmVkIG1hY3Jvcy4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGdjYyB5b3UgY2FuIGNvbXBpbGUg
YW4gZW1wdHkgLmMgZmlsZSBhbmQgaGF2ZSB0aGUgY29tcGlsZXIKKyAqIHByaW50IHRoZSBwcmVk
ZWZpbmVkIG1hY3JvcyB3aXRoCisgKiBcY29kZQorICogZ2NjIC1FIC1kTSAteCBjIC9kZXYvbnVs
bCB8IHNvcnQKKyAqIFxlbmRjb2RlCisgKiAoWW91IGNhbiBwcm92aWRlIGFuIGFjdHVhbCBlbXB0
eSAuYyBmaWxlIHJhdGhlciB0aGFuIC9kZXYvbnVsbC4KKyAqIDxjb2RlPi14IGMrKzwvY29kZT4g
aXMgZm9yIEMrKy4pCiAgKi8KIAotLyogVGhpcyBmaWxlIHNob3VsZCBiZSBpbmNsdWRlZCBiZWZv
cmUgdXZlcm51bS5oLiAqLwotI2lmIGRlZmluZWQoVVZFUk5VTV9IKQotIyBlcnJvciBEbyBub3Qg
aW5jbHVkZSB1bmljb2RlL3V2ZXJudW0uaCBiZWZvcmUgI2luY2x1ZGluZyB1bmljb2RlL3BsYXRm
b3JtLmguICBJbnN0ZWFkIG9mIHVuaWNvZGUvdXZlcm51bS5oLCAjaW5jbHVkZSB1bmljb2RlL3V2
ZXJzaW9uLmgKLSNlbmRpZgotCiAvKioKLSAqIERldGVybWluZSB3aGV0ZXIgdG8gZW5hYmxlIGF1
dG8gY2xlYW51cCBvZiBsaWJyYXJpZXMuIAorICogRGVmaW5lIHNvbWUgdGhpbmdzIHNvIHRoYXQg
dGhleSBjYW4gYmUgZG9jdW1lbnRlZC4KICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVDTE5f
Tk9fQVVUT19DTEVBTlVQCi0jZGVmaW5lIFVDTE5fTk9fQVVUT19DTEVBTlVQIDEKLSNlbmRpZgot
Ci0vKiBOZWVkIHBsYXRmb3JtLmggd2hlbiB1c2luZyBDWUdXSU5NU1ZDIHRvIGdldCBkZWZpbml0
aW9ucyBhYm92ZS4gSWdub3JlIGV2ZXJ5dGhpbmcgZWxzZS4gKi8KLSNpZm5kZWYgQ1lHV0lOTVNW
QworI2lmZGVmIFVfSU5fRE9YWUdFTgorLyoKKyAqIFByb2JsZW06ICJwbGF0Zm9ybS5oOjMzNTog
d2FybmluZzogZG9jdW1lbnRhdGlvbiBmb3IgdW5rbm93biBkZWZpbmUgVV9IQVZFX1NURF9TVFJJ
TkcgZm91bmQuIiBtZWFucyB0aGF0IFVfSEFWRV9TVERfU1RSSU5HIGlzIG5vdCBkb2N1bWVudGVk
LgorICogU29sdXRpb246ICNkZWZpbmUgYW55IGRlZmluZXMgZm9yIG5vbiBAaW50ZXJuYWwgQVBJ
IGhlcmUsIHNvIHRoYXQgdGhleSBhcmUgdmlzaWJsZSBpbiB0aGUgZG9jcy4gIElmIHlvdSBqdXN0
IHNldCBQUkVERUZJTkVEIGluIERveHlmaWxlLmluLCAgdGhleSB3b24ndCBiZSBkb2N1bWVudGVk
LgorICovCiAKLS8qKiBEZWZpbmUgdGhlIHBsYXRmb3JtIHdlJ3JlIG9uLiAqLwotI2lmbmRlZiBV
X0RBUldJTgotI2RlZmluZSBVX0RBUldJTgorLyogTm9uZSBmb3Igbm93LiAqLwogI2VuZGlmCiAK
IC8qKgotICogXGRlZiBVX0hBVkVfRElSRU5UX0gKLSAqIERlZmluZSB3aGV0aGVyIGRpcmVudC5o
IGlzIGF2YWlsYWJsZSAKKyAqIFxkZWYgVV9QTEFURk9STQorICogVGhlIFVfUExBVEZPUk0gbWFj
cm8gZGVmaW5lcyB0aGUgcGxhdGZvcm0gd2UncmUgb24uCisgKgorICogV2UgdXNlZCB0byBkZWZp
bmUgb25lIGRpZmZlcmVudCwgdmFsdWUtbGVzcyBtYWNybyBwZXIgcGxhdGZvcm0uCisgKiBUaGF0
IG1hZGUgaXQgaGFyZCB0byBrbm93IHRoZSBzZXQgb2YgcmVsZXZhbnQgcGxhdGZvcm1zIGFuZCBt
YWNyb3MsCisgKiBhbmQgaGFyZCB0byBkZWFsIHdpdGggdmFyaWFudHMgb2YgcGxhdGZvcm1zLgor
ICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCB3ZSBkZWZpbmUgcGxhdGZvcm1zIGFzIG51bWVy
aWMgbWFjcm9zLAorICogd2l0aCByYW5nZXMgb2YgdmFsdWVzIGZvciByZWxhdGVkIHBsYXRmb3Jt
cyBhbmQgdGhlaXIgdmFyaWFudHMuCisgKiBUaGUgVV9QTEFURk9STSBtYWNybyBpcyBzZXQgdG8g
b25lIG9mIHRoZXNlIHZhbHVlcy4KKyAqCisgKiBIaXN0b3JpY2FsIG5vdGUgZnJvbSB0aGUgU29s
YXJpcyBXaWtpcGVkaWEgYXJ0aWNsZToKKyAqIEFUJlQgYW5kIFN1biBjb2xsYWJvcmF0ZWQgb24g
YSBwcm9qZWN0IHRvIG1lcmdlIHRoZSBtb3N0IHBvcHVsYXIgVW5peCB2YXJpYW50cworICogb24g
dGhlIG1hcmtldCBhdCB0aGF0IHRpbWU6IEJTRCwgU3lzdGVtIFYsIGFuZCBYZW5peC4KKyAqIFRo
aXMgYmVjYW1lIFVuaXggU3lzdGVtIFYgUmVsZWFzZSA0IChTVlI0KS4KKyAqCiAgKiBAaW50ZXJu
YWwKICAqLwotI2lmbmRlZiBVX0hBVkVfRElSRU5UX0gKLSNkZWZpbmUgVV9IQVZFX0RJUkVOVF9I
IDEKLSNlbmRpZgogCi0vKiogRGVmaW5lIHdoZXRoZXIgaW50dHlwZXMuaCBpcyBhdmFpbGFibGUg
Ki8KLSNpZm5kZWYgVV9IQVZFX0lOVFRZUEVTX0gKLSNkZWZpbmUgVV9IQVZFX0lOVFRZUEVTX0gg
MQorLyoqIFVua25vd24gcGxhdGZvcm0uIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1VOS05P
V04gMAorLyoqIFdpbmRvd3MgQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfV0lORE9XUyAxMDAw
CisvKiogTWluR1cuIFdpbmRvd3MsIGNhbGxzIHRvIFdpbjMyIEFQSSwgYnV0IHVzaW5nIEdOVSBn
Y2MgYW5kIGJpbnV0aWxzLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9NSU5HVyAxODAwCisv
KioKKyAqIEN5Z3dpbi4gV2luZG93cywgY2FsbHMgdG8gY3lnd2luMS5kbGwgZm9yIFBvc2l4IGZ1
bmN0aW9ucywKKyAqIHVzaW5nIE1TVkMgb3IgR05VIGdjYyBhbmQgYmludXRpbHMuCisgKiBAaW50
ZXJuYWwKKyAqLworI2RlZmluZSBVX1BGX0NZR1dJTiAxOTAwCisvKiBSZXNlcnZlIDIwMDAgZm9y
IFVfUEZfVU5JWD8gKi8KKy8qKiBIUC1VWCBpcyBiYXNlZCBvbiBVTklYIFN5c3RlbSBWLiBAaW50
ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9IUFVYIDIxMDAKKy8qKiBTb2xhcmlzIGlzIGEgVW5peCBv
cGVyYXRpbmcgc3lzdGVtIGJhc2VkIG9uIFNWUjQuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BG
X1NPTEFSSVMgMjYwMAorLyoqIEJTRCBpcyBhIFVOSVggb3BlcmF0aW5nIHN5c3RlbSBkZXJpdmF0
aXZlLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9CU0QgMzAwMAorLyoqIEFJWCBpcyBiYXNl
ZCBvbiBVTklYIFN5c3RlbSBWIFJlbGVhc2VzIGFuZCA0LjMgQlNELiBAaW50ZXJuYWwgKi8KKyNk
ZWZpbmUgVV9QRl9BSVggMzEwMAorLyoqIElSSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gViB3
aXRoIEJTRCBleHRlbnNpb25zLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9JUklYIDMyMDAK
Ky8qKgorICogRGFyd2luIGlzIGEgUE9TSVgtY29tcGxpYW50IG9wZXJhdGluZyBzeXN0ZW0sIGNv
bXBvc2VkIG9mIGNvZGUgZGV2ZWxvcGVkIGJ5IEFwcGxlLAorICogYXMgd2VsbCBhcyBjb2RlIGRl
cml2ZWQgZnJvbSBOZVhUU1RFUCwgQlNELCBhbmQgb3RoZXIgcHJvamVjdHMsCisgKiBidWlsdCBh
cm91bmQgdGhlIE1hY2gga2VybmVsLgorICogRGFyd2luIGZvcm1zIHRoZSBjb3JlIHNldCBvZiBj
b21wb25lbnRzIHVwb24gd2hpY2ggTWFjIE9TIFgsIEFwcGxlIFRWLCBhbmQgaU9TIGFyZSBiYXNl
ZC4KKyAqIChPcmlnaW5hbCBkZXNjcmlwdGlvbiBtb2RpZmllZCBmcm9tIFdpa2lQZWRpYS4pCisg
KiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVX1BGX0RBUldJTiAzNTAwCisvKiogaVBob25lIE9T
IChpT1MpIGlzIGEgZGVyaXZhdGl2ZSBvZiBNYWMgT1MgWC4gQGludGVybmFsICovCisjZGVmaW5l
IFVfUEZfSVBIT05FIDM1NTAKKy8qKiBRTlggaXMgYSBjb21tZXJjaWFsIFVuaXgtbGlrZSByZWFs
LXRpbWUgb3BlcmF0aW5nIHN5c3RlbSByZWxhdGVkIHRvIEJTRC4gQGludGVybmFsICovCisjZGVm
aW5lIFVfUEZfUU5YIDM3MDAKKy8qKiBMaW51eCBpcyBhIFVuaXgtbGlrZSBvcGVyYXRpbmcgc3lz
dGVtLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9MSU5VWCA0MDAwCisvKiogQW5kcm9pZCBp
cyBiYXNlZCBvbiBMaW51eC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQU5EUk9JRCA0MDUw
CisvKiogIkNsYXNzaWMiIE1hYyBPUyAoMTk4NC0yMDAxKSBAaW50ZXJuYWwgKi8KKyNkZWZpbmUg
VV9QRl9DTEFTU0lDX01BQ09TIDgwMDAKKy8qKiB6L09TIGlzIHRoZSBzdWNjZXNzb3IgdG8gT1Mv
MzkwIHdoaWNoIHdhcyB0aGUgc3VjY2Vzc29yIHRvIE1WUy4gQGludGVybmFsICovCisjZGVmaW5l
IFVfUEZfT1MzOTAgOTAwMAorLyoqICJJQk0gaSIgaXMgdGhlIGN1cnJlbnQgbmFtZSBvZiB3aGF0
IHVzZWQgdG8gYmUgaTUvT1MgYW5kIGVhcmxpZXIgT1MvNDAwLiBAaW50ZXJuYWwgKi8KKyNkZWZp
bmUgVV9QRl9PUzQwMCA5NDAwCisKKyNpZmRlZiBVX1BMQVRGT1JNCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfX01JTkdXMzJfXykKKyMgICBkZWZp
bmUgVV9QTEFURk9STSBVX1BGX01JTkdXCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisjICAg
ZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9DWUdXSU4KKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRl
ZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjY0KSB8fCBkZWZpbmVkKF9XSU42NCkKKyMgICBk
ZWZpbmUgVV9QTEFURk9STSBVX1BGX1dJTkRPV1MKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18p
CisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9BTkRST0lECisgICAgLyogQW5kcm9pZCB3Y2hh
cl90IHN1cHBvcnQgZGVwZW5kcyBvbiB0aGUgQVBJIGxldmVsLiAqLworIyAgIGluY2x1ZGUgPGFu
ZHJvaWQvYXBpLWxldmVsLmg+CisjZWxpZiBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGlu
dXhfXykgfHwgZGVmaW5lZChfX2xpbnV4KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfTElO
VVgKKyNlbGlmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fTUFDSF9fKQorIyAgIGlu
Y2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgorIyAgIGlmIGRlZmluZWQoVEFSR0VUX09TX0lQ
SE9ORSkgJiYgVEFSR0VUX09TX0lQSE9ORSAgLyogdmFyaWFudCBvZiBUQVJHRVRfT1NfTUFDICov
CisjICAgICAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSVBIT05FCisjICAgZWxzZQorIyAgICAg
ICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0RBUldJTgorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVk
KEJTRCkgfHwgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVs
X18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVm
aW5lZChfX01pckJTRF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQlNECisjZWxpZiBk
ZWZpbmVkKHN1bikgfHwgZGVmaW5lZChfX3N1bikKKyAgICAvKiBDaGVjayBkZWZpbmVkKF9fU1ZS
NCkgfHwgZGVmaW5lZChfX3N2cjRfXykgdG8gZGlzdGluZ3Vpc2ggU29sYXJpcyBmcm9tIFN1bk9T
PyAqLworIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfU09MQVJJUworIyAgIGlmIGRlZmluZWQo
X19HTlVDX18pCisgICAgICAgIC8qIFNvbGFyaXMvR0NDIG5lZWRzIHRoaXMgaGVhZGVyIGZpbGUg
dG8gZ2V0IHRoZSBwcm9wZXIgZW5kaWFubmVzcy4gTm9ybWFsbHksIHRoaXMKKyAgICAgICAgICog
aGVhZGVyIGZpbGUgaXMgaW5jbHVkZWQgd2l0aCBzdGRkZWYuaCBidXQgb24gU29sYWlycy9HQ0Ms
IHRoZSBHQ0MgdmVyc2lvbiBvZiBzdGRkZWYuaAorICAgICAgICAgKiAgaXMgaW5jbHVkZWQgd2hp
Y2ggZG9lcyBub3QgaW5jbHVkZSB0aGlzIGhlYWRlciBmaWxlLgorICAgICAgICAgKi8KKyMgICAg
ICAgaW5jbHVkZSA8c3lzL2lzYV9kZWZzLmg+CisjICAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX0FJ
WCkgfHwgZGVmaW5lZChfX1RPU19BSVhfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0FJ
WAorI2VsaWYgZGVmaW5lZChfaHB1eCkgfHwgZGVmaW5lZChocHV4KSB8fCBkZWZpbmVkKF9faHB1
eCkKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0hQVVgKKyNlbGlmIGRlZmluZWQoc2dpKSB8
fCBkZWZpbmVkKF9fc2dpKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSVJJWAorI2VsaWYg
ZGVmaW5lZChtYWNpbnRvc2gpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9DTEFTU0lDX01B
Q09TCisjZWxpZiBkZWZpbmVkKF9fUU5YX18pIHx8IGRlZmluZWQoX19RTlhOVE9fXykKKyMgICBk
ZWZpbmUgVV9QTEFURk9STSBVX1BGX1FOWAorI2VsaWYgZGVmaW5lZChfX1RPU19NVlNfXykKKyMg
ICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX09TMzkwCisjZWxpZiBkZWZpbmVkKF9fT1M0MDBfXykg
fHwgZGVmaW5lZChfX1RPU19PUzQwMF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfT1M0
MDAKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9VTktOT1dOCiAjZW5kaWYKIAog
LyoqCi0gKiBEZWZpbmUgd2hhdCBzdXBwb3J0IGZvciBDKysgc3RyZWFtcyBpcyBhdmFpbGFibGUu
Ci0gKiAgICAgSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5OTcxMSwgdGhlbiAmbHQ7
aW9zdHJlYW0mZ3Q7IGlzIGF2YWlsYWJsZQotICogKDE5OTc3MTEgaXMgdGhlIGRhdGUgdGhlIElT
Ty9JRUMgQysrIEZESVMgd2FzIHB1Ymxpc2hlZCksIGFuZCB0aGVuCi0gKiBvbmUgc2hvdWxkIHF1
YWxpZnkgc3RyZWFtcyB1c2luZyB0aGUgc3RkIG5hbWVzcGFjZSBpbiBJQ1UgaGVhZGVyCi0gKiBm
aWxlcy4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2LCB0aGVu
ICZsdDtpb3N0cmVhbS5oJmd0OyBpcwotICogYXZhaWxhYmxlIGluc3RlYWQgKDE5ODUwNiBpcyB0
aGUgZGF0ZSB3aGVuIFN0cm91c3RydXAgcHVibGlzaGVkCi0gKiAiQW4gRXh0ZW5zaWJsZSBJL08g
RmFjaWxpdHkgZm9yIEMrKyIgYXQgdGhlIHN1bW1lciBVU0VOSVggY29uZmVyZW5jZSkuCi0gKiAg
ICAgSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgMCwgdGhlbiBDKysgc3RyZWFtcyBhcmUgbm90IGF2
YWlsYWJsZSBhbmQKLSAqIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRseSBzdXBwcmVz
c2VkIGluIElDVS4KLSAqCisgKiBcZGVmIENZR1dJTk1TVkMKKyAqIERlZmluZWQgaWYgdGhpcyBp
cyBXaW5kb3dzIHdpdGggQ3lnd2luLCBidXQgdXNpbmcgTVNWQyByYXRoZXIgdGhhbiBnY2MuCisg
KiBPdGhlcndpc2UgdW5kZWZpbmVkLgorICogQGludGVybmFsCiAgKi8KLQotI2lmbmRlZiBVX0lP
U1RSRUFNX1NPVVJDRQotI2RlZmluZSBVX0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKKy8qIENvbW1l
bnRlZCBvdXQgYmVjYXVzZSB0aGlzIGlzIGFscmVhZHkgc2V0IGluIG1oLWN5Z3dpbi1tc3ZjCisj
aWYgVV9QTEFURk9STSA9PSBVX1BGX0NZR1dJTiAmJiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRl
ZmluZSBDWUdXSU5NU1ZDCiAjZW5kaWYKKyovCiAKIC8qKgotICogXGRlZiBVX0hBVkVfU1REX1NU
UklORwotICogRGVmaW5lIHdoZXRoZXIgdGhlIHN0YW5kYXJkIEMrKyAoU1RMKSAmbHQ7c3RyaW5n
Jmd0OyBoZWFkZXIgaXMgYXZhaWxhYmxlLgotICogRm9yIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCB1
c2UgcGxhdGZvcm0uaCBhbmQgZG8gbm90IGRlZmluZSB0aGlzIGNvbnN0YW50Ci0gKiBpbiB0aGVp
ciBwbGF0Zm9ybS1zcGVjaWZpYyBoZWFkZXJzLCBzdGRfc3RyaW5nLmggZGVmYXVsdHMKLSAqIFVf
SEFWRV9TVERfU1RSSU5HIHRvIDEuCisgKiBcZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMy
X0FQSQorICogRGVmaW5lcyB3aGV0aGVyIHRoZSBwbGF0Zm9ybSB1c2VzIG9ubHkgdGhlIFdpbjMy
IEFQSS4KKyAqIFNldCB0byAxIGZvciBXaW5kb3dzL01TVkMgYW5kIE1pbkdXIGJ1dCBub3QgQ3ln
d2luLgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9IQVZFX1NURF9TVFJJTkcKLSNkZWZp
bmUgVV9IQVZFX1NURF9TVFJJTkcgMQorI2lmZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMy
X0FQSQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIChVX1BGX1dJ
TkRPV1MgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfTUlOR1cpIHx8IGRlZmlu
ZWQoQ1lHV0lOTVNWQykKKyMgICBkZWZpbmUgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJ
IDEKKyNlbHNlCisgICAgLyogQ3lnd2luIGltcGxlbWVudHMgUE9TSVguICovCisjICAgZGVmaW5l
IFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSAwCiAjZW5kaWYKIAotLyoqIEB7IERldGVy
bWluZXMgd2hldGhlciBzcGVjaWZpYyB0eXBlcyBhcmUgYXZhaWxhYmxlICovCi0jaWZuZGVmIFVf
SEFWRV9JTlQ4X1QKLSNkZWZpbmUgVV9IQVZFX0lOVDhfVCAxCisvKioKKyAqIFxkZWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIFdpbjMyIEFQSSBpcyBh
dmFpbGFibGUgb24gdGhlIHBsYXRmb3JtLgorICogU2V0IHRvIDEgZm9yIFdpbmRvd3MvTVNWQywg
TWluR1cgYW5kIEN5Z3dpbi4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9I
QVNfV0lOMzJfQVBJCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
VV9QRl9XSU5ET1dTIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0NZR1dJTgor
IyAgIGRlZmluZSBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgMQorI2Vsc2UKKyMgICBkZWZpbmUg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJIDAKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9VSU5U
OF9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UOF9UIDAKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lN
UExFTUVOVFNfUE9TSVgKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaW1wbGVtZW50
cyAobW9zdCBvZikgdGhlIFBPU0lYIEFQSS4KKyAqIFNldCB0byAxIGZvciBDeWd3aW4gYW5kIG1v
c3Qgb3RoZXIgcGxhdGZvcm1zLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX1BMQVRGT1JN
X0lNUExFTUVOVFNfUE9TSVgKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisj
ZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9PSBVX1BG
X0NMQVNTSUNfTUFDT1MKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYIDAK
KyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAxCiAjZW5kaWYK
IAotI2lmbmRlZiBVX0hBVkVfSU5UMTZfVAotI2RlZmluZSBVX0hBVkVfSU5UMTZfVCAxCisvKioK
KyAqIFxkZWYgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRAorICogRGVmaW5lcyB3aGV0aGVyIHRo
ZSBwbGF0Zm9ybSBpcyBMaW51eCBvciBvbmUgb2YgaXRzIGRlcml2YXRpdmVzLgorICogQGludGVy
bmFsCisgKi8KKyNpZmRlZiBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VECisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QRl9MSU5VWCA8PSBVX1BMQVRGT1JNICYm
IFVfUExBVEZPUk0gPD0gVV9QRl9BTkRST0lECisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfTElO
VVhfQkFTRUQgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRCAw
CiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDE2X1QKLSNkZWZpbmUgVV9IQVZFX1VJTlQx
Nl9UIDAKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorICogRGVmaW5l
cyB3aGV0aGVyIHRoZSBwbGF0Zm9ybSBpcyBEYXJ3aW4gb3Igb25lIG9mIGl0cyBkZXJpdmF0aXZl
cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9JU19EQVJXSU5fQkFTRUQK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX0RBUldJTiA8
PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9JUEhPTkUKKyMgICBkZWZpbmUgVV9Q
TEFURk9STV9JU19EQVJXSU5fQkFTRUQgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9J
U19EQVJXSU5fQkFTRUQgMAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDMyX1QKLSNkZWZp
bmUgVV9IQVZFX0lOVDMyX1QgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9TVERJTlRfSAorICogRGVm
aW5lcyB3aGV0aGVyIHN0ZGludC5oIGlzIGF2YWlsYWJsZS4gSXQgaXMgYSBDOTkgc3RhbmRhcmQg
aGVhZGVyLgorICogV2UgdXNlZCB0byBpbmNsdWRlIGludHR5cGVzLmggd2hpY2ggaW5jbHVkZXMg
c3RkaW50LmggYnV0IHdlIHVzdWFsbHkgZG8gbm90IG5lZWQKKyAqIHRoZSBhZGRpdGlvbmFsIGRl
ZmluaXRpb25zIGZyb20gaW50dHlwZXMuaC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9I
QVZFX1NURElOVF9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
VV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgaWYgZGVmaW5lZChfX0JPUkxBTkRD
X18pIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9NSU5HVyB8fCAoZGVmaW5lZChfTVNDX1ZFUikgJiYg
X01TQ19WRVI+PTE2MDApCisgICAgICAgIC8qIFdpbmRvd3MgVmlzdWFsIFN0dWRpbyA5IGFuZCBi
ZWxvdyBkbyBub3QgaGF2ZSBzdGRpbnQuaCAmIGludHR5cGVzLmgsIGJ1dCBWUyAyMDEwIGFkZHMg
dGhlbS4gKi8KKyMgICAgICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAxCisjICAgZWxzZQorIyAg
ICAgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDAKKyMgICBlbmRpZgorI2VsaWYgVV9QTEFURk9S
TSA9PSBVX1BGX1NPTEFSSVMKKyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5oIGJ1dCBub3Qg
c3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAwCisjZWxpZiBVX1BMQVRG
T1JNID09IFVfUEZfQUlYICYmICFkZWZpbmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9XRVIpCisg
ICAgLyogUFBDIEFJWCA8PSA0LjMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8K
KyMgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9T
VERJTlRfSCAxCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDMyX1QKLSNkZWZpbmUgVV9I
QVZFX1VJTlQzMl9UIDAKKy8qKgorICogXGRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICogRGVmaW5l
cyB3aGV0aGVyIGludHR5cGVzLmggaXMgYXZhaWxhYmxlLiBJdCBpcyBhIEM5OSBzdGFuZGFyZCBo
ZWFkZXIuCisgKiBXZSBpbmNsdWRlIGludHR5cGVzLmggd2hlcmUgaXQgaXMgYXZhaWxhYmxlIGJ1
dCBzdGRpbnQuaCBpcyBub3QuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9JTlRU
WVBFU19ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFU
Rk9STSA9PSBVX1BGX1NPTEFSSVMKKyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5oIGJ1dCBu
b3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKyNlbGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9BSVggJiYgIWRlZmluZWQoX0FJWDUxKSAmJiBkZWZpbmVkKF9QT1dF
UikKKyAgICAvKiBQUEMgQUlYIDw9IDQuMyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5o
LiAqLworIyAgIGRlZmluZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisjZWxzZQorICAgIC8qIE1vc3Qg
cGxhdGZvcm1zIGhhdmUgYm90aCBpbnR0eXBlcy5oIGFuZCBzdGRpbnQuaCwgb3IgbmVpdGhlci4g
Ki8KKyMgICBkZWZpbmUgVV9IQVZFX0lOVFRZUEVTX0ggVV9IQVZFX1NURElOVF9ICiAjZW5kaWYK
IAotI2lmbmRlZiBVX0hBVkVfSU5UNjRfVAotI2RlZmluZSBVX0hBVkVfSU5UNjRfVCAxCisvKioK
KyAqIFxkZWYgVV9JT1NUUkVBTV9TT1VSQ0UKKyAqIERlZmluZXMgd2hhdCBzdXBwb3J0IGZvciBD
Kysgc3RyZWFtcyBpcyBhdmFpbGFibGUuCisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMg
c2V0IHRvIDE5OTcxMSwgdGhlbiAmbHQ7aW9zdHJlYW0mZ3Q7IGlzIGF2YWlsYWJsZQorICogKHRo
ZSBJU08vSUVDIEMrKyBGRElTIHdhcyBwdWJsaXNoZWQgaW4gTm92ZW1iZXIgMTk5NyksIGFuZCB0
aGVuCisgKiBvbmUgc2hvdWxkIHF1YWxpZnkgc3RyZWFtcyB1c2luZyB0aGUgc3RkIG5hbWVzcGFj
ZSBpbiBJQ1UgaGVhZGVyCisgKiBmaWxlcy4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCB0aGlz
IGlzIHRoZSBvbmx5IHN1cHBvcnRlZCB2ZXJzaW9uLgorICoKKyAqIElmIFVfSU9TVFJFQU1fU09V
UkNFIGlzIHNldCB0byAxOTg1MDYsIHRoZW4gJmx0O2lvc3RyZWFtLmgmZ3Q7IGlzCisgKiBhdmFp
bGFibGUgaW5zdGVhZCAoaW4gSnVuZSAxOTg1IFN0cm91c3RydXAgcHVibGlzaGVkCisgKiAiQW4g
RXh0ZW5zaWJsZSBJL08gRmFjaWxpdHkgZm9yIEMrKyIgYXQgdGhlIHN1bW1lciBVU0VOSVggY29u
ZmVyZW5jZSkuCisgKiBTdGFydGluZyB3aXRoIElDVSA0OSwgdGhpcyB2ZXJzaW9uIGlzIG5vdCBz
dXBwb3J0ZWQgYW55IG1vcmUuCisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgMCAob3Ig
YW55IHZhbHVlIGxlc3MgdGhhbiAxOTk3MTEpLAorICogdGhlbiBDKysgc3RyZWFtcyBhcmUgbm90
IGF2YWlsYWJsZSBhbmQKKyAqIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRseSBzdXBw
cmVzc2VkIGluIElDVS4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0lPU1RSRUFN
X1NPVVJDRQorI2RlZmluZSBVX0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKICNlbmRpZgogCi0jaWZu
ZGVmIFVfSEFWRV9VSU5UNjRfVAotI2RlZmluZSBVX0hBVkVfVUlOVDY0X1QgMAorLyoqCisgKiBc
ZGVmIFVfSEFWRV9TVERfU1RSSU5HCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHN0YW5kYXJkIEMr
KyAoU1RMKSAmbHQ7c3RyaW5nJmd0OyBoZWFkZXIgaXMgYXZhaWxhYmxlLgorICogQGludGVybmFs
CisgKi8KKyNpZmRlZiBVX0hBVkVfU1REX1NUUklORworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5l
ZCB2YWx1ZS4gKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEKICNlbmRp
ZgogCi0vKiogQH0gKi8KLQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyoqIEB7IENvbXBpbGVy
IGFuZCBlbnZpcm9ubWVudCBmZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0vKiBEZWZpbmUgd2hldGhlciBuYW1l
c3BhY2UgaXMgc3VwcG9ydGVkICovCi0jaWZuZGVmIFVfSEFWRV9OQU1FU1BBQ0UKLSNkZWZpbmUg
VV9IQVZFX05BTUVTUEFDRSAxCi0jZW5kaWYKLQotLyogRGV0ZXJtaW5lcyB0aGUgZW5kaWFubmVz
cyBvZiB0aGUgcGxhdGZvcm0KLSAgIEl0J3MgZG9uZSB0aGlzIHdheSBpbiBjYXNlIG11bHRpcGxl
IGFyY2hpdGVjdHVyZXMgYXJlIGJlaW5nIGJ1aWx0IGF0IG9uY2UuCi0gICBGb3IgZXhhbXBsZSwg
RGFyd2luIHN1cHBvcnRzIGZhdCBiaW5hcmllcywgd2hpY2ggY2FuIGJlIGJvdGggUFBDIGFuZCB4
ODYgYmFzZWQuICovCi0jaWYgZGVmaW5lZChCWVRFX09SREVSKSAmJiBkZWZpbmVkKEJJR19FTkRJ
QU4pCi0jZGVmaW5lIFVfSVNfQklHX0VORElBTiAoQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOKQor
LyoqCisgKiBcZGVmIFVfR0NDX01BSk9SX01JTk9SCisgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUg
Y29tcGlsZXIgaXMgZ2NjICh0ZXN0IGZvciAhPSAwKSwKKyAqIGFuZCBpZiBzbywgY29udGFpbnMg
aXRzIG1ham9yICh0aW1lcyAxMDApIGFuZCBtaW5vciB2ZXJzaW9uIG51bWJlcnMuCisgKiBJZiB0
aGUgY29tcGlsZXIgaXMgbm90IGdjYywgdGhlbiBVX0dDQ19NQUpPUl9NSU5PUiA9PSAwLgorICoK
KyAqIEZvciBleGFtcGxlLCBmb3IgdGVzdGluZyBmb3Igd2hldGhlciB3ZSBoYXZlIGdjYywgYW5k
IHdoZXRoZXIgaXQncyA0LjYgb3IgaGlnaGVyLAorICogdXNlICIjaWYgVV9HQ0NfTUFKT1JfTUlO
T1IgPj0gNDA2Ii4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgX19HTlVDX18KKyMgICBkZWZp
bmUgVV9HQ0NfTUFKT1JfTUlOT1IgKF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9SX18pCiAj
ZWxzZQotI2RlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorIyAgIGRlZmluZSBVX0dDQ19NQUpPUl9N
SU5PUiAwCiAjZW5kaWYKIAotLyogMSBvciAwIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRocmVhZHMu
ICBJZiB1bmRlZmluZWQsIGRlZmF1bHQgaXM6IGVuYWJsZSB0aHJlYWRzLiAqLwotI2lmbmRlZiBJ
Q1VfVVNFX1RIUkVBRFMgCi0jZGVmaW5lIElDVV9VU0VfVEhSRUFEUyAxCi0jZW5kaWYKLQotLyog
T24gc3Ryb25nIG1lbW9yeSBtb2RlbCBDUFVzIChlLmcuIHg4NiBDUFVzKSwgd2UgdXNlIGEgc2Fm
ZSAmIHF1aWNrIGRvdWJsZSBjaGVjayBsb2NrLiAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYm
IChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pKQotI2RlZmluZSBVTVRY
X1NUUk9OR19NRU1PUllfTU9ERUwgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9ERUJVRwotI2RlZmlu
ZSBVX0RFQlVHIDAKLSNlbmRpZgotCi0jaWZuZGVmIFVfUkVMRUFTRQotI2RlZmluZSBVX1JFTEVB
U0UgMQorLyoqCisgKiBcZGVmIFVfSVNfQklHX0VORElBTgorICogRGV0ZXJtaW5lcyB0aGUgZW5k
aWFubmVzcyBvZiB0aGUgcGxhdGZvcm0uCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSVNf
QklHX0VORElBTgorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRl
ZmluZWQoQllURV9PUkRFUikgJiYgZGVmaW5lZChCSUdfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lT
X0JJR19FTkRJQU4gKEJZVEVfT1JERVIgPT0gQklHX0VORElBTikKKyNlbGlmIGRlZmluZWQoX19C
WVRFX09SREVSX18pICYmIGRlZmluZWQoX19PUkRFUl9CSUdfRU5ESUFOX18pCisgICAgLyogZ2Nj
ICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAoX19CWVRFX09SREVSX18gPT0gX19PUkRF
Ul9CSUdfRU5ESUFOX18pCisjZWxpZiBkZWZpbmVkKF9fQklHX0VORElBTl9fKSB8fCBkZWZpbmVk
KF9CSUdfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5l
ZChfX0xJVFRMRV9FTkRJQU5fXykgfHwgZGVmaW5lZChfTElUVExFX0VORElBTikKKyMgICBkZWZp
bmUgVV9JU19CSUdfRU5ESUFOIDAKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCB8fCBV
X1BMQVRGT1JNID09IFVfUEZfT1M0MDAgfHwgZGVmaW5lZChfX3MzOTBfXykgfHwgZGVmaW5lZChf
X3MzOTB4X18pCisgICAgLyogVGhlc2UgcGxhdGZvcm1zIGRvIG5vdCBhcHBlYXIgdG8gcHJlZGVm
aW5lIGFueSBlbmRpYW5uZXNzIG1hY3Jvcy4gKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFO
IDEKKyNlbGlmIGRlZmluZWQoX1BBX1JJU0MxXzApIHx8IGRlZmluZWQoX1BBX1JJU0MxXzEpIHx8
IGRlZmluZWQoX1BBX1JJU0MyXzApCisgICAgLyogSFBQQSBkbyBub3QgYXBwZWFyIHRvIHByZWRl
ZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3MuICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElB
TiAxCisjZWxpZiBkZWZpbmVkKHNwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmMpIHx8IGRlZmluZWQo
X19zcGFyY19fKQorICAgIC8qIFNvbWUgc3BhcmMgYmFzZWQgc3lzdGVtcyAoZS5nLiBMaW51eCkg
ZG8gbm90IHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3MuICovCisjICAgZGVmaW5lIFVf
SVNfQklHX0VORElBTiAxCisjZWxzZQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMAogI2Vu
ZGlmCiAKLS8qIERldGVybWluZSB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Igbm90LiBU
aGlzIG92ZXJyaWRlcyB0aGUKLSAgIHNldHRpbmcgaW4gdW1hY2hpbmUuaCB3aGljaCBpcyBmb3Ig
YWxsIHBsYXRmb3Jtcy4gKi8KLSNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCi0jZGVmaW5lIFVf
RElTQUJMRV9SRU5BTUlORyAxCisvKioKKyAqIFxkZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKKyAq
IERldGVybWluZXMgd2hldGhlciB0byBvdmVycmlkZSBwbGFjZW1lbnQgbmV3IGFuZCBkZWxldGUg
Zm9yIFNUTC4KKyAqIEBzdGFibGUgSUNVIDIuNgorICovCisjaWZkZWYgVV9IQVZFX1BMQUNFTUVO
VF9ORVcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVk
KF9fQk9STEFORENfXykKKyMgICBkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMAorI2Vsc2UK
KyMgICBkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMQogI2VuZGlmCiAKLS8qIERldGVybWlu
ZSB3aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLiAqLwotI2lmbmRlZiBVX09WRVJS
SURFX0NYWF9BTExPQ0FUSU9OCi0jZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gMQot
I2VuZGlmCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBvdmVycmlkZSBwbGFjZW1lbnQgbmV3IGFu
ZCBkZWxldGUgZm9yIFNUTC4gKi8KLSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZp
bmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9ERUJVR19MT0NB
VElPTl9ORVcgCisgKiBEZWZpbmUgdGhpcyB0byBkZWZpbmUgdGhlIE1GQyBkZWJ1ZyB2ZXJzaW9u
IG9mIHRoZSBvcGVyYXRvciBuZXcuCisgKgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KKyNpZmRl
ZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9IQVZFX0RFQlVH
X0xPQ0FUSU9OX05FVyAxCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfREVCVUdfTE9DQVRJT05f
TkVXIDAKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBlbmFibGUgdHJhY2luZy4g
Ki8KLSNpZm5kZWYgVV9FTkFCTEVfVFJBQ0lORwotI2RlZmluZSBVX0VOQUJMRV9UUkFDSU5HIDEK
Ky8qIENvbXBhdGliaWxpdHkgd2l0aCBub24gY2xhbmcgY29tcGlsZXJzICovCisjaWZuZGVmIF9f
aGFzX2F0dHJpYnV0ZQorIyAgICBkZWZpbmUgX19oYXNfYXR0cmlidXRlKHgpIDAKICNlbmRpZgog
CiAvKioKLSAqIFdoZXRoZXIgdG8gZW5hYmxlIER5bmFtaWMgbG9hZGluZyBpbiBJQ1UKKyAqIFxk
ZWYgVV9NQUxMT0NfQVRUUgorICogQXR0cmlidXRlIHRvIG1hcmsgZnVuY3Rpb25zIGFzIG1hbGxv
Yy1saWtlCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0VOQUJMRV9EWUxPQUQKLSNkZWZp
bmUgVV9FTkFCTEVfRFlMT0FEIDEKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXz49
MworIyAgICBkZWZpbmUgVV9NQUxMT0NfQVRUUiBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykp
CisjZWxzZQorIyAgICBkZWZpbmUgVV9NQUxMT0NfQVRUUgogI2VuZGlmCiAKIC8qKgotICogV2hl
dGhlciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmlsdHkKKyAqIFxkZWYg
VV9BTExPQ19TSVpFX0FUVFIKKyAqIEF0dHJpYnV0ZSB0byBzcGVjaWZ5IHRoZSBzaXplIG9mIHRo
ZSBhbGxvY2F0ZWQgYnVmZmVyIGZvciBtYWxsb2MtbGlrZSBmdW5jdGlvbnMKICAqIEBpbnRlcm5h
bAogICovCi0jaWZuZGVmIFVfQ0hFQ0tfRFlMT0FECi0jZGVmaW5lIFVfQ0hFQ0tfRFlMT0FEIDEK
LSNlbmRpZgotCi0KLS8qKiBEbyB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBB
UElzIGJ5IGRlZmF1bHQ/ICovCi0jaWZuZGVmIFVfREVGQVVMVF9TSE9XX0RSQUZUCi0jZGVmaW5l
IFVfREVGQVVMVF9TSE9XX0RSQUZUIDEKKyNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05V
Q19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAzKSkpIHx8IF9f
aGFzX2F0dHJpYnV0ZShhbGxvY19zaXplKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUihY
KSBfX2F0dHJpYnV0ZV9fICgoYWxsb2Nfc2l6ZShYKSkpCisjICAgZGVmaW5lIFVfQUxMT0NfU0la
RV9BVFRSMihYLFkpIF9fYXR0cmlidXRlX18gKChhbGxvY19zaXplKFgsWSkpKQorI2Vsc2UKKyMg
ICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIoWCkKKyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FU
VFIyKFgsWSkKICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwot
LyoqIEB7IENoYXJhY3RlciBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0eXBlcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KIAotI2lmICgoZGVmaW5lZChPUzM5MCkgJiYgKCFkZWZpbmVkKF9f
Q0hBUlNFVF9MSUIpIHx8ICFfX0NIQVJTRVRfTElCKSkpIHx8IGRlZmluZWQoT1M0MDApCi0jICAg
ZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgMQorLyoqCisgKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVx
dWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gQVNDSUkgYmFzZWQgcGxh
dGZvcm0uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2RlZmluZSBVX0FTQ0lJX0ZBTUlMWSAw
CisKKy8qKgorICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4g
dGhlIHBsYXRmb3JtIGlzIGFuIEVCQ0RJQyBiYXNlZCBwbGF0Zm9ybS4KKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCisjZGVmaW5lIFVfRUJDRElDX0ZBTUlMWSAxCisKKy8qKgorICogXGRlZiBVX0NI
QVJTRVRfRkFNSUxZCisgKgorICogPHA+VGhlc2UgZGVmaW5pdGlvbnMgYWxsb3cgdG8gc3BlY2lm
eSB0aGUgZW5jb2Rpbmcgb2YgdGV4dAorICogaW4gdGhlIGNoYXIgZGF0YSB0eXBlIGFzIGRlZmlu
ZWQgYnkgdGhlIHBsYXRmb3JtIGFuZCB0aGUgY29tcGlsZXIuCisgKiBJdCBpcyBlbm91Z2ggdG8g
ZGV0ZXJtaW5lIHRoZSBjb2RlIHBvaW50IHZhbHVlcyBvZiAiaW52YXJpYW50IGNoYXJhY3RlcnMi
LAorICogd2hpY2ggYXJlIHRoZSBvbmVzIHNoYXJlZCBieSBhbGwgZW5jb2RpbmdzIHRoYXQgYXJl
IGluIHVzZQorICogb24gYSBnaXZlbiBwbGF0Zm9ybS48L3A+CisgKgorICogPHA+VGhvc2UgImlu
dmFyaWFudCBjaGFyYWN0ZXJzIiBzaG91bGQgYmUgYWxsIHRoZSB1cHBlcmNhc2UgYW5kIGxvd2Vy
Y2FzZQorICogbGF0aW4gbGV0dGVycywgdGhlIGRpZ2l0cywgdGhlIHNwYWNlLCBhbmQgImJhc2lj
IHB1bmN0dWF0aW9uIi4KKyAqIEFsc28sICdcXG4nLCAnXFxyJywgJ1xcdCcgc2hvdWxkIGJlIGF2
YWlsYWJsZS48L3A+CisgKgorICogPHA+VGhlIGxpc3Qgb2YgImludmFyaWFudCBjaGFyYWN0ZXJz
IiBpczo8YnI+CisgKiBcY29kZQorICogICAgQS1aICBhLXogIDAtOSAgU1BBQ0UgICIgICUgICZh
bXA7ICAnICAoICApICAqICArICAsICAtICAuICAvICA6ICA7ICA8ICA9ICA+ICA/ICBfCisgKiBc
ZW5kY29kZQorICogPGJyPgorICogKDUyIGxldHRlcnMgKyAxMCBudW1iZXJzICsgMjAgcHVuYy9z
eW0vc3BhY2UgPSA4MiB0b3RhbCk8L3A+CisgKgorICogPHA+VGhpcyBtYXRjaGVzIHRoZSBJQk0g
U3ludGFjdGljIENoYXJhY3RlciBTZXQgKENTIDY0MCkuPC9wPgorICoKKyAqIDxwPkluIG90aGVy
IHdvcmRzLCBhbGwgdGhlIGdyYXBoaWMgY2hhcmFjdGVycyBpbiA3LWJpdCBBU0NJSSBzaG91bGQK
KyAqIGJlIHNhZmVseSBhY2Nlc3NpYmxlIGV4Y2VwdCB0aGUgZm9sbG93aW5nOjwvcD4KKyAqCisg
KiBcY29kZQorICogICAgJ1wnIDxiYWNrc2xhc2g+CisgKiAgICAnWycgPGxlZnQgYnJhY2tldD4K
KyAqICAgICddJyA8cmlnaHQgYnJhY2tldD4KKyAqICAgICd7JyA8bGVmdCBicmFjZT4KKyAqICAg
ICd9JyA8cmlnaHQgYnJhY2U+CisgKiAgICAnXicgPGNpcmN1bWZsZXg+CisgKiAgICAnficgPHRp
bGRlPgorICogICAgJyEnIDxleGNsYW1hdGlvbiBtYXJrPgorICogICAgJyMnIDxudW1iZXIgc2ln
bj4KKyAqICAgICd8JyA8dmVydGljYWwgbGluZT4KKyAqICAgICckJyA8ZG9sbGFyIHNpZ24+Cisg
KiAgICAnQCcgPGNvbW1lcmNpYWwgYXQ+CisgKiAgICAnYCcgPGdyYXZlIGFjY2VudD4KKyAqIFxl
bmRjb2RlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lmZGVmIFVfQ0hBUlNFVF9GQU1JTFkK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09
IFVfUEZfT1MzOTAgJiYgKCFkZWZpbmVkKF9fQ0hBUlNFVF9MSUIpIHx8ICFfX0NIQVJTRVRfTElC
KQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfRUJDRElDX0ZBTUlMWQorI2VsaWYgVV9Q
TEFURk9STSA9PSBVX1BGX09TNDAwICYmICFkZWZpbmVkKF9fVVRGMzJfXykKKyMgICBkZWZpbmUg
VV9DSEFSU0VUX0ZBTUlMWSBVX0VCQ0RJQ19GQU1JTFkKKyNlbHNlCisjICAgZGVmaW5lIFVfQ0hB
UlNFVF9GQU1JTFkgVV9BU0NJSV9GQU1JTFkKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9DSEFS
U0VUX0lTX1VURjgKKyAqCisgKiBIYXJkY29kZSB0aGUgZGVmYXVsdCBjaGFyc2V0IHRvIFVURi04
LgorICoKKyAqIElmIHRoaXMgaXMgc2V0IHRvIDEsIHRoZW4KKyAqIC0gSUNVIHdpbGwgYXNzdW1l
IHRoYXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhciosIFN0cmluZ1BpZWNlLCBzdGQ6OnN0cmluZyBl
dGMuCisgKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzeXN0
ZW0gQVBJIHVzZXMKKyAqIC0gc29tZSBJQ1UgY29kZSB3aWxsIHVzZSBmYXN0IGZ1bmN0aW9ucyBs
aWtlIHVfc3RyRnJvbVVURjgoKQorICogICByYXRoZXIgdGhhbiB0aGUgbW9yZSBnZW5lcmFsIGFu
ZCBtb3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9uIEFQSSAodWNudi5oKQorICogLSB1Y252X2dl
dERlZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMgIlVURi04IgorICogLSB1Y252X3NldERlZmF1
bHROYW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwgbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBjaGFy
c2V0CisgKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNVIGFyZSBzbWFsbGVyCisgKiAtIG1vcmUgZnVu
Y3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0aGUgVUNPTkZJR19OT19DT05WRVJTSU9OIGJ1
aWxkLXRpbWUKKyAqICAgY29uZmlndXJhdGlvbiBvcHRpb24gKHNlZSB1bmljb2RlL3Vjb25maWcu
aCkKKyAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZCBvcHRpb24gaW4gdWNvbmZp
Zy5oIGlzIG1vcmUgdXNhYmxlCisgKgorICogQHN0YWJsZSBJQ1UgNC4yCisgKiBAc2VlIFVDT05G
SUdfTk9fQ09OVkVSU0lPTgorICovCisjaWZkZWYgVV9DSEFSU0VUX0lTX1VURjgKKyAgICAvKiBV
c2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQU5E
Uk9JRCB8fCBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorIyAgIGRlZmluZSBVX0NIQVJTRVRf
SVNfVVRGOCAxCisjZWxzZQorIyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAwCiAjZW5kaWYK
IAogLyoqIEB9ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBJbmZvcm1hdGlv
biBhYm91dCB3Y2hhciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CiAKLSNpZm5kZWYgVV9IQVZFX1dDSEFSX0gKLSNkZWZpbmUgVV9IQVZFX1dDSEFSX0ggICAgICAx
CisvKioKKyAqIFxkZWYgVV9IQVZFX1dDSEFSX0gKKyAqIEluZGljYXRlcyB3aGV0aGVyIDx3Y2hh
ci5oPiBpcyBhdmFpbGFibGUgKDEpIG9yIG5vdCAoMCkuIFNldCB0byAxIGJ5IGRlZmF1bHQuCisg
KgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyNpZmRlZiBVX0hBVkVfV0NIQVJfSAorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9B
TkRST0lEICYmIF9fQU5EUk9JRF9BUElfXyA8IDkKKyAgICAvKgorICAgICAqIEFuZHJvaWQgYmVm
b3JlIEdpbmdlcmJyZWFkIChBbmRyb2lkIDIuMywgQVBJIGxldmVsIDkpIGRpZCBub3Qgc3VwcG9y
dCB3Y2hhcl90LgorICAgICAqIFRoZSB0eXBlIGFuZCBoZWFkZXIgZXhpc3RlZCwgYnV0IHRoZSBs
aWJyYXJ5IGZ1bmN0aW9ucyBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICogVGhlIHNp
emUgb2Ygd2NoYXJfdCB3YXMgMSBidXQgTCJ4eXoiIHN0cmluZyBsaXRlcmFscyBoYWQgMzItYml0
IHVuaXRzIGFueXdheS4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMAorI2Vs
c2UKKyMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9TSVpF
T0ZfV0NIQVJfVAotI2RlZmluZSBVX1NJWkVPRl9XQ0hBUl9UICAgIDQKKy8qKgorICogXGRlZiBV
X1NJWkVPRl9XQ0hBUl9UCisgKiBVX1NJWkVPRl9XQ0hBUl9UPT1zaXplb2Yod2NoYXJfdCkKKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lmZGVmIFVfU0laRU9GX1dDSEFSX1QKKyAgICAv
KiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiAoVV9QTEFURk9STSA9PSBVX1BG
X0FORFJPSUQgJiYgX19BTkRST0lEX0FQSV9fIDwgOSkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NM
QVNTSUNfTUFDT1MKKyAgICAvKgorICAgICAqIENsYXNzaWMgTWFjIE9TIGFuZCBNYWMgT1MgWCBi
ZWZvcmUgMTAuMyAoUGFudGhlcikgZGlkIG5vdCBzdXBwb3J0IHdjaGFyX3Qgb3Igd3N0cmluZy4K
KyAgICAgKiBOZXdlciBNYWMgT1MgWCBoYXMgc2l6ZSA0LgorICAgICAqLworIyAgIGRlZmluZSBV
X1NJWkVPRl9XQ0hBUl9UIDEKKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSB8fCBVX1BM
QVRGT1JNID09IFVfUEZfQ1lHV0lOCisjICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMgorI2Vs
aWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWAorICAgIC8qCisgICAgICogQUlYIDYuMSBpbmZvcm1h
dGlvbiwgc2VjdGlvbiAiV2lkZSBjaGFyYWN0ZXIgZGF0YSByZXByZXNlbnRhdGlvbiI6CisgICAg
ICogIi4uLiB0aGUgd2NoYXJfdCBkYXRhdHlwZSBpcyAzMi1iaXQgaW4gdGhlIDY0LWJpdCBlbnZp
cm9ubWVudCBhbmQKKyAgICAgKiAxNi1iaXQgaW4gdGhlIDMyLWJpdCBlbnZpcm9ubWVudC4iCisg
ICAgICogYW5kCisgICAgICogIkFsbCBsb2NhbGVzIHVzZSBVbmljb2RlIGZvciB0aGVpciB3aWRl
IGNoYXJhY3RlciBjb2RlIHZhbHVlcyAocHJvY2VzcyBjb2RlKSwKKyAgICAgKiBleGNlcHQgdGhl
IElCTS1ldWNUVyBjb2Rlc2V0LiIKKyAgICAgKi8KKyMgICBpZmRlZiBfXzY0QklUX18KKyMgICAg
ICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVf
U0laRU9GX1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1Mz
OTAKKyAgICAvKgorICAgICAqIHovT1MgVjFSMTEgaW5mb3JtYXRpb24gY2VudGVyLCBzZWN0aW9u
ICJMUDY0IHwgSUxQMzIiOgorICAgICAqICJJbiAzMS1iaXQgbW9kZSwgdGhlIHNpemUgb2YgbG9u
ZyBhbmQgcG9pbnRlcnMgaXMgNCBieXRlcyBhbmQgdGhlIHNpemUgb2Ygd2NoYXJfdCBpcyAyIGJ5
dGVzLgorICAgICAqIFVuZGVyIExQNjQsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50ZXIgaXMg
OCBieXRlcyBhbmQgdGhlIHNpemUgb2Ygd2NoYXJfdCBpcyA0IGJ5dGVzLiIKKyAgICAgKi8KKyMg
ICBpZmRlZiBfTFA2NAorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CisjICAgZWxz
ZQorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgIGlmIGRlZmluZWQoX19VVEYzMl9fKQorICAgICAg
ICAvKgorICAgICAgICAgKiBMT0NBTEVUWVBFKCpMT0NBTEVVVEYpIGlzIHNwZWNpZmllZC4KKyAg
ICAgICAgICogV2lkZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gVVRGLTMyLAorICAgICAgICAg
KiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3MgYXJlIGluIFVURi04LgorICAgICAgICAgKi8KKyMg
ICAgICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsaWYgZGVmaW5lZChfX1VDUzJf
XykKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQRSgqTE9DQUxFVUNTMikgaXMgc3Bl
Y2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBVQ1MtMiwK
KyAgICAgICAgICogbmFycm93LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMuCisgICAg
ICAgICAqLworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjZWxzZQorICAgICAg
ICAvKgorICAgICAgICAgKiBMT0NBTEVUWVBFKCpDTEQpIG9yIExPQ0FMRVRZUEUoKkxPQ0FMRSkg
aXMgc3BlY2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiAx
Ni1iaXQgRUJDRElDLAorICAgICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3MgYXJlIGlu
IEVCQ0RJQy4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIK
KyMgICBlbmRpZgorI2Vsc2UKKyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CiAjZW5kaWYK
IAogI2lmbmRlZiBVX0hBVkVfV0NTQ1BZCi0jZGVmaW5lIFVfSEFWRV9XQ1NDUFkgICAgICAgMQor
I2RlZmluZSBVX0hBVkVfV0NTQ1BZIFVfSEFWRV9XQ0hBUl9ICiAjZW5kaWYKIAogLyoqIEB9ICov
CiAKIC8qKgorICogXGRlZiBVX0hBVkVfQ0hBUjE2X1QKKyAqIERlZmluZXMgd2hldGhlciB0aGUg
Y2hhcjE2X3QgdHlwZSBpcyBhdmFpbGFibGUgZm9yIFVURi0xNgorICogYW5kIHUiYWJjIiBVVEYt
MTYgc3RyaW5nIGxpdGVyYWxzIGFyZSBzdXBwb3J0ZWQuCisgKiBUaGlzIGlzIGEgbmV3IHN0YW5k
YXJkIHR5cGUgYW5kIHN0YW5kYXJkIHN0cmluZyBsaXRlcmFsIHN5bnRheCBpbiBDKysweAorICog
YnV0IGhhcyBiZWVuIGF2YWlsYWJsZSBpbiBzb21lIGNvbXBpbGVycyBiZWZvcmUuCisgKiBAaW50
ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9DSEFSMTZfVAorICAgIC8qIFVzZSB0aGUgcHJlZGVm
aW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOb3RlczoKKyAgICAgKiBWaXN1
YWwgU3R1ZGlvIDEwIChfTVNDX1ZFUj49MTYwMCkgZGVmaW5lcyBjaGFyMTZfdCBidXQKKyAgICAg
KiBkb2VzIG5vdCBzdXBwb3J0IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICogZ2NjIDQu
NCBkZWZpbmVzIHRoZSBfX0NIQVIxNl9UWVBFX18gbWFjcm8gdG8gYSB1c2FibGUgdHlwZSBidXQK
KyAgICAgKiBkb2VzIG5vdCBzdXBwb3J0IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICog
QysrMTEgYW5kIEMxMSByZXF1aXJlIHN1cHBvcnQgZm9yIFVURi0xNiBsaXRlcmFscworICAgICAq
LworIyAgIGlmIChkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNM
KSB8fCAoZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDIw
MTExMkwpCisjICAgICAgIGRlZmluZSBVX0hBVkVfQ0hBUjE2X1QgMQorIyAgIGVsc2UKKyMgICAg
ICAgZGVmaW5lIFVfSEFWRV9DSEFSMTZfVCAwCisjICAgZW5kaWYKKyNlbmRpZgorCisvKioKICAq
IEB7CiAgKiBcZGVmIFVfREVDTEFSRV9VVEYxNgotICogRG8gbm90IHVzZSB0aGlzIG1hY3JvLiBV
c2UgdGhlIFVOSUNPREVfU1RSSU5HIG9yIFVfU1RSSU5HX0RFQ0wgbWFjcm9zCi0gKiBpbnN0ZWFk
LgotICogQGludGVybmFsCi0gKgotICogXGRlZiBVX0dOVUNfVVRGMTZfU1RSSU5HCisgKiBEbyBu
b3QgdXNlIHRoaXMgbWFjcm8gYmVjYXVzZSBpdCBpcyBub3QgZGVmaW5lZCBvbiBhbGwgcGxhdGZv
cm1zLgorICogVXNlIHRoZSBVTklDT0RFX1NUUklORyBvciBVX1NUUklOR19ERUNMIG1hY3JvcyBp
bnN0ZWFkLgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9HTlVDX1VURjE2X1NUUklORwot
I2RlZmluZSBVX0dOVUNfVVRGMTZfU1RSSU5HIDAKLSNlbmRpZgotI2lmIDEgfHwgZGVmaW5lZChV
X0NIRUNLX1VURjE2X1NUUklORykKLSNpZiAoZGVmaW5lZChfX3hsQ19fKSAmJiBkZWZpbmVkKF9f
SUJNX1VURl9MSVRFUkFMKSAmJiBVX1NJWkVPRl9XQ0hBUl9UICE9IDIpIFwKKyNpZmRlZiBVX0RF
Q0xBUkVfVVRGMTYKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBV
X0hBVkVfQ0hBUjE2X1QgXAorICAgIHx8IChkZWZpbmVkKF9feGxDX18pICYmIGRlZmluZWQoX19J
Qk1fVVRGX0xJVEVSQUwpICYmIFVfU0laRU9GX1dDSEFSX1QgIT0gMikgXAogICAgIHx8IChkZWZp
bmVkKF9fSFBfYUNDKSAmJiBfX0hQX2FDQyA+PSAwMzUwMDApIFwKLSAgICB8fCAoZGVmaW5lZChf
X0hQX2NjKSAmJiBfX0hQX2NjID49IDExMTEwNikgXAotICAgIHx8IFVfR05VQ19VVEYxNl9TVFJJ
TkcKLSNkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgdSAjIyBzdHJpbmcKLSNlbGlmIChk
ZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA+PSAweDU1MCkKLS8qIHx8IChkZWZp
bmVkKF9fU1VOUFJPX0MpICYmIF9fU1VOUFJPX0MgPj0gMHg1ODApICovCi0vKiBTdW4ncyBDIGNv
bXBpbGVyIGhhcyBpc3N1ZXMgd2l0aCB0aGlzIG5vdGF0aW9uLCBhbmQgaXQncyB1bnJlbGlhYmxl
LiAqLwotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBVICMjIHN0cmluZworICAgIHx8
IChkZWZpbmVkKF9fSFBfY2MpICYmIF9fSFBfY2MgPj0gMTExMTA2KQorIyAgIGRlZmluZSBVX0RF
Q0xBUkVfVVRGMTYoc3RyaW5nKSB1ICMjIHN0cmluZwogI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVCA9
PSAyIFwKLSAgICAmJiAoVV9DSEFSU0VUX0ZBTUlMWSA9PSAwIHx8ICgoZGVmaW5lZChPUzM5MCkg
fHwgZGVmaW5lZChPUzQwMCkpICYmIGRlZmluZWQoX19VQ1MyX18pKSkKLSNkZWZpbmUgVV9ERUNM
QVJFX1VURjE2KHN0cmluZykgTCAjIyBzdHJpbmcKLSNlbmRpZgotI2VuZGlmCi0KLS8qKiBAfSAq
LwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgUE9T
SVggc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwot
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZuZGVmIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RF
U0VUCi0jZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUICAxCi0jZW5kaWYKLQotI2lm
bmRlZiBVX05MX0xBTkdJTkZPX0NPREVTRVQKLSNkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VU
ICAgICAgIENPREVTRVQKLSNlbmRpZgotCi0jaWYgMQotI2RlZmluZSBVX1RaU0VUICAgICAgICAg
dHpzZXQKLSNlbmRpZgotI2lmIDAKLSNkZWZpbmUgVV9USU1FWk9ORSAgICAgIHRpbWV6b25lCi0j
ZW5kaWYKLSNpZiAxCi0jZGVmaW5lIFVfVFpOQU1FICAgICAgICB0em5hbWUKKyAgICAmJiAoVV9D
SEFSU0VUX0ZBTUlMWSA9PSAwIHx8IChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFU
Rk9STSA8PSBVX1BGX09TNDAwICYmIGRlZmluZWQoX19VQ1MyX18pKSkKKyMgICBkZWZpbmUgVV9E
RUNMQVJFX1VURjE2KHN0cmluZykgTCAjIyBzdHJpbmcKKyNlbHNlCisgICAgLyogTGVhdmUgVV9E
RUNMQVJFX1VURjE2IHVuZGVmaW5lZC4gU2VlIHVuaXN0ci5oLiAqLwogI2VuZGlmCiAKLSNkZWZp
bmUgVV9IQVZFX01NQVAgICAgIDEKLSNkZWZpbmUgVV9IQVZFX1BPUEVOICAgIDEKLQogLyoqIEB9
ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBTeW1ib2wgaW1wb3J0LWV4cG9y
dCBjb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
CisvKiogQHsgU3ltYm9sIGltcG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiAx
Ci0jZGVmaW5lIFVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkp
CisjaWZkZWYgVV9FWFBPUlQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisj
ZWxpZiBkZWZpbmVkKFVfU1RBVElDX0lNUExFTUVOVEFUSU9OKQorIyAgIGRlZmluZSBVX0VYUE9S
VAorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19hdHRyaWJ1
dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICNlbGlmIChkZWZpbmVkKF9fU1VOUFJPX0ND
KSAmJiBfX1NVTlBST19DQyA+PSAweDU1MCkgXAogICAgfHwgKGRlZmluZWQoX19TVU5QUk9fQykg
JiYgX19TVU5QUk9fQyA+PSAweDU1MCkgCi0jZGVmaW5lIFVfRVhQT1JUIF9fZ2xvYmFsCisjICAg
ZGVmaW5lIFVfRVhQT1JUIF9fZ2xvYmFsCiAvKiNlbGlmIGRlZmluZWQoX19IUF9hQ0MpIHx8IGRl
ZmluZWQoX19IUF9jYykKLSNkZWZpbmUgVV9FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpKi8K
KyMgICBkZWZpbmUgVV9FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpKi8KKyNlbGlmIGRlZmlu
ZWQoX01TQ19WRVIpCisjICAgZGVmaW5lIFVfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQog
I2Vsc2UKLSNkZWZpbmUgVV9FWFBPUlQKKyMgICBkZWZpbmUgVV9FWFBPUlQKICNlbmRpZgogCiAv
KiBVX0NBTExDT05WIGlzIHJlbGVhdGVkIHRvIFVfRVhQT1JUMiAqLwotI2RlZmluZSBVX0VYUE9S
VDIKLQotLyogY3lnd2luIG5lZWRzIHRvIGV4cG9ydC9pbXBvcnQgZGF0YSAqLwotI2lmIGRlZmlu
ZWQoVV9DWUdXSU4pICYmICFkZWZpbmVkKF9fR05VQ19fKQotI2RlZmluZSBVX0lNUE9SVCBfX2Rl
Y2xzcGVjKGRsbGltcG9ydCkKKyNpZmRlZiBVX0VYUE9SVDIKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmluZSBVX0VY
UE9SVDIgX19jZGVjbAogI2Vsc2UKLSNkZWZpbmUgVV9JTVBPUlQgCi0jZW5kaWYKLQotLyogQH0g
Ki8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IENvZGUgYWxpZ25tZW50IGFuZCBD
IGZ1bmN0aW9uIGlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
LS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lmbmRlZiBVX0lOTElORQotIyAgIGlmZGVmIF9f
Y3BsdXNwbHVzCi0jICAgICAgIGRlZmluZSBVX0lOTElORSBpbmxpbmUKLSMgICBlbHNlCi0jICAg
ICAgIGRlZmluZSBVX0lOTElORSBfX2lubGluZV9fCi0jICAgZW5kaWYKLSNlbmRpZgotCi0jaWZu
ZGVmIFVfQUxJR05fQ09ERQotI2RlZmluZSBVX0FMSUdOX0NPREUobikgCisjICAgZGVmaW5lIFVf
RVhQT1JUMgogI2VuZGlmCiAKLS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0v
KiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9yeSBvcGVyYXRpb25z
ICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioK
LSAqIFxkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCi0gKiBAaW50ZXJuYWwKLSAqLwotI2lmbmRlZiBV
X0hBVkVfR0NDX0FUT01JQ1MKLSNkZWZpbmUgVV9IQVZFX0dDQ19BVE9NSUNTIDEKKyNpZmRlZiBV
X0lNUE9SVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmlu
ZWQoX01TQ19WRVIpCisgICAgLyogV2luZG93cyBuZWVkcyB0byBleHBvcnQvaW1wb3J0IGRhdGEu
ICovCisjICAgZGVmaW5lIFVfSU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vsc2UKKyMg
ICBkZWZpbmUgVV9JTVBPUlQgCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KLS8qPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ki8KLS8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5IElDVSBjb2RlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCi0KIC8qKgotICogXGRlZiBVX01BS0UKLSAqIFdoYXQgcHJvZ3JhbSB0byBleGVjdXRlIHRv
IHJ1biAnbWFrZScKKyAqIFxkZWYgVV9DQUxMQ09OVgorICogU2ltaWxhciB0byBVX0NERUNMX0JF
R0lOL1VfQ0RFQ0xfRU5ELCB0aGlzIHF1YWxpZmllciBpcyBuZWNlc3NhcnkKKyAqIGluIGNhbGxi
YWNrIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjYWxsaW5nIGNvbnZl
bnRpb24KKyAqIGlzIGNvbXBhdGlibGUuCisgKgorICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIG5v
bi1JQ1UtQVBJIGZ1bmN0aW9ucy4KKyAqIFdoZW4gYSBmdW5jdGlvbiBpcyBhIHB1YmxpYyBJQ1Ug
QVBJLAorICogeW91IG11c3QgdXNlIHRoZSBVX0NBUEkgYW5kIFVfRVhQT1JUMiBxdWFsaWZpZXJz
LgorICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNpZm5kZWYgVV9NQUtFCi0jZGVmaW5lIFVfTUFL
RSAgIi91c3IvYmluL2dudW1ha2UiCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIGRl
ZmluZWQoX19jcGx1c3BsdXMpCisjICAgIGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wKKyNlbHNl
CisjICAgIGRlZmluZSBVX0NBTExDT05WIFVfRVhQT1JUMgogI2VuZGlmCiAKLS8qKiBAfSAqLwot
Ci0jZW5kaWYgLyogQ1lHV0lOTVNWQyAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiBD
dXN0b20gaWN1IGVudHJ5IHBvaW50IHJlbmFtaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioK
LSAqIERlZmluZSB0aGUgbGlicmFyeSBzdWZmaXggd2l0aCBDIHN5bnRheC4KLSAqIEBpbnRlcm5h
bAotICovCi0jIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FIAotLyoqCi0gKiBEZWZpbmUgdGhl
IGxpYnJhcnkgc3VmZml4IGFzIGEgc3RyaW5nIHdpdGggQyBzeW50YXgKLSAqIEBpbnRlcm5hbAot
ICovCi0jIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAiIgotLyoqCi0gKiAxIGlm
IGEgY3VzdG9tIGxpYnJhcnkgc3VmZml4IGlzIHNldAotICogQGludGVybmFsCi0gKi8KLSMgZGVm
aW5lIFVfSEFWRV9MSUJfU1VGRklYIDAKLQotI2lmIFVfSEFWRV9MSUJfU1VGRklYCi0jIGlmbmRl
ZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKLS8qIFJlbmFtaW5nIHBhdHRlcm46ICAgIHVfc3Ry
Y3B5XzQxX3N1ZmZpeCAqLwotIyAgZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAg
ICB4ICMjIF8gIyMgNDYgIyMgCi0jICBkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVCht
YWpvciwgbWlub3IpIGljdWR0IyMjI21ham9yIyNtaW5vciMjX2RhdAotCi0jIGVuZGlmCi0jZW5k
aWYKKy8qIEB9ICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9wdHlwZXMuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcHR5cGVzLmgKaW5kZXggMWYzNGQy
Zjg0ZTQxMGVmNzkzMGE2NmVmNmU3NGNiNjRiY2JjNTgxZC4uYjdmNzExNjAzMjgyYzM2YzczMjIy
MGU3YTk2YzkxMzNkZDAyNTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9w
dHlwZXMuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3B0eXBlcy5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5
Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChD
KSAxOTk3LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgpAQCAtMTcsNDAgKzE3LDY5IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICovCiAK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGVmaW5pdGlvbnMgb2YgaW50ZWdlciB0
eXBlcyBvZiB2YXJpb3VzIHdpZHRocworICovCisKICNpZm5kZWYgX1BUWVBFU19ICiAjZGVmaW5l
IF9QVFlQRVNfSAogCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisvKioKKyAqIFxkZWYgX19TVERD
X0xJTUlUX01BQ1JPUworICogQWNjb3JkaW5nIHRvIHRoZSBMaW51eCBzdGRpbnQuaCwgdGhlIElT
TyBDOTkgc3RhbmRhcmQgc3BlY2lmaWVzIHRoYXQgaW4gQysrIGltcGxlbWVudGF0aW9ucworICog
bWFjcm9zIGxpa2UgSU5UMzJfTUlOIGFuZCBVSU5UUFRSX01BWCBzaG91bGQgb25seSBiZSBkZWZp
bmVkIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgorICogV2UgbmVlZCB0byBkZWZpbmUgX19TVERD
X0xJTUlUX01BQ1JPUyBiZWZvcmUgaW5jbHVkaW5nIHN0ZGludC5oIGluIEMrKyBjb2RlCisgKiB0
aGF0IHVzZXMgc3VjaCBsaW1pdCBtYWNyb3MuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBf
X1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKKyNlbmRpZgor
CisvKiBOVUxMLCBzaXplX3QsIHdjaGFyX3QgKi8KKyNpbmNsdWRlIDxzdGRkZWYuaD4KIAorLyoK
KyAqIElmIGFsbCBjb21waWxlcnMgcHJvdmlkZWQgYWxsIG9mIHRoZSBDOTkgaGVhZGVycyBhbmQg
dHlwZXMsCisgKiB3ZSB3b3VsZCBqdXN0IHVuY29uZGl0aW9uYWxseSAjaW5jbHVkZSA8c3RkaW50
Lmg+IGhlcmUKKyAqIGFuZCBub3QgbmVlZCBhbnkgb2YgdGhlIHN0dWZmIGFmdGVyIGluY2x1ZGlu
ZyBwbGF0Zm9ybS5oLgorICovCisKKy8qIEZpbmQgb3V0IGlmIHdlIGhhdmUgc3RkaW50LmggZXRj
LiAqLwogI2luY2x1ZGUgInVuaWNvZGUvcGxhdGZvcm0uaCIKIAogLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLwogLyogR2VuZXJpYyBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0v
KiBJZiB5b3VyIHBsYXRmb3JtIGRvZXMgbm90IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIs
IHlvdSBtYXkKLSAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgYmVsb3cuICovCi0jaWYgVV9I
QVZFX0lOVFRZUEVTX0gKKy8qIElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0aGUgPHN0
ZGludC5oPiBoZWFkZXIsIHlvdSBtYXkKKyAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgaW4g
dGhlICNlbHNlIHNlY3Rpb24gYmVsb3cuCisgICBVc2UgI2lmLi4uI2Vsc2UuLi4jZW5kaWYgd2l0
aCBwcmVkZWZpbmVkIGNvbXBpbGVyIG1hY3JvcyBpZiBwb3NzaWJsZS4gKi8KKyNpZiBVX0hBVkVf
U1RESU5UX0gKKworLyoKKyAqIFdlIG1vc3RseSBuZWVkIDxzdGRpbnQuaD4gKHdoaWNoIGRlZmlu
ZXMgdGhlIHN0YW5kYXJkIGludGVnZXIgdHlwZXMpIGJ1dCBub3QgPGludHR5cGVzLmg+LgorICog
PGludHR5cGVzLmg+IGluY2x1ZGVzIDxzdGRpbnQuaD4gYW5kIGFkZHMgdGhlIHByaW50Zi9zY2Fu
ZiBoZWxwZXJzIFBSSWQzMiwgU0NOeDE2IGV0Yy4KKyAqIHdoaWNoIHdlIGFsbW9zdCBuZXZlciB1
c2UsIHBsdXMgc3R1ZmYgbGlrZSBpbWF4YWJzKCkgd2hpY2ggd2UgbmV2ZXIgdXNlLgorICovCisj
aW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qIGF1dG9jb25mIDIuMTMgc29tZXRpbWVzIGNhbid0IHBy
b3Blcmx5IGZpbmQgdGhlIGRhdGEgdHlwZXMgaW4gPGludHR5cGVzLmg+ICovCi0vKiBvcy8zOTAg
bmVlZHMgPGludHR5cGVzLmg+LCBidXQgaXQgZG9lc24ndCBoYXZlIGludDhfdCwgYW5kIGl0IHNv
bWV0aW1lcyAqLwotLyogZG9lc24ndCBoYXZlIHVpbnQ4X3QgZGVwZW5kaW5nIG9uIHRoZSBPUyB2
ZXJzaW9uLiAqLwotLyogU28gd2UgaGF2ZSB0aGlzIHdvcmsgYXJvdW5kLiAqLwotI2lmZGVmIE9T
MzkwCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCiAvKiBUaGUgZmVhdHVyZXMgaGVhZGVy
IGlzIG5lZWRlZCB0byBnZXQgKHUpaW50NjRfdCBzb21ldGltZXMuICovCiAjaW5jbHVkZSA8ZmVh
dHVyZXMuaD4KLSNpZiAhIFVfSEFWRV9JTlQ4X1QKLXR5cGVkZWYgc2lnbmVkIGNoYXIgaW50OF90
OwotI2VuZGlmCisvKiB6L09TIGhhcyA8c3RkaW50Lmg+LCBidXQgc29tZSB2ZXJzaW9ucyBhcmUg
bWlzc2luZyB1aW50OF90IChBUEFSIFBLNjIyNDgpLiAqLwogI2lmICFkZWZpbmVkKF9fdWludDhf
dCkKICNkZWZpbmUgX191aW50OF90IDEKIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90Owog
I2VuZGlmCi0jZW5kaWYgLyogT1MzOTAgKi8KKyNlbmRpZiAvKiBVX1BMQVRGT1JNID09IFVfUEZf
T1MzOTAgKi8KKworI2VsaWYgVV9IQVZFX0lOVFRZUEVTX0gKIAotI2luY2x1ZGUgPGludHR5cGVz
Lmg+CisjICAgaW5jbHVkZSA8aW50dHlwZXMuaD4KIAotI2Vsc2UgLyogVV9IQVZFX0lOVFRZUEVT
X0ggKi8KKyNlbHNlIC8qIG5laXRoZXIgVV9IQVZFX1NURElOVF9IIG5vciBVX0hBVkVfSU5UVFlQ
RVNfSCAqLwogCiAjaWYgISBVX0hBVkVfSU5UOF9UCiB0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhf
dDsKQEAgLTc3LDE2ICsxMDYsMjEgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CiAj
ZW5kaWYKIAogI2lmICEgVV9IQVZFX0lOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVk
ZWYgc2lnbmVkIF9faW50NjQgaW50NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiBzaWduZWQgbG9u
ZyBsb25nIGludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBlICov
CisjZW5kaWYKICNlbmRpZgogCiAjaWYgISBVX0hBVkVfVUlOVDY0X1QKKyNpZmRlZiBfTVNDX1ZF
UgorICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB1aW50NjRfdDsKKyNlbHNlCiAgICAgdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2
ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRpZgogCi0jZW5kaWYgLyogVV9IQVZFX0lO
VFRZUEVTX0ggKi8KKyNlbmRpZiAvKiBVX0hBVkVfU1RESU5UX0ggLyBVX0hBVkVfSU5UVFlQRVNf
SCAqLwogCiAjZW5kaWYgLyogX1BUWVBFU19IICovCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvcHV0aWwuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcHV0aWwuaAppbmRl
eCA3MWQ1ZDI2NDMwNTI5YjYwYjdlYTRjNGQ4MzBkYmM4NjE3NTI5NDY1Li42ZmM3ZTljZDVhNjJh
NTU5NDZhZTZkNzc4N2JmMjVkMjM2MTEwYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3B1dGlsLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9wdXRpbC5oCkBAIC0x
LDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAo
QykgMTk5Ny0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJp
Z2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgpAQCAtMzAsMTIgKzMwLDYgQEAKICAgKiBcYnJpZWYgQyBBUEk6IFBsYXRm
b3JtIFV0aWxpdGllcwogICAqLwogCi0vKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRm
b3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAotICAgdG8gMCBpZiBpdCBkb2Vz
IG5vdC4gKi8KLSNpZm5kZWYgSUVFRV83NTQKLSMgICBkZWZpbmUgSUVFRV83NTQgMQotI2VuZGlm
Ci0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogUGxhdGZvcm0gdXRpbGl0aWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KQEAgLTkzLDQzICs4NywyMCBAQCBVX1NUQUJMRSBjb25zdCBjaGFyKiBV
X0VYUE9SVDIgdV9nZXREYXRhRGlyZWN0b3J5KHZvaWQpOwogICovCiBVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMiB1X3NldERhdGFEaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5KTsKIAotI2lm
ICFVX0NIQVJTRVRfSVNfVVRGOAotLyoqCi0gKiBQbGVhc2UgdXNlIHVjbnZfZ2V0RGVmYXVsdE5h
bWUoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBs
YXRmb3JtIGFuZCBsb2NhbGUuCi0gKiBUaGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgp
IG9uIFVuaXggcGxhdGZvcm1zLiBQbGVhc2UgcmVhZCB0aGUKLSAqIHBsYXRmb3JtIGRvY3VtZW50
YXRpb24gb24gc2V0bG9jYWxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqIEBy
ZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9yIHRoaXMgcGxhdGZvcm0gCi0gKiBAaW50ZXJu
YWwKLSAqLwotVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVs
dENvZGVwYWdlKHZvaWQpOwotI2VuZGlmCi0KLS8qKgotICogUGxlYXNlIHVzZSB1bG9jX2dldERl
ZmF1bHQoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcg
YnkgcXVlcnlpbmcgdGhzIHN5c3RlbSwgb3IKLSAqICAgICB6ZXJvIGlmIG9uZSBjYW5ub3QgYmUg
Zm91bmQuIAotICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBs
YXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNl
dGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCi0gKiBAcmV0dXJuIHRoZSBk
ZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcKLSAqIEBpbnRlcm5hbAotICovCi1VX0lOVEVSTkFMIGNv
bnN0IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXREZWZhdWx0TG9jYWxlSUQodm9pZCk7Ci0KIC8q
KgogICogQHsKICAqIEZpbGVzeXN0ZW0gZmlsZSBhbmQgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVy
cy4KICAqIEV4YW1wbGU6ICcvJyBhbmQgJzonIG9uIFVuaXgsICdcXCcgYW5kICc7JyBvbiBXaW5k
b3dzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNpZmRlZiBYUF9NQUMKKyNpZiBVX1BMQVRG
T1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUwogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIgJzon
CiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX0NIQVIgJzonCiAjICAgZGVmaW5lIFVfUEFUSF9T
RVBfQ0hBUiAnOycKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5l
IFVfRklMRV9BTFRfU0VQX1NUUklORyAiOiIKICMgICBkZWZpbmUgVV9QQVRIX1NFUF9TVFJJTkcg
IjsiCi0jZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKE9TMikKKyNlbGlmIFVfUExBVEZP
Uk1fVVNFU19PTkxZX1dJTjMyX0FQSQogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIgJ1xcJwog
IyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFSICcvJwogIyAgIGRlZmluZSBVX1BBVEhfU0VQ
X0NIQVIgJzsnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JlcC5oIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yZXAuaAppbmRleCAzZmFiNmZhMTI3MmUwZjYwYTQxNzM5Yzgz
MWIzZjA2Zjk3YzZhMGUwLi40YzdlYWUxNDAxZGNkNmM5NTQyMTU3ZGJmYTBmMmZlM2VhOGRjNGVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JlcC5oCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvcmVwLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMgQ29ycG9yYXRpb24gYW5kCisqIENvcHlyaWdodCAoQykgMTk5OS0yMDEyLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAogKiBvdGhlcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgIERhdGUgICAgICAgIE5hbWUg
ICAgICAgIERlc2NyaXB0aW9uCkBAIC0yMDUsNyArMjA1LDcgQEAgcHJvdGVjdGVkOgogICAgICAq
IERlZmF1bHQgY29uc3RydWN0b3IuCiAgICAgICogQHN0YWJsZSBJQ1UgMi40CiAgICAgICovCi0g
ICAgUmVwbGFjZWFibGUoKTsKKyAgICBpbmxpbmUgUmVwbGFjZWFibGUoKTsKIAogICAgIC8qCiAg
ICAgICogQXNzaWdubWVudCBvcGVyYXRvciBub3QgZGVjbGFyZWQuIFRoZSBjb21waWxlciB3aWxs
IHByb3ZpZGUgb25lCkBAIC0yMzcsNiArMjM3LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
VUNoYXIzMiBnZXRDaGFyMzJBdChpbnQzMl90IG9mZnNldCkgY29uc3QgPSAwOwogfTsKIAoraW5s
aW5lIFJlcGxhY2VhYmxlOjpSZXBsYWNlYWJsZSgpIHt9CisKIGlubGluZSBpbnQzMl90CiBSZXBs
YWNlYWJsZTo6bGVuZ3RoKCkgY29uc3QgewogICAgIHJldHVybiBnZXRMZW5ndGgoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc3RkX3N0cmluZy5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKaW5kZXggZGQ0M2I3NDVhMDBjNTM0NWFlOTgxMTI2ZmIy
OTIzNjhlZTcyYmUzNS4uNjdiMWQ2YzVhYWQxMGEwYjYyODM3YzI1MjU0Nzc2MzViNmIwMWYyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAg
LTI1LDU0ICsyNSwxMCBAQAogCiAjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKIAotLyoqCi0g
KiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0gKiBEZWZpbmUgd2hldGhlciB0aGUgc3RhbmRhcmQg
QysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBpcyBhdmFpbGFibGUuCi0gKiBAaW50ZXJu
YWwKLSAqLwotI2lmbmRlZiBVX0hBVkVfU1REX1NUUklORwotI2RlZmluZSBVX0hBVkVfU1REX1NU
UklORyAxCi0jZW5kaWYKLQogI2lmIFVfSEFWRV9TVERfU1RSSU5HCiAKICNpbmNsdWRlIDxzdHJp
bmc+CiAKLS8qKgotICogXGRlZiBVX1NURF9OUwotICogRGVmaW5lIHRoZSBuYW1lc3BhY2UgdG8g
dXNlIGZvciBzdGFuZGFyZCBDKysgKFNUTCkgY2xhc3Nlcy4KLSAqIEVpdGhlciBzdGQgb3IgZW1w
dHkuCi0gKiBAZHJhZnQgSUNVIDQuMgotICovCi0KLS8qKgotICogXGRlZiBVX1NURF9OU1EKLSAq
IERlZmluZSB0aGUgbmFtZXNwYWNlIHF1YWxpZmllciB0byB1c2UgZm9yIHN0YW5kYXJkIEMrKyAo
U1RMKSBjbGFzc2VzLgotICogRWl0aGVyIHN0ZDo6IG9yIGVtcHR5LgotICogRm9yIGV4YW1wbGUs
Ci0gKiAgIFVfU1REX05TUSBzdHJpbmcgU3RyaW5nRnJvbVVuaWNvZGVTdHJpbmcoY29uc3QgVW5p
Y29kZVN0cmluZyAmdW5pc3RyKTsKLSAqIEBkcmFmdCBJQ1UgNC4yCi0gKi8KLQotLyoqCi0gKiBc
ZGVmIFVfU1REX05TX1VTRQotICogVGhpcyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhhdCB0aGUgcmVz
dCBvZiB0aGUgY29kZSB1c2VzIHRoZQotICogc3RhbmRhcmQgKFNUTCkgbmFtZXNwYWNlLgotICog
RWl0aGVyICJ1c2luZyBuYW1lc3BhY2Ugc3RkOyIgb3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQu
MgotICovCi0jaWZuZGVmIFVfU1REX05TUQotIyAgIGlmIFVfSEFWRV9OQU1FU1BBQ0UKLSMgICAg
ICAgZGVmaW5lIFVfU1REX05TIHN0ZAotIyAgICAgICBkZWZpbmUgVV9TVERfTlNRIFVfU1REX05T
OjoKLSMgICAgICAgZGVmaW5lIFVfU1REX05TX1VTRSB1c2luZyBuYW1lc3BhY2UgVV9TVERfTlM7
Ci0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9TVERfTlMKLSMgICAgICAgZGVmaW5lIFVfU1RE
X05TUQotIyAgICAgICBkZWZpbmUgVV9TVERfTlNfVVNFCi0jICAgZW5kaWYKLSNlbmRpZgotCiAj
ZW5kaWYgIC8vIFVfSEFWRV9TVERfU1RSSU5HCiAKICNlbmRpZiAgLy8gX19TVERfU1RSSU5HX0hf
XwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdHJlbnVtLmggYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3N0cmVudW0uaAppbmRleCBjZTQyMTk1YTRmMmNiMjJjMmQzNDRjYjlm
N2JkZjg2N2E1NzA0M2ZhLi4zZGJlMjFjNmIyZGRkZmI4NjkzODdkNDhlZmQ2MjQzZGIzOTE1YjM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmVudW0uaAorKysgYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3N0cmVudW0uaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDcsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMiwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTE4
LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICAgKgogICAgICAqIFN0YXJ0aW5nIHdpdGggSUNVIDIu
OCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgc25leHQoKQogICAgICAqIGFuZCBo
YW5kbGVzIHRoZSBjb252ZXJzaW9uLgorICAgICAqIEVpdGhlciBuZXh0KCkgb3Igc25leHQoKSBt
dXN0IGJlIGltcGxlbWVudGVkIGRpZmZlcmVudGx5IGJ5IGEgc3ViY2xhc3MuCiAgICAgICoKICAg
ICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlLgogICAgICAqIEBwYXJhbSByZXN1bHRM
ZW5ndGggYSBwb2ludGVyIHRvIHJlY2VpdmUgdGhlIGxlbmd0aCwgY2FuIGJlIE5VTEwuCkBAIC0x
NjMsMTIgKzE2NCwxNiBAQCBwdWJsaWM6CiAgICAgICogPHA+SWYgdGhlIGl0ZXJhdG9yIGlzIG91
dCBvZiBzeW5jIHdpdGggaXRzIHNlcnZpY2UsIHN0YXR1cyBpcyBzZXQKICAgICAgKiB0byBVX0VO
VU1fT1VUX09GX1NZTkNfRVJST1IgYW5kIE5VTEwgaXMgcmV0dXJuZWQuPC9wPgogICAgICAqCisg
ICAgICogU3RhcnRpbmcgd2l0aCBJQ1UgMi44LCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBj
YWxscyBuZXh0KCkKKyAgICAgKiBhbmQgaGFuZGxlcyB0aGUgY29udmVyc2lvbi4KKyAgICAgKiBF
aXRoZXIgbmV4dCgpIG9yIHNuZXh0KCkgbXVzdCBiZSBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSBi
eSBhIHN1YmNsYXNzLgorICAgICAqCiAgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29k
ZS4KICAgICAgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgc3RyaW5nLCBvciBOVUxMLgogICAg
ICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi40IAogICAgICAqLwotICAgIHZpcnR1YWwgY29uc3Qg
VW5pY29kZVN0cmluZyogc25leHQoVUVycm9yQ29kZSYgc3RhdHVzKSA9IDA7CisgICAgdmlydHVh
bCBjb25zdCBVbmljb2RlU3RyaW5nKiBzbmV4dChVRXJyb3JDb2RlJiBzdGF0dXMpOwogCiAgICAg
LyoqCiAgICAgICogPHA+UmVzZXRzIHRoZSBpdGVyYXRvci4gIFRoaXMgcmUtZXN0YWJsaXNoZXMg
c3luYyB3aXRoIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdHJpbmdw
aWVjZS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdHJpbmdwaWVjZS5oCmluZGV4IDc5ZDVh
MDUwZWM3NDc1ZTliZGRmY2M1YTBhOTUyYzk2ZjIzZTI4YmMuLmIyOTU3MWQ0YWRiYmRkOWQ2ZDgz
MmFhZWIwZjk3NjhiMjQxNjFhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
c3RyaW5ncGllY2UuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmluZ3BpZWNlLmgK
QEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTAsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKy8vIENvcHlyaWdodCAoQykgMjAwOS0yMDEzLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCiAvLyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgogLy8KIC8vIENvcHlyaWdodCAyMDAxIGFuZCBvbndhcmRzIEdvb2dsZSBJbmMu
CkBAIC03MSw3ICs3MSw3IEBAIGNsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdQaWVjZSA6IHB1Ymxp
YyBVTWVtb3J5IHsKICAgICogQ29uc3RydWN0cyBmcm9tIGEgc3RkOjpzdHJpbmcuCiAgICAqIEBz
dGFibGUgSUNVIDQuMgogICAgKi8KLSAgU3RyaW5nUGllY2UoY29uc3QgVV9TVERfTlNRIHN0cmlu
ZyYgc3RyKQorICBTdHJpbmdQaWVjZShjb25zdCBzdGQ6OnN0cmluZyYgc3RyKQogICAgIDogcHRy
XyhzdHIuZGF0YSgpKSwgbGVuZ3RoXyhzdGF0aWNfY2FzdDxpbnQzMl90PihzdHIuc2l6ZSgpKSkg
eyB9CiAjZW5kaWYKICAgLyoqCkBAIC0xMzYsMTYgKzEzNiwxNiBAQCBjbGFzcyBVX0NPTU1PTl9B
UEkgU3RyaW5nUGllY2UgOiBwdWJsaWMgVU1lbW9yeSB7CiAKICAgLyoqCiAgICAqIFJlc2V0IHRo
ZSBzdHJpbmdwaWVjZSB0byByZWZlciB0byBuZXcgZGF0YS4KLSAgICogQHBhcmFtIGRhdGEgcG9p
bnRlciB0aGUgbmV3IHN0cmluZyBkYXRhLiAgTmVlZCBub3QgYmUgbnVsIHRlcm1pbmF0ZWQuCisg
ICAqIEBwYXJhbSB4ZGF0YSBwb2ludGVyIHRoZSBuZXcgc3RyaW5nIGRhdGEuICBOZWVkIG5vdCBi
ZSBudWwgdGVybWluYXRlZC4KICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIG9mIHRoZSBuZXcg
ZGF0YQotICAgKiBAaW50ZXJuYWwKKyAgICogQHN0YWJsZSBJQ1UgNC44CiAgICAqLwotICB2b2lk
IHNldChjb25zdCBjaGFyKiBkYXRhLCBpbnQzMl90IGxlbikgeyBwdHJfID0gZGF0YTsgbGVuZ3Ro
XyA9IGxlbjsgfQorICB2b2lkIHNldChjb25zdCBjaGFyKiB4ZGF0YSwgaW50MzJfdCBsZW4pIHsg
cHRyXyA9IHhkYXRhOyBsZW5ndGhfID0gbGVuOyB9CiAKICAgLyoqCiAgICAqIFJlc2V0IHRoZSBz
dHJpbmdwaWVjZSB0byByZWZlciB0byBuZXcgZGF0YS4KICAgICogQHBhcmFtIHN0ciBhIHBvaW50
ZXIgdG8gYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuIAotICAgKiBAaW50ZXJuYWwKKyAgICogQHN0
YWJsZSBJQ1UgNC44CiAgICAqLwogICB2b2lkIHNldChjb25zdCBjaGFyKiBzdHIpOwogCkBAIC0x
ODMsNyArMTgzLDcgQEAgY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ1BpZWNlIDogcHVibGljIFVN
ZW1vcnkgewogICAgKiBNYXhpbXVtIGludGVnZXIsIHVzZWQgYXMgYSBkZWZhdWx0IHZhbHVlIGZv
ciBzdWJzdHJpbmcgbWV0aG9kcy4KICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAqLwotICBzdGF0
aWMgY29uc3QgaW50MzJfdCBucG9zID0gMHg3ZmZmZmZmZjsKKyAgc3RhdGljIGNvbnN0IGludDMy
X3QgbnBvczsgLy8gPSAweDdmZmZmZmZmOwogCiAgIC8qKgogICAgKiBSZXR1cm5zIGEgc3Vic3Ry
aW5nIG9mIHRoaXMgU3RyaW5nUGllY2UuCkBAIC0yMDMsNyArMjAzLDcgQEAgY2xhc3MgVV9DT01N
T05fQVBJIFN0cmluZ1BpZWNlIDogcHVibGljIFVNZW1vcnkgewogICogQHBhcmFtIHggVGhlIGZp
cnN0IFN0cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcGFyYW0geSBUaGUgc2Vjb25kIFN0cmlu
Z1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBkYXRhIGlz
IGVxdWFsCi0gKiBAaW50ZXJuYWwKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCiBVX0VYUE9SVCBV
Qm9vbCBVX0VYUE9SVDIgCiBvcGVyYXRvcj09KGNvbnN0IFN0cmluZ1BpZWNlJiB4LCBjb25zdCBT
dHJpbmdQaWVjZSYgeSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgb3BlcmF0b3I9PShjb25zdCBTdHJp
bmdQaWVjZSYgeCwgY29uc3QgU3RyaW5nUGllY2UmIHkpOwogICogQHBhcmFtIHggVGhlIGZpcnN0
IFN0cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcGFyYW0geSBUaGUgc2Vjb25kIFN0cmluZ1Bp
ZWNlIHRvIGNvbXBhcmUuCiAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBkYXRhIGlzIG5v
dCBlcXVhbAotICogQGludGVybmFsCisgKiBAc3RhYmxlIElDVSA0LjgKICAqLwogaW5saW5lIFVC
b29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nUGllY2UmIHgsIGNvbnN0IFN0cmluZ1BpZWNlJiB5
KSB7CiAgIHJldHVybiAhKHggPT0geSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VjaGFyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaGFyLmgKaW5kZXggOTNhYTY2
MzIwNmIyYjRjNDgyMGI4MmNmYzY2Yzg0YTJkMDBhZTliMi4uMWE1YjcxYjQ2M2U0ODM2ZWU1MTM1
MmJhYWM2YjRlNGM3MjYzZjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91
Y2hhci5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNoYXIuaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMywg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMzksNyArMzks
NyBAQCBVX0NERUNMX0JFR0lOCiAgKiBAc2VlIHVfZ2V0VW5pY29kZVZlcnNpb24KICAqIEBzdGFi
bGUgSUNVIDIuMAogICovCi0jZGVmaW5lIFVfVU5JQ09ERV9WRVJTSU9OICI2LjAiCisjZGVmaW5l
IFVfVU5JQ09ERV9WRVJTSU9OICI2LjMiCiAKIC8qKgogICogXGZpbGUKQEAgLTEzOSwxOSArMTM5
LDYgQEAgVV9DREVDTF9CRUdJTgogICovCiAjZGVmaW5lIFVfTUFTSyh4KSAoKHVpbnQzMl90KTE8
PCh4KSkKIAotLyoKLSAqICEhIE5vdGU6IFNldmVyYWwgY29tbWVudHMgaW4gdGhpcyBmaWxlIGFy
ZSBtYWNoaW5lLXJlYWQgYnkgdGhlCi0gKiBnZW5wbmFtZSB0b29sLiAgVGhlc2UgY29tbWVudHMg
ZGVzY3JpYmUgdGhlIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4KLSAqIGljdSBlbnVtIGNvbnN0YW50
cyBhbmQgVUNEIGVudGl0aWVzLiAgRG8gbm90IGRlbGV0ZSB0aGVtLiAgVXBkYXRlCi0gKiB0aGVz
ZSBjb21tZW50cyBhcyBuZWVkZWQuCi0gKgotICogQW55IGNvbW1lbnQgb2YgdGhlIGZvcm0gIi8g
KltuYW1lXSogLyIgKHNwYWNlcyBhZGRlZCkgaXMgc3VjaAotICogYSBjb21tZW50LgotICoKLSAq
IFRoZSBVX0pHXyogYW5kIFVfR0NfKl9NQVNLIGNvbnN0YW50cyBhcmUgbWF0Y2hlZCBieSB0aGVp
ciBzeW1ib2xpYwotICogbmFtZSwgd2hpY2ggbXVzdCBtYXRjaCBQcm9wZXJ0eVZhbHVlQWxpYXNl
cy50eHQuCi0gKi8KLQogLyoqCiAgKiBTZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmljb2RlIHBy
b3BlcnRpZXMuCiAgKiBUaGVzZSBjb25zdGFudHMgYXJlIHVzZWQgaW4gZnVuY3Rpb25zIGxpa2Ug
dV9oYXNCaW5hcnlQcm9wZXJ0eSB0byBzZWxlY3QKQEAgLTE3Miw5ICsxNTksMTEgQEAgVV9DREVD
TF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIHR5cGVkZWYgZW51bSBVUHJvcGVydHkg
ewotICAgIC8qICBTZWUgbm90ZSAhIS4gIENvbW1lbnRzIG9mIHRoZSBmb3JtICJCaW5hcnkgcHJv
cGVydHkgRGFzaCIsCi0gICAgICAgICJFbnVtZXJhdGVkIHByb3BlcnR5IFNjcmlwdCIsICJEb3Vi
bGUgcHJvcGVydHkgTnVtZXJpY19WYWx1ZSIsCi0gICAgICAgIGFuZCAiU3RyaW5nIHByb3BlcnR5
IEFnZSIgYXJlIHJlYWQgYnkgZ2VucG5hbWUuICovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVUHJv
cGVydHkgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQg
bWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVDSEFSXzxVbmljb2RlIHByb3BlcnR5IG5h
bWU+PTxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qICBOb3RlOiBQbGFjZSBVQ0hBUl9BTFBI
QUJFVElDIGJlZm9yZSBVQ0hBUl9CSU5BUllfU1RBUlQgc28gdGhhdAogICAgIGRlYnVnZ2VycyBk
aXNwbGF5IFVDSEFSX0FMUEhBQkVUSUMgYXMgdGhlIHN5bWJvbGljIG5hbWUgZm9yIDAsCkBAIC00
OTEsOCArNDgwLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgICAgICAoaHR0cDov
L3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQogICAgICAgICBSZXR1cm5zIFVXb3JkQnJl
YWtWYWx1ZXMgdmFsdWVzLiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICBVQ0hBUl9XT1JEX0JSRUFL
PTB4MTAxNCwKKyAgICAvKiogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0
X1R5cGUgKG5ldyBpbiBVbmljb2RlIDYuMykuCisgICAgICAgIFVzZWQgaW4gVUFYICM5OiBVbmlj
b2RlIEJpZGlyZWN0aW9uYWwgQWxnb3JpdGhtCisgICAgICAgIChodHRwOi8vd3d3LnVuaWNvZGUu
b3JnL3JlcG9ydHMvdHI5LykKKyAgICAgICAgUmV0dXJucyBVQmlkaVBhaXJlZEJyYWNrZXRUeXBl
IHZhbHVlcy4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VU
X1RZUEU9MHgxMDE1LAogICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZv
ciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElDVSAyLjIg
Ki8KLSAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE1LAorICAgIFVDSEFSX0lOVF9MSU1JVD0weDEw
MTYsCiAKICAgICAvKiogQml0bWFzayBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5X01hc2suCiAg
ICAgICAgIFRoaXMgaXMgdGhlIEdlbmVyYWxfQ2F0ZWdvcnkgcHJvcGVydHkgcmV0dXJuZWQgYXMg
YSBiaXQgbWFzay4KQEAgLTUyNyw5ICs1MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eSB7
CiAgICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBDYXNlX0ZvbGRpbmcuCiAgICAgICAgIENvcnJlc3Bv
bmRzIHRvIHVfc3RyRm9sZENhc2UgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAg
ICBVQ0hBUl9DQVNFX0ZPTERJTkc9MHg0MDAyLAotICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgSVNP
X0NvbW1lbnQuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0SVNPQ29tbWVudC4gQHN0YWJs
ZSBJQ1UgMi40ICovCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorICAgIC8qKiBEZXBy
ZWNhdGVkIHN0cmluZyBwcm9wZXJ0eSBJU09fQ29tbWVudC4KKyAgICAgICAgQ29ycmVzcG9uZHMg
dG8gdV9nZXRJU09Db21tZW50LiBAZGVwcmVjYXRlZCBJQ1UgNDkgKi8KICAgICBVQ0hBUl9JU09f
Q09NTUVOVD0weDQwMDMsCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogICAg
IC8qKiBTdHJpbmcgcHJvcGVydHkgTG93ZXJjYXNlX01hcHBpbmcuCiAgICAgICAgIENvcnJlc3Bv
bmRzIHRvIHVfc3RyVG9Mb3dlciBpbiB1c3RyaW5nLmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAg
IFVDSEFSX0xPV0VSQ0FTRV9NQVBQSU5HPTB4NDAwNCwKQEAgLTU1MSwyOSArNTQ3LDMzIEBAIHR5
cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVGl0bGVjYXNl
X01hcHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9UaXRsZSBpbiB1c3RyaW5n
LmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1RJVExFQ0FTRV9NQVBQSU5HPTB4NDAw
QSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAgICAgLyoqIFN0cmluZyBwcm9wZXJ0
eSBVbmljb2RlXzFfTmFtZS4KLSAgICAgICAgQ29ycmVzcG9uZHMgdG8gdV9jaGFyTmFtZS4gQHN0
YWJsZSBJQ1UgMi40ICovCisgICAgICAgIFRoaXMgcHJvcGVydHkgaXMgb2YgbGl0dGxlIHByYWN0
aWNhbCB2YWx1ZS4KKyAgICAgICAgQmVnaW5uaW5nIHdpdGggSUNVIDQ5LCBJQ1UgQVBJcyByZXR1
cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIHByb3BlcnR5LgorICAgICAgICBDb3JyZXNwb25k
cyB0byB1X2NoYXJOYW1lKFVfVU5JQ09ERV8xMF9DSEFSX05BTUUpLiBAZGVwcmVjYXRlZCBJQ1Ug
NDkgKi8KICAgICBVQ0hBUl9VTklDT0RFXzFfTkFNRT0weDQwMEIsCisjZW5kaWYgIC8qIFVfSElE
RV9ERVBSRUNBVEVEX0FQSSAqLwogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVXBwZXJjYXNlX01h
cHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9VcHBlciBpbiB1c3RyaW5nLmgu
IEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1VQUEVSQ0FTRV9NQVBQSU5HPTB4NDAwQywK
KyAgICAvKiogU3RyaW5nIHByb3BlcnR5IEJpZGlfUGFpcmVkX0JyYWNrZXQgKG5ldyBpbiBVbmlj
b2RlIDYuMykuCisgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0QmlkaVBhaXJlZEJyYWNrZXQu
IEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVD0weDQwMEQs
CiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIHN0cmluZyBVbmlj
b2RlIHByb3BlcnRpZXMuIEBzdGFibGUgSUNVIDIuNCAqLwotICAgIFVDSEFSX1NUUklOR19MSU1J
VD0weDQwMEQsCisgICAgVUNIQVJfU1RSSU5HX0xJTUlUPTB4NDAwRSwKIAotICAgIC8qKiBQcm92
aXNpb25hbCBwcm9wZXJ0eSBTY3JpcHRfRXh0ZW5zaW9ucyAobmV3IGluIFVuaWNvZGUgNi4wKS4K
LSAgICAgICAgQXMgYSBwcm92aXNpb25hbCBwcm9wZXJ0eSwgaXQgbWF5IGJlIG1vZGlmaWVkIG9y
IHJlbW92ZWQKLSAgICAgICAgaW4gZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBVbmljb2RlIFN0YW5k
YXJkLCBhbmQgdGh1cyBpbiBJQ1UuCisgICAgLyoqIE1pc2NlbGxhbmVvdXMgcHJvcGVydHkgU2Ny
aXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCiAgICAgICAgIFNvbWUgY2hhcmFj
dGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRzLgogICAgICAgICBGb3Ig
bW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVw
b3J0cy90cjI0Ly4KICAgICAgICAgQ29ycmVzcG9uZHMgdG8gdXNjcmlwdF9oYXNTY3JpcHQgYW5k
IHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyBpbiB1c2NyaXB0LmguCi0gICAgICAgIEBkcmFm
dCBJQ1UgNC42ICovCisgICAgICAgIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVDSEFSX1NDUklQ
VF9FWFRFTlNJT05TPTB4NzAwMCwKLSAgICAvKiogRmlyc3QgY29uc3RhbnQgZm9yIFVuaWNvZGUg
cHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUgdHlwZXMuIEBkcmFmdCBJQ1UgNC42ICovCisg
ICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHByb3BlcnRpZXMgd2l0aCB1bnVzdWFs
IHZhbHVlIHR5cGVzLiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9PVEhFUl9QUk9QRVJU
WV9TVEFSVD1VQ0hBUl9TQ1JJUFRfRVhURU5TSU9OUywKICAgICAvKiogT25lIG1vcmUgdGhhbiB0
aGUgbGFzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3VhbCB2YWx1
ZSB0eXBlcy4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNiAqLworICAgICAqIEBzdGFibGUgSUNVIDQu
NiAqLwogICAgIFVDSEFSX09USEVSX1BST1BFUlRZX0xJTUlUPTB4NzAwMSwKLQogICAgIC8qKiBS
ZXByZXNlbnRzIGEgbm9uZXhpc3RlbnQgb3IgaW52YWxpZCBwcm9wZXJ0eSBvciBwcm9wZXJ0eSB2
YWx1ZS4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNIQVJfSU5WQUxJRF9DT0RFID0gLTEKIH0g
VVByb3BlcnR5OwpAQCAtNTg1LDcgKzU4NSwxMiBAQCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsK
ICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyQ2F0ZWdvcnkKIHsKLSAgICAvKiogU2VlIG5vdGUgISEu
ICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQ24iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAg
IC8qCisgICAgICogTm90ZTogVUNoYXJDYXRlZ29yeSBjb25zdGFudHMgYW5kIHRoZWlyIEFQSSBj
b21tZW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMg
cGFpcnMgb2YgbGluZXMgbGlrZQorICAgICAqICAgICAvICoqIDxVbmljb2RlIDItbGV0dGVyIEdl
bmVyYWxfQ2F0ZWdvcnkgdmFsdWU+IGNvbW1lbnQuLi4gKiAvCisgICAgICogICAgIFVfPFtBLVpf
XSs+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAgICAgLyoqIE5vbi1jYXRlZ29yeSBmb3IgdW5h
c3NpZ25lZCBhbmQgbm9uLWNoYXJhY3RlciBjb2RlIHBvaW50cy4gQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVV9VTkFTU0lHTkVEICAgICAgICAgICAgICA9IDAsCkBAIC03NzAsNyArNzc1LDEyIEBA
IHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogdHlw
ZWRlZiBlbnVtIFVDaGFyRGlyZWN0aW9uIHsKLSAgICAvKiogU2VlIG5vdGUgISEuICBDb21tZW50
cyBvZiB0aGUgZm9ybSAiRU4iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAg
ICogTm90ZTogVUNoYXJEaXJlY3Rpb24gY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29tbWVudHMg
YXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBhaXJzIG9m
IGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAxLi4zLWxldHRlciBCaWRpX0Ns
YXNzIHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10rPiA9IDxpbnRl
Z2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBMIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfTEVG
VF9UT19SSUdIVCAgICAgICAgICAgICAgID0gMCwKQEAgLTgxMCwyMSArODIwLDU3IEBAIHR5cGVk
ZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7CiAgICAgVV9ESVJfTk9OX1NQQUNJTkdfTUFSSyAgICAg
ICAgPSAxNywKICAgICAvKiogQk4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9CT1VOREFSWV9O
RVVUUkFMICAgICAgICAgICAgPSAxOCwKKyAgICAvKiogRlNJIEBzdGFibGUgSUNVIDUyICovCisg
ICAgVV9GSVJTVF9TVFJPTkdfSVNPTEFURSAgICAgICAgPSAxOSwKKyAgICAvKiogTFJJIEBzdGFi
bGUgSUNVIDUyICovCisgICAgVV9MRUZUX1RPX1JJR0hUX0lTT0xBVEUgICAgICAgPSAyMCwKKyAg
ICAvKiogUkxJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9SSUdIVF9UT19MRUZUX0lTT0xBVEUg
ICAgICAgPSAyMSwKKyAgICAvKiogUERJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9QT1BfRElS
RUNUSU9OQUxfSVNPTEFURSAgICAgPSAyMiwKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAg
ICAgVV9DSEFSX0RJUkVDVElPTl9DT1VOVAogfSBVQ2hhckRpcmVjdGlvbjsKIAogLyoqCisgKiBC
aWRpIFBhaXJlZCBCcmFja2V0IFR5cGUgY29uc3RhbnRzLgorICoKKyAqIEBzZWUgVUNIQVJfQklE
SV9QQUlSRURfQlJBQ0tFVF9UWVBFCisgKiBAc3RhYmxlIElDVSA1MgorICovCit0eXBlZGVmIGVu
dW0gVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBVQmlkaVBh
aXJlZEJyYWNrZXRUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5Lgor
ICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0JQVF88VW5pY29kZSBC
aWRpX1BhaXJlZF9CcmFja2V0X1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIC8qKiBO
b3QgYSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9OT05FLAor
ICAgIC8qKiBPcGVuIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfQlBU
X09QRU4sCisgICAgLyoqIENsb3NlIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1MiAqLwor
ICAgIFVfQlBUX0NMT1NFLAorICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfQlBUX0NP
VU5UIC8qIDMgKi8KK30gVUJpZGlQYWlyZWRCcmFja2V0VHlwZTsKKworLyoqCiAgKiBDb25zdGFu
dHMgZm9yIFVuaWNvZGUgYmxvY2tzLCBzZWUgdGhlIFVuaWNvZGUgRGF0YSBmaWxlIEJsb2Nrcy50
eHQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBlbnVtIFVCbG9ja0NvZGUgeworICAgIC8qCisg
ICAgICogTm90ZTogVUJsb2NrQ29kZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVj
ZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVUJMT0NLXzxV
bmljb2RlIEJsb2NrIHZhbHVlIG5hbWU+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAgICAgLyoq
IE5ldyBOb19CbG9jayB2YWx1ZSBpbiBVbmljb2RlIDQuIEBzdGFibGUgSUNVIDIuNiAqLwogICAg
IFVCTE9DS19OT19CTE9DSyA9IDAsIC8qW25vbmVdKi8gLyogU3BlY2lhbCByYW5nZSBpbmRpY2F0
aW5nIE5vX0Jsb2NrICovCiAKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NL
X0JBU0lDX0xBVElOID0gMSwgLypbMDAwMF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICBVQkxPQ0tf
QkFTSUNfTEFUSU4gPSAxLCAvKlswMDAwXSovCiAKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVUJMT0NLX0xBVElOXzFfU1VQUExFTUVOVD0yLCAvKlswMDgwXSovCkBAIC0xMDYxLDcg
KzExMDcsNyBAQCBlbnVtIFVCbG9ja0NvZGUgewogICAgIFVCTE9DS19MT1dfU1VSUk9HQVRFUyA9
NzcsIC8qW0RDMDBdKi8KIAogICAgIC8qKgotICAgICAqIFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVf
VVNFX0FSRUEuCisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0UuCiAgICAgICogVW50
aWwgVW5pY29kZSAzLjEuMSwgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMgIlByaXZh
dGUgVXNlIiwKICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFkIHRoaXMg
YmxvY2suCiAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAg
UFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiBhbmQKQEAgLTEwNjksOSArMTExNSw5IEBAIGVudW0g
VUJsb2NrQ29kZSB7CiAgICAgICoKICAgICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICAgKi8KLSAg
ICBVQkxPQ0tfUFJJVkFURV9VU0UgPSA3OCwKKyAgICBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSA9
NzgsIC8qW0UwMDBdKi8KICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VT
RS4KKyAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLgogICAgICAqIFVudGls
IFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRl
IFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJs
b2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBV
QSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDc5LDcgKzExMjUsNyBAQCBlbnVtIFVC
bG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICovCi0gICAg
VUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPVVCTE9DS19QUklWQVRFX1VTRSwgLypbRTAwMF0qLwor
ICAgIFVCTE9DS19QUklWQVRFX1VTRSA9IFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLAogCiAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVP
R1JBUEhTID03OSwgLypbRjkwMF0qLwpAQCAtMTExMSwzMyArMTE1NywzMyBAQCBlbnVtIFVCbG9j
a0NvZGUgewogICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSAzLjEgKi8KIAogICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfT0xEX0lUQUxJQyA9IDg4ICAsIC8qWzEwMzAw
XSovCisgICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCwgLypbMTAzMDBdKi8KICAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0dPVEhJQyA9IDg5ICwgLypbMTAzMzBdKi8KKyAg
ICBVQkxPQ0tfR09USElDID0gODksIC8qWzEwMzMwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwotICAgIFVCTE9DS19ERVNFUkVUID0gOTAgLCAvKlsxMDQwMF0qLworICAgIFVCTE9DS19E
RVNFUkVUID0gOTAsIC8qWzEwNDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAg
IFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEgLCAvKlsxRDAwMF0qLworICAg
IFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEsIC8qWzFEMDAwXSovCiAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiAs
IC8qWzFEMTAwXSovCisgICAgVUJMT0NLX01VU0lDQUxfU1lNQk9MUyA9IDkyLCAvKlsxRDEwMF0q
LwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTUFUSEVNQVRJQ0FMX0FM
UEhBTlVNRVJJQ19TWU1CT0xTID0gOTMgICwgLypbMUQ0MDBdKi8KKyAgICBVQkxPQ0tfTUFUSEVN
QVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTID0gOTMsIC8qWzFENDAwXSovCiAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVO
U0lPTl9CICA9IDk0ICwgLypbMjAwMDBdKi8KKyAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dS
QVBIU19FWFRFTlNJT05fQiAgPSA5NCwgLypbMjAwMDBdKi8KICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCi0gICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExFTUVO
VCA9IDk1ICwgLypbMkY4MDBdKi8KKyAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dS
QVBIU19TVVBQTEVNRU5UID0gOTUsIC8qWzJGODAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVCTE9DS19UQUdTID0gOTYsIC8qW0UwMDAwXSovCiAKICAgICAvKiBOZXcgYmxv
Y2tzIGluIFVuaWNvZGUgMy4yICovCiAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMy4wICAqLworICAg
IFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UID0gOTcsIC8qWzA1MDBdKi8KICAgICAvKioKICAg
ICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBi
bG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCiAgICAgICogQHN0YWJsZSBJQ1UgMi4yCiAg
ICAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlRBUlkgPSA5NywgCi0gICAgLyoq
IEBzdGFibGUgSUNVIDMuMCAgKi8KLSAgICBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCA9IFVC
TE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZLCAvKlswNTAwXSovCisgICAgVUJMT0NLX0NZUklM
TElDX1NVUFBMRU1FTlRBUlkgPSBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCwgCiAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVCTE9DS19UQUdBTE9HID0gOTgsIC8qWzE3MDBdKi8K
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCkBAIC0xMzgxLDggKzE0MjcsMzMgQEAgZW51bSBV
QmxvY2tDb2RlIHsKICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUJMT0NLX0NKS19V
TklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0QgPSAyMDksIC8qWzJCNzQwXSovCiAKLSAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0NPVU5UID0gMjEwLAorICAgIC8qIE5l
dyBibG9ja3MgaW4gVW5pY29kZSA2LjEgKi8KKworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLwor
ICAgIFVCTE9DS19BUkFCSUNfRVhURU5ERURfQSA9IDIxMCwgLypbMDhBMF0qLworICAgIC8qKiBA
c3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19BUkFCSUNfTUFUSEVNQVRJQ0FMX0FMUEhBQkVU
SUNfU1lNQk9MUyA9IDIxMSwgLypbMUVFMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8K
KyAgICBVQkxPQ0tfQ0hBS01BID0gMjEyLCAvKlsxMTEwMF0qLworICAgIC8qKiBAc3RhYmxlIElD
VSA0OSAqLworICAgIFVCTE9DS19NRUVURUlfTUFZRUtfRVhURU5TSU9OUyA9IDIxMywgLypbQUFF
MF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19NRVJPSVRJQ19DVVJT
SVZFID0gMjE0LCAvKlsxMDlBMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVC
TE9DS19NRVJPSVRJQ19ISUVST0dMWVBIUyA9IDIxNSwgLypbMTA5ODBdKi8KKyAgICAvKiogQHN0
YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUlBTyA9IDIxNiwgLypbMTZGMDBdKi8KKyAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU0hBUkFEQSA9IDIxNywgLypbMTExODBd
Ki8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU09SQV9TT01QRU5HID0g
MjE4LCAvKlsxMTBEMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19T
VU5EQU5FU0VfU1VQUExFTUVOVCA9IDIxOSwgLypbMUNDMF0qLworICAgIC8qKiBAc3RhYmxlIElD
VSA0OSAqLworICAgIFVCTE9DS19UQUtSSSA9IDIyMCwgLypbMTE2ODBdKi8KKworICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBVQkxPQ0tfQ09VTlQgPSAyMjEsCiAKICAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCiAgICAgVUJMT0NLX0lOVkFMSURfQ09ERT0tMQpAQCAtMTM5OSw3ICsx
NDcwLDEzIEBAIHR5cGVkZWYgZW51bSBVQmxvY2tDb2RlIFVCbG9ja0NvZGU7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7Ci0gICAgVV9FQV9O
RVVUUkFMLCAgIC8qW05dKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBV
RWFzdEFzaWFuV2lkdGggY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisg
ICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfRUFfPFVuaWNvZGUgRWFz
dF9Bc2lhbl9XaWR0aCB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9FQV9ORVVUUkFMLCAg
IC8qW05dKi8KICAgICBVX0VBX0FNQklHVU9VUywgLypbQV0qLwogICAgIFVfRUFfSEFMRldJRFRI
LCAvKltIXSovCiAgICAgVV9FQV9GVUxMV0lEVEgsIC8qW0ZdKi8KQEAgLTE0MDcsMTAgKzE0ODQs
NiBAQCB0eXBlZGVmIGVudW0gVUVhc3RBc2lhbldpZHRoIHsKICAgICBVX0VBX1dJREUsICAgICAg
LypbV10qLwogICAgIFVfRUFfQ09VTlQKIH0gVUVhc3RBc2lhbldpZHRoOwotLyoKLSAqIEltcGxl
bWVudGF0aW9uIG5vdGU6Ci0gKiBLZWVwIFVFYXN0QXNpYW5XaWR0aCBjb25zdGFudCB2YWx1ZXMg
aW4gc3luYyB3aXRoIG5hbWVzIGxpc3QgaW4gZ2VucHJvcHMvcHJvcHMyLmMuCi0gKi8KIAogLyoq
CiAgKiBTZWxlY3RvciBjb25zdGFudHMgZm9yIHVfY2hhck5hbWUoKS4KQEAgLTE0MjQsMTAgKzE0
OTcsMjEgQEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgKiBAc3RhYmxlIElDVSAy
LjAKICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyTmFtZUNob2ljZSB7CisgICAgLyoqIFVuaWNvZGUg
Y2hhcmFjdGVyIG5hbWUgKE5hbWUgcHJvcGVydHkpLiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBV
X1VOSUNPREVfQ0hBUl9OQU1FLAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkgCisgICAg
LyoqCisgICAgICogVGhlIFVuaWNvZGVfMV9OYW1lIHByb3BlcnR5IHZhbHVlIHdoaWNoIGlzIG9m
IGxpdHRsZSBwcmFjdGljYWwgdmFsdWUuCisgICAgICogQmVnaW5uaW5nIHdpdGggSUNVIDQ5LCBJ
Q1UgQVBJcyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIG5hbWUgY2hvaWNlLgorICAg
ICAqIEBkZXByZWNhdGVkIElDVSA0OQorICAgICAqLwogICAgIFVfVU5JQ09ERV8xMF9DSEFSX05B
TUUsCi0gICAgVV9FWFRFTkRFRF9DSEFSX05BTUUsCi0gICAgVV9DSEFSX05BTUVfQUxJQVMsICAg
ICAgICAgIC8qKjwgQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBzdGFibGUg
SUNVIDQuNCAqLworI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKyAgICAvKiog
U3RhbmRhcmQgb3Igc3ludGhldGljIGNoYXJhY3RlciBuYW1lLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBVX0VYVEVOREVEX0NIQVJfTkFNRSA9IFVfVU5JQ09ERV9DSEFSX05BTUUrMiwKKyAgICAv
KiogQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBzdGFibGUgSUNVIDQuNCAq
LworICAgIFVfQ0hBUl9OQU1FX0FMSUFTLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVX0NIQVJfTkFNRV9DSE9JQ0VfQ09VTlQKIH0gVUNoYXJOYW1lQ2hvaWNlOwogCkBAIC0xNDU3
LDcgKzE1NDEsMTMgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eU5hbWVDaG9pY2UgewogICogQHN0
YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewotICAg
IFVfRFRfTk9ORSwgICAgICAgICAgICAgIC8qW25vbmVdKi8gLypTZWUgbm90ZSAhISovCisgICAg
LyoKKyAgICAgKiBOb3RlOiBVRGVjb21wb3NpdGlvblR5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQg
YnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICog
ICAgIFVfRFRfPFVuaWNvZGUgRGVjb21wb3NpdGlvbl9UeXBlIHZhbHVlIG5hbWU+CisgICAgICov
CisKKyAgICBVX0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovCiAgICAgVV9EVF9DQU5P
TklDQUwsICAgICAgICAgLypbY2FuXSovCiAgICAgVV9EVF9DT01QQVQsICAgICAgICAgICAgLypb
Y29tXSovCiAgICAgVV9EVF9DSVJDTEUsICAgICAgICAgICAgLypbZW5jXSovCkBAIC0xNDg1LDcg
KzE1NzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVEZWNvbXBvc2l0aW9uVHlwZSB7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlwZSB7Ci0gICAgVV9KVF9OT05f
Sk9JTklORywgICAgICAgLypbVV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5v
dGU6IFVKb2luaW5nVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4K
KyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9KVF88VW5pY29kZSBK
b2luaW5nX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfSlRfTk9OX0pPSU5JTkcs
ICAgICAgIC8qW1VdKi8KICAgICBVX0pUX0pPSU5fQ0FVU0lORywgICAgICAvKltDXSovCiAgICAg
VV9KVF9EVUFMX0pPSU5JTkcsICAgICAgLypbRF0qLwogICAgIFVfSlRfTEVGVF9KT0lOSU5HLCAg
ICAgIC8qW0xdKi8KQEAgLTE1MDEsNiArMTU5NywxMiBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdU
eXBlIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91
cCB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBVSm9pbmluZ0dyb3VwIGNvbnN0YW50cyBhcmUgcGFy
c2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAg
ICAqICAgICBVX0pHXzxVbmljb2RlIEpvaW5pbmdfR3JvdXAgdmFsdWUgbmFtZT4KKyAgICAgKi8K
KwogICAgIFVfSkdfTk9fSk9JTklOR19HUk9VUCwKICAgICBVX0pHX0FJTiwKICAgICBVX0pHX0FM
QVBILApAQCAtMTU1OSw2ICsxNjYxLDcgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nR3JvdXAgewog
ICAgIFVfSkdfQlVSVVNIQVNLSV9ZRUhfQkFSUkVFLCAvKio8IEBzdGFibGUgSUNVIDQuMCAqLwog
ICAgIFVfSkdfRkFSU0lfWUVILCAvKio8IEBzdGFibGUgSUNVIDQuNCAqLwogICAgIFVfSkdfTllB
LCAgICAgICAvKio8IEBzdGFibGUgSUNVIDQuNCAqLworICAgIFVfSkdfUk9ISU5HWUFfWUVILCAg
LyoqPCBAc3RhYmxlIElDVSA0OSAqLwogICAgIFVfSkdfQ09VTlQKIH0gVUpvaW5pbmdHcm91cDsK
IApAQCAtMTU2OSw3ICsxNjcyLDEzIEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3VwIHsKICAq
IEBzdGFibGUgSUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVUdyYXBoZW1lQ2x1c3RlckJyZWFr
IHsKLSAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAh
ISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgY29uc3RhbnRz
IGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBs
aWtlCisgICAgICogICAgIFVfR0NCXzxVbmljb2RlIEdyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgdmFs
dWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfR0NCX09USEVSID0gMCwgICAgICAgICAgICAvKltY
WF0qLwogICAgIFVfR0NCX0NPTlRST0wgPSAxLCAgICAgICAgICAvKltDTl0qLwogICAgIFVfR0NC
X0NSID0gMiwgICAgICAgICAgICAgICAvKltDUl0qLwogICAgIFVfR0NCX0VYVEVORCA9IDMsICAg
ICAgICAgICAvKltFWF0qLwpAQCAtMTU4MSw3ICsxNjkwLDggQEAgdHlwZWRlZiBlbnVtIFVHcmFw
aGVtZUNsdXN0ZXJCcmVhayB7CiAgICAgVV9HQ0JfViA9IDksICAgICAgICAgICAgICAgIC8qW1Zd
Ki8KICAgICBVX0dDQl9TUEFDSU5HX01BUksgPSAxMCwgICAgLypbU01dKi8gLyogZnJvbSBoZXJl
IG9uOiBuZXcgaW4gVW5pY29kZSA1LjEvSUNVIDQuMCAqLwogICAgIFVfR0NCX1BSRVBFTkQgPSAx
MSwgICAgICAgICAvKltQUF0qLwotICAgIFVfR0NCX0NPVU5UID0gMTIKKyAgICBVX0dDQl9SRUdJ
T05BTF9JTkRJQ0FUT1IgPSAxMiwgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1Ug
NTAgKi8KKyAgICBVX0dDQl9DT1VOVCA9IDEzCiB9IFVHcmFwaGVtZUNsdXN0ZXJCcmVhazsKIAog
LyoqCkBAIC0xNTkyLDcgKzE3MDIsMTMgQEAgdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJC
cmVhayB7CiAgKiBAc3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtW
YWx1ZXMgewotICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBu
b3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVXb3JkQnJlYWtWYWx1ZXMgY29uc3RhbnRz
IGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBs
aWtlCisgICAgICogICAgIFVfV0JfPFVuaWNvZGUgV29yZF9CcmVhayB2YWx1ZSBuYW1lPgorICAg
ICAqLworCisgICAgVV9XQl9PVEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovCiAgICAgVV9X
Ql9BTEVUVEVSID0gMSwgICAgICAgICAgIC8qW0xFXSovCiAgICAgVV9XQl9GT1JNQVQgPSAyLCAg
ICAgICAgICAgIC8qW0ZPXSovCiAgICAgVV9XQl9LQVRBS0FOQSA9IDMsICAgICAgICAgIC8qW0tB
XSovCkBAIC0xNjA1LDcgKzE3MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtWYWx1ZXMg
ewogICAgIFVfV0JfTEYgPSAxMCwgICAgICAgICAgICAgICAvKltMRl0qLwogICAgIFVfV0JfTUlE
TlVNTEVUID0xMSwgICAgICAgICAvKltNQl0qLwogICAgIFVfV0JfTkVXTElORSA9MTIsICAgICAg
ICAgICAvKltOTF0qLwotICAgIFVfV0JfQ09VTlQgPSAxMworICAgIFVfV0JfUkVHSU9OQUxfSU5E
SUNBVE9SID0gMTMsICAgLypbUkldKi8gLyogbmV3IGluIFVuaWNvZGUgNi4yL0lDVSA1MCAqLwor
ICAgIFVfV0JfSEVCUkVXX0xFVFRFUiA9IDE0LCAgICAvKltITF0qLyAvKiBmcm9tIGhlcmUgb246
IG5ldyBpbiBVbmljb2RlIDYuMy9JQ1UgNTIgKi8KKyAgICBVX1dCX1NJTkdMRV9RVU9URSA9IDE1
LCAgICAgLypbU1FdKi8KKyAgICBVX1dCX0RPVUJMRV9RVU9URSA9IDE2LCAgICAgLypbRFFdKi8K
KyAgICBVX1dCX0NPVU5UID0gMTcKIH0gVVdvcmRCcmVha1ZhbHVlczsKIAogLyoqCkBAIC0xNjE1
LDcgKzE3MzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtWYWx1ZXMgewogICogQHN0YWJs
ZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7Ci0gICAgVV9TQl9P
VEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisg
ICAgICogTm90ZTogVVNlbnRlbmNlQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFy
c2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfU0Jf
PFVuaWNvZGUgU2VudGVuY2VfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfU0Jf
T1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfU0JfQVRFUk0gPSAxLCAgICAg
ICAgICAgICAvKltBVF0qLwogICAgIFVfU0JfQ0xPU0UgPSAyLCAgICAgICAgICAgICAvKltDTF0q
LwogICAgIFVfU0JfRk9STUFUID0gMywgICAgICAgICAgICAvKltGT10qLwpAQCAtMTY0MCw3ICsx
NzY2LDEzIEBAIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7CiAgKiBAc3RhYmxlIElDVSAy
LjIKICAqLwogdHlwZWRlZiBlbnVtIFVMaW5lQnJlYWsgewotICAgIFVfTEJfVU5LTk9XTiA9IDAs
ICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6
IFVMaW5lQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAg
ICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfTEJfPFVuaWNvZGUgTGluZV9C
cmVhayB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9MQl9VTktOT1dOID0gMCwgICAgICAg
ICAgIC8qW1hYXSovCiAgICAgVV9MQl9BTUJJR1VPVVMgPSAxLCAgICAgICAgIC8qW0FJXSovCiAg
ICAgVV9MQl9BTFBIQUJFVElDID0gMiwgICAgICAgIC8qW0FMXSovCiAgICAgVV9MQl9CUkVBS19C
T1RIID0gMywgICAgICAgIC8qW0IyXSovCkBAIC0xNjU1LDkgKzE3ODcsOSBAQCB0eXBlZGVmIGVu
dW0gVUxpbmVCcmVhayB7CiAgICAgVV9MQl9HTFVFID0gMTIsICAgICAgICAgICAgICAvKltHTF0q
LwogICAgIFVfTEJfSFlQSEVOID0gMTMsICAgICAgICAgICAgLypbSFldKi8KICAgICBVX0xCX0lE
RU9HUkFQSElDID0gMTQsICAgICAgIC8qW0lEXSovCi0gICAgVV9MQl9JTlNFUEVSQUJMRSA9IDE1
LAogICAgIC8qKiBSZW5hbWVkIGZyb20gdGhlIG1pc3NwZWxsZWQgImluc2VwZXJhYmxlIiBpbiBV
bmljb2RlIDQuMC4xL0lDVSAzLjAgQHN0YWJsZSBJQ1UgMy4wICovCi0gICAgVV9MQl9JTlNFUEFS
QUJMRT1VX0xCX0lOU0VQRVJBQkxFLC8qW0lOXSovCisgICAgVV9MQl9JTlNFUEFSQUJMRSA9IDE1
LCAgICAgICAvKltJTl0qLworICAgIFVfTEJfSU5TRVBFUkFCTEUgPSBVX0xCX0lOU0VQQVJBQkxF
LAogICAgIFVfTEJfSU5GSVhfTlVNRVJJQyA9IDE2LCAgICAgLypbSVNdKi8KICAgICBVX0xCX0xJ
TkVfRkVFRCA9IDE3LCAgICAgICAgIC8qW0xGXSovCiAgICAgVV9MQl9OT05TVEFSVEVSID0gMTgs
ICAgICAgICAvKltOU10qLwpAQCAtMTY3OSw3ICsxODExLDEwIEBAIHR5cGVkZWYgZW51bSBVTGlu
ZUJyZWFrIHsKICAgICBVX0xCX0pUID0gMzQsICAgICAgICAgICAgICAgIC8qW0pUXSovCiAgICAg
VV9MQl9KViA9IDM1LCAgICAgICAgICAgICAgICAvKltKVl0qLwogICAgIFVfTEJfQ0xPU0VfUEFS
RU5USEVTSVMgPSAzNiwgLypbQ1BdKi8gLyogbmV3IGluIFVuaWNvZGUgNS4yL0lDVSA0LjQgKi8K
LSAgICBVX0xCX0NPVU5UID0gMzcKKyAgICBVX0xCX0NPTkRJVElPTkFMX0pBUEFORVNFX1NUQVJU
RVIgPSAzNywvKltDSl0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjEvSUNVIDQ5ICovCisgICAgVV9M
Ql9IRUJSRVdfTEVUVEVSID0gMzgsICAgICAvKltITF0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjEv
SUNVIDQ5ICovCisgICAgVV9MQl9SRUdJT05BTF9JTkRJQ0FUT1IgPSAzOSwvKltSSV0qLyAvKiBu
ZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUwICovCisgICAgVV9MQl9DT1VOVCA9IDQwCiB9IFVMaW5l
QnJlYWs7CiAKIC8qKgpAQCAtMTY4OSw3ICsxODI0LDEzIEBAIHR5cGVkZWYgZW51bSBVTGluZUJy
ZWFrIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVU51bWVyaWNUeXBl
IHsKLSAgICBVX05UX05PTkUsICAgICAgICAgICAgICAvKltOb25lXSovIC8qU2VlIG5vdGUgISEq
LworICAgIC8qCisgICAgICogTm90ZTogVU51bWVyaWNUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2Vk
IGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAq
ICAgICBVX05UXzxVbmljb2RlIE51bWVyaWNfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisg
ICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLwogICAgIFVfTlRfREVDSU1BTCwg
ICAgICAgICAgIC8qW2RlXSovCiAgICAgVV9OVF9ESUdJVCwgICAgICAgICAgICAgLypbZGldKi8K
ICAgICBVX05UX05VTUVSSUMsICAgICAgICAgICAvKltudV0qLwpAQCAtMTcwMyw3ICsxODQ0LDEz
IEBAIHR5cGVkZWYgZW51bSBVTnVtZXJpY1R5cGUgewogICogQHN0YWJsZSBJQ1UgMi42CiAgKi8K
IHR5cGVkZWYgZW51bSBVSGFuZ3VsU3lsbGFibGVUeXBlIHsKLSAgICBVX0hTVF9OT1RfQVBQTElD
QUJMRSwgICAvKltOQV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVI
YW5ndWxTeWxsYWJsZVR5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHku
CisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSFNUXzxVbmljb2Rl
IEhhbmd1bF9TeWxsYWJsZV9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0hTVF9O
T1RfQVBQTElDQUJMRSwgICAvKltOQV0qLwogICAgIFVfSFNUX0xFQURJTkdfSkFNTywgICAgIC8q
W0xdKi8KICAgICBVX0hTVF9WT1dFTF9KQU1PLCAgICAgICAvKltWXSovCiAgICAgVV9IU1RfVFJB
SUxJTkdfSkFNTywgICAgLypbVF0qLwpAQCAtMTkwNiw2ICsyMDUzLDggQEAgdV9nZXRJbnRQcm9w
ZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eSB3aGljaCk7CiAgKgogICogRm9yIGNoYXJhY3RlcnMgd2l0
aG91dCBhbnkgbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNl
LAogICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBVX05PX05VTUVSSUNfVkFMVUUuCisgKiBO
b3RlOiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBVbmljb2RlIFN0YW5kYXJkIHdoaWNoIHNw
ZWNpZmllcyBOYU4gYXMgdGhlIGRlZmF1bHQgdmFsdWUuCisgKiAoTmFOIGlzIG5vdCBhdmFpbGFi
bGUgb24gYWxsIHBsYXRmb3Jtcy4pCiAgKgogICogU2ltaWxhciB0byBqYXZhLmxhbmcuQ2hhcmFj
dGVyLmdldE51bWVyaWNWYWx1ZSgpLCBidXQgdV9nZXROdW1lcmljVmFsdWUoKQogICogYWxzbyBz
dXBwb3J0cyBuZWdhdGl2ZSB2YWx1ZXMsIGxhcmdlIHZhbHVlcywgYW5kIGZyYWN0aW9ucywKQEAg
LTIzNzksNyArMjUyOCw3IEBAIHVfaXNNaXJyb3JlZChVQ2hhcjMyIGMpOwogICogYXMgdGhlIG1p
cnJvci1pbWFnZSBvZiB0aGUgZGVmYXVsdCBnbHlwaCBvZiB0aGUgc3BlY2lmaWVkCiAgKiBjaGFy
YWN0ZXIuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXh0IGNvbnZlcnNpb24gdG8gYW5kIGZyb20KICAq
IGNvZGVwYWdlcyB3aXRoIHZpc3VhbCBvcmRlciwgYW5kIGZvciBkaXNwbGF5cyB3aXRob3V0IGds
eXBoCi0gKiBzZWxlY2V0aW9uIGNhcGFiaWxpdGllcy4KKyAqIHNlbGVjdGlvbiBjYXBhYmlsaXRp
ZXMuCiAgKgogICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQgdG8gYmUgbWFwcGVkCiAgKiBAcmV0
dXJuIGFub3RoZXIgVW5pY29kZSBjb2RlIHBvaW50IHRoYXQgbWF5IHNlcnZlIGFzIGEgbWlycm9y
LWltYWdlCkBAIC0yMzk0LDYgKzI1NDMsMjUgQEAgVV9TVEFCTEUgVUNoYXIzMiBVX0VYUE9SVDIK
IHVfY2hhck1pcnJvcihVQ2hhcjMyIGMpOwogCiAvKioKKyAqIE1hcHMgdGhlIHNwZWNpZmllZCBj
aGFyYWN0ZXIgdG8gaXRzIHBhaXJlZCBicmFja2V0IGNoYXJhY3Rlci4KKyAqIEZvciBCaWRpX1Bh
aXJlZF9CcmFja2V0X1R5cGUhPU5vbmUsIHRoaXMgaXMgdGhlIHNhbWUgYXMgdV9jaGFyTWlycm9y
KCkuCisgKiBPdGhlcndpc2UgYyBpdHNlbGYgaXMgcmV0dXJuZWQuCisgKiBTZWUgaHR0cDovL3d3
dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyOS8KKyAqCisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2lu
dCB0byBiZSBtYXBwZWQKKyAqIEByZXR1cm4gdGhlIHBhaXJlZCBicmFja2V0IGNvZGUgcG9pbnQs
CisgKiAgICAgICAgIG9yIGMgaXRzZWxmIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWFwcGluZworICog
ICAgICAgICAoQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlPU5vbmUpCisgKgorICogQHNlZSBVQ0hB
Ul9CSURJX1BBSVJFRF9CUkFDS0VUCisgKiBAc2VlIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVRf
VFlQRQorICogQHNlZSB1X2NoYXJNaXJyb3IKKyAqIEBzdGFibGUgSUNVIDUyCisgKi8KK1VfU1RB
QkxFIFVDaGFyMzIgVV9FWFBPUlQyCit1X2dldEJpZGlQYWlyZWRCcmFja2V0KFVDaGFyMzIgYyk7
CisKKy8qKgogICogUmV0dXJucyB0aGUgZ2VuZXJhbCBjYXRlZ29yeSB2YWx1ZSBmb3IgdGhlIGNv
ZGUgcG9pbnQuCiAgKgogICogU2FtZSBhcyBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUoKS4K
QEAgLTI1NTMsMTMgKzI3MjEsMTEgQEAgdV9jaGFyTmFtZShVQ2hhcjMyIGNvZGUsIFVDaGFyTmFt
ZUNob2ljZSBuYW1lQ2hvaWNlLAogICAgICAgICAgICBjaGFyICpidWZmZXIsIGludDMyX3QgYnVm
ZmVyTGVuZ3RoLAogICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAorI2lmbmRl
ZiBVX0hJREVfREVQUkVDQVRFRF9BUEkgCiAvKioKLSAqIEdldCB0aGUgSVNPIDEwNjQ2IGNvbW1l
bnQgZm9yIGEgY2hhcmFjdGVyLgotICogVGhlIElTTyAxMDY0NiBjb21tZW50IGlzIGFuIGluZm9y
bWF0aXZlIGZpZWxkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlcgotICogRGF0YWJhc2UgKFVuaWNv
ZGVEYXRhLnR4dCBmaWVsZCAxMSkgYW5kIGlzIGZyb20gdGhlIElTTyAxMDY0NiBuYW1lcyBsaXN0
LgotICoKLSAqIE5vdGU6IFVuaWNvZGUgNS4yIHJlbW92ZXMgYWxsIElTTyBjb21tZW50IGRhdGEs
IHJlc3VsdGluZyBpbiBlbXB0eSBzdHJpbmdzCi0gKiByZXR1cm5lZCBmb3IgYWxsIGNoYXJhY3Rl
cnMuCisgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKyAqIFVzZWQgdG8gcmV0dXJuIHRoZSBJ
U08gMTA2NDYgY29tbWVudCBmb3IgYSBjaGFyYWN0ZXIuCisgKiBUaGUgVW5pY29kZSBJU09fQ29t
bWVudCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCBoYXMgbm8gdmFsdWVzLgogICoKICAqIEBw
YXJhbSBjIFRoZSBjaGFyYWN0ZXIgKGNvZGUgcG9pbnQpIGZvciB3aGljaCB0byBnZXQgdGhlIElT
TyBjb21tZW50LgogICogICAgICAgICAgICAgSXQgbXVzdCBiZSA8Y29kZT4wPD1jPD0weDEwZmZm
ZjwvY29kZT4uCkBAIC0yNTcwLDE4ICsyNzM2LDE1IEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2Rl
LCBVQ2hhck5hbWVDaG9pY2UgbmFtZUNob2ljZSwKICAqIEBwYXJhbSBwRXJyb3JDb2RlIFBvaW50
ZXIgdG8gYSBVRXJyb3JDb2RlIHZhcmlhYmxlOwogICogICAgICAgIGNoZWNrIGZvciA8Y29kZT5V
X1NVQ0NFU1MoKTwvY29kZT4gYWZ0ZXIgPGNvZGU+dV9nZXRJU09Db21tZW50KCk8L2NvZGU+CiAg
KiAgICAgICAgcmV0dXJucy4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgY29tbWVudCwg
b3IgMCBpZiB0aGVyZSBpcyBubyBjb21tZW50IGZvciB0aGlzIGNoYXJhY3Rlci4KLSAqICAgICAg
ICAgSWYgdGhlIGRlc3RDYXBhY2l0eSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlbmd0
aCwgdGhlbiB0aGUgYnVmZmVyCi0gKiAgICAgICAgIGNvbnRhaW5zIHRoZSB0cnVuY2F0ZWQgbmFt
ZSBhbmQgdGhlIHJldHVybmVkIGxlbmd0aCBpbmRpY2F0ZXMgdGhlIGZ1bGwKLSAqICAgICAgICAg
bGVuZ3RoIG9mIHRoZSBuYW1lLgotICogICAgICAgICBUaGUgbGVuZ3RoIGRvZXMgbm90IGluY2x1
ZGUgdGhlIHplcm8tdGVybWluYXRpb24uCisgKiBAcmV0dXJuIDAKICAqCi0gKiBAc3RhYmxlIElD
VSAyLjIKKyAqIEBkZXByZWNhdGVkIElDVSA0OQogICovCiBVX1NUQUJMRSBpbnQzMl90IFVfRVhQ
T1JUMgogdV9nZXRJU09Db21tZW50KFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICBjaGFyICpk
ZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAKIC8qKgog
ICogRmluZCBhIFVuaWNvZGUgY2hhcmFjdGVyIGJ5IGl0cyBuYW1lIGFuZCByZXR1cm4gaXRzIGNv
ZGUgcG9pbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjbnYu
aCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5oCmluZGV4IDk4ZGE4ZmY2OTQ3YTMzMzAx
Yjc5YTk5MWU0YWY0Mjc3MDE1M2JhYzkuLmM1ZmMyZGM3ODU2YTE2ZTIxZmQzMDc5MTdiNzM4MDI3
ZjU2NjA1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5oCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgdWNudi5oOgpAQCAtODgsNDYgKzg4LDgy
IEBAIFVfQ0RFQ0xfQkVHSU4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCiB0eXBlZGVmIGVudW0g
eworICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VOU1VQUE9SVEVEX0NPTlZF
UlRFUiA9IC0xLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1NCQ1MgPSAw
LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0RCQ1MgPSAxLAorICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX01CQ1MgPSAyLAorICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KICAgICBVQ05WX0xBVElOXzEgPSAzLAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX1VURjggPSA0LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX1VURjE2X0JpZ0VuZGlhbiA9IDUsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfVVRGMTZfTGl0dGxlRW5kaWFuID0gNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVUNOVl9VVEYzMl9CaWdFbmRpYW4gPSA3LAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX1VURjMyX0xpdHRsZUVuZGlhbiA9IDgsCisgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVDTlZfRUJDRElDX1NUQVRFRlVMID0gOSwKKyAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4wICovCiAgICAgVUNOVl9JU09fMjAyMiA9IDEwLAogCisgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMSA9IDExLAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX0xNQkNTXzIsIAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0xNQkNTXzMsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1C
Q1NfNCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU181LAorICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzYsCisgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfOCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVUNOVl9MTUJDU18xMSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAg
VUNOVl9MTUJDU18xNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJD
U18xNywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xOCwKKyAg
ICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xOSwKKyAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU19MQVNUID0gVUNOVl9MTUJDU18xOSwKKyAg
ICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9IWiwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4wICovCiAgICAgVUNOVl9TQ1NVLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0lTQ0lJLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VTX0FT
Q0lJLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjcsCisgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZfQk9DVTEsCisgICAgLyoqIEBzdGFibGUgSUNV
IDIuMiAqLwogICAgIFVDTlZfVVRGMTYsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAg
IFVDTlZfVVRGMzIsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZfQ0VTVTgs
CisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDTlZfSU1BUF9NQUlMQk9YLAorICAg
IC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICBVQ05WX0NPTVBPVU5EX1RFWFQsCiAKICAgICAv
KiBOdW1iZXIgb2YgY29udmVydGVyIHR5cGVzIGZvciB3aGljaCB3ZSBoYXZlIGNvbnZlcnNpb24g
cm91dGluZXMuICovCiAgICAgVUNOVl9OVU1CRVJfT0ZfU1VQUE9SVEVEX0NPTlZFUlRFUl9UWVBF
UwotCiB9IFVDb252ZXJ0ZXJUeXBlOwogCiAvKioKQEAgLTMwNSw2ICszNDEsOCBAQCB1Y252X2Nv
bXBhcmVOYW1lcyhjb25zdCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFtZTIpOwogICogb3Ro
ZXIgdGhhbiBpdHMgYW4gYWxpYXMgc3RhcnRpbmcgd2l0aCB0aGUgbGV0dGVycyAiY3AiLiBQbGVh
c2UgZG8gbm90CiAgKiBhc3NvY2lhdGUgYW55IG1lYW5pbmcgdG8gdGhlc2UgYWxpYXNlcy48L3A+
CiAgKgorICogXHNuaXBwZXQgc2FtcGxlcy91Y252L2NvbnZzYW1wLmNwcCB1Y252X29wZW4KKyAq
CiAgKiBAcGFyYW0gY29udmVydGVyTmFtZSBOYW1lIG9mIHRoZSBjb2RlZCBjaGFyYWN0ZXIgc2V0
IHRhYmxlLgogICogICAgICAgICAgVGhpcyBtYXkgaGF2ZSBvcHRpb25zIGFwcGVuZGVkIHRvIHRo
ZSBzdHJpbmcuCiAgKiAgICAgICAgICBJQU5BIGFsaWFzIGNoYXJhY3RlciBzZXQgbmFtZXMsIElC
TSBDQ1NJRHMgc3RhcnRpbmcgd2l0aCAiaWJtLSIsCkBAIC00ODMsMTAgKzUyMSwxMiBAQCB1Y252
X29wZW5QYWNrYWdlKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCBjaGFyICpjb252ZXJ0
ZXJOYW1lLCBVRXJyb3JDb2RlCiAgKiBhZGp1c3RlZCBwb2ludGVyIGFuZCB1c2UgYW4gYWNjb3Jk
aW5nbHkgc21hbGxlciBidWZmZXIgc2l6ZS4KICAqCiAgKiBAcGFyYW0gY252IGNvbnZlcnRlciB0
byBiZSBjbG9uZWQKLSAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBm
b3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLiAK
KyAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9m
IElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+CisgKiAgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9y
IHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4gCiAg
KiAgSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxv
Y2F0ZWQuCiAgKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0la
RS4gVGhpcyB3aWxsIHByb2JhYmx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxsb2NhdGlv
bnMuCi0gKiBAcGFyYW0gcEJ1ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRlZCBz
cGFjZS4gcEJ1ZmZlclNpemUgbXVzdCBub3QgYmUgTlVMTC4KKyAqIEBwYXJhbSBwQnVmZmVyU2l6
ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwgb3Ig
MS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgogICog
QHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBz
bW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9ycwogICogIEFuIGluZm9ybWF0aW9uYWwgc3RhdHVz
IHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfV0FSTklORywKICAqICBpcyB1c2VkIGlmIGFu
eSBhbGxvY2F0aW9ucyB3ZXJlIG5lY2Vzc2FyeS4KQEAgLTUwMiwxNCArNTQyLDE4IEBAIHVjbnZf
c2FmZUNsb25lKGNvbnN0IFVDb252ZXJ0ZXIgKmNudiwKICAgICAgICAgICAgICAgIGludDMyX3Qg
ICAgICAgICAgKnBCdWZmZXJTaXplLCAKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAg
KnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKIC8qKgogICogXGRl
ZiBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0laRQogICogRGVmaW5pdGlvbiBvZiBhIGJ1ZmZlciBz
aXplIHRoYXQgaXMgZGVzaWduZWQgdG8gYmUgbGFyZ2UgZW5vdWdoIGZvcgogICogY29udmVydGVy
cyB0byBiZSBjbG9uZWQgd2l0aCB1Y252X3NhZmVDbG9uZSgpLgotICogQHN0YWJsZSBJQ1UgMi4w
CisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERvIG5vdCByZWx5IG9uIHVjbnZfc2FmZUNsb25lKCkg
Y2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBidWZmZXIuCiAgKi8KICNkZWZpbmUgVV9DTlZfU0FG
RUNMT05FX0JVRkZFUlNJWkUgIDEwMjQKIAorI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQ
SSAqLworCiAvKioKICAqIERlbGV0ZXMgdGhlIHVuaWNvZGUgY29udmVydGVyIGFuZCByZWxlYXNl
cyByZXNvdXJjZXMgYXNzb2NpYXRlZAogICogd2l0aCBqdXN0IHRoaXMgaW5zdGFuY2UuCkBAIC0x
ODIxLDYgKzE4NjUsNyBAQCB1Y252X2dldENhbm9uaWNhbE5hbWUoY29uc3QgY2hhciAqYWxpYXMs
IGNvbnN0IGNoYXIgKnN0YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJybwogVV9TVEFCTEUgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgogdWNudl9nZXREZWZhdWx0TmFtZSh2b2lkKTsKIAorI2lmbmRlZiBV
X0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2Fm
ZS4gRE8gTk9UIGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuIEFOWSBJQ1UKICAqIGZ1bmN0aW9uIGlz
IGJlaW5nIHVzZWQgZnJvbSBtb3JlIHRoYW4gb25lIHRocmVhZCEgVGhpcyBmdW5jdGlvbiBzZXRz
IHRoZQpAQCAtMTgzOSw2ICsxODg0LDcgQEAgdWNudl9nZXREZWZhdWx0TmFtZSh2b2lkKTsKICAq
LwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVjbnZfc2V0RGVmYXVsdE5hbWUoY29uc3QgY2hh
ciAqbmFtZSk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCiAKIC8qKgogICogRml4
ZXMgdGhlIGJhY2tzbGFzaCBjaGFyYWN0ZXIgbWlzbWFwcGluZy4gIEZvciBleGFtcGxlLCBpbiBT
SklTLCB0aGUgYmFja3NsYXNoIApAQCAtMTkxOCwzNCArMTk2NCw3IEBAIHVjbnZfdXNlc0ZhbGxi
YWNrKGNvbnN0IFVDb252ZXJ0ZXIgKmNudik7CiAgKiBpbnN0ZWFkIG9mIHRoZSBpbnB1dCBzaWdu
YXR1cmUgYnl0ZXMuCiAgKiA8cD4KICAqIFVzYWdlOgotICogQGNvZGUgICAgIAotICogICAgICBV
RXJyb3JDb2RlIGVyciA9IFVfWkVST19FUlJPUjsKLSAqICAgICAgY2hhciBpbnB1dFtdID0geyAn
XHhFRicsJ1x4QkInLCAnXHhCRicsJ1x4NDEnLCdceDQyJywnXHg0MycgfTsKLSAqICAgICAgaW50
MzJfdCBzaWduYXR1cmVMZW5ndGggPSAwOwotICogICAgICBjaGFyICplbmNvZGluZyA9IHVjbnZf
ZGV0ZWN0VW5pY29kZVNpZ25hdHVyZShpbnB1dCxzaXplb2YoaW5wdXQpLCZzaWduYXR1cmVMZW5n
dGgsJmVycik7Ci0gKiAgICAgIFVDb252ZXJ0ZXIgKmNvbnYgPSBOVUxMOwotICogICAgICBVQ2hh
ciBvdXRwdXRbMTAwXTsKLSAqICAgICAgVUNoYXIgKnRhcmdldCA9IG91dHB1dCwgKm91dDsKLSAq
ICAgICAgY2hhciAqc291cmNlID0gaW5wdXQ7Ci0gKiAgICAgIGlmKGVuY29kaW5nIT1OVUxMICYm
IFVfU1VDQ0VTUyhlcnIpKXsKLSAqICAgICAgICAgIC8vIHNob3VsZCBzaWduYXR1cmUgYmUgZGlz
Y2FyZGVkID8KLSAqICAgICAgICAgIGNvbnYgPSB1Y252X29wZW4oZW5jb2RpbmcsICZlcnIpOwot
ICogICAgICAgICAgLy8gZG8gdGhlIGNvbnZlcnNpb24KLSAqICAgICAgICAgIHVjbnZfdG9Vbmlj
b2RlKGNvbnYsCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIG91dHB1dCArIHNp
emVvZihvdXRwdXQpL1VfU0laRU9GX1VDSEFSLAotICogICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlLCBpbnB1dCArIHNpemVvZihpbnB1dCksCi0gKiAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLCBUUlVFLCAmZXJyKTsKLSAqICAgICAgICAgIG91dCA9IG91dHB1dDsKLSAqICAgICAg
ICAgIGlmIChkaXNjYXJkU2lnbmF0dXJlKXsKLSAqICAgICAgICAgICAgICArK291dDsgLy8gaWdu
b3JlIGluaXRpYWwgVStGRUZGCi0gKiAgICAgICAgICB9Ci0gKiAgICAgICAgICB3aGlsZShvdXQg
IT0gdGFyZ2V0KSB7Ci0gKiAgICAgICAgICAgICAgcHJpbnRmKCIlMDR4ICIsICpvdXQrKyk7Ci0g
KiAgICAgICAgICB9Ci0gKiAgICAgICAgICBwdXRzKCIiKTsKLSAqICAgICAgfQotICogICAgIAot
ICogQGVuZGNvZGUKKyAqIFxzbmlwcGV0IHNhbXBsZXMvdWNudi9jb252c2FtcC5jcHAgdWNudl9k
ZXRlY3RVbmljb2RlU2lnbmF0dXJlCiAgKgogICogQHBhcmFtIHNvdXJjZSAgICAgICAgICAgIFRo
ZSBzb3VyY2Ugc3RyaW5nIGluIHdoaWNoIHRoZSBzaWduYXR1cmUgc2hvdWxkIGJlIGRldGVjdGVk
LgogICogQHBhcmFtIHNvdXJjZUxlbmd0aCAgICAgIExlbmd0aCBvZiB0aGUgaW5wdXQgc3RyaW5n
LCBvciAtMSBpZiB0ZXJtaW5hdGVkIHdpdGggYSBOVUwgYnl0ZS4KQEAgLTE5OTEsNiArMjAxMCwy
NCBAQCB1Y252X2Zyb21VQ291bnRQZW5kaW5nKGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwgVUVycm9y
Q29kZSogc3RhdHVzKTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1Y252X3RvVUNvdW50
UGVuZGluZyhjb25zdCBVQ29udmVydGVyKiBjbnYsIFVFcnJvckNvZGUqIHN0YXR1cyk7CiAKKy8q
KgorICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY2hhcnNldCBvZiB0aGUgY29udmVydGVy
IGhhcyBhIGZpeGVkIG51bWJlciBvZiBieXRlcworICogcGVyIGNoYXJzZXQgY2hhcmFjdGVyLgor
ICogQW4gZXhhbXBsZSBvZiB0aGlzIGFyZSBjb252ZXJ0ZXJzIHRoYXQgYXJlIG9mIHRoZSB0eXBl
IFVDTlZfU0JDUyBvciBVQ05WX0RCQ1MuCisgKiBBbm90aGVyIGV4YW1wbGUgaXMgVVRGLTMyIHdo
aWNoIGlzIGFsd2F5cyA0IGJ5dGVzIHBlciBjaGFyYWN0ZXIuCisgKiBBIFVuaWNvZGUgY29kZSBw
b2ludCBtYXkgYmUgcmVwcmVzZW50ZWQgYnkgbW9yZSB0aGFuIG9uZSBVVEYtOCBvciBVVEYtMTYg
Y29kZSB1bml0CisgKiBidXQgYSBVVEYtMzIgY29udmVydGVyIGVuY29kZXMgZWFjaCBjb2RlIHBv
aW50IHdpdGggNCBieXRlcy4KKyAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIG5vdCBpbnRlbmRlZCB0
byBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjaGFyc2V0IGhhcyBhCisgKiBmaXhl
ZCByYXRpbyBvZiBieXRlcyB0byBVbmljb2RlIGNvZGVzIDxpPnVuaXRzPC9pPiBmb3IgYW55IHBh
cnRpY3VsYXIgVW5pY29kZSBlbmNvZGluZyBmb3JtLgorICogRkFMU0UgaXMgcmV0dXJuZWQgd2l0
aCB0aGUgVUVycm9yQ29kZSBpZiBlcnJvciBvY2N1cnMgb3IgY252IGlzIE5VTEwuCisgKiBAcGFy
YW0gY252ICAgICAgIFRoZSBjb252ZXJ0ZXIgdG8gYmUgdGVzdGVkCisgKiBAcGFyYW0gc3RhdHVz
ICAgIElDVSBlcnJvciBjb2RlIGluL291dCBwYXJhbXRlcgorICogQHJldHVybiBUUlVFIGlmIHRo
ZSBjb252ZXJ0ZXIgaXMgZml4ZWQtd2lkdGgKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCitVX1NU
QUJMRSBVQm9vbCBVX0VYUE9SVDIKK3VjbnZfaXNGaXhlZFdpZHRoKFVDb252ZXJ0ZXIgKmNudiwg
VUVycm9yQ29kZSAqc3RhdHVzKTsKKwogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91Y29sLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vjb2wu
aAppbmRleCA0YTRjZDYwNmU4YTc3M2RiYjFlODdkZWU0YzEwOWNkYWQ1MTFlNmQ3Li41YTQ1OWI1
MmFmNGE5ZmQ3Njg0MDA1Yzc4OWFjMzU0M2U5MjhkOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3Vjb2wuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vjb2wuaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qIENvcHlyaWdodCAo
YykgMTk5Ni0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuCisqIENvcHlyaWdodCAoYykgMTk5Ni0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqLwpAQCAtMTcsNiArMTcsNyBAQAogI2lu
Y2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vsb2MuaCIKICNp
bmNsdWRlICJ1bmljb2RlL3VzZXQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzY3JpcHQuaCIKIAog
LyoqCiAgKiBcZmlsZQpAQCAtNjMsMTIgKzY0LDEyIEBAIHR5cGVkZWYgc3RydWN0IFVDb2xsYXRv
ciBVQ29sbGF0b3I7CiAKIC8qKgogICogVUNPTF9MRVNTIGlzIHJldHVybmVkIGlmIHNvdXJjZSBz
dHJpbmcgaXMgY29tcGFyZWQgdG8gYmUgbGVzcyB0aGFuIHRhcmdldAotICogc3RyaW5nIGluIHRo
ZSB1X3N0cmNvbGwoKSBtZXRob2QuCisgKiBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29sbCgpIG1l
dGhvZC4KICAqIFVDT0xfRVFVQUwgaXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21w
YXJlZCB0byBiZSBlcXVhbCB0byB0YXJnZXQKLSAqIHN0cmluZyBpbiB0aGUgdV9zdHJjb2xsKCkg
bWV0aG9kLgorICogc3RyaW5nIGluIHRoZSB1Y29sX3N0cmNvbGwoKSBtZXRob2QuCiAgKiBVQ09M
X0dSRUFURVIgaXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBn
cmVhdGVyIHRoYW4KLSAqIHRhcmdldCBzdHJpbmcgaW4gdGhlIHVfc3RyY29sbCgpIG1ldGhvZC4K
LSAqIEBzZWUgdV9zdHJjb2xsKCkKKyAqIHRhcmdldCBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29s
bCgpIG1ldGhvZC4KKyAqIEBzZWUgdWNvbF9zdHJjb2xsKCkKICAqIDxwPgogICogUG9zc2libGUg
dmFsdWVzIGZvciBhIGNvbXBhcmlzb24gcmVzdWx0IAogICogQHN0YWJsZSBJQ1UgMi4wCkBAIC0x
MzIsMTggKzEzMyw3NiBAQCB0eXBlZGVmIGVudW0gewogCiB9IFVDb2xBdHRyaWJ1dGVWYWx1ZTsK
IAotLyoqIEVudW0gY29udGFpbmluZyB0aGUgY29kZXMgZm9yIHJlb3JkZXJpbmcgc2VnbWVudHMg
b2YgdGhlIGNvbGxhdGlvbiB0YWJsZSB0aGF0IGFyZSBub3Qgc2NyaXB0Ci0gKiAgY29kZXMuIFRo
ZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0
aGUgc2NyaXB0IGNvZGVzLgotICogIEBpbnRlcm5hbAorLyoqCisgKiBFbnVtIGNvbnRhaW5pbmcg
dGhlIGNvZGVzIGZvciByZW9yZGVyaW5nIHNlZ21lbnRzIG9mIHRoZSBjb2xsYXRpb24gdGFibGUg
dGhhdCBhcmUgbm90IHNjcmlwdAorICogY29kZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJl
IHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgc2NyaXB0IGNvZGVzLgorICogQHNl
ZSB1Y29sX2dldFJlb3JkZXJDb2RlcworICogQHNlZSB1Y29sX3NldFJlb3JkZXJDb2RlcworICog
QHNlZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUK
KyAqIEBzdGFibGUgSUNVIDQuOAogICovCi10eXBlZGVmIGVudW0gewotICAgIFVDT0xfUkVPUkRF
Ul9DT0RFX1NQQUNFICAgICAgICAgID0gMHgxMDAwLAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX0ZJ
UlNUICAgICAgICAgID0gVUNPTF9SRU9SREVSX0NPREVfU1BBQ0UsCi0gICAgVUNPTF9SRU9SREVS
X0NPREVfUFVOQ1RVQVRJT04gICAgPSAweDEwMDEsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfU1lN
Qk9MICAgICAgICAgPSAweDEwMDIsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfQ1VSUkVOQ1kgICAg
ICAgPSAweDEwMDMsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfRElHSVQgICAgICAgICAgPSAweDEw
MDQsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfTElNSVQgICAgICAgICAgPSAweDEwMDUKKyB0eXBl
ZGVmIGVudW0geworICAgLyoqCisgICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQg
aXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0CisgICAgKiByZW9yZGVyaW5nIGNvZGVzIGZv
ciBhIGxvY2FsZS4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgCisgICAgVUNPTF9S
RU9SREVSX0NPREVfREVGQVVMVCAgICAgICA9IC0xLAorICAgLyoqCisgICAgKiBBIHNwZWNpYWwg
cmVvcmRlcmluZyBjb2RlIHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IG5vIHJlb3JkZXJpbmcgY29k
ZXMuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9D
T0RFX05PTkUgICAgICAgICAgPSBVU0NSSVBUX1VOS05PV04sCisgICAvKioKKyAgICAqIEEgc3Bl
Y2lhbCByZW9yZGVyaW5nIGNvZGUgdGhhdCBpcyB1c2VkIHRvIHNwZWNpZnkgYWxsIG90aGVyIGNv
ZGVzIHVzZWQgZm9yCisgICAgKiByZW9yZGVyaW5nIGV4Y2VwdCBmb3IgdGhlIGNvZGVzIGxpc2Vk
IGFzIFVDb2xSZW9yZGVyQ29kZSB2YWx1ZXMgYW5kIHRob3NlCisgICAgKiBsaXN0ZWQgZXhwbGlj
aXRseSBpbiBhIHJlb3JkZXJpbmcuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAor
ICAgIFVDT0xfUkVPUkRFUl9DT0RFX09USEVSUyAgICAgICAgPSBVU0NSSVBUX1VOS05PV04sCisg
ICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgc3BhY2UgcHJvcGVydHkuCisgICAgKiBU
aGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgInNwYWNlIi4KKyAgICAqIEBzdGFi
bGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFICAgICAg
ICAgPSAweDEwMDAsCisgICAvKioKKyAgICAqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgZW51bWVy
YXRpb24gb2YgcmVvcmRlcmluZyBncm91cHMuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBpbgor
ICAgICogcmFuZ2UgY2hlY2tpbmcgYW5kIGVudW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVz
LgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NP
REVfRklSU1QgICAgICAgICA9IFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFLAorICAgLyoqCisgICAg
KiBDaGFyYWN0ZXJzIHdpdGggdGhlIHB1bmN0dWF0aW9uIHByb3BlcnR5LgorICAgICogVGhpcyBp
cyBlcXVpdmFsZW50IHRvIHRoZSBydWxlIHZhbHVlICJwdW5jdCIuCisgICAgKiBAc3RhYmxlIElD
VSA0LjgKKyAgICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9QVU5DVFVBVElPTiAgID0g
MHgxMDAxLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhlIHN5bWJvbCBwcm9wZXJ0
eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgcnVsZSB2YWx1ZSAic3ltYm9sIi4K
KyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RF
X1NZTUJPTCAgICAgICAgPSAweDEwMDIsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0
aGUgY3VycmVuY3kgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1
bGUgdmFsdWUgImN1cnJlbmN5Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAor
ICAgIFVDT0xfUkVPUkRFUl9DT0RFX0NVUlJFTkNZICAgICAgPSAweDEwMDMsCisgICAvKioKKyAg
ICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgZGlnaXQgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVx
dWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgImRpZ2l0Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQu
OAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0RJR0lUICAgICAgICAgPSAweDEw
MDQsCisgICAvKioKKyAgICAqIFRoZSBsaW1pdCBvZiB0aGUgcmVvcmRlciBjb2Rlcy4gVGhpcyBp
cyBpbnRlbmRlZCBmb3IgdXNlIGluIHJhbmdlIGNoZWNraW5nIAorICAgICogYW5kIGVudW1lcmF0
aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVzLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8g
ICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfTElNSVQgICAgICAgICA9IDB4MTAwNQogfSBVQ29s
UmVvcmRlckNvZGU7CiAKIC8qKgpAQCAtMTc5LDEwICsyMzgsMTIgQEAgdHlwZWRlZiBVQ29sQXR0
cmlidXRlVmFsdWUgVUNvbGxhdGlvblN0cmVuZ3RoOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8K
IHR5cGVkZWYgZW51bSB7Ci0gICAgIC8qKiBBdHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBvZiBzZWNv
bmRhcnkgd2VpZ2h0cyAtIHVzZWQgaW4gRnJlbmNoLgorICAgICAvKiogQXR0cmlidXRlIGZvciBk
aXJlY3Rpb24gb2Ygc2Vjb25kYXJ5IHdlaWdodHMgLSB1c2VkIGluIENhbmFkaWFuIEZyZW5jaC4K
ICAgICAgICogQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIFVDT0xfT04sIHdoaWNoIHJlc3VsdHMgaW4g
c2Vjb25kYXJ5IHdlaWdodHMKICAgICAgICogYmVpbmcgY29uc2lkZXJlZCBiYWNrd2FyZHMgYW5k
IFVDT0xfT0ZGIHdoaWNoIHRyZWF0cyBzZWNvbmRhcnkKLSAgICAgICogd2VpZ2h0cyBpbiB0aGUg
b3JkZXIgdGhleSBhcHBlYXIuKi8KKyAgICAgICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIgdGhleSBh
cHBlYXIuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9GUkVO
Q0hfQ09MTEFUSU9OLCAKICAgICAgLyoqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUg
ZWxlbWVudHMuCiAgICAgICAqIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBVQ09MX05PTl9JR05PUkFC
TEUgKGRlZmF1bHQpCkBAIC0xOTEsMTQgKzI1MiwxOCBAQCB0eXBlZGVmIGVudW0gewogICAgICAg
KiBhbmQgVUNPTF9TSElGVEVEIHdoaWNoIGNhdXNlcyBjb2RlcG9pbnRzIHdpdGggcHJpbWFyeSAK
ICAgICAgICogd2VpZ2h0cyB0aGF0IGFyZSBlcXVhbCBvciBiZWxvdyB0aGUgdmFyaWFibGUgdG9w
IHZhbHVlCiAgICAgICAqIHRvIGJlIGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQg
dG8gdGhlIHF1YXRlcm5hcnkgCi0gICAgICAqIGxldmVsLiovCisgICAgICAqIGxldmVsLgorICAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfQUxURVJOQVRFX0hBTkRM
SU5HLCAKICAgICAgLyoqIENvbnRyb2xzIHRoZSBvcmRlcmluZyBvZiB1cHBlciBhbmQgbG93ZXIg
Y2FzZSBsZXR0ZXJzLgogICAgICAgKiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgVUNPTF9PRkYgKGRl
ZmF1bHQpLCB3aGljaCBvcmRlcnMKICAgICAgICogdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVy
cyBpbiBhY2NvcmRhbmNlIHRvIHRoZWlyIHRlcnRpYXJ5CiAgICAgICAqIHdlaWdodHMsIFVDT0xf
VVBQRVJfRklSU1Qgd2hpY2ggZm9yY2VzIHVwcGVyIGNhc2UgbGV0dGVycyB0byAKICAgICAgICog
c29ydCBiZWZvcmUgbG93ZXIgY2FzZSBsZXR0ZXJzLCBhbmQgVUNPTF9MT1dFUl9GSVJTVCB3aGlj
aCBkb2VzIAotICAgICAgKiB0aGUgb3Bwb3NpdGUuICovCisgICAgICAqIHRoZSBvcHBvc2l0ZS4K
KyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0NBU0VfRklSU1Qs
IAogICAgICAvKiogQ29udHJvbHMgd2hldGhlciBhbiBleHRyYSBjYXNlIGxldmVsIChwb3NpdGlv
bmVkIGJlZm9yZSB0aGUgdGhpcmQKICAgICAgICogbGV2ZWwpIGlzIGdlbmVyYXRlZCBvciBub3Qu
IEFjY2VwdGFibGUgdmFsdWVzIGFyZSBVQ09MX09GRiAoZGVmYXVsdCksIApAQCAtMjA2LDcgKzI3
MSw5IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIGxldmVsIHRvIGJlIGdlbmVyYXRlZC4gQ29u
dGVudHMgb2YgdGhlIGNhc2UgbGV2ZWwgYXJlIGFmZmVjdGVkIGJ5CiAgICAgICAqIHRoZSB2YWx1
ZSBvZiBVQ09MX0NBU0VfRklSU1QgYXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIAog
ICAgICAgKiBhY2NlbnQgZGlmZmVyZW5jZXMgaW4gYSBzdHJpbmcgaXMgdG8gc2V0IHRoZSBzdHJl
bmd0aCB0byBVQ09MX1BSSU1BUlkKLSAgICAgICogYW5kIGVuYWJsZSBjYXNlIGxldmVsLiAqLwor
ICAgICAgKiBhbmQgZW5hYmxlIGNhc2UgbGV2ZWwuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAgKi8KICAgICAgVUNPTF9DQVNFX0xFVkVMLAogICAgICAvKiogQ29udHJvbHMgd2hldGhl
ciB0aGUgbm9ybWFsaXphdGlvbiBjaGVjayBhbmQgbmVjZXNzYXJ5IG5vcm1hbGl6YXRpb25zCiAg
ICAgICAqIGFyZSBwZXJmb3JtZWQuIFdoZW4gc2V0IHRvIFVDT0xfT0ZGIChkZWZhdWx0KSBubyBu
b3JtYWxpemF0aW9uIGNoZWNrCkBAIC0yMTQsOSArMjgxLDEzIEBAIHR5cGVkZWYgZW51bSB7CiAg
ICAgICAqIGlucHV0IGRhdGEgaXMgaW4gc28tY2FsbGVkIEZDRCBmb3JtIChzZWUgdXNlcnMgbWFu
dWFsIGZvciBtb3JlIGluZm8pLgogICAgICAgKiBXaGVuIHNldCB0byBVQ09MX09OLCBhbiBpbmNy
ZW1lbnRhbCBjaGVjayBpcyBwZXJmb3JtZWQgdG8gc2VlIHdoZXRoZXIKICAgICAgICogdGhlIGlu
cHV0IGRhdGEgaXMgaW4gdGhlIEZDRCBmb3JtLiBJZiB0aGUgZGF0YSBpcyBub3QgaW4gdGhlIEZD
RCBmb3JtLAotICAgICAgKiBpbmNyZW1lbnRhbCBORkQgbm9ybWFsaXphdGlvbiBpcyBwZXJmb3Jt
ZWQuICovCisgICAgICAqIGluY3JlbWVudGFsIE5GRCBub3JtYWxpemF0aW9uIGlzIHBlcmZvcm1l
ZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX05PUk1BTEla
QVRJT05fTU9ERSwgCi0gICAgIC8qKiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9OX01P
REUgYXR0cmlidXRlICovCisgICAgIC8qKiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9O
X01PREUgYXR0cmlidXRlLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAg
IFVDT0xfREVDT01QT1NJVElPTl9NT0RFID0gVUNPTF9OT1JNQUxJWkFUSU9OX01PREUsCiAgICAg
IC8qKiBUaGUgc3RyZW5ndGggYXR0cmlidXRlLiBDYW4gYmUgZWl0aGVyIFVDT0xfUFJJTUFSWSwg
VUNPTF9TRUNPTkRBUlksCiAgICAgICAqIFVDT0xfVEVSVElBUlksIFVDT0xfUVVBVEVSTkFSWSBv
ciBVQ09MX0lERU5USUNBTC4gVGhlIHVzdWFsIHN0cmVuZ3RoCkBAIC0yMjcsMjAgKzI5OCwzNyBA
QCB0eXBlZGVmIGVudW0gewogICAgICAgKiBVQ09MX0hJUkFHQU5BX1FVQVRFUk5BUlkgbW9kZSB0
byBvbi4gT3RoZXJ3aXNlLCBxdWF0ZXJuYXJ5IGxldmVsCiAgICAgICAqIGlzIGFmZmVjdGVkIG9u
bHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluCiAgICAgICAq
IHRoZSBzdHJpbmcuIElkZW50aWNhbCBzdHJlbmd0aCBpcyByYXJlbHkgdXNlZnVsLCBhcyBpdCBh
bW91bnRzIAotICAgICAgKiB0byBjb2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3Ry
aW5nLiAqLworICAgICAgKiB0byBjb2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3Ry
aW5nLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfU1RSRU5H
VEgsICAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAgICAgIC8qKiBXaGVuIHR1cm5l
ZCBvbiwgdGhpcyBhdHRyaWJ1dGUgcG9zaXRpb25zIEhpcmFnYW5hIGJlZm9yZSBhbGwgIAogICAg
ICAgKiBub24taWdub3JhYmxlcyBvbiBxdWF0ZXJuYXJ5IGxldmVsIFRoaXMgaXMgYSBzbmVha3kg
d2F5IHRvIHByb2R1Y2UgSklTCi0gICAgICAqIHNvcnQgb3JkZXIgKi8KLSAgICAgVUNPTF9ISVJB
R0FOQV9RVUFURVJOQVJZX01PREUsCisgICAgICAqIHNvcnQgb3JkZXIuCisgICAgICAqCisgICAg
ICAqIFRoaXMgYXR0cmlidXRlIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiB0aGUgQ0xE
UiBKYXBhbmVzZSB0YWlsb3JpbmcuCisgICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBj
aGFuZ2UgdG8gdXNlIGEgZGlmZmVyZW50IG1lY2hhbmlzbQorICAgICAgKiB0byBhY2hpZXZlIHRo
ZSBzYW1lIEphcGFuZXNlIHNvcnQgb3JkZXIuCisgICAgICAqIFNpbmNlIElDVSA1MCwgdGhpcyBh
dHRyaWJ1dGUgaXMgbm90IHNldHRhYmxlIGFueSBtb3JlIHZpYSBBUEkgZnVuY3Rpb25zLgorICAg
ICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgSW1wbGVtZW50YXRpb24gZGV0YWlsLCBjYW5ub3QgYmUg
c2V0IHZpYSBBUEksIG1pZ2h0IGJlIHJlbW92ZWQgZnJvbSBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICovCisgICAgIFVDT0xfSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFID0gVUNPTF9TVFJFTkdUSCAr
IDEsCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogICAgICAvKiogV2hlbiB0
dXJuZWQgb24sIHRoaXMgYXR0cmlidXRlIGdlbmVyYXRlcyBhIGNvbGxhdGlvbiBrZXkKICAgICAg
ICogZm9yIHRoZSBudW1lcmljIHZhbHVlIG9mIHN1YnN0cmluZ3Mgb2YgZGlnaXRzLgogICAgICAg
KiBUaGlzIGlzIGEgd2F5IHRvIGdldCAnMTAwJyB0byBzb3J0IEFGVEVSICcyJy4gTm90ZSB0aGF0
IHRoZSBsb25nZXN0CiAgICAgICAqIGRpZ2l0IHN1YnN0cmluZyB0aGF0IGNhbiBiZSB0cmVhdGVk
IGFzIGEgc2luZ2xlIGNvbGxhdGlvbiBlbGVtZW50IGlzCiAgICAgICAqIDI1NCBkaWdpdHMgKG5v
dCBjb3VudGluZyBsZWFkaW5nIHplcm9zKS4gSWYgYSBkaWdpdCBzdWJzdHJpbmcgaXMKICAgICAg
ICogbG9uZ2VyIHRoYW4gdGhhdCwgdGhlIGRpZ2l0cyBiZXlvbmQgdGhlIGxpbWl0IHdpbGwgYmUg
dHJlYXRlZCBhcyBhCi0gICAgICAqIHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVk
IHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24gZWxlbWVudC4gKi8KLSAgICAgVUNPTF9OVU1FUklD
X0NPTExBVElPTiwgCisgICAgICAqIHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVk
IHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24gZWxlbWVudC4KKyAgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICAqLworICAgICBVQ09MX05VTUVSSUNfQ09MTEFUSU9OID0gVUNPTF9TVFJFTkdU
SCArIDIsIAorICAgICAvKioKKyAgICAgICogVGhlIG51bWJlciBvZiBVQ29sQXR0cmlidXRlIGNv
bnN0YW50cy4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0FU
VFJJQlVURV9DT1VOVAogfSBVQ29sQXR0cmlidXRlOwogCkBAIC0yNDgsOSArMzM2LDE5IEBAIHR5
cGVkZWYgZW51bSB7CiAgKiAgQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0g
IC8qKiBSZXRyaWV2ZSB0YWlsb3Jpbmcgb25seSAqLworICAvKioKKyAgICogUmV0cmlldmVzIHRo
ZSB0YWlsb3JpbmcgcnVsZXMgb25seS4KKyAgICogU2FtZSBhcyBjYWxsaW5nIHRoZSB2ZXJzaW9u
IG9mIGdldFJ1bGVzKCkgd2l0aG91dCBVQ29sUnVsZU9wdGlvbi4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLwogICBVQ09MX1RBSUxPUklOR19PTkxZLCAKLSAgLyoqIFJldHJpZXZlIFVDQSBy
dWxlcyBhbmQgdGFpbG9yaW5nICovCisgIC8qKgorICAgKiBSZXRyaWV2ZXMgdGhlICJVQ0EgcnVs
ZXMiIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSB0YWlsb3JpbmcgcnVsZXMuCisgICAqIFRoZSAiVUNB
IHJ1bGVzIiBhcmUgYW4gPGk+YXBwcm94aW1hdGlvbjwvaT4gb2YgdGhlIHJvb3QgY29sbGF0b3In
cyBzb3J0IG9yZGVyLgorICAgKiBUaGV5IGFyZSBhbG1vc3QgbmV2ZXIgdXNlZCBvciB1c2VmdWwg
YXQgcnVudGltZSBhbmQgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YS4KKyAgICogU2VlIGh0
dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2NvbGxhdGlvbi9jdXN0b21pemF0aW9uI1RP
Qy1CdWlsZGluZy1vbi1FeGlzdGluZy1Mb2NhbGVzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KICAgVUNPTF9GVUxMX1JVTEVTIAogfSBVQ29sUnVsZU9wdGlvbiA7CiAKQEAgLTM0Nyw2ICs0
NDUsNyBAQCB1Y29sX29wZW5Gcm9tU2hvcnRTdHJpbmcoIGNvbnN0IGNoYXIgKmRlZmluaXRpb24s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVycm9yLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOwogCisjaWZuZGVmIFVf
SElERV9ERVBSRUNBVEVEX0FQSQogLyoqCiAgKiBHZXQgYSBzZXQgY29udGFpbmluZyB0aGUgY29u
dHJhY3Rpb25zIGRlZmluZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGUgc2V0IGluY2x1ZGVzCiAgKiBi
b3RoIHRoZSBVQ0EgY29udHJhY3Rpb25zIGFuZCB0aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkg
dGhlIGNvbGxhdG9yLiBUaGlzIHNldApAQCAtMzY0LDYgKzQ2Myw3IEBAIFVfREVQUkVDQVRFRCBp
bnQzMl90IFVfRVhQT1JUMgogdWNvbF9nZXRDb250cmFjdGlvbnMoIGNvbnN0IFVDb2xsYXRvciAq
Y29sbCwKICAgICAgICAgICAgICAgICAgIFVTZXQgKmNvbnRzLAogICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqc3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICov
CiAKIC8qKgogICogR2V0IGEgc2V0IGNvbnRhaW5pbmcgdGhlIGV4cGFuc2lvbnMgZGVmaW5lZCBi
eSB0aGUgY29sbGF0b3IuIFRoZSBzZXQgaW5jbHVkZXMKQEAgLTQzNSw2ICs1MzUsMzMgQEAgdWNv
bF9zdHJjb2xsKCAgICBjb25zdCAgICBVQ29sbGF0b3IgICAgKmNvbGwsCiAgICAgICAgIGNvbnN0
ICAgIFVDaGFyICAgICAgICAqdGFyZ2V0LAogICAgICAgICBpbnQzMl90ICAgICAgICAgICAgdGFy
Z2V0TGVuZ3RoKTsKIAorLyoqIAorKiBDb21wYXJlIHR3byBzdHJpbmdzIGluIFVURi04LiAKKyog
VGhlIHN0cmluZ3Mgd2lsbCBiZSBjb21wYXJlZCB1c2luZyB0aGUgb3B0aW9ucyBhbHJlYWR5IHNw
ZWNpZmllZC4gCisqIE5vdGU6IFdoZW4gaW5wdXQgc3RyaW5nIGNvbnRhaW5zIG1hbGZvcm1lZCBh
IFVURi04IGJ5dGUgc2VxdWVuY2UsIAorKiB0aGlzIGZ1bmN0aW9uIHRyZWF0cyB0aGVzZSBieXRl
cyBhcyBSRVBMQUNFTUVOVCBDSEFSQUNURVIgKFUrRkZGRCkuCisqIEBwYXJhbSBjb2xsIFRoZSBV
Q29sbGF0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiBydWxlcy4gCisqIEBwYXJhbSBzb3Vy
Y2UgVGhlIHNvdXJjZSBVVEYtOCBzdHJpbmcuIAorKiBAcGFyYW0gc291cmNlTGVuZ3RoIFRoZSBs
ZW5ndGggb2Ygc291cmNlLCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQuIAorKiBAcGFyYW0gdGFy
Z2V0IFRoZSB0YXJnZXQgVVRGLTggc3RyaW5nLiAKKyogQHBhcmFtIHRhcmdldExlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRhcmdldCwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLiAKKyogQHBhcmFtIHN0
YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMgCisq
IEByZXR1cm4gVGhlIHJlc3VsdCBvZiBjb21wYXJpbmcgdGhlIHN0cmluZ3M7IG9uZSBvZiBVQ09M
X0VRVUFMLCAKKyogVUNPTF9HUkVBVEVSLCBVQ09MX0xFU1MgCisqIEBzZWUgdWNvbF9ncmVhdGVy
IAorKiBAc2VlIHVjb2xfZ3JlYXRlck9yRXF1YWwgCisqIEBzZWUgdWNvbF9lcXVhbCAKKyogQHN0
YWJsZSBJQ1UgNTAgCisqLyAKK1VfU1RBQkxFIFVDb2xsYXRpb25SZXN1bHQgVV9FWFBPUlQyCit1
Y29sX3N0cmNvbGxVVEY4KAorICAgICAgICBjb25zdCBVQ29sbGF0b3IgKmNvbGwsCisgICAgICAg
IGNvbnN0IGNoYXIgICAgICAqc291cmNlLAorICAgICAgICBpbnQzMl90ICAgICAgICAgc291cmNl
TGVuZ3RoLAorICAgICAgICBjb25zdCBjaGFyICAgICAgKnRhcmdldCwKKyAgICAgICAgaW50MzJf
dCAgICAgICAgIHRhcmdldExlbmd0aCwKKyAgICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMp
OworCiAvKioKICAqIERldGVybWluZSBpZiBvbmUgc3RyaW5nIGlzIGdyZWF0ZXIgdGhhbiBhbm90
aGVyLgogICogVGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHtAbGluayAjdWNvbF9zdHJj
b2xsIH0gPT0gVUNPTF9HUkVBVEVSCkBAIC01MzYsMzcgKzY2Myw5MCBAQCB1Y29sX3NldFN0cmVu
Z3RoKFVDb2xsYXRvciAqY29sbCwKICAgICAgICAgICAgICAgICAgVUNvbGxhdGlvblN0cmVuZ3Ro
IHN0cmVuZ3RoKTsKIAogLyoqCi0gKiBHZXQgdGhlIGN1cnJlbnQgcmVvcmRlcmluZyBvZiBzY3Jp
cHRzIChpZiBvbmUgaGFzIGJlZW4gc2V0KS4KKyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlcmluZyBj
b2RlcyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIGEg
Y29tYmluYXRpb24gb2YgVVNjcmlwdCBjb2RlcyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMu
CiAgKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIHRvIHF1ZXJ5LgogICogQHBhcmFtIGRlc3Qg
VGhlIGFycmF5IHRvIGZpbGwgd2l0aCB0aGUgc2NyaXB0IG9yZGVyaW5nLgotICogQHBhcmFtIGRl
c3RDYXBhY2l0eSBUaGUgbGVuZ3RoIG9mIGRlc3QuIElmIGl0IGlzIDAsIHRoZW4gZGVzdCBtYXkg
YmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1m
bGlnaHRpbmcpLgotICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIg
dG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJl
IGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUg
YXJyYXkgb2YgdGhlIHNjcmlwdCBvcmRlcmluZy4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhl
IGxlbmd0aCBvZiBkZXN0LiBJZiBpdCBpcyAwLCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRo
ZSBmdW5jdGlvbiAKKyAqIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0
IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcp
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSAKKyAqIGZhaWx1cmUgYmVm
b3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJlb3JkZXJp
bmcgY29kZXMgd3JpdHRlbiB0byB0aGUgZGVzdCBhcnJheS4KICAqIEBzZWUgdWNvbF9zZXRSZW9y
ZGVyQ29kZXMKLSAqIEBpbnRlcm5hbCAKKyAqIEBzZWUgdWNvbF9nZXRFcXVpdmFsZW50UmVvcmRl
ckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2RlCisgKiBAc2VlIFVDb2xSZW9yZGVyQ29kZQorICog
QHN0YWJsZSBJQ1UgNC44CiAgKi8KLVVfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKIHVjb2xfZ2V0UmVvcmRlckNvZGVzKGNvbnN0IFVDb2xs
YXRvciogY29sbCwKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCogZGVzdCwKICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOwotCi0vKioKLSAqIFNldCB0aGUgb3JkZXJpbmcgb2Ygc2Ny
aXB0cyBmb3IgdGhpcyBjb2xsYXRvci4KKy8qKiAKKyAqIFNldHMgdGhlIHJlb3JkZXJpbmcgY29k
ZXMgZm9yIHRoaXMgY29sbGF0b3IuCisgKiBDb2xsYXRpb24gcmVvcmRlcmluZyBhbGxvd3Mgc2Ny
aXB0cyBhbmQgc29tZSBvdGhlciBkZWZpbmVkIGJsb2NrcyBvZiBjaGFyYWN0ZXJzIAorICogdG8g
YmUgbW92ZWQgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciBhcyBhIGJsb2NrLiBUaGlzIHJlb3JkZXJp
bmcgaXMgZG9uZSBvbiB0b3Agb2YgCisgKiB0aGUgRFVDRVQvQ0xEUiBzdGFuZGFyZCBjb2xsYXRp
b24gb3JkZXIuIFJlb3JkZXJpbmcgY2FuIHNwZWNpZnkgZ3JvdXBzIHRvIGJlIHBsYWNlZCAKKyAq
IGF0IHRoZSBzdGFydCBhbmQvb3IgdGhlIGVuZCBvZiB0aGUgY29sbGF0aW9uIG9yZGVyLiBUaGVz
ZSBncm91cHMgYXJlIHNwZWNpZmllZCB1c2luZworICogVVNjcmlwdCBjb2RlcyBhbmQgVUNvbFJl
b3JkZXJDb2RlIGVudHJpZXMuCisgKiA8cD5CeSBkZWZhdWx0LCByZW9yZGVyaW5nIGNvZGVzIHNw
ZWNpZmllZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBvcmRlciBhcmUgcGxhY2VkIGluIHRoZSAKKyAq
IG9yZGVyIGdpdmVuIGFmdGVyIGEgZ3JvdXAgb2YgInNwZWNpYWwiIG5vbi1zY3JpcHQgYmxvY2tz
LiBUaGVzZSBzcGVjaWFsIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIAorICogYXJlIHNwYWNlLCBwdW5j
dHVhdGlvbiwgc3ltYm9sLCBjdXJyZW5jeSwgYW5kIGRpZ2l0LiBUaGVzZSBzcGVjaWFsIGdyb3Vw
cyBhcmUgcmVwcmVzZW50ZWQgd2l0aAorICogVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuIFNjcmlw
dCBncm91cHMgY2FuIGJlIGludGVybWluZ2xlZCB3aXRoIAorICogdGhlc2Ugc3BlY2lhbCBub24t
c2NyaXB0IGJsb2NrcyBpZiB0aG9zZSBzcGVjaWFsIGJsb2NrcyBhcmUgZXhwbGljaXRseSBzcGVj
aWZpZWQgaW4gdGhlIHJlb3JkZXJpbmcuCisgKiA8cD5UaGUgc3BlY2lhbCBjb2RlIE9USEVSUyBz
dGFuZHMgZm9yIGFueSBzY3JpcHQgdGhhdCBpcyBub3QgZXhwbGljaXRseSAKKyAqIG1lbnRpb25l
ZCBpbiB0aGUgbGlzdCBvZiByZW9yZGVyaW5nIGNvZGVzIGdpdmVuLiBBbnl0aGluZyB0aGF0IGlz
IGFmdGVyIE9USEVSUworICogd2lsbCBnbyBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHJlb3JkZXJp
bmcgaW4gdGhlIG9yZGVyIGdpdmVuLgorICogPHA+VGhlIHNwZWNpYWwgcmVvcmRlciBjb2RlIERF
RkFVTFQgd2lsbCByZXNldCB0aGUgcmVvcmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvcgorICogdG8g
dGhlIGRlZmF1bHQgZm9yIHRoaXMgY29sbGF0b3IuIFRoZSBkZWZhdWx0IHJlb3JkZXJpbmcgbWF5
IGJlIHRoZSBEVUNFVC9DTERSIG9yZGVyIG9yIG1heSBiZSBhIHJlb3JkZXJpbmcgdGhhdAorICog
d2FzIHNwZWNpZmllZCB3aGVuIHRoaXMgY29sbGF0b3Igd2FzIGNyZWF0ZWQgZnJvbSByZXNvdXJj
ZSBkYXRhIG9yIGZyb20gcnVsZXMuIFRoZSAKKyAqIERFRkFVTFQgY29kZSA8Yj5tdXN0PC9iPiBi
ZSB0aGUgc29sZSBjb2RlIHN1cHBsaWVkIHdoZW4gaXQgdXNlZC4gSWYgbm90CisgKiB0aGF0IHdp
bGwgcmVzdWx0IGluIGFuIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiBiZWluZyBzZXQuCisgKiA8
cD5UaGUgc3BlY2lhbCByZW9yZGVyIGNvZGUgTk9ORSB3aWxsIHJlbW92ZSBhbnkgcmVvcmRlcmlu
ZyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIFRoZSByZXN1bHQgb2Ygc2V0dGluZyBubyByZW9yZGVy
aW5nIHdpbGwgYmUgdG8gaGF2ZSB0aGUgRFVDRVQvQ0xEUiBvcmRlcmluZyB1c2VkLiBUaGUgCisg
KiBOT05FIGNvZGUgPGI+bXVzdDwvYj4gYmUgdGhlIHNvbGUgY29kZSBzdXBwbGllZCB3aGVuIGl0
IHVzZWQuCiAgKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIHRvIHNldC4KLSAqIEBwYXJhbSBy
ZW9yZGVyQ29kZXMgQW4gYXJyYXkgb2Ygc2NyaXB0IGNvZGVzIGluIHRoZSBuZXcgb3JkZXIuCisg
KiBAcGFyYW0gcmVvcmRlckNvZGVzIEFuIGFycmF5IG9mIHNjcmlwdCBjb2RlcyBpbiB0aGUgbmV3
IG9yZGVyLiBUaGlzIGNhbiBiZSBOVUxMIGlmIHRoZSAKKyAqIGxlbmd0aCBpcyBhbHNvIHNldCB0
byAwLiBBbiBlbXB0eSBhcnJheSB3aWxsIGNsZWFyIGFueSByZW9yZGVyaW5nIGNvZGVzIG9uIHRo
ZSBjb2xsYXRvci4KICAqIEBwYXJhbSByZW9yZGVyQ29kZXNMZW5ndGggVGhlIGxlbmd0aCBvZiBy
ZW9yZGVyQ29kZXMuCi0gKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRl
ciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLCB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBi
ZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3Qg
aW5kaWNhdGUgYQorICogZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCiAgKiBAc2Vl
IHVjb2xfZ2V0UmVvcmRlckNvZGVzCi0gKiBAaW50ZXJuYWwgCi0gKi8KLVVfSU5URVJOQUwgdm9p
ZCBVX0VYUE9SVDIgCisgKiBAc2VlIHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcworICog
QHNlZSBVU2NyaXB0Q29kZQorICogQHNlZSBVQ29sUmVvcmRlckNvZGUKKyAqIEBzdGFibGUgSUNV
IDQuOAorICovIAorVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCiB1Y29sX3NldFJlb3JkZXJDb2Rl
cyhVQ29sbGF0b3IqIGNvbGwsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QqIHJl
b3JkZXJDb2RlcywKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZW9yZGVyQ29kZXNMZW5n
dGgsCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwogCiAvKioK
KyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlciBjb2RlcyB0aGF0IGFyZSBncm91cGVkIHdpdGggdGhl
IGdpdmVuIHJlb3JkZXIgY29kZS4gU29tZSByZW9yZGVyCisgKiBjb2RlcyB3aWxsIGJlIGdyb3Vw
ZWQgYW5kIG11c3QgcmVvcmRlciB0b2dldGhlci4KKyAqIEBwYXJhbSByZW9yZGVyQ29kZSBUaGUg
cmVvcmRlciBjb2RlIHRvIGRldGVybWluZSBlcXVpdmFsZW5jZSBmb3IuCisgKiBAcGFyYW0gZGVz
dCBUaGUgYXJyYXkgdG8gZmlsbCB3aXRoIHRoZSBzY3JpcHQgb3JkZXJpbmcuCisgKiBAcGFyYW0g
ZGVzdENhcGFjaXR5IFRoZSBsZW5ndGggb2YgZGVzdC4gSWYgaXQgaXMgMCwgdGhlbiBkZXN0IG1h
eSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24KKyAqIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcg
KHByZS1mbGlnaHRpbmcpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgCisg
KiBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbnVt
YmVyIG9mIHJlb3JkZXJpbmcgY29kZXMgd3JpdHRlbiB0byB0aGUgZGVzdCBhcnJheS4KKyAqIEBz
ZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29kZXMKKyAq
IEBzZWUgVVNjcmlwdENvZGUKKyAqIEBzZWUgVUNvbFJlb3JkZXJDb2RlCisgKiBAc3RhYmxlIElD
VSA0LjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgCit1Y29sX2dldEVxdWl2YWxl
bnRSZW9yZGVyQ29kZXMoaW50MzJfdCByZW9yZGVyQ29kZSwKKyAgICAgICAgICAgICAgICAgICAg
aW50MzJfdCogZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKICAq
IEdldCB0aGUgZGlzcGxheSBuYW1lIGZvciBhIFVDb2xsYXRvci4KICAqIFRoZSBkaXNwbGF5IG5h
bWUgaXMgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byBhIHVzZXIuCiAgKiBAcGFyYW0gb2Jq
TG9jIFRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yIGluIHF1ZXN0aW9uLgpAQCAtNzA1LDExICs4
ODUsMTEgQEAgdWNvbF9nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChjaGFyKiByZXN1bHQsIGludDMy
X3QgcmVzdWx0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29sKiBp
c0F2YWlsYWJsZSwgVUVycm9yQ29kZSogc3RhdHVzKTsKIAogLyoqCi0gKiBHZXQgdGhlIGNvbGxh
dGlvbiBydWxlcyBmcm9tIGEgVUNvbGxhdG9yLgorICogR2V0IHRoZSBjb2xsYXRpb24gdGFpbG9y
aW5nIHJ1bGVzIGZyb20gYSBVQ29sbGF0b3IuCiAgKiBUaGUgcnVsZXMgd2lsbCBmb2xsb3cgdGhl
IHJ1bGUgc3ludGF4LgogICogQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRvciB0byBxdWVyeS4KICAq
IEBwYXJhbSBsZW5ndGggCi0gKiBAcmV0dXJuIFRoZSBjb2xsYXRpb24gcnVsZXMuCisgKiBAcmV0
dXJuIFRoZSBjb2xsYXRpb24gdGFpbG9yaW5nIHJ1bGVzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAg
Ki8KIFVfU1RBQkxFIGNvbnN0IFVDaGFyKiBVX0VYUE9SVDIgCkBAIC04MDIsMTAgKzk4MiwxMCBA
QCB1Y29sX2dldFNvcnRLZXkoY29uc3QgICAgVUNvbGxhdG9yICAgICpjb2xsLAogICogIHRvIHBy
ZXNlcnZlIHN0YXRlIGFycmF5IGJldHdlZW4gY2FsbHMgYW5kIHRvIHByb3ZpZGUKICAqICB0aGUg
c2FtZSB0eXBlIG9mIFVDaGFySXRlcmF0b3Igc2V0IHdpdGggdGhlIHNhbWUgc3RyaW5nLgogICog
IFRoZSBkZXN0aW5hdGlvbiBidWZmZXIgcHJvdmlkZWQgbXVzdCBiZSBiaWcgZW5vdWdoIHRvIHN0
b3JlCi0gKiAgdGhlIG51bWJlciBvZiByZXF1ZXN0ZWQgYnl0ZXMuIEdlbmVyYXRlZCBzb3J0a2V5
IGlzIG5vdCAKLSAqICBjb21wYXRpYmxlIHdpdGggc29ydGtleXMgZ2VuZXJhdGVkIHVzaW5nIHVj
b2xfZ2V0U29ydEtleQotICogIEFQSSwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IGNvbXByZXNzaW9u
LiBJZiB1bmNvbXByZXNzZWQKLSAqICBzb3J0a2V5cyBhcmUgcmVxdWlyZWQsIHRoaXMgQVBJIGNh
biBiZSB1c2VkLgorICogIHRoZSBudW1iZXIgb2YgcmVxdWVzdGVkIGJ5dGVzLgorICoKKyAqICBU
aGUgZ2VuZXJhdGVkIHNvcnQga2V5IG1heSBvciBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aAor
ICogIHNvcnQga2V5cyBnZW5lcmF0ZWQgdXNpbmcgdWNvbF9nZXRTb3J0S2V5KCkuCiAgKiAgQHBh
cmFtIGNvbGwgVGhlIFVDb2xsYXRvciBjb250YWluaW5nIHRoZSBjb2xsYXRpb24gcnVsZXMuCiAg
KiAgQHBhcmFtIGl0ZXIgVUNoYXJJdGVyYXRvciBjb250YWluaW5nIHRoZSBzdHJpbmcgd2UgbmVl
ZCAKICAqICAgICAgICAgICAgICB0aGUgc29ydCBrZXkgdG8gYmUgY2FsY3VsYXRlZCBmb3IuCkBA
IC05MDksMjYgKzEwODksNDAgQEAgdWNvbF9nZXRWZXJzaW9uKGNvbnN0IFVDb2xsYXRvciogY29s
bCwgVVZlcnNpb25JbmZvIGluZm8pOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVjb2xfZ2V0
VUNBVmVyc2lvbihjb25zdCBVQ29sbGF0b3IqIGNvbGwsIFVWZXJzaW9uSW5mbyBpbmZvKTsKIAot
LyoqIAotICogTWVyZ2UgdHdvIHNvcnQga2V5cy4gVGhlIGxldmVscyBhcmUgbWVyZ2VkIHdpdGgg
dGhlaXIgY29ycmVzcG9uZGluZyBjb3VudGVycGFydHMKKy8qKgorICogTWVyZ2VzIHR3byBzb3J0
IGtleXMuIFRoZSBsZXZlbHMgYXJlIG1lcmdlZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgY291
bnRlcnBhcnRzCiAgKiAocHJpbWFyaWVzIHdpdGggcHJpbWFyaWVzLCBzZWNvbmRhcmllcyB3aXRo
IHNlY29uZGFyaWVzIGV0Yy4pLiBCZXR3ZWVuIHRoZSB2YWx1ZXMKICAqIGZyb20gdGhlIHNhbWUg
bGV2ZWwgYSBzZXBhcmF0b3IgaXMgaW5zZXJ0ZWQuCi0gKiBleGFtcGxlICh1bmNvbXByZXNzZWQp
OiAKLSAqIDE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwIGFuZCAxRjIxMjMgMDEgMDUwNTA1
IDAxIDkxMDUwNSAwMAorICoKKyAqIFRoaXMgaXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwgZm9yIGNv
bWJpbmluZyBzb3J0IGtleXMgZnJvbSBmaXJzdCBhbmQgbGFzdCBuYW1lcworICogdG8gc29ydCBz
dWNoIHBhaXJzLgorICogSXQgaXMgcG9zc2libGUgdG8gbWVyZ2UgbXVsdGlwbGUgc29ydCBrZXlz
IGJ5IGNvbnNlY3V0aXZlbHkgbWVyZ2luZworICogYW5vdGhlciBvbmUgd2l0aCB0aGUgaW50ZXJt
ZWRpYXRlIHJlc3VsdC4KKyAqCisgKiBUaGUgbGVuZ3RoIG9mIHRoZSBtZXJnZSByZXN1bHQgaXMg
dGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiB0aGUgaW5wdXQgc29ydCBrZXlzLgorICoKKyAqIEV4
YW1wbGUgKHVuY29tcHJlc3NlZCk6CisgKiA8cHJlPjE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1
IDAwCisgKiAxRjIxMjMgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMDwvcHJlPgogICogd2lsbCBiZSBt
ZXJnZWQgYXMgCi0gKiAxOTFCMUQgMDIgMUYyMTIzMDEgMDUwNTA1IDAyIDA1MDUwNSAwMSA5MTA1
MDUgMDIgOTEwNTA1IDAwCi0gKiBUaGlzIGFsbG93cyBmb3IgY29uY2F0ZW5hdGluZyBvZiBmaXJz
dCBhbmQgbGFzdCBuYW1lcyBmb3Igc29ydGluZywgYW1vbmcgb3RoZXIgdGhpbmdzLgotICogSWYg
dGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyBub3QgYmlnIGVub3VnaCwgdGhlIHJlc3VsdHMgYXJl
IHVuZGVmaW5lZC4KLSAqIElmIGFueSBvZiBzb3VyY2UgbGVuZ3RocyBhcmUgemVybyBvciBhbnkg
b2Ygc291cmNlIHBvaW50ZXJzIGFyZSBOVUxML3VuZGVmaW5lZCwgCi0gKiByZXN1bHQgaXMgb2Yg
c2l6ZSB6ZXJvLgotICogQHBhcmFtIHNyYzEgcG9pbnRlciB0byB0aGUgZmlyc3Qgc29ydGtleQot
ICogQHBhcmFtIHNyYzFMZW5ndGggbGVuZ3RoIG9mIHRoZSBmaXJzdCBzb3J0a2V5Ci0gKiBAcGFy
YW0gc3JjMiBwb2ludGVyIHRvIHRoZSBzZWNvbmQgc29ydGtleQotICogQHBhcmFtIHNyYzJMZW5n
dGggbGVuZ3RoIG9mIHRoZSBzZWNvbmQgc29ydGtleQotICogQHBhcmFtIGRlc3QgYnVmZmVyIHRv
IGhvbGQgdGhlIHJlc3VsdAotICogQHBhcmFtIGRlc3RDYXBhY2l0eSBzaXplIG9mIHRoZSBidWZm
ZXIgZm9yIHRoZSByZXN1bHQKLSAqIEByZXR1cm4gc2l6ZSBvZiB0aGUgcmVzdWx0LiBJZiB0aGUg
YnVmZmVyIGlzIGJpZyBlbm91Z2ggc2l6ZSBpcyBhbHdheXMKLSAqICAgICAgICAgc3JjMUxlbmd0
aCtzcmMyTGVuZ3RoLTEKKyAqIDxwcmU+MTkxQjFEIDAyIDFGMjEyMyAwMSAwNTA1MDUgMDIgMDUw
NTA1IDAxIDkxMDUwNSAwMiA5MTA1MDUgMDA8L3ByZT4KKyAqCisgKiBJZiB0aGUgZGVzdGluYXRp
b24gYnVmZmVyIGlzIG5vdCBiaWcgZW5vdWdoLCB0aGVuIGl0cyBjb250ZW50cyBhcmUgdW5kZWZp
bmVkLgorICogSWYgYW55IG9mIHNvdXJjZSBsZW5ndGhzIGFyZSB6ZXJvIG9yIGFueSBvZiB0aGUg
c291cmNlIHBvaW50ZXJzIGFyZSBOVUxML3VuZGVmaW5lZCwKKyAqIHRoZSByZXN1bHQgaXMgb2Yg
c2l6ZSB6ZXJvLgorICoKKyAqIEBwYXJhbSBzcmMxIHRoZSBmaXJzdCBzb3J0IGtleQorICogQHBh
cmFtIHNyYzFMZW5ndGggdGhlIGxlbmd0aCBvZiB0aGUgZmlyc3Qgc29ydCBrZXksIGluY2x1ZGlu
ZyB0aGUgemVybyBieXRlIGF0IHRoZSBlbmQ7CisgKiAgICAgICAgY2FuIGJlIC0xIGlmIHRoZSBm
dW5jdGlvbiBpcyB0byBmaW5kIHRoZSBsZW5ndGgKKyAqIEBwYXJhbSBzcmMyIHRoZSBzZWNvbmQg
c29ydCBrZXkKKyAqIEBwYXJhbSBzcmMyTGVuZ3RoIHRoZSBsZW5ndGggb2YgdGhlIHNlY29uZCBz
b3J0IGtleSwgaW5jbHVkaW5nIHRoZSB6ZXJvIGJ5dGUgYXQgdGhlIGVuZDsKKyAqICAgICAgICBj
YW4gYmUgLTEgaWYgdGhlIGZ1bmN0aW9uIGlzIHRvIGZpbmQgdGhlIGxlbmd0aAorICogQHBhcmFt
IGRlc3QgdGhlIGJ1ZmZlciB3aGVyZSB0aGUgbWVyZ2VkIHNvcnQga2V5IGlzIHdyaXR0ZW4sCisg
KiAgICAgICAgY2FuIGJlIE5VTEwgaWYgZGVzdENhcGFjaXR5PT0wCisgKiBAcGFyYW0gZGVzdENh
cGFjaXR5IHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRlc3QgYnVmZmVyCisgKiBAcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIG1lcmdlZCBzb3J0IGtleSwgc3JjMUxlbmd0aCtzcmMyTGVuZ3Ro
OworICogICAgICAgICBjYW4gYmUgbGFyZ2VyIHRoYW4gZGVzdENhcGFjaXR5LCBvciAwIGlmIGFu
IGVycm9yIG9jY3VycyAob25seSBmb3IgaWxsZWdhbCBhcmd1bWVudHMpLAorICogICAgICAgICBp
biB3aGljaCBjYXNlcyB0aGUgY29udGVudHMgb2YgZGVzdCBpcyB1bmRlZmluZWQKICAqIEBzdGFi
bGUgSUNVIDIuMAogICovCiBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKQEAgLTEwMTgsMTIg
KzEyMTIsMTMgQEAgdWNvbF9yZXN0b3JlVmFyaWFibGVUb3AoVUNvbGxhdG9yICpjb2xsLCBjb25z
dCB1aW50MzJfdCB2YXJUb3AsIFVFcnJvckNvZGUgKnN0YXQKIC8qKgogICogVGhyZWFkIHNhZmUg
Y2xvbmluZyBvcGVyYXRpb24uIFRoZSByZXN1bHQgaXMgYSBjbG9uZSBvZiBhIGdpdmVuIGNvbGxh
dG9yLgogICogQHBhcmFtIGNvbGwgY29sbGF0b3IgdG8gYmUgY2xvbmVkCi0gKiBAcGFyYW0gc3Rh
Y2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIAorICogQHBh
cmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUy
LCB1c2UgTlVMTC48L2VtPjxicj4KKyAqIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3
IGNsb25lLiAKICAqIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4gCiAgKiAg
SWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0
ZWQuCi0gKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVSU0laRS4g
Ci0gKiAgVGhpcyB3aWxsIHByb2JhYmx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxsb2Nh
dGlvbnMuCi0gKiBAcGFyYW0gcEJ1ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRl
ZCBzcGFjZS4gCisgKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVS
U0laRS4KKyAqIEBwYXJhbSBwQnVmZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5
IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNp
emUgb2YgYWxsb2NhdGVkIHNwYWNlLiAKICAqICBJZiAqcEJ1ZmZlclNpemUgPT0gMCwgYSBzdWZm
aWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwgCiAgKiAgYmUgcmV0dXJuZWQgKCdw
cmUtZmxpZ2h0aW5nJykKICAqICBJZiAqcEJ1ZmZlclNpemUgaXMgbm90IGVub3VnaCBmb3IgYSBz
dGFjay1iYXNlZCBzYWZlIGNsb25lLCAKQEAgLTEwNDMsMjUgKzEyMzgsMzQgQEAgdWNvbF9zYWZl
Q2xvbmUoY29uc3QgVUNvbGxhdG9yICpjb2xsLAogICAgICAgICAgICAgICAgaW50MzJfdCAgICAg
ICAgICpwQnVmZmVyU2l6ZSwKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVz
KTsKIAotLyoqIGRlZmF1bHQgbWVtb3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUuIEl0IG5lZWRz
IHRvIGJlIHRoaXMgbGFyZ2UgZm9yIG9zLzQwMCBsYXJnZSBwb2ludGVycyAKLSAqIEBzdGFibGUg
SUNVIDIuMAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworLyoqIGRlZmF1bHQgbWVt
b3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERvIG5v
dCByZWx5IG9uIHVjb2xfc2FmZUNsb25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBidWZm
ZXIuCiAgKi8KLSNkZWZpbmUgVV9DT0xfU0FGRUNMT05FX0JVRkZFUlNJWkUgNTEyCisjZGVmaW5l
IFVfQ09MX1NBRkVDTE9ORV9CVUZGRVJTSVpFIDEKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNB
VEVEX0FQSSAqLwogCiAvKioKICAqIFJldHVybnMgY3VycmVudCBydWxlcy4gRGVsdGEgZGVmaW5l
cyB3aGV0aGVyIGZ1bGwgcnVsZXMgYXJlIHJldHVybmVkIG9yIGp1c3QgdGhlIHRhaWxvcmluZy4g
CiAgKiBSZXR1cm5zIG51bWJlciBvZiBVQ2hhcnMgbmVlZGVkIHRvIHN0b3JlIHJ1bGVzLiBJZiBi
dWZmZXIgaXMgTlVMTCBvciBidWZmZXJMZW4gaXMgbm90IGVub3VnaCAKICAqIHRvIHN0b3JlIHJ1
bGVzLCB3aWxsIHN0b3JlIHVwIHRvIGF2YWlsYWJsZSBzcGFjZS4KKyAqCisgKiB1Y29sX2dldFJ1
bGVzKCkgc2hvdWxkIG5vcm1hbGx5IGJlIHVzZWQgaW5zdGVhZC4KKyAqIFNlZSBodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9jb2xsYXRpb24vY3VzdG9taXphdGlvbiNUT0MtQnVpbGRp
bmctb24tRXhpc3RpbmctTG9jYWxlcwogICogQHBhcmFtIGNvbGwgY29sbGF0b3IgdG8gZ2V0IHRo
ZSBydWxlcyBmcm9tCiAgKiBAcGFyYW0gZGVsdGEgb25lIG9mIFVDT0xfVEFJTE9SSU5HX09OTFks
IFVDT0xfRlVMTF9SVUxFUy4gCiAgKiBAcGFyYW0gYnVmZmVyIGJ1ZmZlciB0byBzdG9yZSB0aGUg
cmVzdWx0IGluLiBJZiBOVUxMLCB5b3UnbGwgZ2V0IG5vIHJ1bGVzLgotICogQHBhcmFtIGJ1ZmZl
ckxlbiBsZW5naHQgb2YgYnVmZmVyIHRvIHN0b3JlIHJ1bGVzIGluLiBJZiBsZXNzIHRoZW4gbmVl
ZGVkIHlvdSdsbCBnZXQgb25seSB0aGUgcGFydCB0aGF0IGZpdHMgaW4uCisgKiBAcGFyYW0gYnVm
ZmVyTGVuIGxlbmd0aCBvZiBidWZmZXIgdG8gc3RvcmUgcnVsZXMgaW4uIElmIGxlc3MgdGhhbiBu
ZWVkZWQgeW91J2xsIGdldCBvbmx5IHRoZSBwYXJ0IHRoYXQgZml0cyBpbi4KICAqIEByZXR1cm4g
Y3VycmVudCBydWxlcwogICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFVDT0xfRlVMTF9SVUxF
UwogICovCiBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKIHVjb2xfZ2V0UnVsZXNFeChjb25z
dCBVQ29sbGF0b3IgKmNvbGwsIFVDb2xSdWxlT3B0aW9uIGRlbHRhLCBVQ2hhciAqYnVmZmVyLCBp
bnQzMl90IGJ1ZmZlckxlbik7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAvKioK
ICAqIGdldHMgdGhlIGxvY2FsZSBuYW1lIG9mIHRoZSBjb2xsYXRvci4gSWYgdGhlIGNvbGxhdG9y
CiAgKiBpcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgcnVsZXMsIHRoZW4gdGhpcyBmdW5jdGlvbiBy
ZXR1cm5zCkBAIC0xMDc4LDcgKzEyODIsNyBAQCB1Y29sX2dldFJ1bGVzRXgoY29uc3QgVUNvbGxh
dG9yICpjb2xsLCBVQ29sUnVsZU9wdGlvbiBkZWx0YSwgVUNoYXIgKmJ1ZmZlciwgaW50MwogICov
CiBVX0RFUFJFQ0FURUQgY29uc3QgY2hhciAqIFVfRVhQT1JUMgogdWNvbF9nZXRMb2NhbGUoY29u
c3QgVUNvbGxhdG9yICpjb2xsLCBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSAq
c3RhdHVzKTsKLQorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAg
KiBnZXRzIHRoZSBsb2NhbGUgbmFtZSBvZiB0aGUgY29sbGF0b3IuIElmIHRoZSBjb2xsYXRvcgpA
QCAtMTExMCw2ICsxMzE0LDcgQEAgdWNvbF9nZXRMb2NhbGVCeVR5cGUoY29uc3QgVUNvbGxhdG9y
ICpjb2xsLCBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZQogVV9TVEFCTEUgVVNl
dCAqIFVfRVhQT1JUMgogdWNvbF9nZXRUYWlsb3JlZFNldChjb25zdCBVQ29sbGF0b3IgKmNvbGws
IFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoq
CiAgKiBVbml2ZXJzYWwgYXR0cmlidXRlIGdldHRlciB0aGF0IHJldHVybnMgVUNPTF9ERUZBVUxU
IGlmIHRoZSB2YWx1ZSBpcyBkZWZhdWx0CiAgKiBAcGFyYW0gY29sbCBjb2xsYXRvciB3aGljaCBh
dHRyaWJ1dGVzIGFyZSB0byBiZSBjaGFuZ2VkCkBAIC0xMTgyLDYgKzEzODcsNyBAQCB1Y29sX3By
ZXBhcmVTaG9ydFN0cmluZ09wZW4oIGNvbnN0IGNoYXIgKmRlZmluaXRpb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVCb29sIGZvcmNlRGVmYXVsdHMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpzdGF0dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CiAKIC8qKiBDcmVhdGVzIGEgYmluYXJ5IGltYWdlIG9mIGEgY29sbGF0b3IuIFRoaXMgYmluYXJ5
IGltYWdlIGNhbiBiZSBzdG9yZWQgYW5kIAogICogIGxhdGVyIHVzZWQgdG8gaW5zdGFudGlhdGUg
YSBjb2xsYXRvciB1c2luZyB1Y29sX29wZW5CaW5hcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3Vjb25maWcuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNvbmZpZy5o
CmluZGV4IDdkMmQyNmU5NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJmYThlNzdi
MGYxYTM1MjIwNzZmYzBhNjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWNvbmZpZy5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNvbmZp
Zy5oCkBAIC0xLDYgKzEsNiBAQAogLyogIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAo
QykgMjAwMi0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJp
Z2h0IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKICogICBmaWxlIG5hbWU6ICB1Y29uZmlnLmgKQEAgLTE4LDkgKzE4LDE3IEBACiAKIC8qIQog
ICogXGZpbGUKLSAqIFxicmllZiBTd2l0Y2hlcyBmb3IgZXhjbHVkaW5nIHBhcnRzIG9mIElDVSBs
aWJyYXJ5IGNvZGUgbW9kdWxlcy4KKyAqIFxicmllZiBVc2VyLWNvbmZpZ3VyYWJsZSBzZXR0aW5n
cwogICoKLSAqIEFsbG93cyB0byBidWlsZCBwYXJ0aWFsLCBzbWFsbGVyIGxpYnJhcmllcyBmb3Ig
c3BlY2lhbCBwdXJwb3Nlcy4KKyAqIE1pc2NlbGxhbmVvdXMgc3dpdGNoZXM6CisgKgorICogQSBu
dW1iZXIgb2YgbWFjcm9zIGFmZmVjdCBhIHZhcmlldHkgb2YgbWlub3IgYXNwZWN0cyBvZiBJQ1Uu
CisgKiBNb3N0IG9mIHRoZW0gdXNlZCB0byBiZSBkZWZpbmVkIGVsc2V3aGVyZSAoZS5nLiwgaW4g
dXR5cGVzLmggb3IgcGxhdGZvcm0uaCkKKyAqIGFuZCBtb3ZlZCBoZXJlIHRvIG1ha2UgdGhlbSBl
YXNpZXIgdG8gZmluZC4KKyAqCisgKiBTd2l0Y2hlcyBmb3IgZXhjbHVkaW5nIHBhcnRzIG9mIElD
VSBsaWJyYXJ5IGNvZGUgbW9kdWxlczoKKyAqCisgKiBDaGFuZ2luZyB0aGVzZSBtYWNyb3MgYWxs
b3dzIGJ1aWxkaW5nIHBhcnRpYWwsIHNtYWxsZXIgbGlicmFyaWVzIGZvciBzcGVjaWFsIHB1cnBv
c2VzLgogICogQnkgZGVmYXVsdCwgYWxsIG1vZHVsZXMgYXJlIGJ1aWx0LgogICogVGhlIHN3aXRj
aGVzIGFyZSBmYWlybHkgY29hcnNlLCBjb250cm9sbGluZyBsYXJnZSBtb2R1bGVzLgogICogQmFz
aWMgc2VydmljZXMgY2Fubm90IGJlIHR1cm5lZCBvZmYuCkBAIC0zOCwxNSArNDYsMTUzIEBACiAv
KioKICAqIElmIHRoaXMgc3dpdGNoIGlzIGRlZmluZWQsIElDVSB3aWxsIGF0dGVtcHQgdG8gbG9h
ZCBhIGhlYWRlciBmaWxlIG5hbWVkICJ1Y29uZmlnX2xvY2FsLmgiCiAgKiBwcmlvciB0byBkZXRl
cm1pbmluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB1Y29uZmlnIHZhcmlhYmxlcy4KLSAqIAorICoK
ICAqIEBpbnRlcm5hbCBJQ1UgNC4wCi0gKiAKICAqLwogI2lmIGRlZmluZWQoVUNPTkZJR19VU0Vf
TE9DQUwpCiAjaW5jbHVkZSAidWNvbmZpZ19sb2NhbC5oIgogI2VuZGlmCiAKIC8qKgorICogXGRl
ZiBVX0RFQlVHCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gaW5jbHVkZSBkZWJ1Z2dpbmcgY29k
ZS4KKyAqIEF1dG9tYXRpY2FsbHkgc2V0IG9uIFdpbmRvd3MsIGJ1dCBtb3N0IGNvbXBpbGVycyBk
byBub3QgaGF2ZQorICogcmVsYXRlZCBwcmVkZWZpbmVkIG1hY3Jvcy4KKyAqIEBpbnRlcm5hbAor
ICovCisjaWZkZWYgVV9ERUJVRworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIGRlZmluZWQoX0RFQlVHKQorICAgIC8qCisgICAgICogX0RFQlVHIGlzIGRlZmluZWQg
YnkgVmlzdWFsIFN0dWRpbyBkZWJ1ZyBjb21waWxhdGlvbi4KKyAgICAgKiBEbyAqbm90KiB0ZXN0
IGZvciBpdHMgTkRFQlVHIG1hY3JvOiBJdCBpcyBhbiBvcnRob2dvbmFsIG1hY3JvCisgICAgICog
d2hpY2ggZGlzYWJsZXMgYXNzZXJ0KCkuCisgICAgICovCisjICAgZGVmaW5lIFVfREVCVUcgMQor
IyBlbHNlCisjICAgZGVmaW5lIFVfREVCVUcgMAorI2VuZGlmCisKKy8qKgorICogRGV0ZXJtaW5l
cyB3aGV0ZXIgdG8gZW5hYmxlIGF1dG8gY2xlYW51cCBvZiBsaWJyYXJpZXMuIAorICogQGludGVy
bmFsCisgKi8KKyNpZm5kZWYgVUNMTl9OT19BVVRPX0NMRUFOVVAKKyNkZWZpbmUgVUNMTl9OT19B
VVRPX0NMRUFOVVAgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0RJU0FCTEVfUkVOQU1JTkcK
KyAqIERldGVybWluZXMgd2hldGhlciB0byBkaXNhYmxlIHJlbmFtaW5nIG9yIG5vdC4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZuZGVmIFVfRElTQUJMRV9SRU5BTUlORworI2RlZmluZSBVX0RJU0FC
TEVfUkVOQU1JTkcgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX05PX0RFRkFVTFRfSU5DTFVE
RV9VVEZfSEVBREVSUworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHV0eXBlcy5oIGluY2x1ZGVzIHV0
Zi5oLCB1dGY4LmgsIHV0ZjE2LmggYW5kIHV0Zl9vbGQuaC4KKyAqIHV0eXBlcy5oIGluY2x1ZGVz
IHRob3NlIGhlYWRlcnMgaWYgdGhpcyBtYWNybyBpcyBkZWZpbmVkIHRvIDAuCisgKiBPdGhlcndp
c2UsIGVhY2ggdGhvc2UgaGVhZGVycyBtdXN0IGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgd2hlbiB1
c2luZyBvbmUgb2YgdGhlaXIgbWFjcm9zLgorICogRGVmYXVsdHMgdG8gMCBmb3IgYmFja3dhcmQg
Y29tcGF0aWJpbGl0eSwgZXhjZXB0IGluc2lkZSBJQ1UuCisgKiBAc3RhYmxlIElDVSA0OQorICov
CisjaWZkZWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMKKyAgICAvKiBVc2UgdGhl
IHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfQ09NQklORURfSU1QTEVNRU5U
QVRJT04pIHx8IGRlZmluZWQoVV9DT01NT05fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9J
MThOX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVfSU9fSU1QTEVNRU5UQVRJ
T04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlP
VVRFWF9JTVBMRU1FTlRBVElPTikgfHwgXAorICAgICAgZGVmaW5lZChVX1RPT0xVVElMX0lNUExF
TUVOVEFUSU9OKQorIyAgIGRlZmluZSBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAx
CisjZWxzZQorIyAgIGRlZmluZSBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAwCisj
ZW5kaWYKKworLyoqCisgKiBcZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04KKyAqIERldGVy
bWluZXMgd2hldGhlciB0byBvdmVycmlkZSBuZXcgYW5kIGRlbGV0ZS4KKyAqIElDVSBpcyBub3Jt
YWxseSBidWlsdCBzdWNoIHRoYXQgYWxsIG9mIGl0cyBDKysgY2xhc3NlcywgdmlhIHRoZWlyIFVN
ZW1vcnkgYmFzZSwKKyAqIG92ZXJyaWRlIG9wZXJhdG9ycyBuZXcgYW5kIGRlbGV0ZSB0byB1c2Ug
aXRzIGludGVybmFsLCBjdXN0b21pemFibGUsCisgKiBub24tZXhjZXB0aW9uLXRocm93aW5nIG1l
bW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucy4gKERlZmF1bHQgdmFsdWUgMSBmb3IgdGhpcyBtYWNy
by4pCisgKgorICogVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB3aGVuIHRoZSBhcHBsaWNh
dGlvbiBhbmQgaXRzIGxpYnJhcmllcyB1c2UgbXVsdGlwbGUgaGVhcHMuCisgKiBGb3IgZXhhbXBs
ZSwgb24gV2luZG93cywgdGhpcyBhbGxvd3MgdGhlIElDVSBETEwgdG8gYmUgdXNlZCBieQorICog
YXBwbGljYXRpb25zIHRoYXQgc3RhdGljYWxseSBsaW5rIHRoZSBDIFJ1bnRpbWUgbGlicmFyeS4K
KyAqCisgKiBAc3RhYmxlIElDVSAyLjIKKyAqLworI2lmbmRlZiBVX09WRVJSSURFX0NYWF9BTExP
Q0FUSU9OCisjZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gMQorI2VuZGlmCisKKy8q
KgorICogXGRlZiBVX0VOQUJMRV9UUkFDSU5HCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gZW5h
YmxlIHRyYWNpbmcuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0VOQUJMRV9UUkFDSU5H
CisjZGVmaW5lIFVfRU5BQkxFX1RSQUNJTkcgMAorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0VO
QUJMRV9EWUxPQUQKKyAqIFdoZXRoZXIgdG8gZW5hYmxlIER5bmFtaWMgbG9hZGluZyBpbiBJQ1Uu
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0VOQUJMRV9EWUxPQUQKKyNkZWZpbmUgVV9F
TkFCTEVfRFlMT0FEIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9DSEVDS19EWUxPQUQKKyAq
IFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxvYWRpbmcgYXMgYW4gT1MgY2FwYWJpbGl0eS4KKyAq
IEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfQ0hFQ0tfRFlMT0FECisjZGVmaW5lIFVfQ0hFQ0tf
RFlMT0FEIDEKKyNlbmRpZgorCisKKy8qKgorICogXGRlZiBVX0RFRkFVTFRfU0hPV19EUkFGVAor
ICogRG8gd2UgYWxsb3cgSUNVIHVzZXJzIHRvIHVzZSB0aGUgZHJhZnQgQVBJcyBieSBkZWZhdWx0
PworICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9ERUZBVUxUX1NIT1dfRFJBRlQKKyNkZWZp
bmUgVV9ERUZBVUxUX1NIT1dfRFJBRlQgMQorI2VuZGlmCisKKy8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ki8KKy8qIEN1c3RvbSBpY3UgZW50cnkgcG9pbnQgcmVuYW1pbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoq
CisgKiBcZGVmIFVfSEFWRV9MSUJfU1VGRklYCisgKiAxIGlmIGEgY3VzdG9tIGxpYnJhcnkgc3Vm
Zml4IGlzIHNldC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0xJQl9TVUZGSVgK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfTElC
X1NVRkZJWF9DX05BTUUpCisjICAgZGVmaW5lIFVfSEFWRV9MSUJfU1VGRklYIDEKKyNlbmRpZgor
CisvKioKKyAqIFxkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAqIERlZmluZXMgdGhl
IGxpYnJhcnkgc3VmZml4IGFzIGEgc3RyaW5nIHdpdGggQyBzeW50YXguCisgKiBAaW50ZXJuYWwK
KyAqLworI2lmZGVmIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX0xJQl9TVUZGSVhfQ19OQU1FKQor
IyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAjVV9MSUJfU1VGRklYX0NfTkFN
RQorI2Vsc2UKKyMgICBkZWZpbmUgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcgIiIKKyNlbmRp
ZgorCisvKiBjb21tb24vaTE4biBsaWJyYXJ5IHN3aXRjaGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKioKICAqIFxkZWYgVUNPTkZJR19PTkxZ
X0NPTExBVElPTgogICogVGhpcyBzd2l0Y2ggdHVybnMgb2ZmIG1vZHVsZXMgdGhhdCBhcmUgbm90
IG5lZWRlZCBmb3IgY29sbGF0aW9uLgogICoKQEAgLTE0Niw2ICsyOTIsOSBAQAogIyAgIGRlZmlu
ZSBVQ09ORklHX05PX05PUk1BTElaQVRJT04gMAogI2VsaWYgVUNPTkZJR19OT19OT1JNQUxJWkFU
SU9OCiAgICAgLyogY29tbW9uIGxpYnJhcnkgKi8KKyAgICAvKiBJQ1UgNTAgQ0pLIGRpY3Rpb25h
cnkgQnJlYWtJdGVyYXRvciB1c2VzIG5vcm1hbGl6YXRpb24gKi8KKyMgICBkZWZpbmUgVUNPTkZJ
R19OT19CUkVBS19JVEVSQVRJT04gMQorICAgIC8qIElETkEgKFVUUyAjNDYpIGlzIGltcGxlbWVu
dGVkIHZpYSBub3JtYWxpemF0aW9uICovCiAjICAgZGVmaW5lIFVDT05GSUdfTk9fSUROQSAxCiAK
ICAgICAvKiBpMThuIGxpYnJhcnkgKi8KQEAgLTE3Niw2ICszMjUsMTcgQEAKICMgICBkZWZpbmUg
VUNPTkZJR19OT19JRE5BIDAKICNlbmRpZgogCisvKioKKyAqIFxkZWYgVUNPTkZJR19NU0dQQVRf
REVGQVVMVF9BUE9TVFJPUEhFX01PREUKKyAqIERldGVybWluZXMgdGhlIGRlZmF1bHQgVU1lc3Nh
Z2VQYXR0ZXJuQXBvc3Ryb3BoZU1vZGUuCisgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRo
YXQgZW51bS4KKyAqCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLworI2lmbmRlZiBVQ09ORklHX01T
R1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorIyAgIGRlZmluZSBVQ09ORklHX01TR1BBVF9E
RUZBVUxUX0FQT1NUUk9QSEVfTU9ERSBVTVNHUEFUX0FQT1NfRE9VQkxFX09QVElPTkFMCisjZW5k
aWYKKwogLyogaTE4biBsaWJyYXJ5IHN3aXRjaGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yMjgsNCArMzg4LDI1IEBA
CiAjICAgZGVmaW5lIFVDT05GSUdfTk9fU0VSVklDRSAxCiAjZW5kaWYKIAorLyoqCisgKiBcZGVm
IFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisgKiBUaGlzIHN3aXRjaCB0dXJucyBvbiB0aGUg
InBhcnNlIGFsbCBpbnB1dCIgYXR0cmlidXRlLiBCaW5hcnkgaW5jb21wYXRpYmxlLgorICoKKyAq
IEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisjICAg
ZGVmaW5lIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUIDEKKyNlbmRpZgorCisKKy8qKgorICog
XGRlZiBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkKKyAqIFRoaXMgc3dpdGNoIHR1cm5zIG9u
IG90aGVyIGZvcm1hdHRpbmcgZmFzdHBhdGhzLiBCaW5hcnkgaW5jb21wYXRpYmxlIGluIG9iamVj
dCBEZWNpbWFsRm9ybWF0IGFuZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICoKKyAqIEBpbnRlcm5h
bAorICovCisjaWZuZGVmIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorIyAgIGRlZmluZSBV
Q09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkgMQorI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZW51bS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2MDhkZjhiODlmZDA3NjhkMTlmNWM2ODgu
LjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZlMjJjNTEyYWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWVudW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VlbnVtLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE2NCwxMSArMTY0LDQzIEBAIHVlbnVt
X3Jlc2V0KFVFbnVtZXJhdGlvbiogZW4sIFVFcnJvckNvZGUqIHN0YXR1cyk7CiAgKiBAcGFyYW0g
YWRvcHRlZCB0aGUgQysrIFN0cmluZ0VudW1lcmF0aW9uIHRvIGJlIHdyYXBwZWQgaW4gYSBVRW51
bWVyYXRpb24uCiAgKiBAcGFyYW0gZWMgdGhlIGVycm9yIGNvZGUuCiAgKiBAcmV0dXJuIGEgVUVu
dW1lcmF0aW9uIHdyYXBwaW5nIHRoZSBhZG9wdGVkIFN0cmluZ0VudW1lcmF0aW9uLgotICogQGRy
YWZ0IElDVSA0LjIKKyAqIEBzdGFibGUgSUNVIDQuMgogICovCi1VX0NBUEkgVUVudW1lcmF0aW9u
KiBVX0VYUE9SVDIKLXVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24oVV9OQU1FU1BBQ0Vf
UVVBTElGSUVSIFN0cmluZ0VudW1lcmF0aW9uKiBhZG9wdGVkLCBVRXJyb3JDb2RlKiBlYyk7CitV
X1NUQUJMRSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlbkZyb21TdHJpbmdFbnVt
ZXJhdGlvbihpY3U6OlN0cmluZ0VudW1lcmF0aW9uKiBhZG9wdGVkLCBVRXJyb3JDb2RlKiBlYyk7
CiAKICNlbmRpZgogCisvKioKKyAqIEdpdmVuIGFuIGFycmF5IG9mIGNvbnN0IFVDaGFyKiBzdHJp
bmdzLCByZXR1cm4gYSBVRW51bWVyYXRpb24uICBTdHJpbmcgcG9pbnRlcnMgZnJvbSAwLi5jb3Vu
dC0xIG11c3Qgbm90IGJlIG51bGwuCisgKiBEbyBub3QgZnJlZSBvciBtb2RpZnkgZWl0aGVyIHRo
ZSBzdHJpbmcgYXJyYXkgb3IgdGhlIGNoYXJhY3RlcnMgaXQgcG9pbnRzIHRvIHVudGlsIHRoaXMg
b2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCB3aXRoIHVlbnVtX2Nsb3NlLgorICogXHNuaXBwZXQg
dGVzdC9jaW50bHRzdC91ZW51bXRzdC5jIHVlbnVtX29wZW5VQ2hhclN0cmluZ3NFbnVtZXJhdGlv
bgorICogQHBhcmFtIHN0cmluZ3MgYXJyYXkgb2YgY29uc3QgVUNoYXIqIHN0cmluZ3MgKGVhY2gg
bnVsbCB0ZXJtaW5hdGVkKS4gQWxsIHN0b3JhZ2UgaXMgb3duZWQgYnkgdGhlIGNhbGxlci4KKyAq
IEBwYXJhbSBjb3VudCBsZW5ndGggb2YgdGhlIGFycmF5CisgKiBAcGFyYW0gZWMgZXJyb3IgY29k
ZQorICogQHJldHVybiB0aGUgbmV3IFVFbnVtZXJhdGlvbiBvYmplY3QuIENhbGxlciBpcyByZXNw
b25zaWJsZSBmb3IgY2FsbGluZyB1ZW51bV9jbG9zZSB0byBmcmVlIG1lbW9yeS4KKyAqIEBzZWUg
dWVudW1fY2xvc2UKKyAqIEBzdGFibGUgSUNVIDUwCisgKi8KK1VfU1RBQkxFIFVFbnVtZXJhdGlv
biogVV9FWFBPUlQyCit1ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24oY29uc3QgVUNo
YXIqIGNvbnN0IHN0cmluZ3NbXSwgaW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUqIGVjKTsKKworLyogTm90ZTogIG5leHQgZnVuY3Rpb24g
aXMgbm90IGhpZGRlbiBhcyBkcmFmdCwgYXMgaXQgaXMgdXNlZCBpbnRlcm5hbGx5IChpdCB3YXMg
Zm9ybWVybHkgYW4gaW50ZXJuYWwgZnVuY3Rpb24pLiAqLworCisvKioKKyAqIEdpdmVuIGFuIGFy
cmF5IG9mIGNvbnN0IGNoYXIqIHN0cmluZ3MgKGludmFyaWFudCBjaGFycyBvbmx5KSwgcmV0dXJu
IGEgVUVudW1lcmF0aW9uLiAgU3RyaW5nIHBvaW50ZXJzIGZyb20gMC4uY291bnQtMSBtdXN0IG5v
dCBiZSBudWxsLgorICogRG8gbm90IGZyZWUgb3IgbW9kaWZ5IGVpdGhlciB0aGUgc3RyaW5nIGFy
cmF5IG9yIHRoZSBjaGFyYWN0ZXJzIGl0IHBvaW50cyB0byB1bnRpbCB0aGlzIG9iamVjdCBoYXMg
YmVlbiBkZXN0cm95ZWQgd2l0aCB1ZW51bV9jbG9zZS4KKyAqIFxzbmlwcGV0IHRlc3QvY2ludGx0
c3QvdWVudW10c3QuYyB1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlvbgorICogQHBhcmFt
IHN0cmluZ3MgYXJyYXkgb2YgY2hhciogc3RyaW5ncyAoZWFjaCBudWxsIHRlcm1pbmF0ZWQpLiAg
QWxsIHN0b3JhZ2UgaXMgb3duZWQgYnkgdGhlIGNhbGxlci4KKyAqIEBwYXJhbSBjb3VudCBsZW5n
dGggb2YgdGhlIGFycmF5CisgKiBAcGFyYW0gZWMgZXJyb3IgY29kZQorICogQHJldHVybiB0aGUg
bmV3IFVFbnVtZXJhdGlvbiBvYmplY3QuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGlu
ZyB1ZW51bV9jbG9zZSB0byBmcmVlIG1lbW9yeQorICogQHNlZSB1ZW51bV9jbG9zZQorICogQHN0
YWJsZSBJQ1UgNTAKKyAqLworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIKK3VlbnVt
X29wZW5DaGFyU3RyaW5nc0VudW1lcmF0aW9uKGNvbnN0IGNoYXIqIGNvbnN0IHN0cmluZ3NbXSwg
aW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUqIGVjKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vp
dGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VpdGVyLmgKaW5kZXggYjQ2OWUyNGU2MTY1
M2Q3ZTZkMGJlOGM4ZmE2N2ZmMjY1MWI1MWZhMy4uMGNkYjhmZmJlNWM4MTU0YWM5ZDkwOGY2MDVi
MGViMTZlYTViYjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91aXRlci5o
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWl0ZXIuaApAQCAtMSw3ICsxLDcgQEAKIC8q
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYs
MjAwOSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAy
MDAyLTIwMTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgpAQCAtNjczLDcgKzY3Myw3IEBAIHVpdGVyX3NldFVURjgoVUNoYXJJdGVyYXRvciAqaXRl
ciwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOwogICogQHN0YWJsZSBJQ1UgMi4xCiAg
Ki8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9zZXRDaGFyYWN0ZXJJdGVyYXRvcihV
Q2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVySXRlcmF0
b3IgKmNoYXJJdGVyKTsKK3VpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9yKFVDaGFySXRlcmF0b3Ig
Kml0ZXIsIGljdTo6Q2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJdGVyKTsKIAogLyoqCiAgKiBTZXQg
dXAgYSBVQ2hhckl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIEMrKyBSZXBsYWNlYWJsZS4KQEAg
LTY5OCw3ICs2OTgsNyBAQCB1aXRlcl9zZXRDaGFyYWN0ZXJJdGVyYXRvcihVQ2hhckl0ZXJhdG9y
ICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVySQogICogQHN0YWJsZSBJQ1Ug
Mi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9zZXRSZXBsYWNlYWJsZShV
Q2hhckl0ZXJhdG9yICppdGVyLCBjb25zdCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgUmVwbGFjZWFi
bGUgKnJlcCk7Cit1aXRlcl9zZXRSZXBsYWNlYWJsZShVQ2hhckl0ZXJhdG9yICppdGVyLCBjb25z
dCBpY3U6OlJlcGxhY2VhYmxlICpyZXApOwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS91bG9jLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vsb2MuaApp
bmRleCA5NTc1OGMzYTM0YzBmZWY2MGYxNGI0YzU2ZjFkMjVlYTRjYWY5ODA3Li4yOGFiOTAyYjUy
MjI5M2IzMzIwZTllOWQwN2VhZGYxMzkxNjU4YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3Vsb2MuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vsb2MuaApAQCAt
MSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTctMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAt
Mjg5LDcgKzI4OSw3IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICdAJyBzZXBh
cmF0aW5nIGtleXdvcmRzIGZyb20gdGhlIGxvY2FsZSBzdHJpbmcuCiAgICogQHNlZSBVTE9DX0tF
WVdPUkRfU0VQQVJBVE9SCi0gICogQGRyYWZ0IElDVSA0LjYKKyAgKiBAc3RhYmxlIElDVSA0LjYK
ICAgKi8KICNkZWZpbmUgVUxPQ19LRVlXT1JEX1NFUEFSQVRPUl9VTklDT0RFIDB4NDAKIApAQCAt
MzAyLDcgKzMwMiw3IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc9JyBmb3Ig
YXNzaWduaW5nIHZhbHVlIHRvIGEga2V5d29yZC4KICAgKiBAc2VlIFVMT0NfS0VZV09SRF9BU1NJ
R04KLSAgKiBAZHJhZnQgSUNVIDQuNiAKKyAgKiBAc3RhYmxlIElDVSA0LjYgCiAgICovCiAjZGVm
aW5lIFVMT0NfS0VZV09SRF9BU1NJR05fVU5JQ09ERSAweDNECiAKQEAgLTMxNSw3ICszMTUsNyBA
QAogLyoqCiAgICogVW5pY29kZSBjb2RlIHBvaW50IGZvciAnOycgc2VwYXJhdGluZyBrZXl3b3Jk
cwogICAqIEBzZWUgVUxPQ19LRVlXT1JEX0lURU1fU0VQQVJBVE9SCi0gICogQGRyYWZ0IElDVSA0
LjYKKyAgKiBAc3RhYmxlIElDVSA0LjYKICAgKi8KICNkZWZpbmUgVUxPQ19LRVlXT1JEX0lURU1f
U0VQQVJBVE9SX1VOSUNPREUgMHgzQgogCkBAIC0zNTMsNyArMzUzLDcgQEAgdHlwZWRlZiBlbnVt
IHsKICAgVUxPQ19EQVRBX0xPQ0FMRV9UWVBFX0xJTUlUID0gMwogfSBVTG9jRGF0YUxvY2FsZVR5
cGUgOwogCi0KKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKIC8qKgogICogR2V0cyBJQ1UncyBk
ZWZhdWx0IGxvY2FsZS4gIAogICogVGhlIHJldHVybmVkIHN0cmluZyBpcyBhIHNuYXBzaG90IGlu
IHRpbWUsIGFuZCB3aWxsIHJlbWFpbiB2YWxpZApAQCAtMzg4LDYgKzM4OCw3IEBAIHVsb2NfZ2V0
RGVmYXVsdCh2b2lkKTsKIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCiB1bG9jX3NldERlZmF1bHQo
Y29uc3QgY2hhciogbG9jYWxlSUQsCiAgICAgICAgIFVFcnJvckNvZGUqICAgICAgIHN0YXR1cyk7
CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCiAKIC8qKgogICogR2V0cyB0aGUgbGFu
Z3VhZ2UgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCkBAIC03NTIsNyArNzUzLDkgQEAg
VV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgdWxvY19jb3VudEF2YWlsYWJsZSh2b2lkKTsKIAog
LyoqCiAgKgotICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBk
ZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgorICogR2V0cyBhIGxpc3Qgb2Yg
YWxsIGF2YWlsYWJsZSAyLWxldHRlciBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2Mzks
CisgKiBwbHVzIGFkZGl0aW9uYWwgMy1sZXR0ZXIgY29kZXMgZGV0ZXJtaW5lZCB0byBiZSB1c2Vm
dWwgZm9yIGxvY2FsZSBnZW5lcmF0aW9uIGFzCisgKiBkZWZpbmVkIGJ5IFVuaWNvZGUgQ0xEUi4g
VGhpcyBpcyBhIHBvaW50ZXIKICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBv
ZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAogICogYnkgSUNVLS0gZG8g
bm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJh
eSBpcwogICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgpAQCAtNzk3LDEyICs4MDAs
MTUgQEAgdWxvY19nZXRQYXJlbnQoY29uc3QgY2hhciogICAgbG9jYWxlSUQsCiAKIAogLyoqCi0g
KiBHZXRzIHRoZSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICogR2V0cyB0
aGUgZnVsbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgbGlrZSB1bG9jX2dldE5hbWUo
KSwKKyAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICoKICAqIE5vdGU6IFRoaXMgaGFzIHRoZSBl
ZmZlY3Qgb2YgJ2Nhbm9uaWNhbGl6aW5nJyB0aGUgc3RyaW5nIHRvCiAgKiBhIGNlcnRhaW4gZXh0
ZW50LiBVcHBlciBhbmQgbG93ZXIgY2FzZSBhcmUgc2V0IGFzIG5lZWRlZCwKICAqIGFuZCBpZiB0
aGUgY29tcG9uZW50cyB3ZXJlIGluICdQT1NJWCcgZm9ybWF0IHRoZXkgYXJlIGNoYW5nZWQgdG8K
ICAqIElDVSBmb3JtYXQuICBJdCBkb2VzIE5PVCBtYXAgYWxpYXNlZCBuYW1lcyBpbiBhbnkgd2F5
LgogICogU2VlIHRoZSB0b3Agb2YgdGhpcyBoZWFkZXIgZmlsZS4KKyAqCiAgKiBUaGlzIEFQSSBz
dHJpcHMgb2ZmIHRoZSBrZXl3b3JkIHBhcnQsIHNvICJkZV9ERVxAY29sbGF0aW9uPXBob25lYm9v
ayIgCiAgKiB3aWxsIGJlY29tZSAiZGVfREUiLiAKICAqIFRoaXMgQVBJIHN1cHBvcnRzIHByZWZs
aWdodGluZy4KQEAgLTg1MywxMyArODU5LDE2IEBAIHVsb2NfZ2V0S2V5d29yZFZhbHVlKGNvbnN0
IGNoYXIqIGxvY2FsZUlELAogCiAKIC8qKgotICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lm
aWVkIGtleXdvcmQuCisgKiBTZXRzIG9yIHJlbW92ZXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZp
ZWQga2V5d29yZC4KKyAqCisgKiBGb3IgcmVtb3ZpbmcgYWxsIGtleXdvcmRzLCB1c2UgdWxvY19n
ZXRCYXNlTmFtZSgpLgorICoKICAqIE5PVEU6IFVubGlrZSBhbG1vc3QgZXZlcnkgb3RoZXIgSUNV
IGZ1bmN0aW9uIHdoaWNoIHRha2VzIGEKICAqIGJ1ZmZlciwgdGhpcyBmdW5jdGlvbiB3aWxsIE5P
VCB0cnVuY2F0ZSB0aGUgb3V0cHV0IHRleHQuIElmIGEKICAqIEJVRkZFUl9PVkVSRkxPV19FUlJP
UiBpcyByZWNlaXZlZCwgaXQgbWVhbnMgdGhhdCB0aGUgb3JpZ2luYWwKICAqIGJ1ZmZlciBpcyB1
bnRvdWNoZWQuIFRoaXMgaXMgZG9uZSB0byBwcmV2ZW50IGluY29ycmVjdCBvciBwb3NzaWJseQog
ICogZXZlbiBtYWxmb3JtZWQgbG9jYWxlcyBmcm9tIGJlaW5nIGdlbmVyYXRlZCBhbmQgdXNlZC4K
LSAqIAorICoKICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJl
IHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4KICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFsdWUgb2Yg
dGhlIGtleXdvcmQgdG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgogICogIE5VTEwsIHdpbGwgcmVz
dWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdpdmVuIGlmIApA
QCAtMTA2NSw3ICsxMDc0LDcgQEAgdWxvY19taW5pbWl6ZVN1YnRhZ3MoY29uc3QgY2hhciogICAg
bG9jYWxlSUQsCiAgICAgICAgICBpbnQzMl90IG1pbmltaXplZExvY2FsZUlEQ2FwYWNpdHksCiAg
ICAgICAgICBVRXJyb3JDb2RlKiBlcnIpOwogCi0vKiogCisvKioKICAqIFJldHVybnMgYSBsb2Nh
bGUgSUQgZm9yIHRoZSBzcGVjaWZpZWQgQkNQNDcgbGFuZ3VhZ2UgdGFnIHN0cmluZy4KICAqIElm
IHRoZSBzcGVjaWZpZWQgbGFuZ3VhZ2UgdGFnIGNvbnRhaW5zIGFueSBpbGwtZm9ybWVkIHN1YnRh
Z3MsCiAgKiB0aGUgZmlyc3Qgc3VjaCBzdWJ0YWcgYW5kIGFsbCBmb2xsb3dpbmcgc3VidGFncyBh
cmUgaWdub3JlZC4KQEAgLTEwODEsMjEgKzEwOTAsMjEgQEAgdWxvY19taW5pbWl6ZVN1YnRhZ3Mo
Y29uc3QgY2hhciogICAgbG9jYWxlSUQsCiAgKiBAcGFyYW0gbG9jYWxlSUQgIHRoZSBvdXRwdXQg
YnVmZmVyIHJlY2VpdmluZyBhIGxvY2FsZSBJRCBmb3IgdGhlCiAgKiAgICAgICAgICAgICAgICAg
IHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcuCiAgKiBAcGFyYW0gbG9jYWxlSURDYXBhY2l0
eSAgdGhlIHNpemUgb2YgdGhlIGxvY2FsZSBJRCBvdXRwdXQgYnVmZmVyLgotICogQHBhcmFtIHBh
cnNlZExlbmd0aCAgaWYgbm90IE5VTEwsIHN1Y2NzZXNzZnVsbHkgcGFyc2VkIGxlbmd0aAorICog
QHBhcmFtIHBhcnNlZExlbmd0aCAgaWYgbm90IE5VTEwsIHN1Y2Nlc3NmdWxseSBwYXJzZWQgbGVu
Z3RoCiAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGlucHV0IGxhbmd1YWdlIHRhZyBp
cyBzZXQuCiAgKiBAcGFyYW0gZXJyICAgICAgIGVycm9yIGluZm9ybWF0aW9uIGlmIHJlY2Vpdmlu
ZyB0aGUgbG9jYWxkIElECiAgKiAgICAgICAgICAgICAgICAgIGZhaWxlZC4KICAqIEByZXR1cm4g
ICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgbG9jYWxlIElELgotICogQGRyYWZ0IElDVSA0LjIK
KyAqIEBzdGFibGUgSUNVIDQuMgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBs
YW5ndGFnLAogICAgICAgICAgICAgICAgICAgICBjaGFyKiBsb2NhbGVJRCwKICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCBsb2NhbGVJRENhcGFjaXR5LAogICAgICAgICAgICAgICAgICAgICBp
bnQzMl90KiBwYXJzZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUqIGVy
cik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJucyBhIHdlbGwtZm9ybWVkIGxhbmd1YWdlIHRhZyBm
b3IgdGhpcyBsb2NhbGUgSUQuIAogICogPHA+IAogICogPGI+Tm90ZTwvYj46IFdoZW4gPGNvZGU+
c3RyaWN0PC9jb2RlPiBpcyBGQUxTRSwgYW55IGxvY2FsZQpAQCAtMTEwNCw3ICsxMTEzLDcgQEAg
dWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5ndGFnLAogICogVFJVRSwgdGhpcyBm
dW5jdGlvbiBzZXRzIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiB0byB0aGUKICAqIDxjb2RlPmVy
cjwvY29kZT4gaWYgYW55IGxvY2FsZSBmaWVsZHMgZG8gbm90IHNhdGlzZnkgdGhlCiAgKiBCQ1A0
NyBzeW50YXggcmVxdWlyZW1lbnQuCi0gKiBAcGFyYW0gbG9jYWxlSUQgIHRoZSBpbnB1dCBsY29h
bGUgSUQKKyAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlucHV0IGxvY2FsZSBJRAogICogQHBhcmFt
IGxhbmd0YWcgICB0aGUgb3V0cHV0IGJ1ZmZlciByZWNlaXZpbmcgQkNQNDcgbGFuZ3VhZ2UKICAq
ICAgICAgICAgICAgICAgICAgdGFnIGZvciB0aGUgbG9jYWxlIElELgogICogQHBhcmFtIGxhbmd0
YWdDYXBhY2l0eSAgIHRoZSBzaXplIG9mIHRoZSBCQ1A0NyBsYW5ndWFnZSB0YWcKQEAgLTExMTQs
OSArMTEyMyw5IEBAIHVsb2NfZm9yTGFuZ3VhZ2VUYWcoY29uc3QgY2hhciogbGFuZ3RhZywKICAq
IEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYgcmVjZWl2aW5nIHRoZSBsYW5n
dWFnZQogICogICAgICAgICAgICAgICAgICB0YWcgZmFpbGVkLgogICogQHJldHVybiAgICAgICAg
ICBUaGUgbGVuZ3RoIG9mIHRoZSBCQ1A0NyBsYW5ndWFnZSB0YWcuCi0gKiBAZHJhZnQgSUNVIDQu
MgorICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1Vf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1bG9jX3RvTGFuZ3VhZ2VUYWcoY29uc3QgY2hhciog
bG9jYWxlSUQsCiAgICAgICAgICAgICAgICAgICAgY2hhciogbGFuZ3RhZywKICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IGxhbmd0YWdDYXBhY2l0eSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdW1hY2hpbmUuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1hY2hpbmUu
aAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3OGRlZTE3MzQ4MDQyYmM2MWMyYTk2Li5kMTEwMmY0
OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZlN2ZmNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VtYWNoaW5lLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWFj
aGluZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAg
IENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDEsMTYgKzQxLDcgQEAKIC8qIHdoaWNoIGFy
ZSBjb250YWluZWQgaW4gdGhlIHBsYXRmb3JtLXNwZWNpZmljIGZpbGUgcGxhdGZvcm0uaCAgICAg
ICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiBkZWZpbmVkKFVfUEFMTU9T
KQotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHBhbG1vcy5oIgotI2VsaWYgIWRlZmluZWQoX19NSU5H
VzMyX18pICYmIChkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChX
SU42NCkgfHwgZGVmaW5lZChfV0lONjQpKQotI2lmZGVmIENZR1dJTk1TVkMKLSMgICBpbmNsdWRl
ICJ1bmljb2RlL3BsYXRmb3JtLmgiCi0jZW5kaWYKLSMgICBpbmNsdWRlICJ1bmljb2RlL3B3aW4z
Mi5oIgotI2Vsc2UKLSMgICBpbmNsdWRlICJ1bmljb2RlL3B0eXBlcy5oIiAvKiBwbGF0Zm9ybS5o
IGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCi0jZW5kaWYKKyNpbmNsdWRlICJ1bmljb2RlL3B0
eXBlcy5oIiAvKiBwbGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCiAKIC8qCiAg
KiBBTlNJIEMgaGVhZGVyczoKQEAgLTU5LDE5ICs1MCw2IEBACiAjaW5jbHVkZSA8c3RkZGVmLmg+
CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogWFBfQ1BMVVNQTFVTIGlzIGEgY3Jvc3MtcGxh
dGZvcm0gc3ltYm9sIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIHdoZW4gICAgICovCi0vKiB1c2lu
ZyBDKysuICBJdCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBjb21waWxpbmcgdW5kZXIgQy4g
ICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZkZWYgX19jcGx1c3Bs
dXMKLSMgICBpZm5kZWYgWFBfQ1BMVVNQTFVTCi0jICAgICAgIGRlZmluZSBYUF9DUExVU1BMVVMK
LSMgICBlbmRpZgotI2Vsc2UKLSMgICB1bmRlZiBYUF9DUExVU1BMVVMKLSNlbmRpZgotCi0vKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KIC8qIEZvciBDIHdyYXBwZXJzLCB3ZSB1c2UgdGhlIHN5bWJvbCBV
X1NUQUJMRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiBUaGlzIHdvcmtz
IHByb3Blcmx5IGlmIHRoZSBpbmNsdWRlciBpcyBDIG9yIEMrKy4gICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KIC8qIEZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgICBVX1NUQUJMRSByZXR1cm4tdHlw
ZSBVX0VYUE9SVDIgZnVuY3Rpb24tbmFtZSgpLi4uICovCkBAIC05NSw3ICs3Myw3IEBACiAgKiBA
c3RhYmxlIElDVSAyLjQKICAqLwogCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1
c3BsdXMKICMgICBkZWZpbmUgVV9DRlVOQyBleHRlcm4gIkMiCiAjICAgZGVmaW5lIFVfQ0RFQ0xf
QkVHSU4gZXh0ZXJuICJDIiB7CiAjICAgZGVmaW5lIFVfQ0RFQ0xfRU5EICAgfQpAQCAtMTA1LDIz
ICs4MywyNiBAQAogIyAgIGRlZmluZSBVX0NERUNMX0VORAogI2VuZGlmCiAKKyNpZm5kZWYgVV9B
VFRSSUJVVEVfREVQUkVDQVRFRAogLyoqCiAgKiBcZGVmIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQK
ICAqICBUaGlzIGlzIHVzZWQgZm9yIEdDQyBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgKiBAaW50ZXJu
YWwKICAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDMgfHwgKF9fR05V
Q19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMikpCisjaWYgVV9HQ0NfTUFKT1JfTUlOT1Ig
Pj0gMzAyCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVEIF9fYXR0cmlidXRlX18g
KChkZXByZWNhdGVkKSkKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAgKiBU
aGlzIGlzIHVzZWQgZm9yIFZpc3VhbCBDKysgc3BlY2lmaWMgYXR0cmlidXRlcyAKICAqIEBpbnRl
cm5hbAogICovCi0jZWxpZiBkZWZpbmVkKFVfV0lORE9XUykgJiYgZGVmaW5lZChfTVNDX1ZFUikg
JiYgKF9NU0NfVkVSID49IDE0MDApCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19W
RVIgPj0gMTQwMCkKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQgX19kZWNsc3Bl
YyhkZXByZWNhdGVkKQogI2Vsc2UKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQK
ICNlbmRpZgorI2VuZGlmCisKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVjbGFyZSBhIGZ1bmN0aW9u
IGFzIGEgcHVibGljIElDVSBDIEFQSSBAc3RhYmxlIElDVSAyLjAqLwogI2RlZmluZSBVX0NBUEkg
VV9DRlVOQyBVX0VYUE9SVAogLyoqIFRoaXMgaXMgdXNlZCB0byBkZWNsYXJlIGEgZnVuY3Rpb24g
YXMgYSBzdGFibGUgcHVibGljIElDVSBDIEFQSSovCkBAIC0yMzQsMjcgKzIxNSw2IEBAIHR5cGVk
ZWYgaW50OF90IFVCb29sOwogCiAvKiB3Y2hhcl90LXJlbGF0ZWQgZGVmaW5pdGlvbnMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotLyoqCi0gKiBcZGVm
IFVfSEFWRV9XQ0hBUl9ICi0gKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4gaXMgYXZhaWxh
YmxlICgxKSBvciBub3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgotICoKLSAqIEBzdGFibGUg
SUNVIDIuMAotICovCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9ICi0jICAgZGVmaW5lIFVfSEFWRV9X
Q0hBUl9IIDEKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJfVAotICogVV9T
SVpFT0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpICgwIG1lYW5zIGl0IGlzIG5vdCBkZWZpbmVk
IG9yIGF1dG9jb25mIGNvdWxkIG5vdCBzZXQgaXQpCi0gKgotICogQHN0YWJsZSBJQ1UgMi4wCi0g
Ki8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0wCi0jICAgdW5kZWYgVV9TSVpFT0ZfV0NIQVJfVAot
IyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDQKLSNlbmRpZgotCiAvKgogICogXGRlZiBVX1dD
SEFSX0lTX1VURjE2CiAgKiBEZWZpbmVkIGlmIHdjaGFyX3QgdXNlcyBVVEYtMTYuCkBAIC0yNzUs
MTQgKzIzNSwxNiBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICMgICAgICAgICAgIGRlZmluZSAg
VV9XQ0hBUl9JU19VVEYzMgogIyAgICAgICBlbmRpZgogIyAgIGVsaWYgZGVmaW5lZCBfX1VDUzJf
XwotIyAgICAgICBpZiAoX19PUzM5MF9fIHx8IF9fT1M0MDBfXykgJiYgKFVfU0laRU9GX1dDSEFS
X1Q9PTIpCisjICAgICAgIGlmIChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9S
TSA8PSBVX1BGX09TNDAwKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikKICMgICAgICAgICAgIGRl
ZmluZSBVX1dDSEFSX0lTX1VURjE2CiAjICAgICAgIGVuZGlmCi0jICAgZWxpZiBkZWZpbmVkIF9f
VUNTNF9fCisjICAgZWxpZiBkZWZpbmVkKF9fVUNTNF9fKSB8fCAoVV9QTEFURk9STSA9PSBVX1BG
X09TNDAwICYmIGRlZmluZWQoX19VVEYzMl9fKSkKICMgICAgICAgaWYgKFVfU0laRU9GX1dDSEFS
X1Q9PTQpCiAjICAgICAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgogIyAgICAgICBlbmRp
ZgotIyAgIGVsaWYgZGVmaW5lZChVX1dJTkRPV1MpCisjICAgZWxpZiBVX1BMQVRGT1JNX0lTX0RB
UldJTl9CQVNFRCB8fCAoVV9TSVpFT0ZfV0NIQVJfVD09NCAmJiBVX1BMQVRGT1JNX0lTX0xJTlVY
X0JBU0VEKQorIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgorIyAgIGVsaWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJCiAjICAgICAgIGRlZmluZSBVX1dDSEFSX0lTX1VURjE2CiAjICAg
ZW5kaWYKICNlbmRpZgpAQCAtMjk0LDI0ICsyNTYsMjQgQEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7
CiAKIC8qKgogICogXHZhciBVQ2hhcgotICogRGVmaW5lIFVDaGFyIHRvIGJlIHdjaGFyX3QgaWYg
dGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJlIHVuc2lnbmVkLgotICog
SWYgd2NoYXJfdCBpcyBub3QgMTYgYml0cyB3aWRlLCB0aGVuIGRlZmluZSBVQ2hhciB0byBiZSB1
aW50MTZfdCBvciBjaGFyMTZfdCBiZWNhdXNlIEdDQyA+PTQuNAotICogY2FuIGhhbmRsZSBVVEYx
NiBzdHJpbmcgbGl0ZXJhbHMuCisgKiBEZWZpbmUgVUNoYXIgdG8gYmUgVUNIQVJfVFlQRSwgaWYg
dGhhdCBpcyAjZGVmaW5lZCAoZm9yIGV4YW1wbGUsIHRvIGNoYXIxNl90KSwKKyAqIG9yIHdjaGFy
X3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJlIHVuc2lnbmVk
LgorICogSWYgbmVpdGhlciBpcyBhdmFpbGFibGUsIHRoZW4gZGVmaW5lIFVDaGFyIHRvIGJlIHVp
bnQxNl90LgorICoKICAqIFRoaXMgbWFrZXMgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIgcGxhdGZv
cm0tZGVwZW5kZW50CiAgKiBidXQgYWxsb3dzIGRpcmVjdCBzdHJpbmcgdHlwZSBjb21wYXRpYmls
aXR5IHdpdGggcGxhdGZvcm1zIHdpdGgKICAqIDE2LWJpdCB3Y2hhcl90IHR5cGVzLgogICoKLSAq
IEBkcmFmdCBJQ1UgNC40CisgKiBAc3RhYmxlIElDVSA0LjQKICAqLwotCi0vKiBEZWZpbmUgVUNo
YXIgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHdjaGFyX3QgaWYgcG9zc2libGUuICovCi0jaWYgVV9T
SVpFT0ZfV0NIQVJfVD09MgorI2lmIGRlZmluZWQoVUNIQVJfVFlQRSkKKyAgICB0eXBlZGVmIFVD
SEFSX1RZUEUgVUNoYXI7CisvKiBOb3QgI2VsaWYgVV9IQVZFX0NIQVIxNl9UIC0tIGJlY2F1c2Ug
dGhhdCBpcyB0eXBlLWluY29tcGF0aWJsZSB3aXRoIHByZS1DKysxMSBjYWxsZXJzCisgICAgdHlw
ZWRlZiBjaGFyMTZfdCBVQ2hhcjsgICovCisjZWxpZiBVX1NJWkVPRl9XQ0hBUl9UPT0yCiAgICAg
dHlwZWRlZiB3Y2hhcl90IFVDaGFyOwotI2VsaWYgVV9HTlVDX1VURjE2X1NUUklORwotI2lmIGRl
ZmluZWQgX0dDQ18KLSAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBjaGFyMTZfdDsKLSNlbmRp
ZgotICAgIHR5cGVkZWYgY2hhcjE2X3QgVUNoYXI7CisjZWxpZiBkZWZpbmVkKF9fQ0hBUjE2X1RZ
UEVfXykKKyAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBVQ2hhcjsKICNlbHNlCiAgICAgdHlw
ZWRlZiB1aW50MTZfdCBVQ2hhcjsKICNlbmRpZgpAQCAtMzM1LDM5ICsyOTcsMjUgQEAgdHlwZWRl
ZiBpbnQ4X3QgVUJvb2w7CiAgKi8KIHR5cGVkZWYgaW50MzJfdCBVQ2hhcjMyOwogCi0vKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KLS8qIFVfSU5MSU5FIGFuZCBVX0FMSUdOX0NPREUgICBTZXQgZGVmYXVs
dCB2YWx1ZXMgaWYgdGhlc2UgYXJlIG5vdCBhbHJlYWR5ICAqLwotLyogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlZmluZWQuICBEZWZpbml0aW9ucyBub3JtYWxseSBhcmUgaW4gICAgICAg
ICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0uaCBvciB0aGUgY29y
cmVzcG9uZGluZyBmaWxlIGZvciAgICAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGUgT1MgaW4gdXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSovCi0KLSNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQotCiAvKioKLSAq
IFxkZWYgVV9BTElHTl9DT0RFCi0gKiBUaGlzIGlzIHVzZWQgdG8gYWxpZ24gY29kZSBmcmFnbWVu
dHMgdG8gYSBzcGVjaWZpYyBieXRlIGJvdW5kYXJ5LgotICogVGhpcyBpcyB1c2VmdWwgZm9yIGdl
dHRpbmcgY29uc2lzdGVudCBwZXJmb3JtYW5jZSB0ZXN0IHJlc3VsdHMuCi0gKiBAaW50ZXJuYWwK
LSAqLwotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSMgICBkZWZpbmUgVV9BTElHTl9DT0RFKG4pCi0j
ZW5kaWYKLQotI2VuZGlmIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KLQotLyoqCi0gKiBcZGVm
IFVfSU5MSU5FCi0gKiBUaGlzIGlzIHVzZWQgdG8gcmVxdWVzdCBpbmxpbmluZyBvZiBhIGZ1bmN0
aW9uLCBvbiBwbGF0Zm9ybXMgYW5kIGxhbmd1YWdlcyB3aGljaCBzdXBwb3J0IGl0LgorICogVGhp
cyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElzIHRoYXQKKyAq
ICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4KKyAqIEl0IGlz
IG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEwZmZmZi4KKyAq
IAorICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4gYSBuZXcgQVBJ
CisgKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgorICoKKyAqIElDVSBBUElz
IGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Utc3BlY2lmaWMg
ImRvbmUiCisgKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCisgKiBUaG9zZSBtYXkgbmVlZCB0byBi
ZSBkaXN0aW5ndWlzaGVkIGZyb20KKyAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250ZW50cyBieSBj
YWxsaW5nIGZ1bmN0aW9ucyBsaWtlCisgKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFzTmV4dCgpIG9y
IFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgorICoKKyAqIEByZXR1cm4gLTEKKyAqIEBzZWUgVUNo
YXIzMgorICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSAKLSNpZm5kZWYgVV9JTkxJTkUKLSMgICBp
ZmRlZiBYUF9DUExVU1BMVVMKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIGlubGluZQotIyAgIGVs
c2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FCi0jICAgZW5kaWYKLSNlbmRpZgorI2RlZmluZSBV
X1NFTlRJTkVMICgtMSkKIAogI2luY2x1ZGUgInVuaWNvZGUvdXJlbmFtZS5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VuaXN0ci5oIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91bmlzdHIuaAppbmRleCAyNGQwMzUxZmI1NDQ0Y2E3NTE2NGVjODVmMzgyYWZlMTRkODM2
OTE5Li5jNmU4YjQ0NjZhZDEzYTIzOWU3NjI3NzdhY2RhMWNmZTM2N2IyNjdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VuaXN0ci5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdW5pc3RyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENv
cHlyaWdodCAoQykgMTk5OC0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICoKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJ1bmljb2RlL3N0ZF9z
dHJpbmcuaCIKICNpbmNsdWRlICJ1bmljb2RlL3N0cmluZ3BpZWNlLmgiCiAjaW5jbHVkZSAidW5p
Y29kZS9ieXRlc3RyZWFtLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2FzZW1hcC5oIgogCiBzdHJ1
Y3QgVUNvbnZlcnRlcjsgICAgICAgICAgLy8gdW5pY29kZS91Y252LmgKIGNsYXNzICBTdHJpbmdU
aHJlYWRUZXN0OwpAQCAtNTMsMTEgKzU0LDMxIEBAIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQy
CiB1X3N0cmxlbihjb25zdCBVQ2hhciAqcyk7CiAjZW5kaWYKIAorLyoqCisgKiBcZGVmIFVfU1RS
SU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfU1RS
SU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKyNkZWZpbmUgVV9TVFJJTkdfQ0FTRV9NQVBQRVJfREVG
SU5FRAorCisvKioKKyAqIEludGVybmFsIHN0cmluZyBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHlw
ZS4KKyAqIEBpbnRlcm5hbAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVN0cmlu
Z0Nhc2VNYXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgIFVDaGFy
ICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IFVD
aGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCiBVX05BTUVTUEFDRV9CRUdJTgogCitjbGFzcyBC
cmVha0l0ZXJhdG9yOyAgICAgICAgLy8gdW5pY29kZS9icmtpdGVyLmgKIGNsYXNzIExvY2FsZTsg
ICAgICAgICAgICAgICAvLyB1bmljb2RlL2xvY2lkLmgKIGNsYXNzIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yOwotY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5o
CitjbGFzcyBVbmljb2RlU3RyaW5nQXBwZW5kYWJsZTsgIC8vIHVuaWNvZGUvYXBwZW5kYWJsZS5o
CiAKIC8qIFRoZSA8aW9zdHJlYW0+IGluY2x1ZGUgaGFzIGJlZW4gbW92ZWQgdG8gdW5pY29kZS91
c3RyZWFtLmggKi8KIApAQCAtNzEsNyArOTIsNyBAQCBjbGFzcyBCcmVha0l0ZXJhdG9yOyAgICAg
ICAgLy8gdW5pY29kZS9icmtpdGVyLmgKICAqCiAgKiBAc3RhYmxlIElDVSAzLjIKICAqLwotI2Rl
ZmluZSBVU19JTlYgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFVuaWNvZGVTdHJpbmc6OmtJbnZhcmlh
bnQKKyNkZWZpbmUgVVNfSU5WIGljdTo6VW5pY29kZVN0cmluZzo6a0ludmFyaWFudAogCiAvKioK
ICAqIFVuaWNvZGUgU3RyaW5nIGxpdGVyYWxzIGluIEMrKy4KQEAgLTkxLDEzICsxMTIsMTMgQEAg
Y2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5oCiAgKiBAc3Rh
YmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQoVV9ERUNMQVJFX1VURjE2KQotIyAgIGRlZmlu
ZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFVuaWNv
ZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVDaGFyICopVV9ERUNMQVJFX1VURjE2KGNzKSwgX2xlbmd0
aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIGljdTo6VW5pY29kZVN0
cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpLCBfbGVuZ3RoKQog
I2VsaWYgVV9TSVpFT0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNFVF9GQU1J
TFk9PVVfQVNDSUlfRkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmluZWQoVV9X
Q0hBUl9JU19VVEYxNikpKQotIyAgIGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkg
VV9OQU1FU1BBQ0VfUVVBTElGSUVSIFVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVDaGFyICop
TCAjIyBjcywgX2xlbmd0aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgp
IGljdTo6VW5pY29kZVN0cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKilMICMjIGNzLCBfbGVuZ3Ro
KQogI2VsaWYgVV9TSVpFT0ZfVUNIQVI9PTEgJiYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9G
QU1JTFkKLSMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFNRVNQQUNF
X1FVQUxJRklFUiBVbmljb2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKWNzLCBfbGVuZ3Ro
KQorIyAgIGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgaWN1OjpVbmljb2RlU3Ry
aW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKWNzLCBfbGVuZ3RoKQogI2Vsc2UKLSMgICBkZWZpbmUg
VU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2Rl
U3RyaW5nKGNzLCBfbGVuZ3RoLCBVU19JTlYpCisjICAgZGVmaW5lIFVOSUNPREVfU1RSSU5HKGNz
LCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoY3MsIF9sZW5ndGgsIFVTX0lOVikKICNlbmRp
ZgogCiAvKioKQEAgLTExNiw2ICsxMzcsNDMgQEAgY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAg
IC8vIHVuaWNvZGUvYnJraXRlci5oCiAjZGVmaW5lIFVOSUNPREVfU1RSSU5HX1NJTVBMRShjcykg
VU5JQ09ERV9TVFJJTkcoY3MsIC0xKQogCiAvKioKKyAqIFxkZWYgVU5JU1RSX0ZST01fQ0hBUl9F
WFBMSUNJVAorICogVGhpcyBjYW4gYmUgZGVmaW5lZCB0byBiZSBlbXB0eSBvciAiZXhwbGljaXQi
LgorICogSWYgZXhwbGljaXQsIHRoZW4gdGhlIFVuaWNvZGVTdHJpbmcoVUNoYXIpIGFuZCBVbmlj
b2RlU3RyaW5nKFVDaGFyMzIpCisgKiBjb25zdHJ1Y3RvcnMgYXJlIG1hcmtlZCBhcyBleHBsaWNp
dCwgcHJldmVudGluZyB0aGVpciBpbmFkdmVydGVudCB1c2UuCisgKiBAc3RhYmxlIElDVSA0OQor
ICovCisjaWZuZGVmIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQKKyMgaWYgZGVmaW5lZChVX0NP
TUJJTkVEX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9O
KSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExF
TUVOVEFUSU9OKQorICAgIC8vIEF1dG8tImV4cGxpY2l0IiBpbiBJQ1UgbGlicmFyeSBjb2RlLgor
IyAgIGRlZmluZSBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUIGV4cGxpY2l0CisjIGVsc2UKKyAg
ICAvLyBFbXB0eSBieSBkZWZhdWx0IGZvciBzb3VyY2UgY29kZSBjb21wYXRpYmlsaXR5LgorIyAg
IGRlZmluZSBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUCisjIGVuZGlmCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVAorICogVGhpcyBjYW4gYmUgZGVm
aW5lZCB0byBiZSBlbXB0eSBvciAiZXhwbGljaXQiLgorICogSWYgZXhwbGljaXQsIHRoZW4gdGhl
IFVuaWNvZGVTdHJpbmcoY29uc3QgY2hhciAqKSBhbmQgVW5pY29kZVN0cmluZyhjb25zdCBVQ2hh
ciAqKQorICogY29uc3RydWN0b3JzIGFyZSBtYXJrZWQgYXMgZXhwbGljaXQsIHByZXZlbnRpbmcg
dGhlaXIgaW5hZHZlcnRlbnQgdXNlLgorICoKKyAqIEluIHBhcnRpY3VsYXIsIHRoaXMgaGVscHMg
cHJldmVudCBhY2NpZGVudGFsbHkgZGVwZW5kaW5nIG9uIElDVSBjb252ZXJzaW9uIGNvZGUKKyAq
IGJ5IHBhc3NpbmcgYSBzdHJpbmcgbGl0ZXJhbCBpbnRvIGFuIEFQSSB3aXRoIGEgY29uc3QgVW5p
Y29kZVN0cmluZyAmIHBhcmFtZXRlci4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KKyNpZm5kZWYg
VU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUCisjIGlmIGRlZmluZWQoVV9DT01CSU5FRF9JTVBM
RU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5l
ZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikK
KyAgICAvLyBBdXRvLSJleHBsaWNpdCIgaW4gSUNVIGxpYnJhcnkgY29kZS4KKyMgICBkZWZpbmUg
VU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUIGV4cGxpY2l0CisjIGVsc2UKKyAgICAvLyBFbXB0
eSBieSBkZWZhdWx0IGZvciBzb3VyY2UgY29kZSBjb21wYXRpYmlsaXR5LgorIyAgIGRlZmluZSBV
TklTVFJfRlJPTV9TVFJJTkdfRVhQTElDSVQKKyMgZW5kaWYKKyNlbmRpZgorCisvKioKICAqIFVu
aWNvZGVTdHJpbmcgaXMgYSBzdHJpbmcgY2xhc3MgdGhhdCBzdG9yZXMgVW5pY29kZSBjaGFyYWN0
ZXJzIGRpcmVjdGx5IGFuZCBwcm92aWRlcwogICogc2ltaWxhciBmdW5jdGlvbmFsaXR5IGFzIHRo
ZSBKYXZhIFN0cmluZyBhbmQgU3RyaW5nQnVmZmVyIGNsYXNzZXMuCiAgKiBJdCBpcyBhIGNvbmNy
ZXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBjbGFzcyBSZXBsYWNlYWJsZSAoZm9y
IHRyYW5zbGl0ZXJhdGlvbikuCkBAIC0yODAsNyArMzM4LDggQEAgcHVibGljOgogICAvKioKICAg
ICogQ29tcGFyZSB0aGUgY2hhcmFjdGVycyBiaXR3aXNlIGluIHRoZSByYW5nZQogICAgKiBbPFRU
PnN0YXJ0PC9UVD4sIDxUVD5zdGFydCArIGxlbmd0aDwvVFQ+KSB3aXRoIHRoZSBjaGFyYWN0ZXJz
Ci0gICAqIGluIDxUVD50ZXh0PC9UVD4KKyAgICogaW4gdGhlIDxiPmVudGlyZSBzdHJpbmc8L2I+
IDxUVD50ZXh0PC9UVD4uCisgICAqIChUaGUgcGFyYW1ldGVycyAic3RhcnQiIGFuZCAibGVuZ3Ro
IiBhcmUgbm90IGFwcGxpZWQgdG8gdGhlIG90aGVyIHRleHQgInRleHQiLikKICAgICogQHBhcmFt
IHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIGNvbXBhcmUgb3BlcmF0aW9uIGJlZ2lucwog
ICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvZiB0ZXh0IHRvIGNv
bXBhcmUuCiAgICAqIEBwYXJhbSB0ZXh0IHRoZSBvdGhlciB0ZXh0IHRvIGJlIGNvbXBhcmVkIGFn
YWluc3QgdGhpcyBzdHJpbmcuCkBAIC0xMjQyLDcgKzEzMDEsNyBAQCBwdWJsaWM6CiAgICAqICAg
ICAgICAgb3IgMHhmZmZmIGlmIHRoZSBvZmZzZXQgaXMgbm90IHZhbGlkIGZvciB0aGlzIHN0cmlu
ZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIGlubGluZSBVQ2hhcjMyIGNoYXIzMkF0
KGludDMyX3Qgb2Zmc2V0KSBjb25zdDsKKyAgVUNoYXIzMiBjaGFyMzJBdChpbnQzMl90IG9mZnNl
dCkgY29uc3Q7CiAKICAgLyoqCiAgICAqIEFkanVzdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zmc2V0IHNv
IHRoYXQKQEAgLTEyNTksNyArMTMxOCw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBVMTZfU0VUX0NQ
X1NUQVJUCiAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIGludDMyX3QgZ2V0
Q2hhcjMyU3RhcnQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OworICBpbnQzMl90IGdldENoYXIzMlN0
YXJ0KGludDMyX3Qgb2Zmc2V0KSBjb25zdDsKIAogICAvKioKICAgICogQWRqdXN0IGEgcmFuZG9t
LWFjY2VzcyBvZmZzZXQgc28gdGhhdApAQCAtMTI3Nyw3ICsxMzM2LDcgQEAgcHVibGljOgogICAg
KiBAc2VlIFUxNl9TRVRfQ1BfTElNSVQKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwotICBp
bmxpbmUgaW50MzJfdCBnZXRDaGFyMzJMaW1pdChpbnQzMl90IG9mZnNldCkgY29uc3Q7CisgIGlu
dDMyX3QgZ2V0Q2hhcjMyTGltaXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OwogCiAgIC8qKgogICAg
KiBNb3ZlIHRoZSBjb2RlIHVuaXQgaW5kZXggYWxvbmcgdGhlIHN0cmluZyBieSBkZWx0YSBjb2Rl
IHBvaW50cy4KQEAgLTE3MzUsNyArMTc5NCw3IEBAIHB1YmxpYzoKICAgICogRm9yIGEgYm9ndXMg
c3RyaW5nLCBnZXRCdWZmZXIoKSBhbmQgZ2V0VGVybWluYXRlZEJ1ZmZlcigpIHJldHVybiBOVUxM
LCBhbmQKICAgICogbGVuZ3RoKCkgcmV0dXJucyAwLgogICAgKgotICAgKiBAcmV0dXJuIFRSVUUg
aWYgdGhlIHN0cmluZyBpcyB2YWxpZCwgRkFMU0Ugb3RoZXJ3aXNlCisgICAqIEByZXR1cm4gVFJV
RSBpZiB0aGUgc3RyaW5nIGlzIGJvZ3VzL2ludmFsaWQsIEZBTFNFIG90aGVyd2lzZQogICAgKiBA
c2VlIHNldFRvQm9ndXMoKQogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCkBAIC0xNzYyLDE2
ICsxODIxLDE4IEBAIHB1YmxpYzoKICAgICogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGlz
IFVuaWNvZGVTdHJpbmcKICAgICogd2l0aCB0aGUgY2hhcmFjdGVycyBmcm9tIDxjb2RlPnNyY1Rl
eHQ8L2NvZGU+LgogICAgKgotICAgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGZvciBh
bGwgc3RyaW5ncyBleGNlcHQgZm9yIG9uZXMgdGhhdAotICAgKiBhcmUgcmVhZG9ubHkgYWxpYXNl
cy4KKyAgICogVGhpcyBmdW5jdGlvbiB3b3JrcyB0aGUgc2FtZSBhcyB0aGUgYXNzaWdubWVudCBv
cGVyYXRvcgorICAgKiBmb3IgYWxsIHN0cmluZ3MgZXhjZXB0IGZvciBvbmVzIHRoYXQgYXJlIHJl
YWRvbmx5IGFsaWFzZXMuCisgICAqCiAgICAqIFN0YXJ0aW5nIHdpdGggSUNVIDIuNCwgdGhlIGFz
c2lnbm1lbnQgb3BlcmF0b3IgYW5kIHRoZSBjb3B5IGNvbnN0cnVjdG9yCiAgICAqIGFsbG9jYXRl
IGEgbmV3IGJ1ZmZlciBhbmQgY29weSB0aGUgYnVmZmVyIGNvbnRlbnRzIGV2ZW4gZm9yIHJlYWRv
bmx5IGFsaWFzZXMuCiAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgb2xkLCBtb3Jl
IGVmZmljaWVudCBidXQgbGVzcyBzYWZlIGJlaGF2aW9yCiAgICAqIG9mIG1ha2luZyB0aGlzIHN0
cmluZyBhbHNvIGEgcmVhZG9ubHkgYWxpYXMgdG8gdGhlIHNhbWUgYnVmZmVyLgorICAgKgogICAg
KiBUaGUgZmFzdENvcHlGcm9tIGZ1bmN0aW9uIG11c3QgYmUgdXNlZCBvbmx5IGlmIGl0IGlzIGtu
b3duIHRoYXQgdGhlIGxpZmV0aW1lIG9mCi0gICAqIHRoaXMgVW5pY29kZVN0cmluZyBpcyBhdCBs
ZWFzdCBhcyBsb25nIGFzIHRoZSBsaWZldGltZSBvZiB0aGUgYWxpYXNlZCBidWZmZXIKKyAgICog
dGhpcyBVbmljb2RlU3RyaW5nIGRvZXMgbm90IGV4Y2VlZCB0aGUgbGlmZXRpbWUgb2YgdGhlIGFs
aWFzZWQgYnVmZmVyCiAgICAqIGluY2x1ZGluZyBpdHMgY29udGVudHMsIGZvciBleGFtcGxlIGZv
ciBzdHJpbmdzIGZyb20gcmVzb3VyY2UgYnVuZGxlcwotICAgKiBvciBhbGlhc2VzIHRvIHN0cmlu
ZyBjb250ZW50cy4KKyAgICogb3IgYWxpYXNlcyB0byBzdHJpbmcgY29uc3RhbnRzLgogICAgKgog
ICAgKiBAcGFyYW0gc3JjIFRoZSB0ZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgdG8gcmVw
bGFjZS4KICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCkBAIC0xODc3LDcgKzE5Mzgs
MTAgQEAgcHVibGljOgogICAgKiBXaGVuIHRoZSBzdHJpbmcgaXMgbW9kaWZpZWQsIHRoZW4gdGhl
IGJ1ZmZlciBpcyBmaXJzdCBjb3BpZWQgaW50bwogICAgKiBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5
LgogICAgKiBUaGUgYWxpYXNlZCBidWZmZXIgaXMgbmV2ZXIgbW9kaWZpZWQuCi0gICAqIEluIGFu
IGFzc2lnbm1lbnQgdG8gYW5vdGhlciBVbmljb2RlU3RyaW5nLCB0aGUgdGV4dCB3aWxsIGJlIGFs
aWFzZWQgYWdhaW4sCisgICAqCisgICAqIEluIGFuIGFzc2lnbm1lbnQgdG8gYW5vdGhlciBVbmlj
b2RlU3RyaW5nLCB3aGVuIHVzaW5nIHRoZSBjb3B5IGNvbnN0cnVjdG9yCisgICAqIG9yIHRoZSBh
c3NpZ25tZW50IG9wZXJhdG9yLCB0aGUgdGV4dCB3aWxsIGJlIGNvcGllZC4KKyAgICogV2hlbiB1
c2luZyBmYXN0Q29weUZyb20oKSwgdGhlIHRleHQgd2lsbCBiZSBhbGlhc2VkIGFnYWluLAogICAg
KiBzbyB0aGF0IGJvdGggc3RyaW5ncyB0aGVuIGFsaWFzIHRoZSBzYW1lIHJlYWRvbmx5LXRleHQu
CiAgICAqCiAgICAqIEBwYXJhbSBpc1Rlcm1pbmF0ZWQgc3BlY2lmaWVzIGlmIDxjb2RlPnRleHQ8
L2NvZGU+IGlzIDxjb2RlPk5VTDwvY29kZT4tdGVybWluYXRlZC4KQEAgLTE5OTEsOCArMjA1NSw3
IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogQXBwZW5kIG9wZXJhdG9yLiBBcHBlbmQgdGhlIGNo
YXJhY3RlcnMgaW4gPFRUPnNyY1RleHQ8L1RUPiB0byB0aGUKLSAgICogVW5pY29kZVN0cmluZyBv
YmplY3QgYXQgb2Zmc2V0IDxUVD5zdGFydDwvVFQ+LiA8VFQ+c3JjVGV4dDwvVFQ+IGlzCi0gICAq
IG5vdCBtb2RpZmllZC4KKyAgICogVW5pY29kZVN0cmluZyBvYmplY3QuIDxUVD5zcmNUZXh0PC9U
VD4gaXMgbm90IG1vZGlmaWVkLgogICAgKiBAcGFyYW0gc3JjVGV4dCB0aGUgc291cmNlIGZvciB0
aGUgbmV3IGNoYXJhY3RlcnMKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCiAgICAq
IEBzdGFibGUgSUNVIDIuMApAQCAtMjAxOCw4ICsyMDgxLDggQEAgcHVibGljOgogICAgICAgICAg
ICAgaW50MzJfdCBzcmNMZW5ndGgpOwogCiAgIC8qKgotICAgKiBBcHBlbmQgdGhlIGNoYXJhY3Rl
cnMgaW4gPFRUPnNyY1RleHQ8L1RUPiB0byB0aGUgVW5pY29kZVN0cmluZyBvYmplY3QgYXQKLSAg
ICogb2Zmc2V0IDxUVD5zdGFydDwvVFQ+LiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5vdCBtb2RpZmll
ZC4KKyAgICogQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9UVD4gdG8gdGhl
IFVuaWNvZGVTdHJpbmcgb2JqZWN0LgorICAgKiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5vdCBtb2Rp
ZmllZC4KICAgICogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0
ZXJzCiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxlIElDVSAy
LjAKQEAgLTIwMzUsNyArMjA5OCw3IEBAIHB1YmxpYzoKICAgICogQHBhcmFtIHNyY1N0YXJ0IHRo
ZSBvZmZzZXQgaW50byA8VFQ+c3JjQ2hhcnM8L1RUPiB3aGVyZSBuZXcgY2hhcmFjdGVycwogICAg
KiB3aWxsIGJlIG9idGFpbmVkCiAgICAqIEBwYXJhbSBzcmNMZW5ndGggdGhlIG51bWJlciBvZiBj
aGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+IGluCi0gICAqIHRoZSBhcHBlbmQgc3RyaW5n
CisgICAqICAgICAgICAgICAgICAgICAgdGhlIGFwcGVuZCBzdHJpbmc7IGNhbiBiZSAtMSBpZiA8
VFQ+c3JjQ2hhcnM8L1RUPiBpcyBOVUwtdGVybWluYXRlZAogICAgKiBAcmV0dXJuIGEgcmVmZXJl
bmNlIHRvIHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwpAQCAtMjA0Nyw3ICsyMTEw
LDggQEAgcHVibGljOgogICAgKiBBcHBlbmQgdGhlIGNoYXJhY3RlcnMgaW4gPFRUPnNyY0NoYXJz
PC9UVD4gdG8gdGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0CiAgICAqIGF0IG9mZnNldCA8VFQ+c3Rh
cnQ8L1RUPi4gPFRUPnNyY0NoYXJzPC9UVD4gaXMgbm90IG1vZGlmaWVkLgogICAgKiBAcGFyYW0g
c3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCi0gICAqIEBwYXJhbSBz
cmNMZW5ndGggdGhlIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gPFRUPnNyY0NoYXJz
PC9UVD4KKyAgICogQHBhcmFtIHNyY0xlbmd0aCB0aGUgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFj
dGVycyBpbiA8VFQ+c3JjQ2hhcnM8L1RUPjsKKyAgICogICAgICAgICAgICAgICAgICBjYW4gYmUg
LTEgaWYgPFRUPnNyY0NoYXJzPC9UVD4gaXMgTlVMLXRlcm1pbmF0ZWQKICAgICogQHJldHVybiBh
IHJlZmVyZW5jZSB0byB0aGlzCiAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KQEAgLTIwNjgs
NyArMjEzMiw3IEBAIHB1YmxpYzoKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCiAg
ICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIFVuaWNvZGVTdHJpbmcmIGFwcGVu
ZChVQ2hhcjMyIHNyY0NoYXIpOworICBVbmljb2RlU3RyaW5nJiBhcHBlbmQoVUNoYXIzMiBzcmND
aGFyKTsKIAogCiAgIC8qIEluc2VydCBvcGVyYXRpb25zICovCkBAIC0yMjYzLDkgKzIzMjcsNyBA
QCBwdWJsaWM6CiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxl
IElDVSAyLjAKICAgICovCi0gIGlubGluZSBVbmljb2RlU3RyaW5nJiByZXBsYWNlKGludDMyX3Qg
c3RhcnQsCi0gICAgICAgICAgICAgaW50MzJfdCBsZW5ndGgsCi0gICAgICAgICAgICAgVUNoYXIz
MiBzcmNDaGFyKTsKKyAgVW5pY29kZVN0cmluZyYgcmVwbGFjZShpbnQzMl90IHN0YXJ0LCBpbnQz
Ml90IGxlbmd0aCwgVUNoYXIzMiBzcmNDaGFyKTsKIAogICAvKioKICAgICogUmVwbGFjZSB0aGUg
Y2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxUVD5zdGFydDwvVFQ+LCA8VFQ+bGltaXQ8L1RUPikK
QEAgLTI2MzEsMTAgKzI2OTMsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICAgLyoqCi0gICAqIENh
c2UtZm9sZCB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4KKyAgICogQ2FzZS1mb2xkcyB0
aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4KKyAgICoKICAgICogQ2FzZS1mb2xkaW5nIGlz
IGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRleHQtc2Vuc2l0aXZlLAogICAgKiBidXQg
dGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBw
aW5ncyBmb3IgZG90dGVkIEkKLSAgICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0
aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LgorICAgKiBhbmQgZG90bGVzcyBpIHRoYXQgYXJlIG1h
cmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgICAqCiAgICAqIFRoZSByZXN1bHQg
bWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgogICAgKgogICAgKiBA
cGFyYW0gb3B0aW9ucyBFaXRoZXIgVV9GT0xEX0NBU0VfREVGQVVMVCBvciBVX0ZPTERfQ0FTRV9F
WENMVURFX1NQRUNJQUxfSQpAQCAtMjc3OSw3ICsyODQzLDcgQEAgcHVibGljOgogICAgKiBAc2Vl
IGdldEJ1ZmZlcigpCiAgICAqIEBzdGFibGUgSUNVIDIuMgogICAgKi8KLSAgaW5saW5lIGNvbnN0
IFVDaGFyICpnZXRUZXJtaW5hdGVkQnVmZmVyKCk7CisgIGNvbnN0IFVDaGFyICpnZXRUZXJtaW5h
dGVkQnVmZmVyKCk7CiAKICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAgIC8vIENvbnN0cnVjdG9ycwpAQCAtMjc4OCw3ICsyODUyLDcgQEAgcHVibGljOgogICAv
KiogQ29uc3RydWN0IGFuIGVtcHR5IFVuaWNvZGVTdHJpbmcuCiAgICAqIEBzdGFibGUgSUNVIDIu
MAogICAgKi8KLSAgVW5pY29kZVN0cmluZygpOworICBpbmxpbmUgVW5pY29kZVN0cmluZygpOwog
CiAgIC8qKgogICAgKiBDb25zdHJ1Y3QgYSBVbmljb2RlU3RyaW5nIHdpdGggY2FwYWNpdHkgdG8g
aG9sZCA8VFQ+Y2FwYWNpdHk8L1RUPiBVQ2hhcnMKQEAgLTI4MDUsMjUgKzI4NjksMzcgQEAgcHVi
bGljOgogCiAgIC8qKgogICAgKiBTaW5nbGUgVUNoYXIgKGNvZGUgdW5pdCkgY29uc3RydWN0b3Iu
CisgICAqCisgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIG1hcmsgdGhpcyBjb25zdHJ1Y3RvciAi
ZXhwbGljaXQiIGJ5CisgICAqIDxjb2RlPi1EVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJVD1leHBs
aWNpdDwvY29kZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFy
LgogICAgKiBAcGFyYW0gY2ggdGhlIGNoYXJhY3RlciB0byBwbGFjZSBpbiB0aGUgVW5pY29kZVN0
cmluZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmcoVUNoYXIg
Y2gpOworICBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUIFVuaWNvZGVTdHJpbmcoVUNoYXIgY2gp
OwogCiAgIC8qKgogICAgKiBTaW5nbGUgVUNoYXIzMiAoY29kZSBwb2ludCkgY29uc3RydWN0b3Iu
CisgICAqCisgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIG1hcmsgdGhpcyBjb25zdHJ1Y3RvciAi
ZXhwbGljaXQiIGJ5CisgICAqIDxjb2RlPi1EVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJVD1leHBs
aWNpdDwvY29kZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFy
LgogICAgKiBAcGFyYW0gY2ggdGhlIGNoYXJhY3RlciB0byBwbGFjZSBpbiB0aGUgVW5pY29kZVN0
cmluZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmcoVUNoYXIz
MiBjaCk7CisgIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQgVW5pY29kZVN0cmluZyhVQ2hhcjMy
IGNoKTsKIAogICAvKioKICAgICogVUNoYXIqIGNvbnN0cnVjdG9yLgorICAgKgorICAgKiBJdCBp
cyByZWNvbW1lbmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAg
KiA8Y29kZT4tRFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVD1leHBsaWNpdDwvY29kZT4KKyAg
ICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFyLgogICAgKiBAcGFyYW0g
dGV4dCBUaGUgY2hhcmFjdGVycyB0byBwbGFjZSBpbiB0aGUgVW5pY29kZVN0cmluZy4gIDxUVD50
ZXh0PC9UVD4KICAgICogbXVzdCBiZSBOVUxMIChVKzAwMDApIHRlcm1pbmF0ZWQuCiAgICAqIEBz
dGFibGUgSUNVIDIuMAogICAgKi8KLSAgVW5pY29kZVN0cmluZyhjb25zdCBVQ2hhciAqdGV4dCk7
CisgIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVCBVbmljb2RlU3RyaW5nKGNvbnN0IFVDaGFy
ICp0ZXh0KTsKIAogICAvKioKICAgICogVUNoYXIqIGNvbnN0cnVjdG9yLgpAQCAtMjg0Myw3ICsy
OTE5LDEwIEBAIHB1YmxpYzoKICAgICogV2hlbiB0aGUgc3RyaW5nIGlzIG1vZGlmaWVkLCB0aGVu
IHRoZSBidWZmZXIgaXMgZmlyc3QgY29waWVkIGludG8KICAgICogbmV3bHkgYWxsb2NhdGVkIG1l
bW9yeS4KICAgICogVGhlIGFsaWFzZWQgYnVmZmVyIGlzIG5ldmVyIG1vZGlmaWVkLgotICAgKiBJ
biBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIgVW5pY29kZVN0cmluZywgdGhlIHRleHQgd2lsbCBi
ZSBhbGlhc2VkIGFnYWluLAorICAgKgorICAgKiBJbiBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIg
VW5pY29kZVN0cmluZywgd2hlbiB1c2luZyB0aGUgY29weSBjb25zdHJ1Y3RvcgorICAgKiBvciB0
aGUgYXNzaWdubWVudCBvcGVyYXRvciwgdGhlIHRleHQgd2lsbCBiZSBjb3BpZWQuCisgICAqIFdo
ZW4gdXNpbmcgZmFzdENvcHlGcm9tKCksIHRoZSB0ZXh0IHdpbGwgYmUgYWxpYXNlZCBhZ2FpbiwK
ICAgICogc28gdGhhdCBib3RoIHN0cmluZ3MgdGhlbiBhbGlhcyB0aGUgc2FtZSByZWFkb25seS10
ZXh0LgogICAgKgogICAgKiBAcGFyYW0gaXNUZXJtaW5hdGVkIHNwZWNpZmllcyBpZiA8Y29kZT50
ZXh0PC9jb2RlPiBpcyA8Y29kZT5OVUw8L2NvZGU+LXRlcm1pbmF0ZWQuCkBAIC0yODgyLDE0ICsy
OTYxLDI5IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogY2hhciogY29uc3RydWN0b3IuCisgICAq
IFVzZXMgdGhlIGRlZmF1bHQgY29udmVydGVyIChhbmQgdGh1cyBkZXBlbmRzIG9uIHRoZSBJQ1Ug
Y29udmVyc2lvbiBjb2RlKQorICAgKiB1bmxlc3MgVV9DSEFSU0VUX0lTX1VURjggaXMgc2V0IHRv
IDEuCisgICAqCisgICAqIEZvciBBU0NJSSAocmVhbGx5ICJpbnZhcmlhbnQgY2hhcmFjdGVyIikg
c3RyaW5ncyBpdCBpcyBtb3JlIGVmZmljaWVudCB0byB1c2UKKyAgICogdGhlIGNvbnN0cnVjdG9y
IHRoYXQgdGFrZXMgYSBVU19JTlYgKGZvciBpdHMgZW51bSBFSW52YXJpYW50KS4KKyAgICogRm9y
IEFTQ0lJIChpbnZhcmlhbnQtY2hhcmFjdGVyKSBzdHJpbmcgbGl0ZXJhbHMsIHNlZSBVTklDT0RF
X1NUUklORyBhbmQKKyAgICogVU5JQ09ERV9TVFJJTkdfU0lNUExFLgorICAgKgorICAgKiBJdCBp
cyByZWNvbW1lbmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAg
KiA8Y29kZT4tRFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVD1leHBsaWNpdDwvY29kZT4KKyAg
ICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFyLgogICAgKiBAcGFyYW0g
Y29kZXBhZ2VEYXRhIGFuIGFycmF5IG9mIGJ5dGVzLCBudWxsLXRlcm1pbmF0ZWQsCiAgICAqICAg
ICAgICAgICAgICAgICAgICAgaW4gdGhlIHBsYXRmb3JtJ3MgZGVmYXVsdCBjb2RlcGFnZS4KICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqIEBzZWUgVU5JQ09ERV9TVFJJTkcKKyAgICogQHNlZSBV
TklDT0RFX1NUUklOR19TSU1QTEUKICAgICovCi0gIFVuaWNvZGVTdHJpbmcoY29uc3QgY2hhciAq
Y29kZXBhZ2VEYXRhKTsKKyAgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUIFVuaWNvZGVTdHJp
bmcoY29uc3QgY2hhciAqY29kZXBhZ2VEYXRhKTsKIAogICAvKioKICAgICogY2hhciogY29uc3Ry
dWN0b3IuCisgICAqIFVzZXMgdGhlIGRlZmF1bHQgY29udmVydGVyIChhbmQgdGh1cyBkZXBlbmRz
IG9uIHRoZSBJQ1UgY29udmVyc2lvbiBjb2RlKQorICAgKiB1bmxlc3MgVV9DSEFSU0VUX0lTX1VU
RjggaXMgc2V0IHRvIDEuCiAgICAqIEBwYXJhbSBjb2RlcGFnZURhdGEgYW4gYXJyYXkgb2YgYnl0
ZXMgaW4gdGhlIHBsYXRmb3JtJ3MgZGVmYXVsdCBjb2RlcGFnZS4KICAgICogQHBhcmFtIGRhdGFM
ZW5ndGggVGhlIG51bWJlciBvZiBieXRlcyBpbiA8VFQ+Y29kZXBhZ2VEYXRhPC9UVD4uCiAgICAq
IEBzdGFibGUgSUNVIDIuMApAQCAtMzExMSw3ICszMjA1LDcgQEAgcHVibGljOgogICAgKiBjaGFy
YWN0ZXIuICBTZWUgdW5lc2NhcGUoKSBmb3IgYSBsaXN0aW5nIG9mIHRoZSByZWNvZ25pemVkIGVz
Y2FwZQogICAgKiBzZXF1ZW5jZXMuICBUaGUgY2hhcmFjdGVyIGF0IG9mZnNldC0xIGlzIGFzc3Vt
ZWQgKHdpdGhvdXQKICAgICogY2hlY2tpbmcpIHRvIGJlIGEgYmFja3NsYXNoLiAgSWYgdGhlIGVz
Y2FwZSBzZXF1ZW5jZSBpcwotICAgKiBpbGwtZm9ybWVkLCBvciB0aGUgb2Zmc2V0IGlzIG91dCBv
ZiByYW5nZSwgKFVDaGFyMzIpMHhGRkZGRkZGRiBpcworICAgKiBpbGwtZm9ybWVkLCBvciB0aGUg
b2Zmc2V0IGlzIG91dCBvZiByYW5nZSwgVV9TRU5USU5FTD0tMSBpcwogICAgKiByZXR1cm5lZC4K
ICAgICoKICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnB1dCBvdXRwdXQgcGFyYW1ldGVyLiAgT24g
aW5wdXQsIGl0IGlzIHRoZQpAQCAtMzExOSw3ICszMjEzLDcgQEAgcHVibGljOgogICAgKiBhZnRl
ciB0aGUgaW5pdGlhbCBiYWNrc2xhc2guICBPbiBvdXRwdXQsIGl0IGlzIGFkdmFuY2VkIGFmdGVy
IHRoZQogICAgKiBsYXN0IGNoYXJhY3RlciBwYXJzZWQuICBPbiBlcnJvciwgaXQgaXMgbm90IGFk
dmFuY2VkIGF0IGFsbC4KICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGVkIGJ5
IHRoZSBlc2NhcGUgc2VxdWVuY2UgYXQKLSAgICogb2Zmc2V0LCBvciAoVUNoYXIzMikweEZGRkZG
RkZGIG9uIGVycm9yLgorICAgKiBvZmZzZXQsIG9yIFVfU0VOVElORUw9LTEgb24gZXJyb3IuCiAg
ICAqIEBzZWUgVW5pY29kZVN0cmluZyN1bmVzY2FwZSgpCiAgICAqIEBzZWUgdV91bmVzY2FwZSgp
CiAgICAqIEBzZWUgdV91bmVzY2FwZUF0KCkKQEAgLTMxNzgsNiArMzI3MiwxMSBAQCBwcml2YXRl
OgogICB0b1VURjgoaW50MzJfdCBzdGFydCwgaW50MzJfdCBsZW4sCiAgICAgICAgICBjaGFyICp0
YXJnZXQsIGludDMyX3QgY2FwYWNpdHkpIGNvbnN0OwogCisgIC8qKgorICAgKiBJbnRlcm5hbCBz
dHJpbmcgY29udGVudHMgY29tcGFyaXNvbiwgY2FsbGVkIGJ5IG9wZXJhdG9yPT0uCisgICAqIFJl
cXVpcmVzOiB0aGlzICYgdGV4dCBub3QgYm9ndXMgYW5kIGhhdmUgc2FtZSBsZW5ndGhzLgorICAg
Ki8KKyAgVUJvb2wgZG9FcXVhbHMoY29uc3QgVW5pY29kZVN0cmluZyAmdGV4dCwgaW50MzJfdCBs
ZW4pIGNvbnN0OwogCiAgIGlubGluZSBpbnQ4X3QKICAgZG9Db21wYXJlKGludDMyX3Qgc3RhcnQs
CkBAIC0zMzU0LDEyICszNDUzLDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCAqKnBCdWZmZXJUb0RlbGV0ZSA9IDAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVUJvb2wgZm9yY2VDbG9uZSA9IEZBTFNFKTsKIAotICAvLyBjb21tb24gZnVuY3Rp
b24gZm9yIGNhc2UgbWFwcGluZ3MKKyAgLyoqCisgICAqIENvbW1vbiBmdW5jdGlvbiBmb3IgVW5p
Y29kZVN0cmluZyBjYXNlIG1hcHBpbmdzLgorICAgKiBUaGUgc3RyaW5nQ2FzZU1hcHBlciBoYXMg
dGhlIHNhbWUgdHlwZSBVU3RyaW5nQ2FzZU1hcHBlcgorICAgKiBhcyBpbiB1c3RyX2ltcC5oIGZv
ciB1c3RyY2FzZV9tYXAoKS4KKyAgICovCiAgIFVuaWNvZGVTdHJpbmcgJgotICBjYXNlTWFwKEJy
ZWFrSXRlcmF0b3IgKnRpdGxlSXRlciwKLSAgICAgICAgICBjb25zdCBjaGFyICpsb2NhbGUsCi0g
ICAgICAgICAgdWludDMyX3Qgb3B0aW9ucywKLSAgICAgICAgICBpbnQzMl90IHRvV2hpY2hDYXNl
KTsKKyAgY2FzZU1hcChjb25zdCBVQ2FzZU1hcCAqY3NtLCBVU3RyaW5nQ2FzZU1hcHBlciAqc3Ry
aW5nQ2FzZU1hcHBlcik7CiAKICAgLy8gcmVmIGNvdW50aW5nCiAgIHZvaWQgYWRkUmVmKHZvaWQp
OwpAQCAtMzM2OCwxMCArMzQ2OCw5IEBAIHByaXZhdGU6CiAKICAgLy8gY29uc3RhbnRzCiAgIGVu
dW0gewotICAgIC8vIFNldCB0aGUgc3RhY2sgYnVmZmVyIHNpemUgc28gdGhhdCBzaXplb2YoVW5p
Y29kZVN0cmluZykgaXMgYSBtdWx0aXBsZSBvZiBzaXplb2YocG9pbnRlcik6Ci0gICAgLy8gMzIt
Yml0IHBvaW50ZXJzOiA0KzErMSsxMyoyID0gMzIgYnl0ZXMKLSAgICAvLyA2NC1iaXQgcG9pbnRl
cnM6IDgrMSsxKzE1KjIgPSA0MCBieXRlcwotICAgIFVTX1NUQUNLQlVGX1NJWkU9IHNpemVvZih2
b2lkICopPT00ID8gMTMgOiAxNSwgLy8gU2l6ZSBvZiBzdGFjayBidWZmZXIgZm9yIHNtYWxsIHN0
cmluZ3MKKyAgICAvLyBTZXQgdGhlIHN0YWNrIGJ1ZmZlciBzaXplIHNvIHRoYXQgc2l6ZW9mKFVu
aWNvZGVTdHJpbmcpIGlzLAorICAgIC8vIG5hdHVyYWxseSAod2l0aG91dCBwYWRkaW5nKSwgYSBt
dWx0aXBsZSBvZiBzaXplb2YocG9pbnRlcikuCisgICAgVVNfU1RBQ0tCVUZfU0laRT0gc2l6ZW9m
KHZvaWQgKik9PTQgPyAxMyA6IDE1LCAvLyBTaXplIG9mIHN0YWNrIGJ1ZmZlciBmb3Igc2hvcnQg
c3RyaW5ncwogICAgIGtJbnZhbGlkVUNoYXI9MHhmZmZmLCAvLyBpbnZhbGlkIFVDaGFyIGluZGV4
CiAgICAga0dyb3dTaXplPTEyOCwgLy8gZ3JvdyBzaXplIGZvciB0aGlzIGJ1ZmZlcgogICAgIGtJ
bnZhbGlkSGFzaENvZGU9MCwgLy8gaW52YWxpZCBoYXNoIGNvZGUKQEAgLTMzNzksNyArMzQ3OCw3
IEBAIHByaXZhdGU6CiAKICAgICAvLyBiaXQgZmxhZyB2YWx1ZXMgZm9yIGZGbGFncwogICAgIGtJ
c0JvZ3VzPTEsICAgICAgICAgLy8gdGhpcyBzdHJpbmcgaXMgYm9ndXMsIGkuZS4sIG5vdCB2YWxp
ZCBvciBOVUxMCi0gICAga1VzaW5nU3RhY2tCdWZmZXI9MiwvLyBmQXJyYXk9PWZTdGFja0J1ZmZl
cgorICAgIGtVc2luZ1N0YWNrQnVmZmVyPTIsLy8gdXNpbmcgZlVuaW9uLmZTdGFja0J1ZmZlciBp
bnN0ZWFkIG9mIGZVbmlvbi5mRmllbGRzCiAgICAga1JlZkNvdW50ZWQ9NCwgICAgICAvLyB0aGVy
ZSBpcyBhIHJlZkNvdW50IGZpZWxkIGJlZm9yZSB0aGUgY2hhcmFjdGVycyBpbiBmQXJyYXkKICAg
ICBrQnVmZmVySXNSZWFkb25seT04LC8vIGRvIG5vdCB3cml0ZSB0byB0aGlzIGJ1ZmZlcgogICAg
IGtPcGVuR2V0QnVmZmVyPTE2LCAgLy8gZ2V0QnVmZmVyKG1pbkNhcGFjaXR5KSB3YXMgY2FsbGVk
IChpcyAib3BlbiIpLApAQCAtMzM5Myw2ICszNDkyLDcgQEAgcHJpdmF0ZToKICAgfTsKIAogICBm
cmllbmQgY2xhc3MgU3RyaW5nVGhyZWFkVGVzdDsKKyAgZnJpZW5kIGNsYXNzIFVuaWNvZGVTdHJp
bmdBcHBlbmRhYmxlOwogCiAgIHVuaW9uIFN0YWNrQnVmZmVyT3JGaWVsZHM7ICAgICAgICAvLyBm
b3J3YXJkIGRlY2xhcmF0aW9uIG5lY2Vzc2FyeSBiZWZvcmUgZnJpZW5kIGRlY2xhcmF0aW9uCiAg
IGZyaWVuZCB1bmlvbiBTdGFja0J1ZmZlck9yRmllbGRzOyAvLyBtYWtlIFVTX1NUQUNLQlVGX1NJ
WkUgdmlzaWJsZSBpbnNpZGUgZlVuaW9uCkBAIC0zNDAzLDI1ICszNTAzLDQ4IEBAIHByaXZhdGU6
CiAgICAqIE5vdGUgdGhhdCBVbmljb2RlU3RyaW5nIGhhcyB2aXJ0dWFsIGZ1bmN0aW9ucywKICAg
ICogdGhlcmVmb3JlIHRoZXJlIGlzIGFuIGltcGxpY2l0IHZ0YWJsZSBwb2ludGVyCiAgICAqIGFz
IHRoZSBmaXJzdCByZWFsIGZpZWxkLgotICAgKiBUaGUgZmllbGRzIHNob3VsZCBiZSBhbGlnbmVk
IHN1Y2ggdGhhdCBubyBwYWRkaW5nIGlzCi0gICAqIG5lY2Vzc2FyeSwgbW9zdGx5IGJ5IGhhdmlu
ZyBsYXJnZXIgdHlwZXMgZmlyc3QuCisgICAqIFRoZSBmaWVsZHMgc2hvdWxkIGJlIGFsaWduZWQg
c3VjaCB0aGF0IG5vIHBhZGRpbmcgaXMgbmVjZXNzYXJ5LgogICAgKiBPbiAzMi1iaXQgbWFjaGlu
ZXMsIHRoZSBzaXplIHNob3VsZCBiZSAzMiBieXRlcywKICAgICogb24gNjQtYml0IG1hY2hpbmVz
ICg4LWJ5dGUgcG9pbnRlcnMpLCBpdCBzaG91bGQgYmUgNDAgYnl0ZXMuCisgICAqCisgICAqIFdl
IHVzZSBhIGhhY2sgdG8gYWNoaWV2ZSB0aGlzLgorICAgKgorICAgKiBXaXRoIGF0IGxlYXN0IHNv
bWUgY29tcGlsZXJzLCBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgZm9yY2VkIHRvCisgICAqIGEg
bXVsdGlwbGUgb2Ygc2l6ZW9mKHBvaW50ZXIpIFt0aGUgbGFyZ2VzdCBmaWVsZCBiYXNlIHVuaXQg
aGVyZSBpcyBhIGRhdGEgcG9pbnRlcl0sCisgICAqIHJvdW5kZWQgdXAgd2l0aCBhZGRpdGlvbmFs
IHBhZGRpbmcgaWYgdGhlIGZpZWxkcyBkbyBub3QgYWxyZWFkeSBmaXQgdGhhdCByZXF1aXJlbWVu
dDoKKyAgICogLSBzaXplb2YoY2xhc3MgVW5pY29kZVN0cmluZykKKyAgICogLSBvZmZzZXRvZihV
bmljb2RlU3RyaW5nLCBmVW5pb24pCisgICAqIC0gc2l6ZW9mKGZVbmlvbikKKyAgICogLSBzaXpl
b2YoZkZpZWxkcykKKyAgICoKKyAgICogSW4gb3JkZXIgdG8gYXZvaWQgcGFkZGluZywgd2UgbWFr
ZSBzaXplb2YoZlN0YWNrQnVmZmVyKT0xNiAoPTggVUNoYXJzKQorICAgKiB3aGljaCBpcyBhdCBs
ZWFzdCBhcyBsYXJnZSBhcyBzaXplb2YoZkZpZWxkcykgb24gMzItYml0IGFuZCA2NC1iaXQgbWFj
aGluZXMuCisgICAqIChQYWRkaW5nIGF0IHRoZSBlbmQgb2YgZkZpZWxkcyBpcyBvazoKKyAgICog
QXMgbG9uZyBhcyB0aGVyZSBpcyBubyBwYWRkaW5nIGFmdGVyIGZTdGFja0J1ZmZlciwgaXQgaXMg
bm90IHdhc3RlZCBzcGFjZS4pCisgICAqCisgICAqIFdlIGZ1cnRoZXIgYXNzdW1lIHRoYXQgdGhl
IGNvbXBpbGVyIGRvZXMgbm90IHJlb3JkZXIgdGhlIGZpZWxkcywKKyAgICogc28gdGhhdCBmUmVz
dE9mU3RhY2tCdWZmZXIgKHdoaWNoIGhvbGRzIGEgZmV3IG1vcmUgVUNoYXJzKSBpbW1lZGlhdGVs
eSBmb2xsb3dzIGFmdGVyIGZVbmlvbiwKKyAgICogd2l0aCBhdCBtb3N0IHNvbWUgcGFkZGluZyAo
YnV0IG5vIG90aGVyIGZpZWxkKSBpbiBiZXR3ZWVuLgorICAgKiAoUGFkZGluZyB0aGVyZSB3b3Vs
ZCBiZSB3YXN0ZWQgc3BhY2UsIGJ1dCBmdW5jdGlvbmFsbHkgaGFybWxlc3MuKQorICAgKgorICAg
KiBXZSB1c2UgYSBmZXcgbW9yZSBzaXplb2YocG9pbnRlcikncyBjaHVua3Mgb2Ygc3BhY2Ugd2l0
aAorICAgKiBmUmVzdE9mU3RhY2tCdWZmZXIsIGZTaG9ydExlbmd0aCBhbmQgZkZsYWdzLAorICAg
KiB0byBnZXQgdXAgZXhhY3RseSB0byB0aGUgaW50ZW5kZWQgc2l6ZW9mKFVuaWNvZGVTdHJpbmcp
LgogICAgKi8KICAgLy8gKGltcGxpY2l0KSAqdnRhYmxlOwotICBpbnQ4X3QgICAgZlNob3J0TGVu
Z3RoOyAgIC8vIDAuLjEyNzogbGVuZ3RoICA8MDogcmVhbCBsZW5ndGggaXMgaW4gZlVuaW9uLmZG
aWVsZHMuZkxlbmd0aAotICB1aW50OF90ICAgZkZsYWdzOyAgICAgICAgIC8vIGJpdCBmbGFnczog
c2VlIGNvbnN0YW50cyBhYm92ZQogICB1bmlvbiBTdGFja0J1ZmZlck9yRmllbGRzIHsKICAgICAv
LyBmU3RhY2tCdWZmZXIgaXMgdXNlZCBpZmYgKGZGbGFncyZrVXNpbmdTdGFja0J1ZmZlcikKICAg
ICAvLyBlbHNlIGZGaWVsZHMgaXMgdXNlZAotICAgIFVDaGFyICAgICBmU3RhY2tCdWZmZXIgW1VT
X1NUQUNLQlVGX1NJWkVdOyAvLyBidWZmZXIgZm9yIHNtYWxsIHN0cmluZ3MKKyAgICBVQ2hhciBm
U3RhY2tCdWZmZXJbOF07ICAvLyBidWZmZXIgZm9yIHNob3J0IHN0cmluZ3MsIHRvZ2V0aGVyIHdp
dGggZlJlc3RPZlN0YWNrQnVmZmVyCiAgICAgc3RydWN0IHsKLSAgICAgIHVpbnQxNl90ICBmUGFk
ZGluZzsgICAvLyBhbGlnbiB0aGUgZm9sbG93aW5nIGZpZWxkIGF0IDhCICgzMmIgcG9pbnRlcnMp
IG9yIDEyQiAoNjRiKQotICAgICAgaW50MzJfdCAgIGZMZW5ndGg7ICAgIC8vIG51bWJlciBvZiBj
aGFyYWN0ZXJzIGluIGZBcnJheSBpZiA+MTI3OyBlbHNlIHVuZGVmaW5lZAotICAgICAgVUNoYXIg
ICAgICpmQXJyYXk7ICAgIC8vIHRoZSBVbmljb2RlIGRhdGEgKGFsaWduZWQgYXQgMTJCICgzMmIg
cG9pbnRlcnMpIG9yIDE2QiAoNjRiKSkKLSAgICAgIGludDMyX3QgICBmQ2FwYWNpdHk7ICAvLyBz
aXplb2YgZkFycmF5CisgICAgICBVQ2hhciAgICpmQXJyYXk7ICAgIC8vIHRoZSBVbmljb2RlIGRh
dGEKKyAgICAgIGludDMyX3QgZkNhcGFjaXR5OyAgLy8gY2FwYWNpdHkgb2YgZkFycmF5IChpbiBV
Q2hhcnMpCisgICAgICBpbnQzMl90IGZMZW5ndGg7ICAgIC8vIG51bWJlciBvZiBjaGFyYWN0ZXJz
IGluIGZBcnJheSBpZiA+MTI3OyBlbHNlIHVuZGVmaW5lZAogICAgIH0gZkZpZWxkczsKICAgfSBm
VW5pb247CisgIFVDaGFyIGZSZXN0T2ZTdGFja0J1ZmZlcltVU19TVEFDS0JVRl9TSVpFLThdOwor
ICBpbnQ4X3QgZlNob3J0TGVuZ3RoOyAgLy8gMC4uMTI3OiBsZW5ndGggIDwwOiByZWFsIGxlbmd0
aCBpcyBpbiBmVW5pb24uZkZpZWxkcy5mTGVuZ3RoCisgIHVpbnQ4X3QgZkZsYWdzOyAgICAgICAv
LyBiaXQgZmxhZ3M6IHNlZSBjb25zdGFudHMgYWJvdmUKIH07CiAKIC8qKgpAQCAtMzQ4MSw2ICsz
NjA0LDE2IEBAIFVuaWNvZGVTdHJpbmc6OmdldEFycmF5U3RhcnQoKSBjb25zdAogeyByZXR1cm4g
KGZGbGFncyZrVXNpbmdTdGFja0J1ZmZlcikgPyBmVW5pb24uZlN0YWNrQnVmZmVyIDogZlVuaW9u
LmZGaWVsZHMuZkFycmF5OyB9CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorLy8gRGVmYXVsdCBjb25zdHJ1Y3RvcgorLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK2lubGluZQorVW5pY29kZVN0cmluZzo6VW5pY29kZVN0cmlu
ZygpCisgIDogZlNob3J0TGVuZ3RoKDApLAorICAgIGZGbGFncyhrU2hvcnRTdHJpbmcpCit7fQor
CisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFJlYWQtb25s
eSBpbXBsZW1lbnRhdGlvbiBtZXRob2RzCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KIGlubGluZSBpbnQzMl90CkBAIC0zNTQ3LDEwICszNjgwLDcgQEAgVW5pY29k
ZVN0cmluZzo6b3BlcmF0b3I9PSAoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dCkgY29uc3QKICAg
ICByZXR1cm4gdGV4dC5pc0JvZ3VzKCk7CiAgIH0gZWxzZSB7CiAgICAgaW50MzJfdCBsZW4gPSBs
ZW5ndGgoKSwgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCk7Ci0gICAgcmV0dXJuCi0gICAgICAh
dGV4dC5pc0JvZ3VzKCkgJiYKLSAgICAgIGxlbiA9PSB0ZXh0TGVuZ3RoICYmCi0gICAgICBkb0Nv
bXBhcmUoMCwgbGVuLCB0ZXh0LCAwLCB0ZXh0TGVuZ3RoKSA9PSAwOworICAgIHJldHVybiAhdGV4
dC5pc0JvZ3VzKCkgJiYgbGVuID09IHRleHRMZW5ndGggJiYgZG9FcXVhbHModGV4dCwgbGVuKTsK
ICAgfQogfQogCkBAIC0zOTMyLDE1ICs0MDYyLDIwIEBAIFVuaWNvZGVTdHJpbmc6OnN0YXJ0c1dp
dGgoY29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCwKIHsgcmV0dXJuIGRvQ29tcGFyZSgwLCBz
cmNMZW5ndGgsIHNyY1RleHQsIHNyY1N0YXJ0LCBzcmNMZW5ndGgpID09IDA7IH0KIAogaW5saW5l
IFVCb29sCi1Vbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmNDaGFycywK
LSAgICAgICAgICAgICAgaW50MzJfdCBzcmNMZW5ndGgpIGNvbnN0Ci17IHJldHVybiBkb0NvbXBh
cmUoMCwgc3JjTGVuZ3RoLCBzcmNDaGFycywgMCwgc3JjTGVuZ3RoKSA9PSAwOyB9CitVbmljb2Rl
U3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmNDaGFycywgaW50MzJfdCBzcmNMZW5n
dGgpIGNvbnN0IHsKKyAgaWYoc3JjTGVuZ3RoIDwgMCkgeworICAgIHNyY0xlbmd0aCA9IHVfc3Ry
bGVuKHNyY0NoYXJzKTsKKyAgfQorICByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwgc3Jj
Q2hhcnMsIDAsIHNyY0xlbmd0aCkgPT0gMDsKK30KIAogaW5saW5lIFVCb29sCi1Vbmljb2RlU3Ry
aW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmNDaGFycywKLSAgICAgICAgICAgICAgaW50
MzJfdCBzcmNTdGFydCwKLSAgICAgICAgICAgICAgaW50MzJfdCBzcmNMZW5ndGgpIGNvbnN0Ci17
IHJldHVybiBkb0NvbXBhcmUoMCwgc3JjTGVuZ3RoLCBzcmNDaGFycywgc3JjU3RhcnQsIHNyY0xl
bmd0aCkgPT0gMDt9CitVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmND
aGFycywgaW50MzJfdCBzcmNTdGFydCwgaW50MzJfdCBzcmNMZW5ndGgpIGNvbnN0IHsKKyAgaWYo
c3JjTGVuZ3RoIDwgMCkgeworICAgIHNyY0xlbmd0aCA9IHVfc3RybGVuKHNyY0NoYXJzKTsKKyAg
fQorICByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwgc3JjQ2hhcnMsIHNyY1N0YXJ0LCBz
cmNMZW5ndGgpID09IDA7Cit9CiAKIGlubGluZSBVQm9vbAogVW5pY29kZVN0cmluZzo6ZW5kc1dp
dGgoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dCkgY29uc3QKQEAgLTQwMTYsMTcgKzQxNTEsNiBA
QCBVbmljb2RlU3RyaW5nOjpyZXBsYWNlKGludDMyX3Qgc3RhcnQsCiB7IHJldHVybiBkb1JlcGxh
Y2Uoc3RhcnQsIF9sZW5ndGgsICZzcmNDaGFyLCAwLCAxKTsgfQogCiBpbmxpbmUgVW5pY29kZVN0
cmluZyYKLVVuaWNvZGVTdHJpbmc6OnJlcGxhY2UoaW50MzJfdCBzdGFydCwKLSAgICAgICAgICAg
ICAgIGludDMyX3QgX2xlbmd0aCwKLSAgICAgICAgICAgICAgIFVDaGFyMzIgc3JjQ2hhcikgewot
ICBVQ2hhciBidWZmZXJbVTE2X01BWF9MRU5HVEhdOwotICBpbnQzMl90IGNvdW50ID0gMDsKLSAg
VUJvb2wgaXNFcnJvciA9IEZBTFNFOwotICBVMTZfQVBQRU5EKGJ1ZmZlciwgY291bnQsIFUxNl9N
QVhfTEVOR1RILCBzcmNDaGFyLCBpc0Vycm9yKTsKLSAgcmV0dXJuIGRvUmVwbGFjZShzdGFydCwg
X2xlbmd0aCwgYnVmZmVyLCAwLCBjb3VudCk7Ci19Ci0KLWlubGluZSBVbmljb2RlU3RyaW5nJgog
VW5pY29kZVN0cmluZzo6cmVwbGFjZUJldHdlZW4oaW50MzJfdCBzdGFydCwKICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgbGltaXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBVbmljb2RlU3Ry
aW5nJiBzcmNUZXh0KQpAQCAtNDA4Niw5ICs0MjEwLDkgQEAgVW5pY29kZVN0cmluZzo6ZXh0cmFj
dChpbnQzMl90IHN0YXJ0LAogCiB7CiAgIC8vIFRoaXMgZHN0U2l6ZSB2YWx1ZSB3aWxsIGJlIGNo
ZWNrZWQgZXhwbGljaXRseQotICAvLyBSZW1vdmVkICNpZiBkZWZpbmVkKF9fR05VQ19fKSBwZXIg
SUNVIGRlZmVjdCBodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvODE5Nwog
ICByZXR1cm4gZXh0cmFjdChzdGFydCwgX2xlbmd0aCwgZHN0LCBkc3QhPTAgPyAweGZmZmZmZmZm
IDogMCwgY29kZXBhZ2UpOwogfQorCiAjZW5kaWYKIAogaW5saW5lIHZvaWQKQEAgLTQxMjQsNDMg
KzQyNDgsNiBAQCBpbmxpbmUgVUNoYXIKIFVuaWNvZGVTdHJpbmc6Om9wZXJhdG9yW10gKGludDMy
X3Qgb2Zmc2V0KSBjb25zdAogeyByZXR1cm4gZG9DaGFyQXQob2Zmc2V0KTsgfQogCi1pbmxpbmUg
VUNoYXIzMgotVW5pY29kZVN0cmluZzo6Y2hhcjMyQXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0Ci17
Ci0gIGludDMyX3QgbGVuID0gbGVuZ3RoKCk7Ci0gIGlmKCh1aW50MzJfdClvZmZzZXQgPCAodWlu
dDMyX3QpbGVuKSB7Ci0gICAgY29uc3QgVUNoYXIgKmFycmF5ID0gZ2V0QXJyYXlTdGFydCgpOwot
ICAgIFVDaGFyMzIgYzsKLSAgICBVMTZfR0VUKGFycmF5LCAwLCBvZmZzZXQsIGxlbiwgYyk7Ci0g
ICAgcmV0dXJuIGM7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGtJbnZhbGlkVUNoYXI7Ci0gIH0K
LX0KLQotaW5saW5lIGludDMyX3QKLVVuaWNvZGVTdHJpbmc6OmdldENoYXIzMlN0YXJ0KGludDMy
X3Qgb2Zmc2V0KSBjb25zdCB7Ci0gIGlmKCh1aW50MzJfdClvZmZzZXQgPCAodWludDMyX3QpbGVu
Z3RoKCkpIHsKLSAgICBjb25zdCBVQ2hhciAqYXJyYXkgPSBnZXRBcnJheVN0YXJ0KCk7Ci0gICAg
VTE2X1NFVF9DUF9TVEFSVChhcnJheSwgMCwgb2Zmc2V0KTsKLSAgICByZXR1cm4gb2Zmc2V0Owot
ICB9IGVsc2UgewotICAgIHJldHVybiAwOwotICB9Ci19Ci0KLWlubGluZSBpbnQzMl90Ci1Vbmlj
b2RlU3RyaW5nOjpnZXRDaGFyMzJMaW1pdChpbnQzMl90IG9mZnNldCkgY29uc3QgewotICBpbnQz
Ml90IGxlbiA9IGxlbmd0aCgpOwotICBpZigodWludDMyX3Qpb2Zmc2V0IDwgKHVpbnQzMl90KWxl
bikgewotICAgIGNvbnN0IFVDaGFyICphcnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAgICBVMTZf
U0VUX0NQX0xJTUlUKGFycmF5LCAwLCBvZmZzZXQsIGxlbik7Ci0gICAgcmV0dXJuIG9mZnNldDsK
LSAgfSBlbHNlIHsKLSAgICByZXR1cm4gbGVuOwotICB9Ci19Ci0KIGlubGluZSBVQm9vbAogVW5p
Y29kZVN0cmluZzo6aXNFbXB0eSgpIGNvbnN0IHsKICAgcmV0dXJuIGZTaG9ydExlbmd0aCA9PSAw
OwpAQCAtNDE5Miw0OCArNDI3OSw2IEBAIFVuaWNvZGVTdHJpbmc6OnNldEFycmF5KFVDaGFyICph
cnJheSwgaW50MzJfdCBsZW4sIGludDMyX3QgY2FwYWNpdHkpIHsKICAgZlVuaW9uLmZGaWVsZHMu
ZkNhcGFjaXR5ID0gY2FwYWNpdHk7CiB9CiAKLWlubGluZSBjb25zdCBVQ2hhciAqCi1Vbmljb2Rl
U3RyaW5nOjpnZXRUZXJtaW5hdGVkQnVmZmVyKCkgewotICBpZighaXNXcml0YWJsZSgpKSB7Ci0g
ICAgcmV0dXJuIDA7Ci0gIH0gZWxzZSB7Ci0gICAgVUNoYXIgKmFycmF5ID0gZ2V0QXJyYXlTdGFy
dCgpOwotICAgIGludDMyX3QgbGVuID0gbGVuZ3RoKCk7Ci0gICAgaWYobGVuIDwgZ2V0Q2FwYWNp
dHkoKSAmJiAoKGZGbGFncyZrUmVmQ291bnRlZCkgPT0gMCB8fCByZWZDb3VudCgpID09IDEpKSB7
Ci0gICAgICAvKgotICAgICAgICoga1JlZkNvdW50ZWQ6IERvIG5vdCB3cml0ZSB0aGUgTlVMIGlm
IHRoZSBidWZmZXIgaXMgc2hhcmVkLgotICAgICAgICogVGhhdCBpcyBtb3N0bHkgc2FmZSwgZXhj
ZXB0IHdoZW4gdGhlIGxlbmd0aCBvZiBvbmUgY29weSB3YXMgbW9kaWZpZWQKLSAgICAgICAqIHdp
dGhvdXQgY29weS1vbi13cml0ZSwgZS5nLiwgdmlhIHRydW5jYXRlKG5ld0xlbmd0aCkgb3IgcmVt
b3ZlKHZvaWQpLgotICAgICAgICogVGhlbiB0aGUgTlVMIHdvdWxkIGJlIHdyaXR0ZW4gaW50byB0
aGUgbWlkZGxlIG9mIGFub3RoZXIgY29weSdzIHN0cmluZy4KLSAgICAgICAqLwotICAgICAgaWYo
IShmRmxhZ3Mma0J1ZmZlcklzUmVhZG9ubHkpKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFdl
IG11c3Qgbm90IHdyaXRlIHRvIGEgcmVhZG9ubHkgYnVmZmVyLCBidXQgaXQgaXMga25vd24gdG8g
YmUKLSAgICAgICAgICogTlVMLXRlcm1pbmF0ZWQgaWYgbGVuPGNhcGFjaXR5LgotICAgICAgICAg
KiBBIHNoYXJlZCwgYWxsb2NhdGVkIGJ1ZmZlciAocmVmQ291bnQoKT4xKSBtdXN0IG5vdCBoYXZl
IGl0cyBjb250ZW50cwotICAgICAgICAgKiBtb2RpZmllZCwgYnV0IHRoZSBOVUwgYXQgW2xlbl0g
aXMgYmV5b25kIHRoZSBzdHJpbmcgY29udGVudHMsCi0gICAgICAgICAqIGFuZCBtdWx0aXBsZSBz
dHJpbmcgb2JqZWN0cyBhbmQgdGhyZWFkcyB3cml0aW5nIHRoZSBzYW1lIE5VTCBpbnRvIHRoZQot
ICAgICAgICAgKiBzYW1lIGxvY2F0aW9uIGlzIGhhcm1sZXNzLgotICAgICAgICAgKiBJbiBhbGwg
b3RoZXIgY2FzZXMsIHRoZSBidWZmZXIgaXMgZnVsbHkgd3JpdGFibGUgYW5kIGl0IGlzIGFueXdh
eSBzYWZlCi0gICAgICAgICAqIHRvIHdyaXRlIHRoZSBOVUwuCi0gICAgICAgICAqCi0gICAgICAg
ICAqIE5vdGU6IEFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgdGVzdGVkIHdoZXRoZXIg
dGhlcmUgaXMgYSBOVUwKLSAgICAgICAgICogYXQgW2xlbl0gYWxyZWFkeSwgYnV0LCB3aGlsZSBz
YWZlLCBpdCBnZW5lcmF0ZWQgbG90cyBvZiB3YXJuaW5ncyBmcm9tCi0gICAgICAgICAqIHRvb2xz
IGxpa2UgdmFsZ3JpbmQgYW5kIFB1cmlmeS4KLSAgICAgICAgICovCi0gICAgICAgIGFycmF5W2xl
bl0gPSAwOwotICAgICAgfQotICAgICAgcmV0dXJuIGFycmF5OwotICAgIH0gZWxzZSBpZihjbG9u
ZUFycmF5SWZOZWVkZWQobGVuKzEpKSB7Ci0gICAgICBhcnJheSA9IGdldEFycmF5U3RhcnQoKTsK
LSAgICAgIGFycmF5W2xlbl0gPSAwOwotICAgICAgcmV0dXJuIGFycmF5OwotICAgIH0gZWxzZSB7
Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIH0KLX0KLQogaW5saW5lIFVuaWNvZGVTdHJpbmcm
CiBVbmljb2RlU3RyaW5nOjpvcGVyYXRvcj0gKFVDaGFyIGNoKQogeyByZXR1cm4gZG9SZXBsYWNl
KDAsIGxlbmd0aCgpLCAmY2gsIDAsIDEpOyB9CkBAIC00MjYzLDggKzQzMDgsNyBAQCBVbmljb2Rl
U3RyaW5nOjpzZXRUbyhjb25zdCBVbmljb2RlU3RyaW5nJiBzcmNUZXh0LAogaW5saW5lIFVuaWNv
ZGVTdHJpbmcmCiBVbmljb2RlU3RyaW5nOjpzZXRUbyhjb25zdCBVbmljb2RlU3RyaW5nJiBzcmNU
ZXh0KQogewotICB1bkJvZ3VzKCk7Ci0gIHJldHVybiBkb1JlcGxhY2UoMCwgbGVuZ3RoKCksIHNy
Y1RleHQsIDAsIHNyY1RleHQubGVuZ3RoKCkpOworICByZXR1cm4gY29weUZyb20oc3JjVGV4dCk7
CiB9CiAKIGlubGluZSBVbmljb2RlU3RyaW5nJgpAQCAtNDMxNSwxNSArNDM1OSw2IEBAIFVuaWNv
ZGVTdHJpbmc6OmFwcGVuZChVQ2hhciBzcmNDaGFyKQogeyByZXR1cm4gZG9SZXBsYWNlKGxlbmd0
aCgpLCAwLCAmc3JjQ2hhciwgMCwgMSk7IH0KIAogaW5saW5lIFVuaWNvZGVTdHJpbmcmCi1Vbmlj
b2RlU3RyaW5nOjphcHBlbmQoVUNoYXIzMiBzcmNDaGFyKSB7Ci0gIFVDaGFyIGJ1ZmZlcltVMTZf
TUFYX0xFTkdUSF07Ci0gIGludDMyX3QgX2xlbmd0aCA9IDA7Ci0gIFVCb29sIGlzRXJyb3IgPSBG
QUxTRTsKLSAgVTE2X0FQUEVORChidWZmZXIsIF9sZW5ndGgsIFUxNl9NQVhfTEVOR1RILCBzcmND
aGFyLCBpc0Vycm9yKTsKLSAgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwgMCwgYnVmZmVyLCAw
LCBfbGVuZ3RoKTsKLX0KLQotaW5saW5lIFVuaWNvZGVTdHJpbmcmCiBVbmljb2RlU3RyaW5nOjpv
cGVyYXRvcis9IChVQ2hhciBjaCkKIHsgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwgMCwgJmNo
LCAwLCAxKTsgfQogCkBAIC00Mzc2LDkgKzQ0MTEsNyBAQCBpbmxpbmUgVW5pY29kZVN0cmluZyYK
IFVuaWNvZGVTdHJpbmc6OnJlbW92ZSgpCiB7CiAgIC8vIHJlbW92ZSgpIG9mIGEgYm9ndXMgc3Ry
aW5nIG1ha2VzIHRoZSBzdHJpbmcgZW1wdHkgYW5kIG5vbi1ib2d1cwotICAvLyB3ZSBhbHNvIHVu
LWFsaWFzIGEgcmVhZC1vbmx5IGFsaWFzIHRvIGRlYWwgd2l0aCBOVUwtdGVybWluYXRpb24KLSAg
Ly8gaXNzdWVzIHdpdGggZ2V0VGVybWluYXRlZEJ1ZmZlcigpCi0gIGlmKGZGbGFncyAmIChrSXNC
b2d1c3xrQnVmZmVySXNSZWFkb25seSkpIHsKKyAgaWYoaXNCb2d1cygpKSB7CiAgICAgc2V0VG9F
bXB0eSgpOwogICB9IGVsc2UgewogICAgIGZTaG9ydExlbmd0aCA9IDA7CkBAIC00NDE3LDkgKzQ0
NTAsNiBAQCBVbmljb2RlU3RyaW5nOjp0cnVuY2F0ZShpbnQzMl90IHRhcmdldExlbmd0aCkKICAg
ICByZXR1cm4gRkFMU0U7CiAgIH0gZWxzZSBpZigodWludDMyX3QpdGFyZ2V0TGVuZ3RoIDwgKHVp
bnQzMl90KWxlbmd0aCgpKSB7CiAgICAgc2V0TGVuZ3RoKHRhcmdldExlbmd0aCk7Ci0gICAgaWYo
ZkZsYWdzJmtCdWZmZXJJc1JlYWRvbmx5KSB7Ci0gICAgICBmVW5pb24uZkZpZWxkcy5mQ2FwYWNp
dHkgPSB0YXJnZXRMZW5ndGg7ICAvLyBub3QgTlVMLXRlcm1pbmF0ZWQgYW55IG1vcmUKLSAgICB9
CiAgICAgcmV0dXJuIFRSVUU7CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIEZBTFNFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bm9ybTIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdW5vcm0yLmgKaW5kZXggYTUyMmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5ZGI0YTJh
MmYxYy4uNzE1MmZjMTA5NDY2ZDA3YzUwYmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bm9ybTIuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3Vub3JtMi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMTksNiArMTE5LDc2IEBA
IHR5cGVkZWYgc3RydWN0IFVOb3JtYWxpemVyMiBVTm9ybWFsaXplcjI7ICAvKio8IEMgdHlwZWRl
ZiBmb3Igc3RydWN0IFVOb3JtYWxpemVyCiAjaWYgIVVDT05GSUdfTk9fTk9STUFMSVpBVElPTgog
CiAvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZD
IG5vcm1hbGl6YXRpb24uCisgKiBTYW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZj
IiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFi
bGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJv
ckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAg
ICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1
bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZv
ciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAg
ZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0
dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUg
SUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5v
cm0yX2dldE5GQ0luc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFJl
dHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZEIG5vcm1hbGl6YXRp
b24uCisgKiBTYW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZjIiwgVU5PUk0yX0RF
Q09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0
b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFu
ZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAg
ICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0
dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVS
RSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBj
aGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJl
cXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAq
LworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZE
SW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVO
b3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORktDIG5vcm1hbGl6YXRpb24uCisgKiBT
YW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZrYyIsIFVOT1JNMl9DT01QT1NFLCBw
RXJyb3JDb2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBpbnN0YW5j
ZS4gRG8gbm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJkIElDVSBl
cnJvciBjb2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAgICBwYXNz
IHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAg
ICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0
cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAo
U2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVzdGVkIE5v
cm1hbGl6ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJM
RSBjb25zdCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORktDSW5zdGFuY2Uo
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVOb3JtYWxpemVy
MiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORktEIG5vcm1hbGl6YXRpb24uCisgKiBTYW1lIGFzIHVu
b3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZrYyIsIFVOT1JNMl9ERUNPTVBPU0UsIHBFcnJvckNv
ZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBu
b3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNv
ZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVf
U1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAg
ICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3Ig
dXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNl
ciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXpl
cjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0
IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0RJbnN0YW5jZShVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3Rh
bmNlIGZvciBVbmljb2RlIE5GS0NfQ2FzZWZvbGQgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMg
dW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjX2NmIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJv
ckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBE
byBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9y
IGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhl
IFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAg
ICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQg
b3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUg
VXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFs
aXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNv
bnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NDYXNlZm9sZEluc3Rh
bmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKICAqIFJldHVybnMgYSBVTm9ybWFs
aXplcjIgaW5zdGFuY2Ugd2hpY2ggdXNlcyB0aGUgc3BlY2lmaWVkIGRhdGEgZmlsZQogICogKHBh
Y2thZ2VOYW1lL25hbWUgc2ltaWxhciB0byB1Y252X29wZW5QYWNrYWdlKCkgYW5kIHVyZXNfb3Bl
bigpL1Jlc291cmNlQnVuZGxlKQogICogYW5kIHdoaWNoIGNvbXBvc2VzIG9yIGRlY29tcG9zZXMg
dGV4dCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBtb2RlLgpAQCAtMjYwLDggKzMzMCwxMSBA
QCB1bm9ybTJfYXBwZW5kKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsCiAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwogCiAvKioKLSAqIEdldHMgdGhlIGRlY29tcG9zaXRp
b24gbWFwcGluZyBvZiBjLiBFcXVpdmFsZW50IHRvIHVub3JtMl9ub3JtYWxpemUoc3RyaW5nKGMp
KQotICogb24gYSBVTk9STTJfREVDT01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11
Y2ggZmFzdGVyLgorICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMuCisgKiBS
b3VnaGx5IGVxdWl2YWxlbnQgdG8gbm9ybWFsaXppbmcgdGhlIFN0cmluZyBmb3JtIG9mIGMKKyAq
IG9uIGEgVU5PUk0yX0RFQ09NUE9TRSBVTm9ybWFsaXplcjIgaW5zdGFuY2UsIGJ1dCBtdWNoIGZh
c3RlciwgYW5kIGV4Y2VwdCB0aGF0IHRoaXMgZnVuY3Rpb24KKyAqIHJldHVybnMgYSBuZWdhdGl2
ZSB2YWx1ZSBhbmQgZG9lcyBub3Qgd3JpdGUgYSBzdHJpbmcKKyAqIGlmIGMgZG9lcyBub3QgaGF2
ZSBhIGRlY29tcG9zaXRpb24gbWFwcGluZyBpbiB0aGlzIGluc3RhbmNlJ3MgZGF0YS4KICAqIFRo
aXMgZnVuY3Rpb24gaXMgaW5kZXBlbmRlbnQgb2YgdGhlIG1vZGUgb2YgdGhlIFVOb3JtYWxpemVy
Mi4KICAqIEBwYXJhbSBub3JtMiBVTm9ybWFsaXplcjIgaW5zdGFuY2UKICAqIEBwYXJhbSBjIGNv
ZGUgcG9pbnQKQEAgLTI3MywxNCArMzQ2LDc4IEBAIHVub3JtMl9hcHBlbmQoY29uc3QgVU5vcm1h
bGl6ZXIyICpub3JtMiwKICAqICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBm
b3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAg
ICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKICAqIEBy
ZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIGRlY29tcG9zaXRpb24sIGlmIHRo
ZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVnYXRpdmUgdmFsdWUKLSAqIEBkcmFmdCBJQ1UgNC42
CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVub3JtMl9nZXREZWNvbXBvc2l0aW9uKGNvbnN0IFVO
b3JtYWxpemVyMiAqbm9ybTIsCiAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcjMyIGMsIFVD
aGFyICpkZWNvbXBvc2l0aW9uLCBpbnQzMl90IGNhcGFjaXR5LAogICAgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8qKgorICogR2V0cyB0aGUgcmF3IGRl
Y29tcG9zaXRpb24gbWFwcGluZyBvZiBjLgorICoKKyAqIFRoaXMgaXMgc2ltaWxhciB0byB0aGUg
dW5vcm0yX2dldERlY29tcG9zaXRpb24oKSBmdW5jdGlvbiBidXQgcmV0dXJucyB0aGUKKyAqIHJh
dyBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgYXMgc3BlY2lmaWVkIGluIFVuaWNvZGVEYXRhLnR4dCBv
cgorICogKGZvciBjdXN0b20gZGF0YSkgaW4gdGhlIG1hcHBpbmcgZmlsZXMgcHJvY2Vzc2VkIGJ5
IHRoZSBnZW5ub3JtMiB0b29sLgorICogQnkgY29udHJhc3QsIHVub3JtMl9nZXREZWNvbXBvc2l0
aW9uKCkgcmV0dXJucyB0aGUgcHJvY2Vzc2VkLAorICogcmVjdXJzaXZlbHktZGVjb21wb3NlZCB2
ZXJzaW9uIG9mIHRoaXMgbWFwcGluZy4KKyAqCisgKiBXaGVuIHVzZWQgb24gYSBzdGFuZGFyZCBO
RktDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogdW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24o
KSByZXR1cm5zIHRoZSBVbmljb2RlIERlY29tcG9zaXRpb25fTWFwcGluZyAoZG0pIHByb3BlcnR5
LgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GQyBOb3JtYWxpemVyMiBpbnN0YW5j
ZSwKKyAqIGl0IHJldHVybnMgdGhlIERlY29tcG9zaXRpb25fTWFwcGluZyBvbmx5IGlmIHRoZSBE
ZWNvbXBvc2l0aW9uX1R5cGUgKGR0KSBpcyBDYW5vbmljYWwgKENhbik7CisgKiBpbiB0aGlzIGNh
c2UsIHRoZSByZXN1bHQgY29udGFpbnMgZWl0aGVyIG9uZSBvciB0d28gY29kZSBwb2ludHMgKD0x
Li40IFVDaGFycykuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUg
bW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBp
bnN0YW5jZQorICogQHBhcmFtIGMgY29kZSBwb2ludAorICogQHBhcmFtIGRlY29tcG9zaXRpb24g
U3RyaW5nIGJ1ZmZlciB3aGljaCB3aWxsIGJlIHNldCB0byBjJ3MKKyAqICAgICAgICAgICAgICAg
ICAgICAgIHJhdyBkZWNvbXBvc2l0aW9uIG1hcHBpbmcsIGlmIHRoZXJlIGlzIG9uZS4KKyAqIEBw
YXJhbSBjYXBhY2l0eSBudW1iZXIgb2YgVUNoYXJzIHRoYXQgY2FuIGJlIHdyaXR0ZW4gdG8gZGVj
b21wb3NpdGlvbgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUu
IEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgICBwYXNzIHRoZSBVX1NV
Q0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAgICAgICAg
ICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1
c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNl
ciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSBub24tbmVnYXRpdmUgbGVuZ3Ro
IG9mIGMncyByYXcgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndpc2UgYSBu
ZWdhdGl2ZSB2YWx1ZQorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgaW50MzJfdCBV
X0VYUE9SVDIKK3Vub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uKGNvbnN0IFVOb3JtYWxpemVyMiAq
bm9ybTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcjMyIGMsIFVDaGFyICpkZWNv
bXBvc2l0aW9uLCBpbnQzMl90IGNhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUGVyZm9ybXMgcGFpcndpc2UgY29t
cG9zaXRpb24gb2YgYSAmIGIgYW5kIHJldHVybnMgdGhlIGNvbXBvc2l0ZSBpZiB0aGVyZSBpcyBv
bmUuCisgKgorICogUmV0dXJucyBhIGNvbXBvc2l0ZSBjb2RlIHBvaW50IGMgb25seSBpZiBjIGhh
cyBhIHR3by13YXkgbWFwcGluZyB0byBhK2IuCisgKiBJbiBzdGFuZGFyZCBVbmljb2RlIG5vcm1h
bGl6YXRpb24sIHRoaXMgbWVhbnMgdGhhdAorICogYyBoYXMgYSBjYW5vbmljYWwgZGVjb21wb3Np
dGlvbiB0byBhK2IKKyAqIGFuZCBjIGRvZXMgbm90IGhhdmUgdGhlIEZ1bGxfQ29tcG9zaXRpb25f
RXhjbHVzaW9uIHByb3BlcnR5LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaW5kZXBlbmRlbnQg
b2YgdGhlIG1vZGUgb2YgdGhlIFVOb3JtYWxpemVyMi4KKyAqIEBwYXJhbSBub3JtMiBVTm9ybWFs
aXplcjIgaW5zdGFuY2UKKyAqIEBwYXJhbSBhIEEgKG5vcm1hbGl6YXRpb24gc3RhcnRlcikgY29k
ZSBwb2ludC4KKyAqIEBwYXJhbSBiIEFub3RoZXIgY29kZSBwb2ludC4KKyAqIEByZXR1cm4gVGhl
IG5vbi1uZWdhdGl2ZSBjb21wb3NpdGUgY29kZSBwb2ludCBpZiB0aGVyZSBpcyBvbmU7IG90aGVy
d2lzZSBhIG5lZ2F0aXZlIHZhbHVlLgorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUg
VUNoYXIzMiBVX0VYUE9SVDIKK3Vub3JtMl9jb21wb3NlUGFpcihjb25zdCBVTm9ybWFsaXplcjIg
Km5vcm0yLCBVQ2hhcjMyIGEsIFVDaGFyMzIgYik7CisKKy8qKgorICogR2V0cyB0aGUgY29tYmlu
aW5nIGNsYXNzIG9mIGMuCisgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIDAK
KyAqIGJ1dCBhbGwgc3RhbmRhcmQgaW1wbGVtZW50YXRpb25zIHJldHVybiB0aGUgVW5pY29kZSBD
YW5vbmljYWxfQ29tYmluaW5nX0NsYXNzIHZhbHVlLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxp
emVyMiBpbnN0YW5jZQorICogQHBhcmFtIGMgY29kZSBwb2ludAorICogQHJldHVybiBjJ3MgY29t
YmluaW5nIGNsYXNzCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSB1aW50OF90IFVf
RVhQT1JUMgordW5vcm0yX2dldENvbWJpbmluZ0NsYXNzKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9y
bTIsIFVDaGFyMzIgYyk7CisKKy8qKgogICogVGVzdHMgaWYgdGhlIHN0cmluZyBpcyBub3JtYWxp
emVkLgogICogSW50ZXJuYWxseSwgaW4gY2FzZXMgd2hlcmUgdGhlIHF1aWNrQ2hlY2soKSBtZXRo
b2Qgd291bGQgcmV0dXJuICJtYXliZSIKICAqICh3aGljaCBpcyBvbmx5IHBvc3NpYmxlIGZvciB0
aGUgdHdvIENPTVBPU0UgbW9kZXMpIHRoaXMgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VvYmplY3QuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW9iamVjdC5o
CmluZGV4IDI3ZDRjODRkYTViNjc4ZTJkZjQ4YWU0M2I2ODJhYjU0OTA5MjgzNTAuLjU0Y2VhY2U2
MjZkNzM1Y2JhYzZkODM1YmY2YWJhMzQ4MzNhOWY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdW9iamVjdC5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW9iamVj
dC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENv
cHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksNTAgKzE5LDExIEBACiAKICNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgogCi1VX05BTUVTUEFDRV9CRUdJTgotCiAvKioKICAqIFxmaWxlCiAg
KiBcYnJpZWYgQysrIEFQSTogQ29tbW9uIElDVSBiYXNlIGNsYXNzIFVPYmplY3QuCiAgKi8KIAot
LyoqICBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIC0gRGVmaW5lIHRoaXMgdG8gb3ZlcnJpZGUg
b3BlcmF0b3IgbmV3IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRl
IGluIFVNZW1vcnkuIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgSUNVLgotICoKLSAqICAgICAgICAg
RW5hYmxpbmcgZm9yY2VzIGFsbCBhbGxvY2F0aW9uIG9mIElDVSBvYmplY3QgdHlwZXMgdG8gdXNl
IElDVSdzCi0gKiAgICAgICAgIG1lbW9yeSBhbGxvY2F0aW9uLiBPbiBXaW5kb3dzLCB0aGlzIGFs
bG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5Ci0gKiAgICAgICAgIGFwcGxpY2F0aW9ucyB0
aGF0IHN0YXRpY2FsbHkgbGluayB0aGUgQyBSdW50aW1lIGxpYnJhcnksIG1lYW5pbmcgdGhhdAot
ICogICAgICAgICB0aGUgYXBwIGFuZCBJQ1Ugd2lsbCBiZSB1c2luZyBkaWZmZXJlbnQgaGVhcHMu
Ci0gKgotICogQHN0YWJsZSBJQ1UgMi4yCi0gKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmluZSBVX09WRVJSSURF
X0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotCi0vKiogCi0gKiBcZGVmIFVfSEFWRV9QTEFDRU1F
TlRfTkVXCi0gKiAgRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBwbGFjZW1lbnQgbmV3IGFuZAot
ICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpbiBVTWVtb3J5IGZvciBTVEwuCi0g
KgotICogQHN0YWJsZSBJQ1UgMi42Ci0gKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9O
RVcgMQotI2VuZGlmCi0KLQotLyoqIAotICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVX
IAotICogRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBNRkMgZGVidWcKLSAqIHZlcnNpb24gb2Yg
dGhlIG9wZXJhdG9yIG5ldy4KLSAqCi0gKiBAc3RhYmxlIElDVSAzLjQKLSAqLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAotI2lmbmRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXCi0j
ZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAotI2VuZGlmCi0KIC8qKgogICogQHsK
ICAqIFxkZWYgVV9OT19USFJPVwpAQCAtNzUsMTQgKzM2LDYyIEBAIFVfTkFNRVNQQUNFX0JFR0lO
CiAgKiAgICAgICAgIGNvbnN0cnVjdG9yIGlzIHN0aWxsIGNhbGxlZCwgYW5kIGlmIHRoZSBjb25z
dHJ1Y3RvciByZWZlcmVuY2VzIG1lbWJlciAKICAqICAgICAgICAgZGF0YSwgKHdoaWNoIGl0IHR5
cGljYWxseSBkb2VzKSwgdGhlIHJlc3VsdCBpcyBhIHNlZ21lbnRhdGlvbiB2aW9sYXRpb24uCiAg
KgotICogQGRyYWZ0IElDVSA0LjIKLSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor
ICogQHN0YWJsZSBJQ1UgNC4yCisgKi8KICNpZm5kZWYgVV9OT19USFJPVwogI2RlZmluZSBVX05P
X1RIUk9XIHRocm93KCkKICNlbmRpZgogCiAvKiogQH0gKi8KIAorLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLworLyogVUNsYXNzSUQtYmFzZWQgUlRUSSAqLworLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwor
CisvKioKKyAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xhc3NlcyB3aXRob3V0IHVz
aW5nIHRoZSBjb21waWxlcidzIFJUVEkuCisgKiBUaGlzIHdhcyB1c2VkIGJlZm9yZSBDKysgY29t
cGlsZXJzIGNvbnNpc3RlbnRseSBzdXBwb3J0ZWQgUlRUSS4KKyAqIElDVSA0LjYgcmVxdWlyZXMg
Y29tcGlsZXIgUlRUSSB0byBiZSB0dXJuZWQgb24uCisgKgorICogRWFjaCBjbGFzcyBoaWVyYXJj
aHkgd2hpY2ggbmVlZHMKKyAqIHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgpIG9yIG9w
ZXJhdG9yPT0oKSBkZWZpbmVzIHR3byBtZXRob2RzLAorICogZGVzY3JpYmVkIGluIGRldGFpbCBi
ZWxvdy4gIFVDbGFzc0lEIHZhbHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKKyAqIG9wZXJhdG9y
PT0oKS4gTm90aGluZyBlbHNlIHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KKyAqCisgKiBccGFy
CisgKiBJbiBjbGFzcyBoaWVyYXJjaGllcyB0aGF0IGltcGxlbWVudCAicG9vciBtYW4ncyBSVFRJ
IiwKKyAqIGVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBnZXREeW5hbWljQ2xhc3NJ
RCgpIGluIHRoZSBzYW1lIHdheToKKyAqCisgKiBcY29kZQorICogICAgICBjbGFzcyBEZXJpdmVk
IHsKKyAqICAgICAgcHVibGljOgorICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCgpIGNvbnN0CisgKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6OmdldFN0
YXRpY0NsYXNzSUQoKTsgfQorICogICAgICB9CisgKiBcZW5kY29kZQorICoKKyAqIEVhY2ggY29u
Y3JldGUgY2xhc3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwgd2hpY2gg
YWxsb3dzCisgKiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KKyAqCisgKiBc
Y29kZQorICogICAgICBjbGFzcyBEZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICogICAgICAg
ICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisgKiAgICAg
IHByaXZhdGU6CisgKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7CisgKiAgICAgIH0K
KyAqCisgKiAgICAgIC8vIEluIERlcml2ZWQuY3BwOgorICogICAgICBVQ2xhc3NJRCBEZXJpdmVk
OjpnZXRTdGF0aWNDbGFzc0lEKCkKKyAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQpJkRlcml2
ZWQ6OmZnQ2xhc3NJRDsgfQorICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9IDA7IC8v
IFZhbHVlIGlzIGlycmVsZXZhbnQKKyAqIFxlbmRjb2RlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LwordHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwogLyoqCiAg
KiBVTWVtb3J5IGlzIHRoZSBjb21tb24gSUNVIGJhc2UgY2xhc3MuCiAgKiBBbGwgb3RoZXIgSUNV
IEMrKyBjbGFzc2VzIGFyZSBkZXJpdmVkIGZyb20gVU1lbW9yeSAoc3RhcnRpbmcgd2l0aCBJQ1Ug
Mi40KS4KQEAgLTE5NiwxMCArMjA1LDcgQEAgcHVibGljOgogICogYW5kIGFsbCBvdGhlciBwdWJs
aWMgSUNVIEMrKyBjbGFzc2VzCiAgKiBhcmUgZGVyaXZlZCBmcm9tIFVPYmplY3QgKHN0YXJ0aW5n
IHdpdGggSUNVIDIuMikuCiAgKgotICogVU9iamVjdCBjb250YWlucyBjb21tb24gdmlydHVhbCBm
dW5jdGlvbnMgbGlrZSBmb3IgSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBJdCBkb2VzIG5v
dCBjb250YWluIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwotICog
bGlrZSBnZXREeW5hbWljQ2xhc3NJRCB0byBhbGxvdyBkZXJpdmVkIGNsYXNzZXMgc3VjaCBhcyBG
b3JtYXQKLSAqIHRvIGRlY2xhcmUgdGhlc2UgYXMgcHVyZSB2aXJ0dWFsLgorICogVU9iamVjdCBj
b250YWlucyBjb21tb24gdmlydHVhbCBmdW5jdGlvbnMsIGluIHBhcnRpY3VsYXIgYSB2aXJ0dWFs
IGRlc3RydWN0b3IuCiAgKgogICogVGhlIGNsb25lKCkgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJs
ZSBpbiBVT2JqZWN0IGJlY2F1c2UgaXQgaXMgbm90CiAgKiBpbXBsZW1lbnRlZCBieSBhbGwgSUNV
IGNsYXNzZXMuCkBAIC0yMjMsMjEgKzIyOSwyMyBAQCBwdWJsaWM6CiAKICAgICAvKioKICAgICAg
KiBJQ1U0QyAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0
dWFsIElDVSBjbGFzcy4KKyAgICAgKiBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiByZXR1
cm5zIGEgZHVtbXkgdmFsdWUuCisgICAgICoKKyAgICAgKiBVc2UgY29tcGlsZXIgUlRUSSByYXRo
ZXIgdGhhbiBJQ1UncyAicG9vciBtYW4ncyBSVFRJIi4KKyAgICAgKiBTaW5jZSBJQ1UgNC42LCBu
ZXcgSUNVIEMrKyBjbGFzcyBoaWVyYXJjaGllcyBkbyBub3QgaW1wbGVtZW50ICJwb29yIG1hbidz
IFJUVEkiLgogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4yCiAgICAgICovCi0gICAgdmly
dHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICAv
LyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcHJvdGVjdGVkIHRvIHByZXZlbnQgaW5zdGFu
dGlhdGlvbiBhbmQKICAgICAvLyBkaXJlY3QgdXNlIG9mIFVPYmplY3QgaXRzZWxmCiAKICAgICAv
LyBkZWZhdWx0IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIFVPYmpl
Y3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAgICAvLyBpbmxpbmUgVU9i
amVjdCgpIHt9CiAKICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91
dCBiZWNhdXNlIFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAg
ICAvLyBpbmxpbmUgVU9iamVjdChjb25zdCBVT2JqZWN0ICZvdGhlcikge30KIAogI2lmIDAKQEAg
LTI3MiwyMSArMjgwLDkgQEAgcHJvdGVjdGVkOgogICAgICAqIGhlcmUgd291bGQgYmUgdG8gZGVj
bGFyZSBhbmQgZW1wdHktaW1wbGVtZW50IGEgcHJvdGVjdGVkIG9yIHB1YmxpYyBvbmUuCiAgICAg
VU9iamVjdCAmVU9iamVjdDo6b3BlcmF0b3I9KGNvbnN0IFVPYmplY3QgJik7CiAgICAgICovCi0K
LS8vIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBmb3IgUlRUSSB0aGF0IHN1cHBvcnQgc3VidHlwaW5n
LiBbYWxhbl0KLS8vIAotLy8gIHB1YmxpYzoKLS8vICAgICAvKioKLS8vICAgICAgKiBAaW50ZXJu
YWwKLS8vICAgICAgKi8KLS8vICAgICBzdGF0aWMgVUNsYXNzSUQgZ2V0U3RhdGljQ2xhc3NJRCgp
OwotLy8gCi0vLyAgICAgLyoqCi0vLyAgICAgICogQGludGVybmFsCi0vLyAgICAgICovCi0vLyAg
ICAgVUJvb2wgaW5zdGFuY2VPZihVQ2xhc3NJRCB0eXBlKSBjb25zdDsKIH07CiAKKyNpZm5kZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBUaGlzIGlzIGEgc2ltcGxlIG1hY3JvIHRvIGFk
ZCBJQ1UgUlRUSSB0byBhbiBJQ1Ugb2JqZWN0IGltcGxlbWVudGF0aW9uLgogICogVGhpcyBkb2Vz
IG5vdCBnbyBpbnRvIHRoZSBoZWFkZXIuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiAqLmNw
cCBmaWxlcy4KQEAgLTMxNywzNSArMzEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4g
KFVDbGFzc0lEKSZjbGFzc0lEOyBcCiAgICAgfQogCi0vKioKLSAqIFRoaXMgaXMgYSBzaW1wbGUg
bWFjcm8gdG8gZXhwcmVzcyB0aGF0IGEgY2xhc3MgYW5kIGl0cyBzdWJjbGFzc2VzIGRvIG5vdCBv
ZmZlcgotICogSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBCZWdpbm5pbmcgd2l0aCBJQ1Ug
NC42LCBJQ1UgcmVxdWlyZXMgQysrIGNvbXBpbGVyIFJUVEkuCi0gKiBUaGlzIGRvZXMgbm90IGdv
IGludG8gdGhlIGhlYWRlci4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGluICouY3BwIGZpbGVz
LgotICogVXNlIHRoaXMgd2l0aCBhIHByaXZhdGUgZ2V0RHluYW1pY0NsYXNzSUQoKSBpbiBhbiBp
bW1lZGlhdGUgc3ViY2xhc3Mgb2YgVU9iamVjdC4KLSAqCi0gKiBAcGFyYW0gbXlDbGFzcyBUaGUg
bmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBuZWVkcyBSVFRJIGRlZmluZWQuCi0gKiBAaW50ZXJuYWwK
LSAqLwotI2RlZmluZSBVT0JKRUNUX0RFRklORV9OT19SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xh
c3MpIFwKLSAgICBVQ2xhc3NJRCBteUNsYXNzOjpnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0IHsg
cmV0dXJuIE5VTEw7IH0KLQotLy8gLyoqCi0vLyAgKiBUaGlzIG1hY3JvIGFkZHMgSUNVIFJUVEkg
dG8gYW4gSUNVIGNvbmNyZXRlIGNsYXNzIGltcGxlbWVudGF0aW9uLgotLy8gICogVGhpcyBtYWNy
byBzaG91bGQgYmUgaW52b2tlZCBpbiAqLmNwcCBmaWxlcy4gIFRoZSBjb3JyZXNwb25kaW5nCi0v
LyAgKiBoZWFkZXIgc2hvdWxkIGRlY2xhcmUgZ2V0RHluYW1pY0NsYXNzSUQgYW5kIGdldFN0YXRp
Y0NsYXNzSUQuCi0vLyAgKgotLy8gICogQHBhcmFtIG15Q2xhc3MgVGhlIG5hbWUgb2YgdGhlIGNs
YXNzIHRoYXQgbmVlZHMgUlRUSSBkZWZpbmVkLgotLy8gICogQHBhcmFtIG15UGFyZW50IFRoZSBu
YW1lIG9mIHRoZSBteUNsYXNzJ3MgcGFyZW50LgotLy8gICogQGludGVybmFsCi0vLyAgKi8KLS8q
I2RlZmluZSBVT0JKRUNUX0RFRklORV9SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xhc3MsIG15UGFy
ZW50KSBcCi0gICAgVU9CSkVDVF9ERUZJTkVfQUJTVFJBQ1RfUlRUSV9JTVBMRU1FTlRBVElPTiht
eUNsYXNzLCBteVBhcmVudCkgXAotICAgIFVDbGFzc0lEIG15Q2xhc3M6OmdldER5bmFtaWNDbGFz
c0lEKCkgY29uc3QgeyBcCi0gICAgICAgIHJldHVybiBteUNsYXNzOjpnZXRTdGF0aWNDbGFzc0lE
KCk7IFwKLSAgICB9Ci0qLwotCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAog
VV9OQU1FU1BBQ0VfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXJl
bmFtZS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91cmVuYW1lLmgKaW5kZXggNDY4YmRiZDBm
NDY5MjRkYzJlZTkzMzc0MDhlODY3MmEyZTg2N2E0OS4uNmIxZjQ5MDk4NzUwNjliNGQ5ZmVlZmRk
NzQ4M2Y1YTAzZmM1MDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91cmVu
YW1lLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91cmVuYW1lLmgKQEAgLTEsNiArMSw2
IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0y
MDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAy
MDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKICoKQEAgLTksNyArOSw3IEBACiAqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCiAqICAg
aW5kZW50YXRpb246NAogKgotKiAgIENyZWF0ZWQgYnk6IFBlcmwgc2NyaXB0IHdyaXR0ZW4gYnkg
VmxhZGltaXIgV2VpbnN0ZWluCisqICAgQ3JlYXRlZCBieTogUGVybCBzY3JpcHQgdG9vbHMvZ2Vu
cmVuLnBsIHdyaXR0ZW4gYnkgVmxhZGltaXIgV2VpbnN0ZWluCiAqCiAqICBDb250YWlucyBkYXRh
IGZvciByZW5hbWluZyBJQ1UgZXhwb3J0cy4KICogIEdldHMgaW5jbHVkZWQgYnkgdW1hY2hpbmUu
aApAQCAtMjEsOSArMjEsMTMgQEAKICNpZm5kZWYgVVJFTkFNRV9ICiAjZGVmaW5lIFVSRU5BTUVf
SAogCi0vKiBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIGRpc2FibGUgcmVuYW1pbmcg
b24gcGxhdGZvcm1zCi0gICB0aGF0IGRvIG5vdCB1c2UgQXV0b2NvbmYuICovCi0vKiAjZGVmaW5l
IFVfRElTQUJMRV9SRU5BTUlORyAxICovCisvKiBVX0RJU0FCTEVfUkVOQU1JTkcgY2FuIGJlIGRl
ZmluZWQgaW4gdGhlIGZvbGxvd2luZyB3YXlzOgorICogICAtIHdoZW4gcnVubmluZyBjb25maWd1
cmUsIGUuZy4KKyAqICAgICAgICBydW5Db25maWd1cmVJQ1UgTGludXggLS1kaXNhYmxlLXJlbmFt
aW5nCisgKiAgIC0gYnkgY2hhbmdpbmcgdGhlIGRlZmF1bHQgc2V0dGluZyBvZiBVX0RJU0FCTEVf
UkVOQU1JTkcgaW4gdWNvbmZpZy5oCisgKi8KKworI2luY2x1ZGUgInVuaWNvZGUvdWNvbmZpZy5o
IgogCiAjaWYgIVVfRElTQUJMRV9SRU5BTUlORwogCkBAIC0zMSw2ICszNSw3IEBACiAgICB0aGUg
cGxhdGZvcm0gYSBjaGFuY2UgdG8gZGVmaW5lIGl0IGZpcnN0LgogICAgTm9ybWFsbHkgKGlmIHV0
eXBlcy5oIG9yIHVtYWNoaW5lLmggd2FzIGluY2x1ZGVkIGZpcnN0KSB0aGlzIHdpbGwgbm90IGJl
IG5lY2Vzc2FyeSBhcyBpdCB3aWxsIGFscmVhZHkgYmUgZGVmaW5lZC4KICAqLworCiAjaWZuZGVm
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQogI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hpbmUuaCIK
ICNlbmRpZgpAQCAtNDgsMTQgKzUzLDkgQEAKIAogLyogQyBleHBvcnRzIHJlbmFtaW5nIGRhdGEg
Ki8KIAotI2RlZmluZSBERUNQT1dFUlMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERFQ1BPV0VS
UykKLSNkZWZpbmUgREVDU1RJQ0tZVEFCIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShERUNTVElD
S1lUQUIpCi0jZGVmaW5lIExObm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExObm4pCiAjZGVm
aW5lIFRfQ1N0cmluZ19pbnQ2NFRvU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NT
dHJpbmdfaW50NjRUb1N0cmluZykKICNkZWZpbmUgVF9DU3RyaW5nX2ludGVnZXJUb1N0cmluZyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX2ludGVnZXJUb1N0cmluZykKLSNkZWZp
bmUgVF9DU3RyaW5nX3N0cmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19z
dHJpY21wKQogI2RlZmluZSBUX0NTdHJpbmdfc3RyaW5nVG9JbnRlZ2VyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUX0NTdHJpbmdfc3RyaW5nVG9JbnRlZ2VyKQotI2RlZmluZSBUX0NTdHJpbmdf
c3RybmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19zdHJuaWNtcCkKICNk
ZWZpbmUgVF9DU3RyaW5nX3RvTG93ZXJDYXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NT
dHJpbmdfdG9Mb3dlckNhc2UpCiAjZGVmaW5lIFRfQ1N0cmluZ190b1VwcGVyQ2FzZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3RvVXBwZXJDYXNlKQogI2RlZmluZSBVQ05WX0ZS
T01fVV9DQUxMQkFDS19FU0NBUEUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDTlZfRlJPTV9V
X0NBTExCQUNLX0VTQ0FQRSkKQEAgLTc1LDYgKzc1LDcgQEAKICNkZWZpbmUgX0FTQ0lJRGF0YSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0FTQ0lJRGF0YSkKICNkZWZpbmUgX0JvY3UxRGF0YSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0JvY3UxRGF0YSkKICNkZWZpbmUgX0NFU1U4RGF0YSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0NFU1U4RGF0YSkKKyNkZWZpbmUgX0NvbXBvdW5kVGV4
dERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9Db21wb3VuZFRleHREYXRhKQogI2RlZmlu
ZSBfSFpEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfSFpEYXRhKQogI2RlZmluZSBfSU1B
UERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9JTUFQRGF0YSkKICNkZWZpbmUgX0lTQ0lJ
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0lTQ0lJRGF0YSkKQEAgLTEwMiwyMSArMTAz
LDggQEAKICNkZWZpbmUgX1VURjMyTEVEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfVVRG
MzJMRURhdGEpCiAjZGVmaW5lIF9VVEY3RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX1VU
RjdEYXRhKQogI2RlZmluZSBfVVRGOERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9VVEY4
RGF0YSkKLSNkZWZpbmUgYm1zX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfY2xv
c2UpCi0jZGVmaW5lIGJtc19lbXB0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX2VtcHR5
KQotI2RlZmluZSBibXNfZ2V0RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX2dldERh
dGEpCi0jZGVmaW5lIGJtc19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfb3BlbikK
LSNkZWZpbmUgYm1zX3NlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX3NlYXJjaCkK
LSNkZWZpbmUgYm1zX3NldFRhcmdldFN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1z
X3NldFRhcmdldFN0cmluZykKLSNkZWZpbmUgYnVpbGRXU0NvbmZ1c2FibGVEYXRhIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShidWlsZFdTQ29uZnVzYWJsZURhdGEpCiAjZGVmaW5lIGNtZW1vcnlf
Y2xlYW51cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY21lbW9yeV9jbGVhbnVwKQogI2RlZmlu
ZSBjbWVtb3J5X2luVXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShjbWVtb3J5X2luVXNlKQot
I2RlZmluZSBkMnV0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZDJ1dGFibGUpCi0jZGVm
aW5lIGRlbGV0ZUNFTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlQ0VMaXN0KQot
I2RlZmluZSBkZWxldGVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlQ2hhcnMp
Ci0jZGVmaW5lIGRlbGV0ZUNvbGxEYXRhQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoZGVsZXRlQ29sbERhdGFDYWNoZUVudHJ5KQotI2RlZmluZSBkZWxldGVTdHJpbmdMaXN0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVTdHJpbmdMaXN0KQotI2RlZmluZSBkZWxldGVV
bmljb2RlU3RyaW5nS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVVbmljb2RlU3Ry
aW5nS2V5KQogI2RlZmluZSBpenJ1bGVfY2xvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGl6
cnVsZV9jbG9uZSkKICNkZWZpbmUgaXpydWxlX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShpenJ1bGVfY2xvc2UpCiAjZGVmaW5lIGl6cnVsZV9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGl6cnVsZV9lcXVhbHMpCkBAIC0yMTIsOCArMjAwLDYgQEAKICNkZWZpbmUgcmVzX2xv
YWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc19sb2FkKQogI2RlZmluZSByZXNfcmVhZCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUocmVzX3JlYWQpCiAjZGVmaW5lIHJlc191bmxvYWQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc191bmxvYWQpCi0jZGVmaW5lIHRtdXRmbXRIYXNoVGFi
bGVWYWx1ZUNvbXBhcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHRtdXRmbXRIYXNoVGFi
bGVWYWx1ZUNvbXBhcmF0b3IpCi0jZGVmaW5lIHRyaWVkaWN0X3N3YXAgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHRyaWVkaWN0X3N3YXApCiAjZGVmaW5lIHVfVUNoYXJzVG9DaGFycyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9VQ2hhcnNUb0NoYXJzKQogI2RlZmluZSB1X2F1c3RyY3B5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2F1c3RyY3B5KQogI2RlZmluZSB1X2F1c3RybmNweSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9hdXN0cm5jcHkpCkBAIC0yMzksNiArMjI1LDcgQEAK
ICNkZWZpbmUgdV9mZW9mIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2Zlb2YpCiAjZGVmaW5l
IHVfZmZsdXNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZmbHVzaCkKICNkZWZpbmUgdV9m
Z2V0Q29udmVydGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXRDb252ZXJ0ZXIpCisj
ZGVmaW5lIHVfZmdldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0
TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1X2ZnZXRjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2ZnZXRjKQogI2RlZmluZSB1X2ZnZXRjb2RlcGFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9mZ2V0Y29kZXBhZ2UpCiAjZGVmaW5lIHVfZmdldGN4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X2ZnZXRjeCkKQEAgLTI2Nyw2ICsyNTQsNyBAQAogI2RlZmluZSB1X2ZzZXR0cmFuc2xpdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mc2V0dHJhbnNsaXRlcmF0b3IpCiAjZGVm
aW5lIHVfZnN0cm9wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnN0cm9wZW4pCiAjZGVm
aW5lIHVfZnVuZ2V0YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mdW5nZXRjKQorI2RlZmlu
ZSB1X2dldEJpZGlQYWlyZWRCcmFja2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldEJp
ZGlQYWlyZWRCcmFja2V0KQogI2RlZmluZSB1X2dldENvbWJpbmluZ0NsYXNzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2dldENvbWJpbmluZ0NsYXNzKQogI2RlZmluZSB1X2dldERhdGFEaXJl
Y3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0RGF0YURpcmVjdG9yeSkKICNkZWZp
bmUgdV9nZXREYXRhVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXREYXRhVmVy
c2lvbikKQEAgLTI3Niw2ICsyNjQsNyBAQAogI2RlZmluZSB1X2dldEludFByb3BlcnR5TWF4VmFs
dWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSkKICNk
ZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eU1pblZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2dldEludFByb3BlcnR5TWluVmFsdWUpCiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlWYWx1ZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0eVZhbHVlKQorI2RlZmluZSB1
X2dldE1haW5Qcm9wZXJ0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldE1haW5Qcm9w
ZXJ0aWVzKQogI2RlZmluZSB1X2dldE51bWVyaWNWYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9nZXROdW1lcmljVmFsdWUpCiAjZGVmaW5lIHVfZ2V0UHJvcGVydHlFbnVtIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1X2dldFByb3BlcnR5RW51bSkKICNkZWZpbmUgdV9nZXRQcm9wZXJ0
eU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0UHJvcGVydHlOYW1lKQpAQCAtMjg0
LDkgKzI3Myw5IEBACiAjZGVmaW5lIHVfZ2V0VW5pY29kZVByb3BlcnRpZXMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVfZ2V0VW5pY29kZVByb3BlcnRpZXMpCiAjZGVmaW5lIHVfZ2V0VW5pY29k
ZVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0VW5pY29kZVZlcnNpb24pCiAj
ZGVmaW5lIHVfZ2V0VmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRWZXJzaW9u
KQorI2RlZmluZSB1X2dldF9zdGRvdXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0X3N0
ZG91dCkKICNkZWZpbmUgdV9oYXNCaW5hcnlQcm9wZXJ0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9oYXNCaW5hcnlQcm9wZXJ0eSkKICNkZWZpbmUgdV9pbml0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2luaXQpCi0jZGVmaW5lIHVfaXNEYXRhT2xkZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVfaXNEYXRhT2xkZXIpCiAjZGVmaW5lIHVfaXNJRElnbm9yYWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9pc0lESWdub3JhYmxlKQogI2RlZmluZSB1X2lzSURQYXJ0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzSURQYXJ0KQogI2RlZmluZSB1X2lzSURTdGFydCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0lEU3RhcnQpCkBAIC0zMTgsNyArMzA3LDYgQEAKICNk
ZWZpbmUgdV9pc3RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzdGl0bGUpCiAjZGVm
aW5lIHVfaXN1cHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3VwcGVyKQogI2RlZmlu
ZSB1X2lzeGRpZ2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzeGRpZ2l0KQotI2RlZmlu
ZSB1X2xlbmd0aE9mSWRlbnRpY2FsTGV2ZWxSdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
bGVuZ3RoT2ZJZGVudGljYWxMZXZlbFJ1bikKICNkZWZpbmUgdV9sb2NidW5kX2Nsb3NlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xvY2J1bmRfY2xvc2UpCiAjZGVmaW5lIHVfbG9jYnVuZF9n
ZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbG9jYnVuZF9nZXROdW1i
ZXJGb3JtYXQpCiAjZGVmaW5lIHVfbG9jYnVuZF9pbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X2xvY2J1bmRfaW5pdCkKQEAgLTMzNCw3ICszMjIsOSBAQAogI2RlZmluZSB1X21lbXNldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9tZW1zZXQpCiAjZGVmaW5lIHVfcGFyc2VNZXNzYWdl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3BhcnNlTWVzc2FnZSkKICNkZWZpbmUgdV9wYXJz
ZU1lc3NhZ2VXaXRoRXJyb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcGFyc2VNZXNzYWdl
V2l0aEVycm9yKQorI2RlZmluZSB1X3ByaW50ZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9w
cmludGYpCiAjZGVmaW5lIHVfcHJpbnRmX3BhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X3ByaW50Zl9wYXJzZSkKKyNkZWZpbmUgdV9wcmludGZfdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9wcmludGZfdSkKICNkZWZpbmUgdV9yZWxlYXNlRGVmYXVsdENvbnZlcnRlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9yZWxlYXNlRGVmYXVsdENvbnZlcnRlcikKICNkZWZpbmUgdV9z
Y2FuZl9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9zY2FuZl9wYXJzZSkKICNkZWZp
bmUgdV9zZXRBdG9taWNJbmNEZWNGdW5jdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
c2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zKQpAQCAtNDQ2LDcgKzQzNiwxMCBAQAogI2RlZmluZSB1
YmlkaV9nZXRNYXhWYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0TWF4VmFs
dWUpCiAjZGVmaW5lIHViaWRpX2dldE1lbW9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJp
ZGlfZ2V0TWVtb3J5KQogI2RlZmluZSB1YmlkaV9nZXRNaXJyb3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHViaWRpX2dldE1pcnJvcikKKyNkZWZpbmUgdWJpZGlfZ2V0UGFpcmVkQnJhY2tldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFpcmVkQnJhY2tldCkKKyNkZWZpbmUg
dWJpZGlfZ2V0UGFpcmVkQnJhY2tldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRp
X2dldFBhaXJlZEJyYWNrZXRUeXBlKQogI2RlZmluZSB1YmlkaV9nZXRQYXJhTGV2ZWwgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFMZXZlbCkKKyNkZWZpbmUgdWJpZGlfZ2V0
UGFyYUxldmVsQXRJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFyYUxl
dmVsQXRJbmRleCkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYWdyYXBoIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1YmlkaV9nZXRQYXJhZ3JhcGgpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFncmFwaEJ5
SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFncmFwaEJ5SW5kZXgp
CiAjZGVmaW5lIHViaWRpX2dldFByb2Nlc3NlZExlbmd0aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWJpZGlfZ2V0UHJvY2Vzc2VkTGVuZ3RoKQpAQCAtNDcxLDYgKzQ2NCw3IEBACiAjZGVmaW5l
IHViaWRpX3Jlb3JkZXJMb2dpY2FsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9yZW9y
ZGVyTG9naWNhbCkKICNkZWZpbmUgdWJpZGlfcmVvcmRlclZpc3VhbCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWJpZGlfcmVvcmRlclZpc3VhbCkKICNkZWZpbmUgdWJpZGlfc2V0Q2xhc3NDYWxs
YmFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0Q2xhc3NDYWxsYmFjaykKKyNk
ZWZpbmUgdWJpZGlfc2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0
Q29udGV4dCkKICNkZWZpbmUgdWJpZGlfc2V0SW52ZXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWJpZGlfc2V0SW52ZXJzZSkKICNkZWZpbmUgdWJpZGlfc2V0TGluZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWJpZGlfc2V0TGluZSkKICNkZWZpbmUgdWJpZGlfc2V0UGFyYSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0UGFyYSkKQEAgLTQ5NSw2ICs0ODksNyBAQAogI2Rl
ZmluZSB1YnJrX29wZW5SdWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19vcGVuUnVs
ZXMpCiAjZGVmaW5lIHVicmtfcHJlY2VkaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJr
X3ByZWNlZGluZykKICNkZWZpbmUgdWJya19wcmV2aW91cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWJya19wcmV2aW91cykKKyNkZWZpbmUgdWJya19yZWZyZXNoVVRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVicmtfcmVmcmVzaFVUZXh0KQogI2RlZmluZSB1YnJrX3NhZmVDbG9uZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zYWZlQ2xvbmUpCiAjZGVmaW5lIHVicmtfc2V0
VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zZXRUZXh0KQogI2RlZmluZSB1YnJr
X3NldFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3NldFVUZXh0KQpAQCAtNTEz
LDYgKzUwOCw3IEBACiAjZGVmaW5lIHVjYWxfZ2V0RFNUU2F2aW5ncyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNhbF9nZXREU1RTYXZpbmdzKQogI2RlZmluZSB1Y2FsX2dldERheU9mV2Vla1R5
cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZSkKICNkZWZp
bmUgdWNhbF9nZXREZWZhdWx0VGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxf
Z2V0RGVmYXVsdFRpbWVab25lKQorI2RlZmluZSB1Y2FsX2dldEZpZWxkRGlmZmVyZW5jZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRGaWVsZERpZmZlcmVuY2UpCiAjZGVmaW5lIHVj
YWxfZ2V0R3JlZ29yaWFuQ2hhbmdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldEdy
ZWdvcmlhbkNoYW5nZSkKICNkZWZpbmUgdWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUpCiAj
ZGVmaW5lIHVjYWxfZ2V0TGltaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0TGlt
aXQpCkBAIC01MjEsMTMgKzUxNywxOCBAQAogI2RlZmluZSB1Y2FsX2dldE5vdyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9nZXROb3cpCiAjZGVmaW5lIHVjYWxfZ2V0VFpEYXRhVmVyc2lv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUWkRhdGFWZXJzaW9uKQogI2RlZmlu
ZSB1Y2FsX2dldFRpbWVab25lRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YWxfZ2V0VGltZVpvbmVEaXNwbGF5TmFtZSkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZUlEIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lSUQpCisjZGVmaW5lIHVjYWxf
Z2V0VGltZVpvbmVJREZvcldpbmRvd3NJRCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9n
ZXRUaW1lWm9uZUlERm9yV2luZG93c0lEKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lVHJhbnNp
dGlvbkRhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVUcmFuc2l0
aW9uRGF0ZSkKICNkZWZpbmUgdWNhbF9nZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX2dldFR5cGUpCiAjZGVmaW5lIHVjYWxfZ2V0V2Vla2VuZFRyYW5zaXRpb24gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0V2Vla2VuZFRyYW5zaXRpb24pCisjZGVmaW5lIHVjYWxf
Z2V0V2luZG93c1RpbWVab25lSUQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0V2lu
ZG93c1RpbWVab25lSUQpCiAjZGVmaW5lIHVjYWxfaW5EYXlsaWdodFRpbWUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYWxfaW5EYXlsaWdodFRpbWUpCiAjZGVmaW5lIHVjYWxfaXNTZXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfaXNTZXQpCiAjZGVmaW5lIHVjYWxfaXNXZWVrZW5k
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2lzV2Vla2VuZCkKICNkZWZpbmUgdWNhbF9v
cGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW4pCiAjZGVmaW5lIHVjYWxfb3Bl
bkNvdW50cnlUaW1lWm9uZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfb3BlbkNvdW50
cnlUaW1lWm9uZXMpCisjZGVmaW5lIHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uKQogI2Rl
ZmluZSB1Y2FsX29wZW5UaW1lWm9uZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfb3Bl
blRpbWVab25lcykKICNkZWZpbmUgdWNhbF9yb2xsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX3JvbGwpCiAjZGVmaW5lIHVjYWxfc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2Fs
X3NldCkKQEAgLTU2MCw2ICs1NjEsOCBAQAogI2RlZmluZSB1Y2FzZW1hcF9nZXRCcmVha0l0ZXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKQog
I2RlZmluZSB1Y2FzZW1hcF9nZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNl
bWFwX2dldExvY2FsZSkKICNkZWZpbmUgdWNhc2VtYXBfZ2V0T3B0aW9ucyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0T3B0aW9ucykKKyNkZWZpbmUgdWNhc2VtYXBfaW50ZXJu
YWxVVEY4VG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfaW50ZXJuYWxV
VEY4VG9UaXRsZSkKKyNkZWZpbmUgdWNhc2VtYXBfbWFwVVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNhc2VtYXBfbWFwVVRGOCkKICNkZWZpbmUgdWNhc2VtYXBfb3BlbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfb3BlbikKICNkZWZpbmUgdWNhc2VtYXBfc2V0QnJlYWtJ
dGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRv
cikKICNkZWZpbmUgdWNhc2VtYXBfc2V0TG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FzZW1hcF9zZXRMb2NhbGUpCkBAIC01NjksMTEgKzU3Miw2IEBACiAjZGVmaW5lIHVjYXNlbWFw
X3V0ZjhUb0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF91dGY4VG9Mb3dl
cikKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYXNlbWFwX3V0ZjhUb1RpdGxlKQogI2RlZmluZSB1Y2FzZW1hcF91dGY4VG9VcHBlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRvVXBwZXIpCi0jZGVmaW5lIHVjZF9j
bG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2Nsb3NlKQotI2RlZmluZSB1Y2RfZmx1
c2hDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2ZsdXNoQ2FjaGUpCi0jZGVmaW5l
IHVjZF9mcmVlQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9mcmVlQ2FjaGUpCi0j
ZGVmaW5lIHVjZF9nZXRDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2dldENv
bGxhdG9yKQotI2RlZmluZSB1Y2Rfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX29w
ZW4pCiAjZGVmaW5lIHVjaGFyX2FkZFByb3BlcnR5U3RhcnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0cykKICNkZWZpbmUgdWNoYXJfc3dhcE5hbWVzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2hhcl9zd2FwTmFtZXMpCiAjZGVmaW5lIHVjbG5fY2xl
YW51cE9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNsbl9jbGVhbnVwT25lKQpAQCAtNjU2
LDYgKzY1NCw3IEBACiAjZGVmaW5lIHVjbnZfaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUpCiAjZGVmaW5l
IHVjbnZfaW9fc3RyaXBFQkNESUNGb3JDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y252X2lvX3N0cmlwRUJDRElDRm9yQ29tcGFyZSkKICNkZWZpbmUgdWNudl9pc0FtYmlndW91cyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pc0FtYmlndW91cykKKyNkZWZpbmUgdWNudl9p
c0ZpeGVkV2lkdGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaXNGaXhlZFdpZHRoKQog
I2RlZmluZSB1Y252X2xvYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfbG9hZCkKICNk
ZWZpbmUgdWNudl9sb2FkU2hhcmVkRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9s
b2FkU2hhcmVkRGF0YSkKICNkZWZpbmUgdWNudl9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y252X29wZW4pCkBAIC02OTcsNyArNjk2LDYgQEAKICNkZWZpbmUgdWNvbF9jYWxjU29ydEtl
eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jYWxjU29ydEtleSkKICNkZWZpbmUgdWNv
bF9jYWxjU29ydEtleVNpbXBsZVRlcnRpYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29s
X2NhbGNTb3J0S2V5U2ltcGxlVGVydGlhcnkpCiAjZGVmaW5lIHVjb2xfY2xvbmVCaW5hcnkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvbmVCaW5hcnkpCi0jZGVmaW5lIHVjb2xfY2xv
bmVSdWxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9uZVJ1bGVEYXRhKQog
I2RlZmluZSB1Y29sX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb3NlKQog
I2RlZmluZSB1Y29sX2Nsb3NlRWxlbWVudHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
Y2xvc2VFbGVtZW50cykKICNkZWZpbmUgdWNvbF9jb3VudEF2YWlsYWJsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9jb3VudEF2YWlsYWJsZSkKQEAgLTcxNCw5ICs3MTIsMTEgQEAKICNk
ZWZpbmUgdWNvbF9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0
QXZhaWxhYmxlKQogI2RlZmluZSB1Y29sX2dldEJvdW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y29sX2dldEJvdW5kKQogI2RlZmluZSB1Y29sX2dldENFU3RyZW5ndGhEaWZmZXJlbmNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENFU3RyZW5ndGhEaWZmZXJlbmNlKQorI2Rl
ZmluZSB1Y29sX2dldENvbGxhdGlvbktleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9n
ZXRDb2xsYXRpb25LZXkpCiAjZGVmaW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25zIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2dldENvbnRyYWN0aW9ucykKICNkZWZpbmUgdWNvbF9nZXRDb250
cmFjdGlvbnNBbmRFeHBhbnNpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENv
bnRyYWN0aW9uc0FuZEV4cGFuc2lvbnMpCiAjZGVmaW5lIHVjb2xfZ2V0RGlzcGxheU5hbWUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RGlzcGxheU5hbWUpCisjZGVmaW5lIHVjb2xf
Z2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9n
ZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzKQogI2RlZmluZSB1Y29sX2dldEZpcnN0Q0UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Rmlyc3RDRSkKICNkZWZpbmUgdWNvbF9nZXRGdW5j
dGlvbmFsRXF1aXZhbGVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRGdW5jdGlv
bmFsRXF1aXZhbGVudCkKICNkZWZpbmUgdWNvbF9nZXRLZXl3b3JkVmFsdWVzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2dldEtleXdvcmRWYWx1ZXMpCkBAIC03MzUsOCArNzM1LDYgQEAK
ICNkZWZpbmUgdWNvbF9nZXRSdWxlc0V4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dl
dFJ1bGVzRXgpCiAjZGVmaW5lIHVjb2xfZ2V0U2hvcnREZWZpbml0aW9uU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNob3J0RGVmaW5pdGlvblN0cmluZykKICNkZWZpbmUg
dWNvbF9nZXRTb3J0S2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXkp
Ci0jZGVmaW5lIHVjb2xfZ2V0U29ydEtleVNpemUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfZ2V0U29ydEtleVNpemUpCi0jZGVmaW5lIHVjb2xfZ2V0U29ydEtleVdpdGhBbGxvY2F0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXlXaXRoQWxsb2NhdGlvbikK
ICNkZWZpbmUgdWNvbF9nZXRTdHJlbmd0aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9n
ZXRTdHJlbmd0aCkKICNkZWZpbmUgdWNvbF9nZXRUYWlsb3JlZFNldCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9nZXRUYWlsb3JlZFNldCkKICNkZWZpbmUgdWNvbF9nZXRVQ0FWZXJzaW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFVDQVZlcnNpb24pCkBAIC03ODgsNiAr
Nzg2LDcgQEAKICNkZWZpbmUgdWNvbF9zZXRWYXJpYWJsZVRvcCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9zZXRWYXJpYWJsZVRvcCkKICNkZWZpbmUgdWNvbF9zdHJjb2xsIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGwpCiAjZGVmaW5lIHVjb2xfc3RyY29sbEl0ZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3RyY29sbEl0ZXIpCisjZGVmaW5lIHVjb2xf
c3RyY29sbFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3RyY29sbFVURjgpCiAj
ZGVmaW5lIHVjb2xfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zd2FwKQogI2Rl
ZmluZSB1Y29sX3N3YXBCaW5hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcEJp
bmFyeSkKICNkZWZpbmUgdWNvbF9zd2FwSW52ZXJzZVVDQSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9zd2FwSW52ZXJzZVVDQSkKQEAgLTgwNSwxMiArODA0LDE0IEBACiAjZGVmaW5lIHVj
c2RldF9lbmFibGVJbnB1dEZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2Vu
YWJsZUlucHV0RmlsdGVyKQogI2RlZmluZSB1Y3NkZXRfZ2V0QWxsRGV0ZWN0YWJsZUNoYXJzZXRz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0QWxsRGV0ZWN0YWJsZUNoYXJzZXRz
KQogI2RlZmluZSB1Y3NkZXRfZ2V0Q29uZmlkZW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNzZGV0X2dldENvbmZpZGVuY2UpCisjZGVmaW5lIHVjc2RldF9nZXREZXRlY3RhYmxlQ2hhcnNl
dHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXREZXRlY3RhYmxlQ2hhcnNldHMp
CiAjZGVmaW5lIHVjc2RldF9nZXRMYW5ndWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNz
ZGV0X2dldExhbmd1YWdlKQogI2RlZmluZSB1Y3NkZXRfZ2V0TmFtZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNzZGV0X2dldE5hbWUpCiAjZGVmaW5lIHVjc2RldF9nZXRVQ2hhcnMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRVQ2hhcnMpCiAjZGVmaW5lIHVjc2RldF9pc0lu
cHV0RmlsdGVyRW5hYmxlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2lzSW5wdXRG
aWx0ZXJFbmFibGVkKQogI2RlZmluZSB1Y3NkZXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNzZGV0X29wZW4pCiAjZGVmaW5lIHVjc2RldF9zZXREZWNsYXJlZEVuY29kaW5nIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfc2V0RGVjbGFyZWRFbmNvZGluZykKKyNkZWZpbmUg
dWNzZGV0X3NldERldGVjdGFibGVDaGFyc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Nk
ZXRfc2V0RGV0ZWN0YWJsZUNoYXJzZXQpCiAjZGVmaW5lIHVjc2RldF9zZXRUZXh0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfc2V0VGV4dCkKICNkZWZpbmUgdWN1cnJfY291bnRDdXJy
ZW5jaWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9jb3VudEN1cnJlbmNpZXMpCiAj
ZGVmaW5lIHVjdXJyX2ZvckxvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZm9y
TG9jYWxlKQpAQCAtODE4LDggKzgxOSwxMCBAQAogI2RlZmluZSB1Y3Vycl9nZXREZWZhdWx0RnJh
Y3Rpb25EaWdpdHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldERlZmF1bHRGcmFj
dGlvbkRpZ2l0cykKICNkZWZpbmUgdWN1cnJfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSkKICNk
ZWZpbmUgdWN1cnJfZ2V0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0TmFt
ZSkKKyNkZWZpbmUgdWN1cnJfZ2V0TnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjdXJyX2dldE51bWVyaWNDb2RlKQogI2RlZmluZSB1Y3Vycl9nZXRQbHVyYWxOYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXRQbHVyYWxOYW1lKQogI2RlZmluZSB1Y3Vycl9n
ZXRSb3VuZGluZ0luY3JlbWVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0Um91
bmRpbmdJbmNyZW1lbnQpCisjZGVmaW5lIHVjdXJyX2lzQXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y3Vycl9pc0F2YWlsYWJsZSkKICNkZWZpbmUgdWN1cnJfb3BlbklTT0N1cnJl
bmNpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX29wZW5JU09DdXJyZW5jaWVzKQog
I2RlZmluZSB1Y3Vycl9yZWdpc3RlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfcmVn
aXN0ZXIpCiAjZGVmaW5lIHVjdXJyX3VucmVnaXN0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjdXJyX3VucmVnaXN0ZXIpCkBAIC04MzMsNiArODM2LDcgQEAKICNkZWZpbmUgdWRhdF9nZXQy
RGlnaXRZZWFyU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0MkRpZ2l0WWVh
clN0YXJ0KQogI2RlZmluZSB1ZGF0X2dldEF2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWRhdF9nZXRBdmFpbGFibGUpCiAjZGVmaW5lIHVkYXRfZ2V0Q2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0Q2FsZW5kYXIpCisjZGVmaW5lIHVkYXRfZ2V0Q29udGV4
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRDb250ZXh0KQogI2RlZmluZSB1ZGF0
X2dldExvY2FsZUJ5VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRMb2NhbGVC
eVR5cGUpCiAjZGVmaW5lIHVkYXRfZ2V0TnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGF0X2dldE51bWJlckZvcm1hdCkKICNkZWZpbmUgdWRhdF9nZXRTeW1ib2xzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldFN5bWJvbHMpCkBAIC04NDAsOCArODQ0LDEwIEBA
CiAjZGVmaW5lIHVkYXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9vcGVuKQog
I2RlZmluZSB1ZGF0X3BhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3BhcnNlKQog
I2RlZmluZSB1ZGF0X3BhcnNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRf
cGFyc2VDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9yZWdpc3Rlck9wZW5lciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdF9yZWdpc3Rlck9wZW5lcikKICNkZWZpbmUgdWRhdF9zZXQyRGlnaXRZ
ZWFyU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0MkRpZ2l0WWVhclN0YXJ0
KQogI2RlZmluZSB1ZGF0X3NldENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0
X3NldENhbGVuZGFyKQorI2RlZmluZSB1ZGF0X3NldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVkYXRfc2V0Q29udGV4dCkKICNkZWZpbmUgdWRhdF9zZXRMZW5pZW50IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldExlbmllbnQpCiAjZGVmaW5lIHVkYXRfc2V0TnVtYmVy
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldE51bWJlckZvcm1hdCkKICNk
ZWZpbmUgdWRhdF9zZXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldFN5
bWJvbHMpCkBAIC04NDksNiArODU1LDcgQEAKICNkZWZpbmUgdWRhdF90b1BhdHRlcm4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdG9QYXR0ZXJuKQogI2RlZmluZSB1ZGF0X3RvUGF0dGVy
blJlbGF0aXZlRGF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF90b1BhdHRlcm5SZWxh
dGl2ZURhdGUpCiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVUaW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVyblJlbGF0aXZlVGltZSkKKyNkZWZpbmUgdWRhdF91
bnJlZ2lzdGVyT3BlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3VucmVnaXN0ZXJP
cGVuZXIpCiAjZGVmaW5lIHVkYXRhX2NoZWNrQ29tbW9uRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdGFfY2hlY2tDb21tb25EYXRhKQogI2RlZmluZSB1ZGF0YV9jbG9zZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdGFfY2xvc2UpCiAjZGVmaW5lIHVkYXRhX2Nsb3NlU3dhcHBl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdGFfY2xvc2VTd2FwcGVyKQpAQCAtODkyLDEy
ICs4OTksMTcgQEAKICNkZWZpbmUgdWRhdHBnX3NldEFwcGVuZEl0ZW1OYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0QXBwZW5kSXRlbU5hbWUpCiAjZGVmaW5lIHVkYXRwZ19z
ZXREYXRlVGltZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdHBnX3NldERhdGVU
aW1lRm9ybWF0KQogI2RlZmluZSB1ZGF0cGdfc2V0RGVjaW1hbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdHBnX3NldERlY2ltYWwpCisjZGVmaW5lIHVkaWN0X3N3YXAgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVkaWN0X3N3YXApCisjZGVmaW5lIHVkdGl0dmZtdF9jbG9zZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X2Nsb3NlKQorI2RlZmluZSB1ZHRpdHZmbXRfZm9y
bWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZHRpdHZmbXRfZm9ybWF0KQorI2RlZmluZSB1
ZHRpdHZmbXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X29wZW4pCiAj
ZGVmaW5lIHVlbnVtX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9jbG9zZSkK
ICNkZWZpbmUgdWVudW1fY291bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX2NvdW50
KQogI2RlZmluZSB1ZW51bV9uZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9uZXh0
KQogI2RlZmluZSB1ZW51bV9uZXh0RGVmYXVsdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVu
dW1fbmV4dERlZmF1bHQpCiAjZGVmaW5lIHVlbnVtX29wZW5DaGFyU3RyaW5nc0VudW1lcmF0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlv
bikKICNkZWZpbmUgdWVudW1fb3BlbkZyb21TdHJpbmdFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWVudW1fb3BlbkZyb21TdHJpbmdFbnVtZXJhdGlvbikKKyNkZWZpbmUgdWVu
dW1fb3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24pCiAjZGVmaW5lIHVlbnVtX3Jlc2V0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9yZXNldCkKICNkZWZpbmUgdWVudW1fdW5leHQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX3VuZXh0KQogI2RlZmluZSB1ZW51bV91bmV4
dERlZmF1bHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX3VuZXh0RGVmYXVsdCkKQEAg
LTkwOCwzNCArOTIwLDQ5IEBACiAjZGVmaW5lIHVmaWxlX2dldGNoIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1ZmlsZV9nZXRjaCkKICNkZWZpbmUgdWZpbGVfZ2V0Y2gzMiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWZpbGVfZ2V0Y2gzMikKICNkZWZpbmUgdWZtdF82NHRvdSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWZtdF82NHRvdSkKKyNkZWZpbmUgdWZtdF9jbG9zZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWZtdF9jbG9zZSkKICNkZWZpbmUgdWZtdF9kZWZhdWx0Q1BUb1VuaWNv
ZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZGVmYXVsdENQVG9Vbmljb2RlKQogI2Rl
ZmluZSB1Zm10X2RpZ2l0dmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZGlnaXR2
YWx1ZSkKKyNkZWZpbmUgdWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Zm10X2dldEFycmF5SXRlbUJ5SW5kZXgpCisjZGVmaW5lIHVmbXRfZ2V0QXJyYXlM
ZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0QXJyYXlMZW5ndGgpCisjZGVm
aW5lIHVmbXRfZ2V0RGF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXREYXRlKQor
I2RlZmluZSB1Zm10X2dldERlY051bUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10
X2dldERlY051bUNoYXJzKQorI2RlZmluZSB1Zm10X2dldERvdWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWZtdF9nZXREb3VibGUpCisjZGVmaW5lIHVmbXRfZ2V0SW50NjQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0SW50NjQpCisjZGVmaW5lIHVmbXRfZ2V0TG9uZyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRMb25nKQorI2RlZmluZSB1Zm10X2dldE9iamVj
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRPYmplY3QpCisjZGVmaW5lIHVmbXRf
Z2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRUeXBlKQorI2RlZmluZSB1
Zm10X2dldFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRVQ2hhcnMpCisj
ZGVmaW5lIHVmbXRfaXNOdW1lcmljIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2lzTnVt
ZXJpYykKICNkZWZpbmUgdWZtdF9pc2RpZ2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10
X2lzZGlnaXQpCisjZGVmaW5lIHVmbXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZt
dF9vcGVuKQogI2RlZmluZSB1Zm10X3B0b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRf
cHRvdSkKICNkZWZpbmUgdWZtdF91dG82NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF91
dG82NCkKICNkZWZpbmUgdWZtdF91dG9wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X3V0
b3ApCisjZGVmaW5lIHVnZW5kZXJfZ2V0SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVnZW5kZXJfZ2V0SW5zdGFuY2UpCisjZGVmaW5lIHVnZW5kZXJfZ2V0TGlzdEdlbmRlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWdlbmRlcl9nZXRMaXN0R2VuZGVyKQogI2RlZmluZSB1aGFz
aF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY2xvc2UpCiAjZGVmaW5lIHVo
YXNoX2NvbXBhcmVDYXNlbGVzc1VuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2NvbXBhcmVDYXNlbGVzc1VuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2NvbXBh
cmVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUNoYXJzKQogI2Rl
ZmluZSB1aGFzaF9jb21wYXJlSUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9j
b21wYXJlSUNoYXJzKQogI2RlZmluZSB1aGFzaF9jb21wYXJlTG9uZyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWhhc2hfY29tcGFyZUxvbmcpCisjZGVmaW5lIHVoYXNoX2NvbXBhcmVTY3JpcHRT
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVTY3JpcHRTZXQpCiAjZGVm
aW5lIHVoYXNoX2NvbXBhcmVVQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Nv
bXBhcmVVQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2NvbXBhcmVVbmljb2RlU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhh
c2hfY291bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvdW50KQogI2RlZmluZSB1
aGFzaF9kZWxldGVIYXNodGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0
ZUhhc2h0YWJsZSkKLSNkZWZpbmUgdWhhc2hfZGVsZXRlVU9iamVjdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWhhc2hfZGVsZXRlVU9iamVjdCkKLSNkZWZpbmUgdWhhc2hfZGVsZXRlVW5pY29k
ZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlVW5pY29kZVN0cmlu
ZykKKyNkZWZpbmUgdWhhc2hfZGVsZXRlU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1aGFzaF9kZWxldGVTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2VxdWFscyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfZXF1YWxzKQorI2RlZmluZSB1aGFzaF9lcXVhbHNTY3JpcHRT
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2VxdWFsc1NjcmlwdFNldCkKICNkZWZp
bmUgdWhhc2hfZmluZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZmluZCkKLSNkZWZp
bmUgdWhhc2hfZnJlZUJsb2NrIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9mcmVlQmxv
Y2spCiAjZGVmaW5lIHVoYXNoX2dldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZ2V0
KQogI2RlZmluZSB1aGFzaF9nZXRpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9nZXRp
KQogI2RlZmluZSB1aGFzaF9oYXNoQ2FzZWxlc3NVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9oYXNoQ2FzZWxlc3NVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFz
aF9oYXNoQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hDaGFycykKICNk
ZWZpbmUgdWhhc2hfaGFzaElDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFz
aElDaGFycykKICNkZWZpbmUgdWhhc2hfaGFzaExvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2hhc2hMb25nKQorI2RlZmluZSB1aGFzaF9oYXNoU2NyaXB0U2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9oYXNoVUNo
YXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoVUNoYXJzKQotI2RlZmluZSB1
aGFzaF9oYXNoVUNoYXJzTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVDaGFy
c04pCiAjZGVmaW5lIHVoYXNoX2hhc2hVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1aGFzaF9oYXNoVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfaWdldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaWdldCkKICNkZWZpbmUgdWhhc2hfaWdldGkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2lnZXRpKQpAQCAtOTg1LDYgKzEwMTIsNyBAQAogI2Rl
ZmluZSB1aXRlcl9zZXRVVEYxNkJFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aXRlcl9zZXRV
VEYxNkJFKQogI2RlZmluZSB1aXRlcl9zZXRVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
aXRlcl9zZXRVVEY4KQogI2RlZmluZSB1bGRuX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bGRuX2Nsb3NlKQorI2RlZmluZSB1bGRuX2dldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVsZG5fZ2V0Q29udGV4dCkKICNkZWZpbmUgdWxkbl9nZXREaWFsZWN0SGFuZGxpbmcg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fZ2V0RGlhbGVjdEhhbmRsaW5nKQogI2RlZmlu
ZSB1bGRuX2dldExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9nZXRMb2NhbGUp
CiAjZGVmaW5lIHVsZG5fa2V5RGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVs
ZG5fa2V5RGlzcGxheU5hbWUpCkBAIC05OTIsNiArMTAyMCw3IEBACiAjZGVmaW5lIHVsZG5fbGFu
Z3VhZ2VEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9sYW5ndWFnZURp
c3BsYXlOYW1lKQogI2RlZmluZSB1bGRuX2xvY2FsZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bGRuX2xvY2FsZURpc3BsYXlOYW1lKQogI2RlZmluZSB1bGRuX29wZW4gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fb3BlbikKKyNkZWZpbmUgdWxkbl9vcGVuRm9yQ29u
dGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9vcGVuRm9yQ29udGV4dCkKICNkZWZp
bmUgdWxkbl9yZWdpb25EaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9y
ZWdpb25EaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9zY3JpcHRDb2RlRGlzcGxheU5hbWUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fc2NyaXB0Q29kZURpc3BsYXlOYW1lKQogI2RlZmlu
ZSB1bGRuX3NjcmlwdERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX3Nj
cmlwdERpc3BsYXlOYW1lKQpAQCAtMTAyOCw2ICsxMDU3LDcgQEAKICNkZWZpbmUgdWxvY19nZXRE
aXNwbGF5TGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheUxh
bmd1YWdlKQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bG9jX2dldERpc3BsYXlOYW1lKQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlTY3JpcHQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVNjcmlwdCkKKyNkZWZpbmUg
dWxvY19nZXREaXNwbGF5U2NyaXB0SW5Db250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bG9jX2dldERpc3BsYXlTY3JpcHRJbkNvbnRleHQpCiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheVZh
cmlhbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVZhcmlhbnQpCiAj
ZGVmaW5lIHVsb2NfZ2V0SVNPM0NvdW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2Nf
Z2V0SVNPM0NvdW50cnkpCiAjZGVmaW5lIHVsb2NfZ2V0SVNPM0xhbmd1YWdlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bG9jX2dldElTTzNMYW5ndWFnZSkKQEAgLTEwNzUsMTggKzExMDUsMjEg
QEAKICNkZWZpbmUgdW1zZ190b1BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtc2df
dG9QYXR0ZXJuKQogI2RlZmluZSB1bXNnX3Zmb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVtc2dfdmZvcm1hdCkKICNkZWZpbmUgdW1zZ192cGFyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVtc2dfdnBhcnNlKQotI2RlZmluZSB1bXR4X2F0b21pY19kZWMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVtdHhfYXRvbWljX2RlYykKLSNkZWZpbmUgdW10eF9hdG9taWNfaW5jIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2F0b21pY19pbmMpCi0jZGVmaW5lIHVtdHhfY2xlYW51
cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9jbGVhbnVwKQotI2RlZmluZSB1bXR4X2Rl
c3Ryb3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfZGVzdHJveSkKLSNkZWZpbmUgdW10
eF9pbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2luaXQpCiAjZGVmaW5lIHVtdHhf
bG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9sb2NrKQogI2RlZmluZSB1bXR4X3Vu
bG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF91bmxvY2spCiAjZGVmaW5lIHVuaXNl
dF9nZXRVbmljb2RlMzJJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5pc2V0X2dl
dFVuaWNvZGUzMkluc3RhbmNlKQogI2RlZmluZSB1bm9ybTJfYXBwZW5kIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bm9ybTJfYXBwZW5kKQogI2RlZmluZSB1bm9ybTJfY2xvc2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVub3JtMl9jbG9zZSkKKyNkZWZpbmUgdW5vcm0yX2NvbXBvc2VQYWly
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfY29tcG9zZVBhaXIpCisjZGVmaW5lIHVu
b3JtMl9nZXRDb21iaW5pbmdDbGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dl
dENvbWJpbmluZ0NsYXNzKQogI2RlZmluZSB1bm9ybTJfZ2V0RGVjb21wb3NpdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldERlY29tcG9zaXRpb24pCiAjZGVmaW5lIHVub3Jt
Ml9nZXRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldEluc3RhbmNl
KQorI2RlZmluZSB1bm9ybTJfZ2V0TkZDSW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtMl9nZXRORkNJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GREluc3RhbmNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZESW5zdGFuY2UpCisjZGVmaW5lIHVu
b3JtMl9nZXRORktDQ2FzZWZvbGRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5v
cm0yX2dldE5GS0NDYXNlZm9sZEluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZLQ0luc3Rh
bmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZLQ0luc3RhbmNlKQorI2Rl
ZmluZSB1bm9ybTJfZ2V0TkZLREluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9y
bTJfZ2V0TkZLREluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24pCiAjZGVm
aW5lIHVub3JtMl9oYXNCb3VuZGFyeUFmdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9y
bTJfaGFzQm91bmRhcnlBZnRlcikKICNkZWZpbmUgdW5vcm0yX2hhc0JvdW5kYXJ5QmVmb3JlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfaGFzQm91bmRhcnlCZWZvcmUpCiAjZGVmaW5l
IHVub3JtMl9pc0luZXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfaXNJbmVydCkK
QEAgLTExMDAsNyArMTEzMyw3IEBACiAjZGVmaW5lIHVub3JtX2Nsb3NlSXRlciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm1fY2xvc2VJdGVyKQogI2RlZmluZSB1bm9ybV9jb21wYXJlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9jb21wYXJlKQogI2RlZmluZSB1bm9ybV9jb25j
YXRlbmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1fY29uY2F0ZW5hdGUpCi0jZGVm
aW5lIHVub3JtX2dldEZDRFRyaWVJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1f
Z2V0RkNEVHJpZUluZGV4KQorI2RlZmluZSB1bm9ybV9nZXRGQ0QxNiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW5vcm1fZ2V0RkNEMTYpCiAjZGVmaW5lIHVub3JtX2dldFF1aWNrQ2hlY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldFF1aWNrQ2hlY2spCiAjZGVmaW5lIHVub3Jt
X2lzTm9ybWFsaXplZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1faXNOb3JtYWxpemVk
KQogI2RlZmluZSB1bm9ybV9pc05vcm1hbGl6ZWRXaXRoT3B0aW9ucyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW5vcm1faXNOb3JtYWxpemVkV2l0aE9wdGlvbnMpCkBAIC0xMTIwLDYgKzExNTMs
NyBAQAogI2RlZmluZSB1bnVtX2Zvcm1hdERvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW51bV9mb3JtYXREb3VibGUpCiAjZGVmaW5lIHVudW1fZm9ybWF0RG91YmxlQ3VycmVuY3kgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0RG91YmxlQ3VycmVuY3kpCiAjZGVmaW5l
IHVudW1fZm9ybWF0SW50NjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0SW50
NjQpCisjZGVmaW5lIHVudW1fZm9ybWF0VUZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtX2Zvcm1hdFVGb3JtYXR0YWJsZSkKICNkZWZpbmUgdW51bV9nZXRBdHRyaWJ1dGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0QXR0cmlidXRlKQogI2RlZmluZSB1bnVt
X2dldEF2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9nZXRBdmFpbGFibGUp
CiAjZGVmaW5lIHVudW1fZ2V0RG91YmxlQXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bnVtX2dldERvdWJsZUF0dHJpYnV0ZSkKQEAgLTExMzIsMTEgKzExNjYsMjQgQEAKICNkZWZp
bmUgdW51bV9wYXJzZURvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZURv
dWJsZSkKICNkZWZpbmUgdW51bV9wYXJzZURvdWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtX3BhcnNlRG91YmxlQ3VycmVuY3kpCiAjZGVmaW5lIHVudW1fcGFyc2VJbnQ2
NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZUludDY0KQorI2RlZmluZSB1bnVt
X3BhcnNlVG9VRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VU
b1VGb3JtYXR0YWJsZSkKICNkZWZpbmUgdW51bV9zZXRBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVudW1fc2V0QXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3NldERvdWJsZUF0dHJp
YnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXREb3VibGVBdHRyaWJ1dGUpCiAj
ZGVmaW5lIHVudW1fc2V0U3ltYm9sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3NldFN5
bWJvbCkKICNkZWZpbmUgdW51bV9zZXRUZXh0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtX3NldFRleHRBdHRyaWJ1dGUpCiAjZGVmaW5lIHVudW1fdG9QYXR0ZXJuIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3RvUGF0dGVybikKKyNkZWZpbmUgdW51bXN5c19jbG9z
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19jbG9zZSkKKyNkZWZpbmUgdW51bXN5
c19nZXREZXNjcmlwdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19nZXREZXNj
cmlwdGlvbikKKyNkZWZpbmUgdW51bXN5c19nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bnVtc3lzX2dldE5hbWUpCisjZGVmaW5lIHVudW1zeXNfZ2V0UmFkaXggVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0UmFkaXgpCisjZGVmaW5lIHVudW1zeXNfaXNBbGdvcml0
aG1pYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19pc0FsZ29yaXRobWljKQorI2Rl
ZmluZSB1bnVtc3lzX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfb3BlbikK
KyNkZWZpbmUgdW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKQorI2RlZmluZSB1bnVtc3lzX29wZW5CeU5h
bWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfb3BlbkJ5TmFtZSkKKyNkZWZpbmUg
dXBscnVsZXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX2Nsb3NlKQor
I2RlZmluZSB1cGxydWxlc19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxydWxlc19v
cGVuKQorI2RlZmluZSB1cGxydWxlc19vcGVuRm9yVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBscnVsZXNfb3BlbkZvclR5cGUpCisjZGVmaW5lIHVwbHJ1bGVzX3NlbGVjdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfc2VsZWN0KQogI2RlZmluZSB1cGx1Z19jbG9zZUxp
YnJhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX2Nsb3NlTGlicmFyeSkKICNkZWZp
bmUgdXBsdWdfZmluZExpYnJhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX2ZpbmRM
aWJyYXJ5KQogI2RlZmluZSB1cGx1Z19nZXRDb25maWd1cmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cGx1Z19nZXRDb25maWd1cmF0aW9uKQpAQCAtMTE2MCwxMiArMTIwNywxMiBAQAog
I2RlZmluZSB1cGx1Z19zZXRQbHVnTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVn
X3NldFBsdWdMZXZlbCkKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z05hbWUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwbHVnX3NldFBsdWdOYW1lKQogI2RlZmluZSB1cGx1Z19zZXRQbHVnTm9Vbmxv
YWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX3NldFBsdWdOb1VubG9hZCkKLSNkZWZp
bmUgdXBuYW1lX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbmFtZV9zd2FwKQogI2Rl
ZmluZSB1cHJvcHNfZ2V0U291cmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJvcHNfZ2V0
U291cmNlKQogI2RlZmluZSB1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcm9wc3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cykKICNkZWZpbmUgdXBydl9h
ZXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYWVzdHJuY3B5KQogI2RlZmlu
ZSB1cHJ2X2FzY2lpRnJvbUViY2RpYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9hc2Np
aUZyb21FYmNkaWMpCiAjZGVmaW5lIHVwcnZfYXNjaWl0b2xvd2VyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2FzY2lpdG9sb3dlcikKKyNkZWZpbmUgdXBydl9jYWxsb2MgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfY2FsbG9jKQogI2RlZmluZSB1cHJ2X2NlaWwgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfY2VpbCkKICNkZWZpbmUgdXBydl9jbnR0YWJfYWRkQ29udHJh
Y3Rpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY250dGFiX2FkZENvbnRyYWN0aW9u
KQogI2RlZmluZSB1cHJ2X2NudHRhYl9jaGFuZ2VDb250cmFjdGlvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9jbnR0YWJfY2hhbmdlQ29udHJhY3Rpb24pCkBAIC0xMjAyLDcgKzEyNDks
NiBAQAogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNGcm9tU3RyaW5nUXVpZXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c0Zyb21TdHJpbmdR
dWlldCkKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U2V0U3RhdHVzUXVpZXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c1F1aWV0KQogI2RlZmluZSB1cHJ2
X2RlY0NvbnRleHRTdGF0dXNUb1N0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9k
ZWNDb250ZXh0U3RhdHVzVG9TdHJpbmcpCi0jZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRlc3RFbmRp
YW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RFbmRpYW4pCiAj
ZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRlc3RTYXZlZFN0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWNDb250ZXh0VGVzdFNhdmVkU3RhdHVzKQogI2RlZmluZSB1cHJ2X2RlY0Nv
bnRleHRUZXN0U3RhdHVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRU
ZXN0U3RhdHVzKQogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRaZXJvU3RhdHVzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRaZXJvU3RhdHVzKQpAQCAtMTI2OCwxMiArMTMx
NCwxNCBAQAogI2RlZmluZSB1cHJ2X2RlY051bWJlclZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVwcnZfZGVjTnVtYmVyVmVyc2lvbikKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJYb3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjTnVtYmVyWG9yKQogI2RlZmluZSB1cHJ2
X2RlY051bWJlclplcm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjTnVtYmVyWmVy
bykKKyNkZWZpbmUgdXBydl9kZWxldGVVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2RlbGV0ZVVPYmplY3QpCiAjZGVmaW5lIHVwcnZfZGVsZXRlX2NvbGxJdGVyYXRlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlbGV0ZV9jb2xsSXRlcmF0ZSkKICNkZWZpbmUgdXBy
dl9kbF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9jbG9zZSkKICNkZWZp
bmUgdXBydl9kbF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RsX29wZW4pCi0j
ZGVmaW5lIHVwcnZfZGxfc3ltIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RsX3N5bSkK
KyNkZWZpbmUgdXBydl9kbHN5bV9mdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Rs
c3ltX2Z1bmMpCiAjZGVmaW5lIHVwcnZfZWFzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2Vhc3RybmNweSkKICNkZWZpbmUgdXBydl9lYmNkaWNGcm9tQXNjaWkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfZWJjZGljRnJvbUFzY2lpKQorI2RlZmluZSB1cHJ2X2ViY2Rp
Y1RvTG93ZXJjYXNlQXNjaWkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWJjZGljVG9M
b3dlcmNhc2VBc2NpaSkKICNkZWZpbmUgdXBydl9lYmNkaWN0b2xvd2VyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X2ViY2RpY3RvbG93ZXIpCiAjZGVmaW5lIHVwcnZfZmFicyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9mYWJzKQogI2RlZmluZSB1cHJ2X2Zsb29yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Zsb29yKQpAQCAtMTI5NSwxMyArMTM0MywxMyBAQAogI2Rl
ZmluZSB1cHJ2X2luaXRfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
aW5pdF9jb2xsSXRlcmF0ZSkKICNkZWZpbmUgdXBydl9pbml0X3BjZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9pbml0X3BjZSkKICNkZWZpbmUgdXBydl9pbnQzMkNvbXBhcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaW50MzJDb21wYXJhdG9yKQorI2RlZmluZSB1cHJ2
X2lzQVNDSUlMZXR0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNBU0NJSUxldHRl
cikKICNkZWZpbmUgdXBydl9pc0luZmluaXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X2lzSW5maW5pdGUpCiAjZGVmaW5lIHVwcnZfaXNJbnZhcmlhbnRTdHJpbmcgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfaXNJbnZhcmlhbnRTdHJpbmcpCiAjZGVmaW5lIHVwcnZfaXNJbnZh
cmlhbnRVU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzSW52YXJpYW50VVN0
cmluZykKICNkZWZpbmUgdXBydl9pc05hTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9p
c05hTikKICNkZWZpbmUgdXBydl9pc05lZ2F0aXZlSW5maW5pdHkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5KQogI2RlZmluZSB1cHJ2X2lzUG9zaXRpdmVJ
bmZpbml0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc1Bvc2l0aXZlSW5maW5pdHkp
Ci0jZGVmaW5lIHVwcnZfaXNSdWxlV2hpdGVTcGFjZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9pc1J1bGVXaGl0ZVNwYWNlKQogI2RlZmluZSB1cHJ2X2l0b3UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfaXRvdSkKICNkZWZpbmUgdXBydl9sb2cgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVwcnZfbG9nKQogI2RlZmluZSB1cHJ2X21hbGxvYyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9tYWxsb2MpCkBAIC0xMzEyLDcgKzEzNjAsNiBAQAogI2RlZmluZSB1cHJ2X21p
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9taW4pCiAjZGVmaW5lIHVwcnZfbW9kZiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9tb2RmKQogI2RlZmluZSB1cHJ2X25ld19jb2xs
SXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9uZXdfY29sbEl0ZXJhdGUpCi0j
ZGVmaW5lIHVwcnZfb3BlblJ1bGVXaGl0ZVNwYWNlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X29wZW5SdWxlV2hpdGVTcGFjZVNldCkKICNkZWZpbmUgdXBydl9wYXJzZUN1cnJlbmN5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3BhcnNlQ3VycmVuY3kpCiAjZGVmaW5lIHVw
cnZfcGF0aElzQWJzb2x1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcGF0aElzQWJz
b2x1dGUpCiAjZGVmaW5lIHVwcnZfcG93IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3Bv
dykKQEAgLTEzMjAsOSArMTM2NywxMiBAQAogI2RlZmluZSB1cHJ2X3JlYWxsb2MgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfcmVhbGxvYykKICNkZWZpbmUgdXBydl9yb3VuZCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9yb3VuZCkKICNkZWZpbmUgdXBydl9zb3J0QXJyYXkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc29ydEFycmF5KQorI2RlZmluZSB1cHJ2X3N0YWJs
ZUJpbmFyeVNlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zdGFibGVCaW5hcnlT
ZWFyY2gpCiAjZGVmaW5lIHVwcnZfc3RyQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9zdHJDb21wYXJlKQogI2RlZmluZSB1cHJ2X3N0cmR1cCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9zdHJkdXApCisjZGVmaW5lIHVwcnZfc3RyaWNtcCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9zdHJpY21wKQogI2RlZmluZSB1cHJ2X3N0cm5kdXAgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfc3RybmR1cCkKKyNkZWZpbmUgdXBydl9zdHJuaWNtcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9zdHJuaWNtcCkKICNkZWZpbmUgdXBydl9zeW50YXhFcnJv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zeW50YXhFcnJvcikKICNkZWZpbmUgdXBy
dl90aW1lem9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl90aW1lem9uZSkKICNkZWZp
bmUgdXBydl90b3VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3RvdXBwZXIpCkBA
IC0xMzg2LDYgKzE0MzYsNyBAQAogI2RlZmluZSB1cmVnZXhfb3BlblVUZXh0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVnZXhfb3BlblVUZXh0KQogI2RlZmluZSB1cmVnZXhfcGF0dGVybiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3BhdHRlcm4pCiAjZGVmaW5lIHVyZWdleF9w
YXR0ZXJuVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9wYXR0ZXJuVVRleHQp
CisjZGVmaW5lIHVyZWdleF9yZWZyZXNoVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVy
ZWdleF9yZWZyZXNoVVRleHQpCiAjZGVmaW5lIHVyZWdleF9yZWdpb25FbmQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25FbmQpCiAjZGVmaW5lIHVyZWdleF9yZWdpb25FbmQ2
NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZ2lvbkVuZDY0KQogI2RlZmluZSB1
cmVnZXhfcmVnaW9uU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25T
dGFydCkKQEAgLTE0MTQsNiArMTQ2NSwxOSBAQAogI2RlZmluZSB1cmVnZXhfdXNlQW5jaG9yaW5n
Qm91bmRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXNlQW5jaG9yaW5nQm91bmRz
KQogI2RlZmluZSB1cmVnZXhfdXNlVHJhbnNwYXJlbnRCb3VuZHMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdleF91c2VUcmFuc3BhcmVudEJvdW5kcykKICNkZWZpbmUgdXJlZ2V4X3V0ZXh0
X3VuZXNjYXBlX2NoYXJBdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3V0ZXh0X3Vu
ZXNjYXBlX2NoYXJBdCkKKyNkZWZpbmUgdXJlZ2lvbl9hcmVFcXVhbCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXJlZ2lvbl9hcmVFcXVhbCkKKyNkZWZpbmUgdXJlZ2lvbl9jb250YWlucyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9jb250YWlucykKKyNkZWZpbmUgdXJlZ2lvbl9n
ZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0QXZhaWxhYmxl
KQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9ucykKKyNkZWZpbmUgdXJlZ2lvbl9nZXRD
b250YWluZWRSZWdpb25zT2ZUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dl
dENvbnRhaW5lZFJlZ2lvbnNPZlR5cGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0Q29udGFpbmluZ1Jl
Z2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250YWluaW5nUmVnaW9u
KQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb25PZlR5cGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmluZ1JlZ2lvbk9mVHlwZSkKKyNkZWZpbmUg
dXJlZ2lvbl9nZXROdW1lcmljQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9n
ZXROdW1lcmljQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRQcmVmZXJyZWRWYWx1ZXMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0UHJlZmVycmVkVmFsdWVzKQorI2RlZmluZSB1
cmVnaW9uX2dldFJlZ2lvbkNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0
UmVnaW9uQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRSZWdpb25Gcm9tQ29kZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Gcm9tQ29kZSkKKyNkZWZpbmUgdXJlZ2lv
bl9nZXRSZWdpb25Gcm9tTnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdp
b25fZ2V0UmVnaW9uRnJvbU51bWVyaWNDb2RlKQorI2RlZmluZSB1cmVnaW9uX2dldFR5cGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0VHlwZSkKICNkZWZpbmUgdXJlc19jbG9z
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jbG9zZSkKICNkZWZpbmUgdXJlc19jb3B5
UmVzYiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jb3B5UmVzYikKICNkZWZpbmUgdXJl
c19jb3VudEFycmF5SXRlbXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY291bnRBcnJh
eUl0ZW1zKQpAQCAtMTQ1NywxMyArMTUyMSwxOSBAQAogI2RlZmluZSB1cmVzX29wZW5VIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX29wZW5VKQogI2RlZmluZSB1cmVzX3Jlc2V0SXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfcmVzZXRJdGVyYXRvcikKICNkZWZpbmUg
dXJlc19zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX3N3YXApCisjZGVmaW5lIHVz
Y3JpcHRfYnJlYWtzQmV0d2VlbkxldHRlcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3Jp
cHRfYnJlYWtzQmV0d2VlbkxldHRlcnMpCiAjZGVmaW5lIHVzY3JpcHRfY2xvc2VSdW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfY2xvc2VSdW4pCiAjZGVmaW5lIHVzY3JpcHRfZ2V0
Q29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRDb2RlKQogI2RlZmluZSB1
c2NyaXB0X2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0TmFtZSkK
KyNkZWZpbmUgdXNjcmlwdF9nZXRTYW1wbGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nKQorI2RlZmluZSB1c2NyaXB0X2dldFNhbXBsZVVuaWNv
ZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0U2FtcGxlVW5pY29k
ZVN0cmluZykKICNkZWZpbmUgdXNjcmlwdF9nZXRTY3JpcHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzY3JpcHRfZ2V0U2NyaXB0KQogI2RlZmluZSB1c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lv
bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucykK
ICNkZWZpbmUgdXNjcmlwdF9nZXRTaG9ydE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
Y3JpcHRfZ2V0U2hvcnROYW1lKQorI2RlZmluZSB1c2NyaXB0X2dldFVzYWdlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFVzYWdlKQogI2RlZmluZSB1c2NyaXB0X2hhc1Njcmlw
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9oYXNTY3JpcHQpCisjZGVmaW5lIHVz
Y3JpcHRfaXNDYXNlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9pc0Nhc2VkKQor
I2RlZmluZSB1c2NyaXB0X2lzUmlnaHRUb0xlZnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
Y3JpcHRfaXNSaWdodFRvTGVmdCkKICNkZWZpbmUgdXNjcmlwdF9uZXh0UnVuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X25leHRSdW4pCiAjZGVmaW5lIHVzY3JpcHRfb3BlblJ1biBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9vcGVuUnVuKQogI2RlZmluZSB1c2NyaXB0
X3Jlc2V0UnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X3Jlc2V0UnVuKQpAQCAt
MTU2Nyw2ICsxNjM3LDExIEBACiAjZGVmaW5lIHVzcG9vZl9nZXRBbGxvd2VkTG9jYWxlcyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEFsbG93ZWRMb2NhbGVzKQogI2RlZmluZSB1
c3Bvb2ZfZ2V0QWxsb3dlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9v
Zl9nZXRBbGxvd2VkVW5pY29kZVNldCkKICNkZWZpbmUgdXNwb29mX2dldENoZWNrcyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldENoZWNrcykKKyNkZWZpbmUgdXNwb29mX2dldElu
Y2x1c2lvblNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEluY2x1c2lvblNl
dCkKKyNkZWZpbmUgdXNwb29mX2dldEluY2x1c2lvblVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzcG9vZl9nZXRJbmNsdXNpb25Vbmljb2RlU2V0KQorI2RlZmluZSB1c3Bvb2Zf
Z2V0UmVjb21tZW5kZWRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRSZWNv
bW1lbmRlZFNldCkKKyNkZWZpbmUgdXNwb29mX2dldFJlY29tbWVuZGVkVW5pY29kZVNldCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlY29tbWVuZGVkVW5pY29kZVNldCkKKyNk
ZWZpbmUgdXNwb29mX2dldFJlc3RyaWN0aW9uTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzcG9vZl9nZXRSZXN0cmljdGlvbkxldmVsKQogI2RlZmluZSB1c3Bvb2ZfZ2V0U2tlbGV0b24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvbikKICNkZWZpbmUgdXNw
b29mX2dldFNrZWxldG9uVVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFNr
ZWxldG9uVVRGOCkKICNkZWZpbmUgdXNwb29mX2dldFNrZWxldG9uVW5pY29kZVN0cmluZyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFNrZWxldG9uVW5pY29kZVN0cmluZykKQEAg
LTE1NzgsMjMgKzE2NTMsMjUgQEAKICNkZWZpbmUgdXNwb29mX3NldEFsbG93ZWRMb2NhbGVzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0QWxsb3dlZExvY2FsZXMpCiAjZGVmaW5l
IHVzcG9vZl9zZXRBbGxvd2VkVW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNw
b29mX3NldEFsbG93ZWRVbmljb2RlU2V0KQogI2RlZmluZSB1c3Bvb2Zfc2V0Q2hlY2tzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0Q2hlY2tzKQorI2RlZmluZSB1c3Bvb2Zfc2V0
UmVzdHJpY3Rpb25MZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3NldFJlc3Ry
aWN0aW9uTGV2ZWwpCiAjZGVmaW5lIHVzcG9vZl9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c3Bvb2Zfc3dhcCkKICNkZWZpbmUgdXNwcmVwX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3ByZXBfY2xvc2UpCiAjZGVmaW5lIHVzcHJlcF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3ByZXBfb3BlbikKICNkZWZpbmUgdXNwcmVwX29wZW5CeVR5cGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzcHJlcF9vcGVuQnlUeXBlKQogI2RlZmluZSB1c3ByZXBfcHJlcGFy
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX3ByZXBhcmUpCiAjZGVmaW5lIHVzcHJl
cF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3ByZXBfc3dhcCkKLSNkZWZpbmUgdXN0
cl9mb2xkQ2FzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl9mb2xkQ2FzZSkKLSNkZWZp
bmUgdXN0cl90b0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvTG93ZXIpCi0j
ZGVmaW5lIHVzdHJfdG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90b1RpdGxl
KQotI2RlZmluZSB1c3RyX3RvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfdG9V
cHBlcikKLSNkZWZpbmUgdXRleHRfY2FzZUNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHV0ZXh0X2Nhc2VDb21wYXJlKQotI2RlZmluZSB1dGV4dF9jYXNlQ29tcGFyZU5hdGl2ZUxpbWl0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jYXNlQ29tcGFyZU5hdGl2ZUxpbWl0KQor
I2RlZmluZSB1c3RyX2hhc2hDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFz
aENoYXJzTikKKyNkZWZpbmUgdXN0cl9oYXNoSUNoYXJzTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXN0cl9oYXNoSUNoYXJzTikKKyNkZWZpbmUgdXN0cl9oYXNoVUNoYXJzTiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXN0cl9oYXNoVUNoYXJzTikKKyNkZWZpbmUgdXN0cmNhc2VfaW50ZXJu
YWxGb2xkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5hbEZvbGQpCisj
ZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXN0cmNhc2VfaW50ZXJuYWxUb0xvd2VyKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5hbFRvVGl0
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsVG9UaXRsZSkKKyNk
ZWZpbmUgdXN0cmNhc2VfaW50ZXJuYWxUb1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3RyY2FzZV9pbnRlcm5hbFRvVXBwZXIpCisjZGVmaW5lIHVzdHJjYXNlX21hcCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfbWFwKQorI2RlZmluZSB1c3RyY2FzZV9zZXRUZW1wQ2Fz
ZU1hcExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2Vfc2V0VGVtcENhc2VN
YXBMb2NhbGUpCiAjZGVmaW5lIHV0ZXh0X2NoYXIzMkF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1dGV4dF9jaGFyMzJBdCkKICNkZWZpbmUgdXRleHRfY2xvbmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHV0ZXh0X2Nsb25lKQogI2RlZmluZSB1dGV4dF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXRleHRfY2xvc2UpCi0jZGVmaW5lIHV0ZXh0X2NvbXBhcmUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHV0ZXh0X2NvbXBhcmUpCi0jZGVmaW5lIHV0ZXh0X2NvbXBhcmVOYXRpdmVM
aW1pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY29tcGFyZU5hdGl2ZUxpbWl0KQog
I2RlZmluZSB1dGV4dF9jb3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jb3B5KQog
I2RlZmluZSB1dGV4dF9jdXJyZW50MzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2N1
cnJlbnQzMikKICNkZWZpbmUgdXRleHRfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
dGV4dF9lcXVhbHMpCkBAIC0xNzQzLDQ5OSArMTgyMCw2IEBACiAjZGVmaW5lIHp0cmFuc19zZXRU
aW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh6dHJhbnNfc2V0VGltZSkKICNkZWZpbmUgenRy
YW5zX3NldFRvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh6dHJhbnNfc2V0VG8pCiAKLQotLyog
QysrIGNsYXNzIG5hbWVzIHJlbmFtaW5nIGRlZmluZXMgKi8KLQotI2lmZGVmIFhQX0NQTFVTUExV
UwotI2lmICFVX0hBVkVfTkFNRVNQQUNFCi0KLSNkZWZpbmUgQWJzb2x1dGVWYWx1ZVN1YnN0aXR1
dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbikK
LSNkZWZpbmUgQWx0ZXJuYXRlU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEFsdGVybmF0ZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBBbmNob3JUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQW5jaG9yVGFibGUpCi0jZGVmaW5lIEFuZENvbnN0
cmFpbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFuZENvbnN0cmFpbnQpCi0jZGVmaW5lIEFu
bnVhbFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQW5udWFsVGltZVpvbmVS
dWxlKQotI2RlZmluZSBBbnlUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QW55VHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIEFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZp
bmUgQXJhYmljU2hhcGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJhYmljU2hhcGluZykK
LSNkZWZpbmUgQXJnRXh0cmFjdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBcmdFeHRyYWN0
b3IpCi0jZGVmaW5lIEJNUFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQk1QU2V0KQotI2Rl
ZmluZSBCYWNrd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShCYWNrd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yKQotI2RlZmluZSBCYWRDaGFyYWN0ZXJUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFkQ2hhcmFjdGVyVGFibGUpCi0jZGVmaW5lIEJh
c2ljQ2FsZW5kYXJGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCYXNpY0NhbGVuZGFy
RmFjdG9yeSkKLSNkZWZpbmUgQmFzaWNUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QmFzaWNUaW1lWm9uZSkKLSNkZWZpbmUgQmluYXJ5U2VhcmNoTG9va3VwVGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEJpbmFyeVNlYXJjaExvb2t1cFRhYmxlKQotI2RlZmluZSBCb3llck1v
b3JlU2VhcmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCb3llck1vb3JlU2VhcmNoKQotI2Rl
ZmluZSBCcmVha0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCcmVha0l0ZXJhdG9y
KQotI2RlZmluZSBCcmVha1RyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShC
cmVha1RyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBCdWRkaGlzdENhbGVuZGFyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShCdWRkaGlzdENhbGVuZGFyKQotI2RlZmluZSBCdWlsZENvbXBhY3RUcmll
SG9yaXpvbnRhbE5vZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFjdFRyaWVI
b3Jpem9udGFsTm9kZSkKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZU5vZGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFjdFRyaWVOb2RlKQotI2RlZmluZSBCdWlsZENvbXBhY3RU
cmllVmVydGljYWxOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBhY3RUcmll
VmVydGljYWxOb2RlKQotI2RlZmluZSBCdWlsZGVyU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShCdWlsZGVyU2NyaXB0U2V0KQotI2RlZmluZSBCeXRlU2luayBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQnl0ZVNpbmspCi0jZGVmaW5lIENFQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDRUJ1ZmZlcikKLSNkZWZpbmUgQ0VDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ0VDYWxlbmRhcikKLSNkZWZpbmUgQ0VMaXN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDRUxpc3QpCi0jZGVmaW5lIENFVG9TdHJpbmdzTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDRVRvU3RyaW5nc01hcCkKLSNkZWZpbmUgQ0ZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENGYWN0b3J5KQotI2RlZmluZSBDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2FsZW5kYXIpCi0jZGVmaW5lIENhbGVuZGFyQXN0cm9ub21lciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2FsZW5kYXJBc3Ryb25vbWVyKQotI2RlZmluZSBDYWxlbmRhckNhY2hlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckNhY2hlKQotI2RlZmluZSBDYWxlbmRhckRhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyRGF0YSkKLSNkZWZpbmUgQ2FsZW5kYXJTZXJ2
aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhclNlcnZpY2UpCi0jZGVmaW5lIENh
bm9uSXRlckRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uSXRlckRhdGEpCi0jZGVm
aW5lIENhbm9uSXRlckRhdGFTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9u
SXRlckRhdGFTaW5nbGV0b24pCi0jZGVmaW5lIENhbm9uTWFya0ZpbHRlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2Fub25NYXJrRmlsdGVyKQotI2RlZmluZSBDYW5vblNoYXBpbmcgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENhbm9uU2hhcGluZykKLSNkZWZpbmUgQ2Fub25pY2FsSXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uaWNhbEl0ZXJhdG9yKQotI2RlZmluZSBD
YXNlTWFwVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhc2VNYXBUcmFu
c2xpdGVyYXRvcikKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0
MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJz
dGl0dXRpb25Gb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0
aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdD
b250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBDaGFpbmluZ0Nv
bnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDNTdWJ0YWJsZSkKLSNkZWZp
bmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmlu
ZSBDaGFyU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyU3RyaW5nKQotI2RlZmlu
ZSBDaGFyU3Vic3RpdHV0aW9uRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyU3Vi
c3RpdHV0aW9uRmlsdGVyKQotI2RlZmluZSBDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcmFjdGVySXRlcmF0b3IpCi0jZGVmaW5lIENoYXJhY3Rlck5vZGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJhY3Rlck5vZGUpCi0jZGVmaW5lIENoYXJzZXREZXRl
Y3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldERldGVjdG9yKQotI2RlZmluZSBD
aGFyc2V0TWF0Y2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRNYXRjaCkKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzIwMjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z18yMDIyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfMjAyMkNOIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfMjAyMkNOKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfMjAyMkpQIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMkpQKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfMjAyMktSIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAy
MktSKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV8xKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2RhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2RhKQotI2RlZmluZSBD
aGFyc2V0UmVjb2dfODg1OV8xX2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfODg1OV8xX2RlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2VuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2VuKQotI2RlZmluZSBDaGFyc2V0UmVj
b2dfODg1OV8xX2VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8x
X2VzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2ZyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2ZyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8x
X2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2l0KQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX25sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfODg1OV8xX25sKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX25vIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX25vKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfODg1OV8xX3B0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
ODg1OV8xX3B0KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX3N2IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX3N2KQotI2RlZmluZSBDaGFyc2V0UmVjb2df
ODg1OV8yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8yKQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX2NzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfODg1OV8yX2NzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX2h1IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8yX2h1KQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfODg1OV8yX3BsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
ODg1OV8yX3BsKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX3JvIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8yX3JvKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
ODg1OV81IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV81KQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfODg1OV81X3J1IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfODg1OV81X3J1KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV82IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV82KQotI2RlZmluZSBDaGFyc2V0UmVj
b2dfODg1OV82X2FyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV82
X2FyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV83IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV83KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV83X2VsIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV83X2VsKQotI2RlZmluZSBD
aGFyc2V0UmVjb2dfODg1OV84IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
ODg1OV84KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV84X0lfaGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzhfSV9oZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfOF9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOF9o
ZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcnNldFJlY29nXzg4NTlfOSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOV90ciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOV90cikKLSNkZWZpbmUgQ2hh
cnNldFJlY29nX0lCTTQyMF9hciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
X0lCTTQyMF9hcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyMF9hcl9sdHIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXJfbHRyKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfSUJNNDIwX2FyX3J0bCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nX0lCTTQyMF9hcl9ydGwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjRfaGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGUpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ19JQk00MjRfaGVfbHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfSUJNNDI0X2hlX2x0cikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9ydGwgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGVfcnRsKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfS09JOF9SIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfS09JOF9SKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nX1VURjgpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMTZfQkUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMTZfQkUpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ19VVEZfMTZfTEUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ19VVEZfMTZfTEUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMzIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMzIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19V
VEZfMzJfQkUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMzJfQkUp
Ci0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMzJfTEUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ19VVEZfMzJfTEUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19Vbmljb2RlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVW5pY29kZSkKLSNkZWZpbmUgQ2hh
cnNldFJlY29nX2JpZzUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19iaWc1
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfZXVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfZXVjKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfZXVjX2pwIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZXVjX2pwKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfZXVj
X2tyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZXVjX2tyKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfZ2JfMTgwMzAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ19nYl8xODAzMCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX21iY3MgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ19tYmNzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfc2JjcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3NiY3MpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ19zamlzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfc2ppcykK
LSNkZWZpbmUgQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3dpbmRv
d3NfMTI1NiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1
NikKLSNkZWZpbmUgQ2hhcnNldFJlY29nbml6ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ25pemVyKQotI2RlZmluZSBDaGVja2VkQXJyYXlCeXRlU2luayBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hlY2tlZEFycmF5Qnl0ZVNpbmspCi0jZGVmaW5lIENoaW5lc2VDYWxl
bmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hpbmVzZUNhbGVuZGFyKQotI2RlZmluZSBD
aG9pY2VGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENob2ljZUZvcm1hdCkKLSNkZWZp
bmUgQ2xhc3NEZWZGb3JtYXQxVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENsYXNzRGVm
Rm9ybWF0MVRhYmxlKQotI2RlZmluZSBDbGFzc0RlZkZvcm1hdDJUYWJsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2xhc3NEZWZGb3JtYXQyVGFibGUpCi0jZGVmaW5lIENsYXNzRGVmaW5pdGlv
blRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFzc0RlZmluaXRpb25UYWJsZSkKLSNk
ZWZpbmUgQ2xvY2tNYXRoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbG9ja01hdGgpCi0jZGVm
aW5lIENvbGxEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsRGF0YSkKLSNkZWZpbmUg
Q29sbERhdGFDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGFDYWNoZSkKLSNk
ZWZpbmUgQ29sbERhdGFDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsRGF0
YUNhY2hlRW50cnkpCi0jZGVmaW5lIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKQotI2RlZmluZSBDb2xsYXRp
b25LZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbktleSkKLSNkZWZpbmUgQ29s
bGF0aW9uTG9jYWxlTGlzdEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xs
YXRpb25Mb2NhbGVMaXN0RW51bWVyYXRpb24pCi0jZGVmaW5lIENvbGxhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDb2xsYXRvcikKLSNkZWZpbmUgQ29sbGF0b3JGYWN0b3J5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb2xsYXRvckZhY3RvcnkpCi0jZGVmaW5lIENvbXBhY3RUcmllRGlj
dGlvbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRyaWVEaWN0aW9uYXJ5KQot
I2RlZmluZSBDb21wYWN0VHJpZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b21wYWN0VHJpZUVudW1lcmF0aW9uKQotI2RlZmluZSBDb21wb3NlTm9ybWFsaXplcjIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvbXBvc2VOb3JtYWxpemVyMikKLSNkZWZpbmUgQ29tcG91bmRU
cmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcG91bmRUcmFuc2xpdGVy
YXRvcikKLSNkZWZpbmUgQ29uZnVzYWJsZWRhdGFCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb25mdXNhYmxlZGF0YUJ1aWxkZXIpCi0jZGVmaW5lIENvbnRleHR1YWxHbHlwaFN1YnN0
aXR1dGlvblByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVhbEdseXBo
U3Vic3RpdHV0aW9uUHJvY2Vzc29yKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uQmFz
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVhbFN1YnN0aXR1dGlvbkJhc2UpCi0j
ZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUpCi0jZGVm
aW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUpCi0jZGVmaW5l
IENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUpCi0jZGVmaW5lIENv
bnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29u
dGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBDb3B0aWNDYWxlbmRhciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29wdGljQ2FsZW5kYXIpCi0jZGVmaW5lIENvdmVyYWdlRm9y
bWF0MVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZvcm1hdDFUYWJsZSkK
LSNkZWZpbmUgQ292ZXJhZ2VGb3JtYXQyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENv
dmVyYWdlRm9ybWF0MlRhYmxlKQotI2RlZmluZSBDb3ZlcmFnZVRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDb3ZlcmFnZVRhYmxlKQotI2RlZmluZSBDdXJyZW5jeUFtb3VudCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lBbW91bnQpCi0jZGVmaW5lIEN1cnJlbmN5Rm9ybWF0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeUZvcm1hdCkKLSNkZWZpbmUgQ3VycmVu
Y3lQbHVyYWxJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeVBsdXJhbEluZm8p
Ci0jZGVmaW5lIEN1cnJlbmN5VW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lV
bml0KQotI2RlZmluZSBDdXJzaXZlQXR0YWNobWVudFN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDdXJzaXZlQXR0YWNobWVudFN1YnRhYmxlKQotI2RlZmluZSBEVFJlZHVuZGFudEVu
dW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEVFJlZHVuZGFudEVudW1lcmF0aW9u
KQotI2RlZmluZSBEVFNrZWxldG9uRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KERUU2tlbGV0b25FbnVtZXJhdGlvbikKLSNkZWZpbmUgRGF0ZUZvcm1hdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRGF0ZUZvcm1hdCkKLSNkZWZpbmUgRGF0ZUZvcm1hdFN5bWJvbHMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKERhdGVGb3JtYXRTeW1ib2xzKQotI2RlZmluZSBEYXRlSW50ZXJ2
YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVJbnRlcnZhbCkKLSNkZWZpbmUgRGF0ZUlu
dGVydmFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxGb3JtYXQp
Ci0jZGVmaW5lIERhdGVJbnRlcnZhbEluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVJ
bnRlcnZhbEluZm8pCi0jZGVmaW5lIERhdGVUaW1lTWF0Y2hlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGF0ZVRpbWVNYXRjaGVyKQotI2RlZmluZSBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcikKLSNkZWZp
bmUgRGF0ZVRpbWVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZVJ1bGUpCi0j
ZGVmaW5lIERlY2ltYWxGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY2ltYWxGb3Jt
YXQpCi0jZGVmaW5lIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShEZWNpbWFsRm9ybWF0U3ltYm9scykKLSNkZWZpbmUgRGVjb21wb3NlTm9ybWFsaXplcjIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY29tcG9zZU5vcm1hbGl6ZXIyKQotI2RlZmluZSBEZWZh
dWx0Q2FsZW5kYXJGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWZhdWx0Q2FsZW5k
YXJGYWN0b3J5KQotI2RlZmluZSBEZWZhdWx0Q2hhck1hcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGVmYXVsdENoYXJNYXBwZXIpCi0jZGVmaW5lIERldmljZVRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShEZXZpY2VUYWJsZSkKLSNkZWZpbmUgRGljdGlvbmFyeUJyZWFrRW5naW5l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEaWN0aW9uYXJ5QnJlYWtFbmdpbmUpCi0jZGVmaW5l
IERpZ2l0TGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGlnaXRMaXN0KQotI2RlZmluZSBE
aXN0YW5jZUluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERpc3RhbmNlSW5mbykKLSNkZWZp
bmUgRW51bVRvT2Zmc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFbnVtVG9PZmZzZXQpCi0j
ZGVmaW5lIEVycm9yQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXJyb3JDb2RlKQotI2Rl
ZmluZSBFc2NhcGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXNjYXBl
VHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIEV0aGlvcGljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEV0aGlvcGljQ2FsZW5kYXIpCi0jZGVmaW5lIEV2ZW50TGlzdGVuZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEV2ZW50TGlzdGVuZXIpCi0jZGVmaW5lIEV4dGVuc2lvblN1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFeHRlbnNpb25TdWJ0YWJsZSkKLSNkZWZpbmUg
RkNETm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZDRE5vcm1hbGl6ZXIyKQot
I2RlZmluZSBGQ0RUcmllU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGQ0RUcmll
U2luZ2xldG9uKQotI2RlZmluZSBGZWF0dXJlTGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShGZWF0dXJlTGlzdFRhYmxlKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uSGFuZGxl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbkhhbmRsZXIpCi0jZGVmaW5l
IEZpZWxkUG9zaXRpb25JdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3Np
dGlvbkl0ZXJhdG9yKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uSXRlcmF0b3JIYW5kbGVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uSXRlcmF0b3JIYW5kbGVyKQotI2RlZmlu
ZSBGaWVsZFBvc2l0aW9uT25seUhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxk
UG9zaXRpb25Pbmx5SGFuZGxlcikKLSNkZWZpbmUgRmlsdGVyZWROb3JtYWxpemVyMiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoRmlsdGVyZWROb3JtYWxpemVyMikKLSNkZWZpbmUgRm9udFJ1bnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvbnRSdW5zKQotI2RlZmluZSBGb3JtYXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdCkKLSNkZWZpbmUgRm9ybWF0MUFuY2hvclRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQxQW5jaG9yVGFibGUpCi0jZGVmaW5lIEZvcm1h
dDJBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0MkFuY2hvclRhYmxl
KQotI2RlZmluZSBGb3JtYXQzQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZv
cm1hdDNBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0TmFtZUVudW1lcmF0aW9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShGb3JtYXROYW1lRW51bWVyYXRpb24pCi0jZGVmaW5lIEZvcm1hdFBh
cnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0UGFyc2VyKQotI2RlZmluZSBGb3Jt
YXR0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0dGFibGUpCi0jZGVmaW5lIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBGb3J3YXJkVVRyaWUyU3RyaW5nSXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcndhcmRVVHJpZTJTdHJpbmdJdGVyYXRvcikKLSNkZWZp
bmUgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZy
YWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uKQotI2RlZmluZSBGdW5jdGlvblJlcGxhY2VyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShGdW5jdGlvblJlcGxhY2VyKQotI2RlZmluZSBHREVGTWFya0Zp
bHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR0RFRk1hcmtGaWx0ZXIpCi0jZGVmaW5lIEdY
TGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHWExheW91dEVuZ2luZSkKLSNk
ZWZpbmUgR2x5cGhEZWZpbml0aW9uVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEdseXBoRGVmaW5pdGlvblRhYmxlSGVhZGVyKQotI2RlZmluZSBHbHlwaEl0ZXJhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaEl0ZXJhdG9yKQotI2RlZmluZSBHbHlwaExvb2t1cFRh
YmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaExvb2t1cFRhYmxlSGVhZGVy
KQotI2RlZmluZSBHbHlwaFBvc2l0aW9uQWRqdXN0bWVudHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEdseXBoUG9zaXRpb25BZGp1c3RtZW50cykKLSNkZWZpbmUgR2x5cGhQb3NpdGlvbmluZ0xv
b2t1cFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlvbmluZ0xv
b2t1cFByb2Nlc3NvcikKLSNkZWZpbmUgR2x5cGhQb3NpdGlvbmluZ1RhYmxlSGVhZGVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uaW5nVGFibGVIZWFkZXIpCi0jZGVmaW5l
IEdseXBoU3Vic3RpdHV0aW9uTG9va3VwUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShHbHlwaFN1YnN0aXR1dGlvbkxvb2t1cFByb2Nlc3NvcikKLSNkZWZpbmUgR2x5cGhTdWJzdGl0
dXRpb25UYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhTdWJzdGl0dXRp
b25UYWJsZUhlYWRlcikKLSNkZWZpbmUgR29vZFN1ZmZpeFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShHb29kU3VmZml4VGFibGUpCi0jZGVmaW5lIEdyZWdvIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShHcmVnbykKLSNkZWZpbmUgR3JlZ29yaWFuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEdyZWdvcmlhbkNhbGVuZGFyKQotI2RlZmluZSBIYW5PcGVuVHlwZUxheW91dEVu
Z2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSGFuT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0j
ZGVmaW5lIEhhbmd1bE9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShIYW5ndWxPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSGVicmV3Q2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEhlYnJld0NhbGVuZGFyKQotI2RlZmluZSBJQ1VCcmVha0l0
ZXJhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQnJlYWtJdGVyYXRvckZh
Y3RvcnkpCi0jZGVmaW5lIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShJQ1VCcmVha0l0ZXJhdG9yU2VydmljZSkKLSNkZWZpbmUgSUNVQ29sbGF0b3JGYWN0
b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VDb2xsYXRvckZhY3RvcnkpCi0jZGVmaW5l
IElDVUNvbGxhdG9yU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQ29sbGF0b3JT
ZXJ2aWNlKQotI2RlZmluZSBJQ1VEYXRhVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElD
VURhdGFUYWJsZSkKLSNkZWZpbmUgSUNVTGFuZ3VhZ2VCcmVha0ZhY3RvcnkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKElDVUxhbmd1YWdlQnJlYWtGYWN0b3J5KQotI2RlZmluZSBJQ1VMb2NhbGVT
ZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VMb2NhbGVTZXJ2aWNlKQotI2RlZmlu
ZSBJQ1VOb3RpZmllciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTm90aWZpZXIpCi0jZGVm
aW5lIElDVU51bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVU51
bWJlckZvcm1hdEZhY3RvcnkpCi0jZGVmaW5lIElDVU51bWJlckZvcm1hdFNlcnZpY2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKElDVU51bWJlckZvcm1hdFNlcnZpY2UpCi0jZGVmaW5lIElDVVJl
c291cmNlQnVuZGxlRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVUmVzb3VyY2VC
dW5kbGVGYWN0b3J5KQotI2RlZmluZSBJQ1VTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShJQ1VTZXJ2aWNlKQotI2RlZmluZSBJQ1VTZXJ2aWNlRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoSUNVU2VydmljZUZhY3RvcnkpCi0jZGVmaW5lIElDVVNlcnZpY2VLZXkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2VLZXkpCi0jZGVmaW5lIElDVV9VdGlsaXR5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VfVXRpbGl0eSkKLSNkZWZpbmUgSUROQSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoSUROQSkKLSNkZWZpbmUgSW5kaWFuQ2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEluZGlhbkNhbGVuZGFyKQotI2RlZmluZSBJbmRpY0NsYXNzVGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljQ2xhc3NUYWJsZSkKLSNkZWZpbmUgSW5kaWNP
cGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNPcGVuVHlw
ZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSW5kaWNSZWFycmFuZ2VtZW50UHJvY2Vzc29yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY1JlYXJyYW5nZW1lbnRQcm9jZXNzb3IpCi0jZGVmaW5l
IEluZGljUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNSZW9yZGVyaW5n
KQotI2RlZmluZSBJbml0aWFsVGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJ
bml0aWFsVGltZVpvbmVSdWxlKQotI2RlZmluZSBJbnB1dFRleHQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKElucHV0VGV4dCkKLSNkZWZpbmUgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24pCi0jZGVmaW5lIElz
bGFtaWNDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSXNsYW1pY0NhbGVuZGFyKQot
I2RlZmluZSBJdGVyYXRlZENoYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEl0ZXJhdGVkQ2hh
cikKLSNkZWZpbmUgSmFwYW5lc2VDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSmFw
YW5lc2VDYWxlbmRhcikKLSNkZWZpbmUgS2VyblRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShLZXJuVGFibGUpCi0jZGVmaW5lIEtleXdvcmRFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoS2V5d29yZEVudW1lcmF0aW9uKQotI2RlZmluZSBLaG1lckNsYXNzVGFibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyQ2xhc3NUYWJsZSkKLSNkZWZpbmUgS2htZXJPcGVu
VHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2htZXJPcGVuVHlwZUxh
eW91dEVuZ2luZSkKLSNkZWZpbmUgS2htZXJSZW9yZGVyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShLaG1lclJlb3JkZXJpbmcpCi0jZGVmaW5lIExFQ2hhck1hcHBlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTEVDaGFyTWFwcGVyKQotI2RlZmluZSBMRUZvbnRJbnN0YW5jZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTEVGb250SW5zdGFuY2UpCi0jZGVmaW5lIExFR2x5cGhGaWx0ZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFR2x5cGhGaWx0ZXIpCi0jZGVmaW5lIExFR2x5cGhT
dG9yYWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUdseXBoU3RvcmFnZSkKLSNkZWZpbmUg
TEVJbnNlcnRpb25DYWxsYmFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNlcnRpb25D
YWxsYmFjaykKLSNkZWZpbmUgTEVJbnNlcnRpb25MaXN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMRUluc2VydGlvbkxpc3QpCi0jZGVmaW5lIExYVXRpbGl0aWVzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShMWFV0aWxpdGllcykKLSNkZWZpbmUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTGFuZ3VhZ2VCcmVha0VuZ2luZSkKLSNkZWZpbmUgTGFuZ3VhZ2VC
cmVha0ZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExhbmd1YWdlQnJlYWtGYWN0b3J5
KQotI2RlZmluZSBMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExheW91dEVu
Z2luZSkKLSNkZWZpbmUgTGlnYXR1cmVTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKExpZ2F0dXJlU3Vic3RpdHV0aW9uUHJvY2Vzc29yKQotI2RlZmluZSBMaWdh
dHVyZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMaWdhdHVy
ZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBMb2NEYXRhUGFyc2VyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShMb2NEYXRhUGFyc2VyKQotI2RlZmluZSBMb2NhbGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKExvY2FsZSkKLSNkZWZpbmUgTG9jYWxlQmFzZWQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExvY2FsZUJhc2VkKQotI2RlZmluZSBMb2NhbGVEaXNwbGF5TmFtZXMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZURpc3BsYXlOYW1lcykKLSNkZWZpbmUgTG9jYWxlRGlz
cGxheU5hbWVzSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlRGlzcGxheU5hbWVz
SW1wbCkKLSNkZWZpbmUgTG9jYWxlS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVL
ZXkpCi0jZGVmaW5lIExvY2FsZUtleUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExv
Y2FsZUtleUZhY3RvcnkpCi0jZGVmaW5lIExvY2FsZVJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExvY2FsZVJ1bnMpCi0jZGVmaW5lIExvY2FsZVV0aWxpdHkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKExvY2FsZVV0aWxpdHkpCi0jZGVmaW5lIExvY2FsaXphdGlvbkluZm8gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKExvY2FsaXphdGlvbkluZm8pCi0jZGVmaW5lIExvb2t1cExpc3RUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3VwTGlzdFRhYmxlKQotI2RlZmluZSBMb29r
dXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cFByb2Nlc3NvcikKLSNk
ZWZpbmUgTG9va3VwU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cFN1YnRh
YmxlKQotI2RlZmluZSBMb29rdXBUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3Vw
VGFibGUpCi0jZGVmaW5lIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShMb3dlcmNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTVByZUZpeHVwcyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTVByZUZpeHVwcykKLSNkZWZpbmUgTWFya0FycmF5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrQXJyYXkpCi0jZGVmaW5lIE1hcmtUb0Jhc2VQb3NpdGlv
bmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrVG9CYXNlUG9zaXRpb25p
bmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWFya1RvTGlnYXR1cmVQb3NpdGlvbmluZ1N1YnRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrVG9MaWdhdHVyZVBvc2l0aW9uaW5nU3VidGFibGUp
Ci0jZGVmaW5lIE1hcmtUb01hcmtQb3NpdGlvbmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShNYXJrVG9NYXJrUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWVhc3VyZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVhc3VyZSkKLSNkZWZpbmUgTWVhc3VyZUZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVhc3VyZUZvcm1hdCkKLSNkZWZpbmUgTWVhc3VyZVVu
aXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmVVbml0KQotI2RlZmluZSBNZXNzYWdl
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZXNzYWdlRm9ybWF0KQotI2RlZmluZSBN
ZXNzYWdlRm9ybWF0QWRhcHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVzc2FnZUZvcm1h
dEFkYXB0ZXIpCi0jZGVmaW5lIE1vZHVsdXNTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE1vZHVsdXNTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE1vb25SaXNlU2V0Q29vcmRGdW5j
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb29uUmlzZVNldENvb3JkRnVuYykKLSNkZWZpbmUg
TW9vblRpbWVBbmdsZUZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1vb25UaW1lQW5nbGVG
dW5jKQotI2RlZmluZSBNb3JwaFN1YnRhYmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShNb3JwaFN1YnRhYmxlSGVhZGVyKQotI2RlZmluZSBNb3JwaFRhYmxlSGVhZGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShNb3JwaFRhYmxlSGVhZGVyKQotI2RlZmluZSBNdWx0aXBsZVN1YnN0
aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdWx0aXBsZVN1YnN0aXR1
dGlvblN1YnRhYmxlKQotI2RlZmluZSBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKQotI2RlZmluZSBNdXRhYmxlVHJp
ZURpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11dGFibGVUcmllRGljdGlvbmFy
eSkKLSNkZWZpbmUgTXV0YWJsZVRyaWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTXV0YWJsZVRyaWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgTkZGYWN0b3J5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShORkZhY3RvcnkpCi0jZGVmaW5lIE5GS0RCdWZmZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE5GS0RCdWZmZXIpCi0jZGVmaW5lIE5GUnVsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTkZSdWxlKQotI2RlZmluZSBORlJ1bGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE5GUnVsZVNldCkKLSNkZWZpbmUgTkZTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE5GU3Vic3RpdHV0aW9uKQotI2RlZmluZSBOR3JhbVBhcnNlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTkdyYW1QYXJzZXIpCi0jZGVmaW5lIE5hbWVUb0VudW0gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE5hbWVUb0VudW0pCi0jZGVmaW5lIE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIE5vbkNvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTm9uQ29udGV4dHVhbEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29yKQot
I2RlZmluZSBOb25Db250aWd1b3VzRW51bVRvT2Zmc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShOb25Db250aWd1b3VzRW51bVRvT2Zmc2V0KQotI2RlZmluZSBOb29wTm9ybWFsaXplcjIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vb3BOb3JtYWxpemVyMikKLSNkZWZpbmUgTm9ybTJBbGxN
b2RlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybTJBbGxNb2RlcykKLSNkZWZpbmUgTm9y
bWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxp
emF0aW9uVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE5vcm1hbGl6ZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE5vcm1hbGl6ZXIpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShOb3JtYWxpemVyMikKLSNkZWZpbmUgTm9ybWFsaXplcjJGYWN0b3J5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyMkZhY3RvcnkpCi0jZGVmaW5lIE5vcm1hbGl6
ZXIySW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJJbXBsKQotI2RlZmlu
ZSBOb3JtYWxpemVyMldpdGhJbXBsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVy
MldpdGhJbXBsKQotI2RlZmluZSBOdWxsU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShOdWxsU3Vic3RpdHV0aW9uKQotI2RlZmluZSBOdWxsVHJhbnNsaXRlcmF0b3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE51bGxUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTnVtYmVyRm9y
bWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJGb3JtYXQpCi0jZGVmaW5lIE51bWJl
ckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bWJlckZvcm1hdEZhY3Rv
cnkpCi0jZGVmaW5lIE51bWJlcmluZ1N5c3RlbSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVt
YmVyaW5nU3lzdGVtKQotI2RlZmluZSBOdW1lcmF0b3JTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE51bWVyYXRvclN1YnN0aXR1dGlvbikKLSNkZWZpbmUgT2xzb25UaW1lWm9u
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoT2xzb25UaW1lWm9uZSkKLSNkZWZpbmUgT3BlblR5
cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9wZW5UeXBlTGF5b3V0RW5n
aW5lKQotI2RlZmluZSBPcGVuVHlwZVV0aWxpdGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
T3BlblR5cGVVdGlsaXRpZXMpCi0jZGVmaW5lIE9yQ29uc3RyYWludCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoT3JDb25zdHJhaW50KQotI2RlZmluZSBQQ0VCdWZmZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFBDRUJ1ZmZlcikKLSNkZWZpbmUgUGFpclBvc2l0aW9uaW5nRm9ybWF0MVN1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWlyUG9zaXRpb25pbmdGb3JtYXQxU3VidGFi
bGUpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoUGFpclBvc2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBQYWly
UG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFpclBvc2l0aW9u
aW5nU3VidGFibGUpCi0jZGVmaW5lIFBhcmFncmFwaExheW91dCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUGFyYWdyYXBoTGF5b3V0KQotI2RlZmluZSBQYXJzZURhdGEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFBhcnNlRGF0YSkKLSNkZWZpbmUgUGFyc2VQb3NpdGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoUGFyc2VQb3NpdGlvbikKLSNkZWZpbmUgUGF0dGVybk1hcCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUGF0dGVybk1hcCkKLSNkZWZpbmUgUGF0dGVybk1hcEl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXR0ZXJuTWFwSXRlcmF0b3IpCi0jZGVmaW5lIFBlcnNp
YW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGVyc2lhbkNhbGVuZGFyKQotI2Rl
ZmluZSBQbHVyYWxGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBsdXJhbEZvcm1hdCkK
LSNkZWZpbmUgUGx1cmFsS2V5d29yZEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShQbHVyYWxLZXl3b3JkRW51bWVyYXRpb24pCi0jZGVmaW5lIFBsdXJhbFJ1bGVzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShQbHVyYWxSdWxlcykKLSNkZWZpbmUgUHJvcGVydHlBbGlhc2VzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQcm9wZXJ0eUFsaWFzZXMpCi0jZGVmaW5lIFB0bkVsZW0g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFB0bkVsZW0pCi0jZGVmaW5lIFB0blNrZWxldG9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQdG5Ta2VsZXRvbikKLSNkZWZpbmUgUXVhbnRpZmllciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUXVhbnRpZmllcikKLSNkZWZpbmUgUkJCSURhdGFXcmFw
cGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJRGF0YVdyYXBwZXIpCi0jZGVmaW5lIFJC
QklOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJTm9kZSkKLSNkZWZpbmUgUkJCSVJ1
bGVCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJUnVsZUJ1aWxkZXIpCi0jZGVm
aW5lIFJCQklSdWxlU2Nhbm5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVJ1bGVTY2Fu
bmVyKQotI2RlZmluZSBSQkJJU2V0QnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJC
SVNldEJ1aWxkZXIpCi0jZGVmaW5lIFJCQklTdGF0ZURlc2NyaXB0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJCQklTdGF0ZURlc2NyaXB0b3IpCi0jZGVmaW5lIFJCQklTeW1ib2xUYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN5bWJvbFRhYmxlKQotI2RlZmluZSBSQkJJU3lt
Ym9sVGFibGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN5bWJvbFRhYmxlRW50
cnkpCi0jZGVmaW5lIFJCQklUYWJsZUJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJC
QklUYWJsZUJ1aWxkZXIpCi0jZGVmaW5lIFJDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUkNFQnVmZmVyKQotI2RlZmluZSBSYW5nZURlc2NyaXB0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFJhbmdlRGVzY3JpcHRvcikKLSNkZWZpbmUgUmVnZXhDb21waWxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSZWdleENvbXBpbGUpCi0jZGVmaW5lIFJlZ2V4TWF0Y2hlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhNYXRjaGVyKQotI2RlZmluZSBSZWdleFBhdHRlcm4gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ2V4UGF0dGVybikKLSNkZWZpbmUgUmVnZXhTdGF0aWNT
ZXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWdleFN0YXRpY1NldHMpCi0jZGVmaW5lIFJl
Z3VsYXJFeHByZXNzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWd1bGFyRXhwcmVzc2lv
bikKLSNkZWZpbmUgUmVsYXRpdmVEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShS
ZWxhdGl2ZURhdGVGb3JtYXQpCi0jZGVmaW5lIFJlbW92ZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShSZW1vdmVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgUmVvcmRlcmlu
Z0J1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVvcmRlcmluZ0J1ZmZlcikKLSNkZWZp
bmUgUmVwbGFjZWFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlcGxhY2VhYmxlKQotI2Rl
ZmluZSBSZXBsYWNlYWJsZUdsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlcGxhY2VhYmxl
R2x1ZSkKLSNkZWZpbmUgUmVzb3VyY2VCdW5kbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJl
c291cmNlQnVuZGxlKQotI2RlZmluZSBSaXNlU2V0Q29vcmRGdW5jIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShSaXNlU2V0Q29vcmRGdW5jKQotI2RlZmluZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKQotI2RlZmlu
ZSBSdWxlQmFzZWRDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkQ29s
bGF0b3IpCi0jZGVmaW5lIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUnVsZUJhc2VkTnVtYmVyRm9ybWF0KQotI2RlZmluZSBSdWxlQmFzZWRUaW1lWm9uZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkVGltZVpvbmUpCi0jZGVmaW5lIFJ1bGVC
YXNlZFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRUcmFu
c2xpdGVyYXRvcikKLSNkZWZpbmUgUnVsZUNoYWluIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShS
dWxlQ2hhaW4pCi0jZGVmaW5lIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUnVsZUNoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBSdWxlSGFsZiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUnVsZUhhbGYpCi0jZGVmaW5lIFJ1bGVQYXJzZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFJ1bGVQYXJzZXIpCi0jZGVmaW5lIFJ1bkFycmF5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSdW5BcnJheSkKLSNkZWZpbmUgU1BVU3RyaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTUFVTdHJpbmcpCi0jZGVmaW5lIFNQVVN0cmluZ1Bvb2wgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNQVVN0cmluZ1Bvb2wpCi0jZGVmaW5lIFNhZmVab25lU3RyaW5nRm9ybWF0
UHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTYWZlWm9uZVN0cmluZ0Zvcm1hdFB0cikKLSNk
ZWZpbmUgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTYW1l
VmFsdWVTdWJzdGl0dXRpb24pCi0jZGVmaW5lIFNjcmlwdExpc3RUYWJsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU2NyaXB0TGlzdFRhYmxlKQotI2RlZmluZSBTY3JpcHRSdW5JdGVyYXRvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0UnVuSXRlcmF0b3IpCi0jZGVmaW5lIFNjcmlw
dFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0U2V0KQotI2RlZmluZSBTY3JpcHRU
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0VGFibGUpCi0jZGVmaW5lIFNlYXJj
aEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZWFyY2hJdGVyYXRvcikKLSNkZWZp
bmUgU2VnbWVudEFycmF5UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZWdtZW50
QXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFNlZ21lbnRTaW5nbGVQcm9jZXNzb3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNlZ21lbnRTaW5nbGVQcm9jZXNzb3IpCi0jZGVmaW5lIFNlbGVjdEZv
cm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VsZWN0Rm9ybWF0KQotI2RlZmluZSBTZXJ2
aWNlRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlcnZpY2VFbnVtZXJhdGlv
bikKLSNkZWZpbmUgU2VydmljZUxpc3RlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZXJ2
aWNlTGlzdGVuZXIpCi0jZGVmaW5lIFNpbXBsZUFycmF5UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTaW1wbGVBcnJheVByb2Nlc3NvcikKLSNkZWZpbmUgU2ltcGxlRGF0ZUZvcm1h
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlRGF0ZUZvcm1hdCkKLSNkZWZpbmUgU2lt
cGxlRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlRmFjdG9yeSkKLSNkZWZp
bmUgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxl
TG9jYWxlS2V5RmFjdG9yeSkKLSNkZWZpbmUgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSkKLSNkZWZpbmUg
U2ltcGxlU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVTaW5nbGV0b24p
Ci0jZGVmaW5lIFNpbXBsZVRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVU
aW1lWm9uZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlKQotI2Rl
ZmluZSBTaW5nbGVQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVBv
c2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBvc2l0aW9u
aW5nU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxl
KQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUg
U2luZ2xlU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmds
ZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVUYWJsZVByb2Nlc3NvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlVGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFNwb29m
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Bvb2ZEYXRhKQotI2RlZmluZSBTcG9vZklt
cGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNwb29mSW1wbCkKLSNkZWZpbmUgU3RhdGVUYWJs
ZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RhdGVUYWJsZVByb2Nlc3NvcikK
LSNkZWZpbmUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBTdHJpbmdFbnVtZXJhdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nRW51bWVyYXRpb24pCi0jZGVmaW5lIFN0cmluZ0xp
c3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0xpc3QpCi0jZGVmaW5lIFN0cmluZ0xv
Y2FsaXphdGlvbkluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0xvY2FsaXphdGlv
bkluZm8pCi0jZGVmaW5lIFN0cmluZ01hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0
cmluZ01hdGNoZXIpCi0jZGVmaW5lIFN0cmluZ1BhaXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFN0cmluZ1BhaXIpCi0jZGVmaW5lIFN0cmluZ1BpZWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTdHJpbmdQaWVjZSkKLSNkZWZpbmUgU3RyaW5nUmVwbGFjZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN0cmluZ1JlcGxhY2VyKQotI2RlZmluZSBTdHJpbmdTZWFyY2ggVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFN0cmluZ1NlYXJjaCkKLSNkZWZpbmUgU3RyaW5nVG9DRXNNYXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ1RvQ0VzTWFwKQotI2RlZmluZSBTdHlsZVJ1bnMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0eWxlUnVucykKLSNkZWZpbmUgU3Vic3RpdHV0aW9uTG9v
a3VwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdWJzdGl0dXRpb25Mb29rdXApCi0jZGVmaW5l
IFN1YnRhYmxlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdWJ0YWJsZVByb2Nl
c3NvcikKLSNkZWZpbmUgU3VuVGltZUFuZ2xlRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U3VuVGltZUFuZ2xlRnVuYykKLSNkZWZpbmUgU3ltYm9sVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN5bWJvbFRhYmxlKQotI2RlZmluZSBUWkVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUWkVudW1lcmF0aW9uKQotI2RlZmluZSBUYWl3YW5DYWxlbmRhciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVGFpd2FuQ2FsZW5kYXIpCi0jZGVmaW5lIFRhcmdldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVGFyZ2V0KQotI2RlZmluZSBUZXJuYXJ5Tm9kZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVGVybmFyeU5vZGUpCi0jZGVmaW5lIFRleHRUcmllTWFwIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUZXh0VHJpZU1hcCkKLSNkZWZpbmUgVGV4dFRyaWVNYXBTZWFyY2hS
ZXN1bHRIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUZXh0VHJpZU1hcFNlYXJjaFJl
c3VsdEhhbmRsZXIpCi0jZGVmaW5lIFRoYWlCcmVha0VuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVGhhaUJyZWFrRW5naW5lKQotI2RlZmluZSBUaGFpTGF5b3V0RW5naW5lIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUaGFpTGF5b3V0RW5naW5lKQotI2RlZmluZSBUaGFpU2hhcGluZyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGhhaVNoYXBpbmcpCi0jZGVmaW5lIFRpYmV0YW5DbGFz
c1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaWJldGFuQ2xhc3NUYWJsZSkKLSNkZWZp
bmUgVGliZXRhbk9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
aWJldGFuT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIFRpYmV0YW5SZW9yZGVyaW5nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaWJldGFuUmVvcmRlcmluZykKLSNkZWZpbmUgVGltZUFy
cmF5VGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lQXJyYXlUaW1lWm9u
ZVJ1bGUpCi0jZGVmaW5lIFRpbWVVbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lVW5p
dCkKLSNkZWZpbmUgVGltZVVuaXRBbW91bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVV
bml0QW1vdW50KQotI2RlZmluZSBUaW1lVW5pdEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVGltZVVuaXRGb3JtYXQpCi0jZGVmaW5lIFRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShUaW1lWm9uZSkKLSNkZWZpbmUgVGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShUaW1lWm9uZVJ1bGUpCi0jZGVmaW5lIFRpbWVab25lVHJhbnNpdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVGltZVpvbmVUcmFuc2l0aW9uKQotI2RlZmluZSBUaXRsZWNhc2VUcmFu
c2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGl0bGVjYXNlVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRyYW5zbGl0ZXJhdGlvblJ1bGUpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGVEYXRhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlRGF0YSkKLSNkZWZpbmUg
VHJhbnNsaXRlcmF0aW9uUnVsZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRl
cmF0aW9uUnVsZVNldCkKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvckFsaWFzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvckFsaWFzKQotI2RlZmluZSBUcmFuc2xp
dGVyYXRvckVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvckVudHJ5
KQotI2RlZmluZSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUcmFuc2xpdGVyYXRvcklEUGFyc2VyKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclBhcnNlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JQYXJzZXIpCi0jZGVmaW5lIFRy
YW5zbGl0ZXJhdG9yUmVnaXN0cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJh
dG9yUmVnaXN0cnkpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yU3BlYyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JTcGVjKQotI2RlZmluZSBUcmlTdGF0ZVNpbmdsZXRvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpU3RhdGVTaW5nbGV0b24pCi0jZGVmaW5lIFRyaWVX
b3JkRGljdGlvbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpZVdvcmREaWN0aW9uYXJ5
KQotI2RlZmluZSBUcmltbWVkQXJyYXlQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRyaW1tZWRBcnJheVByb2Nlc3NvcikKLSNkZWZpbmUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUg
VUNvbGxhdGlvblBDRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNvbGxhdGlvblBDRSkKLSNk
ZWZpbmUgVURhdGFQYXRoSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVEYXRhUGF0
aEl0ZXJhdG9yKQotI2RlZmluZSBVTG9jUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUxv
Y1J1bnMpCi0jZGVmaW5lIFVNZW1vcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVNZW1vcnkp
Ci0jZGVmaW5lIFVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVPYmplY3QpCi0jZGVm
aW5lIFVTdGFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVN0YWNrKQotI2RlZmluZSBVU3Ry
aW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVTdHJpbmdFbnVtZXJhdGlv
bikKLSNkZWZpbmUgVVRTNDYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVUUzQ2KQotI2RlZmlu
ZSBVVHJpZTJTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVUcmllMlNpbmdsZXRv
bikKLSNkZWZpbmUgVVZlY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3RvcikKLSNk
ZWZpbmUgVVZlY3RvcjMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yMzIpCi0jZGVm
aW5lIFVWZWN0b3I2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3RvcjY0KQotI2RlZmlu
ZSBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmVzY2Fw
ZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBVbmhhbmRsZWRFbmdpbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFVuaGFuZGxlZEVuZ2luZSkKLSNkZWZpbmUgVW5pY29kZUFyYWJpY09wZW5UeXBl
TGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlQXJhYmljT3BlblR5
cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIFVuaWNvZGVGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFVuaWNvZGVGaWx0ZXIpCi0jZGVmaW5lIFVuaWNvZGVGdW5jdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShVbmljb2RlRnVuY3RvcikKLSNkZWZpbmUgVW5pY29kZU1hdGNoZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVNYXRjaGVyKQotI2RlZmluZSBVbmljb2RlTmFt
ZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlTmFtZVRyYW5z
bGl0ZXJhdG9yKQotI2RlZmluZSBVbmljb2RlUmVwbGFjZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFVuaWNvZGVSZXBsYWNlcikKLSNkZWZpbmUgVW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVW5pY29kZVNldCkKLSNkZWZpbmUgVW5pY29kZVNldEl0ZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU2V0SXRlcmF0b3IpCi0jZGVmaW5lIFVuaWNvZGVTZXRT
dHJpbmdTcGFuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU2V0U3RyaW5nU3BhbikK
LSNkZWZpbmUgVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVN0
cmluZykKLSNkZWZpbmUgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBWVFpSZWFkZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFZUWlJlYWRlcikKLSNkZWZpbmUgVlRaV3JpdGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShWVFpXcml0ZXIpCi0jZGVmaW5lIFZUaW1lWm9uZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVlRpbWVab25lKQotI2RlZmluZSBWYWx1ZVJlY29yZCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVmFsdWVSZWNvcmQpCi0jZGVmaW5lIFZhbHVlUnVucyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVmFsdWVSdW5zKQotI2RlZmluZSBaU0ZDYWNoZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoWlNGQ2FjaGUpCi0jZGVmaW5lIFpTRkNhY2hlRW50cnkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFpTRkNhY2hlRW50cnkpCi0jZGVmaW5lIFpTRlN0cmluZ1Bvb2wgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFpTRlN0cmluZ1Bvb2wpCi0jZGVmaW5lIFpTRlN0cmluZ1Bvb2xD
aHVuayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWlNGU3RyaW5nUG9vbENodW5rKQotI2RlZmlu
ZSBab25lTWV0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZU1ldGEpCi0jZGVmaW5lIFpv
bmVTdHJpbmdGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdGb3JtYXQp
Ci0jZGVmaW5lIFpvbmVTdHJpbmdJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3Ry
aW5nSW5mbykKLSNkZWZpbmUgWm9uZVN0cmluZ1NlYXJjaFJlc3VsdEhhbmRsZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdTZWFyY2hSZXN1bHRIYW5kbGVyKQotI2RlZmluZSBa
b25lU3RyaW5ncyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ3MpCi0jZGVmaW5l
IGNvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShjb2xsSXRlcmF0ZSkKLSNkZWZp
bmUgbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShs
b2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwpCi0jZGVmaW5lIHV0aWw2NF9mcm9tRG91YmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGlsNjRfZnJvbURvdWJsZSkKLSNkZWZpbmUgdXRpbDY0
X3BvdyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X3BvdykKLSNkZWZpbmUgdXRpbDY0
X3RvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X3RvdSkKLQotI2VuZGlmCi0jZW5k
aWYKLQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91c2NyaXB0LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRleCBlZTIx
Yzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRhZmFiNTNm
ZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VzY3JpcHQuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzY3JpcHQuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAx
MCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3B5cmlnaHQgKEMpIDE5
OTctMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogICogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpA
QCAtNDQsMTgyICs0NCwzNjkgQEAKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVu
dW0gVVNjcmlwdENvZGUgeworICAgIC8qCisgICAgICogTm90ZTogVVNjcmlwdENvZGUgY29uc3Rh
bnRzIGFuZCB0aGVpciBJU08gc2NyaXB0IGNvZGUgY29tbWVudHMKKyAgICAgKiBhcmUgcGFyc2Vk
IGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAq
ICAgICBVU0NSSVBUXzxVbmljb2RlIFNjcmlwdCB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2VyPiwgIC8g
KiA8SVNPIHNjcmlwdCBjb2RlPiAqIC8KKyAgICAgKi8KKworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuMiAqLwogICAgICAgVVNDUklQVF9JTlZBTElEX0NPREUgPSAtMSwKKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09NTU9OICAgICAgID0gIDAsICAvKiBaeXl5
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0lOSEVSSVRF
RCAgICA9ICAxLCAgLyogWmluaCAqLyAvKiAiQ29kZSBmb3IgaW5oZXJpdGVkIHNjcmlwdCIsIGZv
ciBub24tc3BhY2luZyBjb21iaW5pbmcgbWFya3M7IGFsc28gUWFhaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9BUkFCSUMgICAgICAgPSAgMiwgIC8qIEFy
YWIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQVJNRU5J
QU4gICAgID0gIDMsICAvKiBBcm1uICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0JFTkdBTEkgICAgICA9ICA0LCAgLyogQmVuZyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CT1BPTU9GTyAgICAgPSAgNSwgIC8qIEJv
cG8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ0hFUk9L
RUUgICAgID0gIDYsICAvKiBDaGVyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0NPUFRJQyAgICAgICA9ICA3LCAgLyogQ29wdCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DWVJJTExJQyAgICAgPSAgOCwgIC8qIEN5
cmwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfREVTRVJF
VCAgICAgID0gIDksICAvKiBEc3J0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0RFVkFOQUdBUkkgICA9IDEwLCAgLyogRGV2YSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9FVEhJT1BJQyAgICAgPSAxMSwgIC8qIEV0
aGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR0VPUkdJ
QU4gICAgID0gMTIsICAvKiBHZW9yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0dPVEhJQyAgICAgICA9IDEzLCAgLyogR290aCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HUkVFSyAgICAgICAgPSAxNCwgIC8qIEdy
ZWsgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1VKQVJB
VEkgICAgID0gMTUsICAvKiBHdWpyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0dVUk1VS0hJICAgICA9IDE2LCAgLyogR3VydSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IQU4gICAgICAgICAgPSAxNywgIC8qIEhh
bmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEFOR1VM
ICAgICAgID0gMTgsICAvKiBIYW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0hFQlJFVyAgICAgICA9IDE5LCAgLyogSGViciAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ISVJBR0FOQSAgICAgPSAyMCwgIC8qIEhp
cmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0FOTkFE
QSAgICAgID0gMjEsICAvKiBLbmRhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0tBVEFLQU5BICAgICA9IDIyLCAgLyogS2FuYSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LSE1FUiAgICAgICAgPSAyMywgIC8qIEto
bXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTEFPICAg
ICAgICAgID0gMjQsICAvKiBMYW9vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0xBVElOICAgICAgICA9IDI1LCAgLyogTGF0biAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NQUxBWUFMQU0gICAgPSAyNiwgIC8qIE1s
eW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTU9OR09M
SUFOICAgID0gMjcsICAvKiBNb25nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX01ZQU5NQVIgICAgICA9IDI4LCAgLyogTXltciAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PR0hBTSAgICAgICAgPSAyOSwgIC8qIE9n
YW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT0xEX0lU
QUxJQyAgID0gMzAsICAvKiBJdGFsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX09SSVlBICAgICAgICA9IDMxLCAgLyogT3J5YSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9SVU5JQyAgICAgICAgPSAzMiwgIC8qIFJ1
bnIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfU0lOSEFM
QSAgICAgID0gMzMsICAvKiBTaW5oICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX1NZUklBQyAgICAgICA9IDM0LCAgLyogU3lyYyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9UQU1JTCAgICAgICAgPSAzNSwgIC8qIFRh
bWwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEVMVUdV
ICAgICAgID0gMzYsICAvKiBUZWx1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX1RIQUFOQSAgICAgICA9IDM3LCAgLyogVGhhYSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USEFJICAgICAgICAgPSAzOCwgIC8qIFRo
YWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVElCRVRB
TiAgICAgID0gMzksICAvKiBUaWJ0ICovCiAgICAgICAvKiogQ2FuYWRpYW5fQWJvcmlnaW5hbCBz
Y3JpcHQuIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9DQU5BRElBTl9BQk9SSUdJ
TkFMID0gNDAsICAvKiBDYW5zICovCiAgICAgICAvKiogQ2FuYWRpYW5fQWJvcmlnaW5hbCBzY3Jp
cHQgKGFsaWFzKS4gQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1VDQVMgICAgICAg
ICA9IFVTQ1JJUFRfQ0FOQURJQU5fQUJPUklHSU5BTCwKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAy
LjIgKi8KICAgICAgIFVTQ1JJUFRfWUkgICAgICAgICAgID0gNDEsICAvKiBZaWlpICovCisgICAg
ICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDMuMiAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuMiAqLwogICAgICAgVVNDUklQVF9UQUdBTE9HICAgICAgPSA0MiwgIC8qIFRnbGcgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEFOVU5PTyAgICAgID0g
NDMsICAvKiBIYW5vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NS
SVBUX0JVSElEICAgICAgICA9IDQ0LCAgLyogQnVoZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuMiAqLwogICAgICAgVVNDUklQVF9UQUdCQU5XQSAgICAgPSA0NSwgIC8qIFRhZ2IgKi8KIAot
ICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0IEBzdGFibGUgSUNVIDIuNiAqLworICAg
ICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX0JSQUlMTEUgICAgICA9IDQ2LCAgLyogQnJhaSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9DWVBSSU9UICAgICAgPSA0
NywgIC8qIENwcnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJ
UFRfTElNQlUgICAgICAgID0gNDgsICAvKiBMaW1iICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX0xJTkVBUl9CICAgICA9IDQ5LCAgLyogTGluYiAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9PU01BTllBICAgICAgPSA1
MCwgIC8qIE9zbWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJ
UFRfU0hBVklBTiAgICAgID0gNTEsICAvKiBTaGF3ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX1RBSV9MRSAgICAgICA9IDUyLCAgLyogVGFsZSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9VR0FSSVRJQyAgICAgPSA1
MywgIC8qIFVnYXIgKi8KIAogICAgICAgLyoqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQu
MC4xIEBzdGFibGUgSUNVIDMuMCAqLwogICAgICAgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FO
QSA9IDU0LC8qSHJrdCAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQuMSBA
c3RhYmxlIElDVSAzLjQgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNC4xICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0JVR0lORVNFICAg
ICAgPSA1NSwgLyogQnVnaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAg
VVNDUklQVF9HTEFHT0xJVElDICAgID0gNTYsIC8qIEdsYWcgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfS0hBUk9TSFRISSAgICA9IDU3LCAvKiBLaGFyICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX1NZTE9USV9OQUdS
SSAgPSA1OCwgLyogU3lsbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAg
VVNDUklQVF9ORVdfVEFJX0xVRSAgID0gNTksIC8qIFRhbHUgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfVElGSU5BR0ggICAgICA9IDYwLCAvKiBUZm5nICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX09MRF9QRVJTSUFO
ICAgPSA2MSwgLyogWHBlbyAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNP
IDE1OTI0IEBzdGFibGUgSUNVIDMuNiAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9t
IElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9CQUxJTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDYyLCAvKiBCYWxpICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JBVEFLICAgICAgICAgICAgICAg
ICAgICAgICAgID0gNjMsIC8qIEJhdGsgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfQkxJU1NZTUJPTFMgICAgICAgICAgICAgICAgICAgPSA2NCwgLyogQmxp
cyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9CUkFITUkg
ICAgICAgICAgICAgICAgICAgICAgICA9IDY1LCAvKiBCcmFoICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0NIQU0gICAgICAgICAgICAgICAgICAgICAgICAg
ID0gNjYsIC8qIENoYW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfQ0lSVEggICAgICAgICAgICAgICAgICAgICAgICAgPSA2NywgLyogQ2lydCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9PTERfQ0hVUkNIX1NMQVZP
TklDX0NZUklMTElDICA9IDY4LCAvKiBDeXJzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCiAgICAgICBVU0NSSVBUX0RFTU9USUNfRUdZUFRJQU4gICAgICAgICAgICAgID0gNjksIC8q
IEVneWQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfSElF
UkFUSUNfRUdZUFRJQU4gICAgICAgICAgICAgPSA3MCwgLyogRWd5aCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9FR1lQVElBTl9ISUVST0dMWVBIUyAgICAg
ICAgICA9IDcxLCAvKiBFZ3lwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAg
ICBVU0NSSVBUX0tIVVRTVVJJICAgICAgICAgICAgICAgICAgICAgID0gNzIsIC8qIEdlb2sgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfU0lNUExJRklFRF9I
QU4gICAgICAgICAgICAgICAgPSA3MywgLyogSGFucyAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuNiAqLwogICAgICAgVVNDUklQVF9UUkFESVRJT05BTF9IQU4gICAgICAgICAgICAgICA9IDc0
LCAvKiBIYW50ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBU
X1BBSEFXSF9ITU9ORyAgICAgICAgICAgICAgICAgID0gNzUsIC8qIEhtbmcgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX0hVTkdBUklBTiAgICAgICAg
ICAgICAgICAgPSA3NiwgLyogSHVuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwog
ICAgICAgVVNDUklQVF9IQVJBUFBBTl9JTkRVUyAgICAgICAgICAgICAgICA9IDc3LCAvKiBJbmRz
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0pBVkFORVNF
ICAgICAgICAgICAgICAgICAgICAgID0gNzgsIC8qIEphdmEgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0FZQUhfTEkgICAgICAgICAgICAgICAgICAgICAg
PSA3OSwgLyogS2FsaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVND
UklQVF9MQVRJTl9GUkFLVFVSICAgICAgICAgICAgICAgICA9IDgwLCAvKiBMYXRmICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0dBRUxJQyAgICAg
ICAgICAgICAgICAgID0gODEsIC8qIExhdGcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYg
Ki8KICAgICAgIFVTQ1JJUFRfTEVQQ0hBICAgICAgICAgICAgICAgICAgICAgICAgPSA4MiwgLyog
TGVwYyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9MSU5F
QVJfQSAgICAgICAgICAgICAgICAgICAgICA9IDgzLCAvKiBMaW5hICovCiAgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01BTkRBSUMgICAgICAgICAgICAgICAgICAg
ICAgID0gODQsIC8qIE1hbmQgKi8KICAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAg
IFVTQ1JJUFRfTUFOREFFQU4gICAgICAgICAgICAgICAgICAgICAgPSBVU0NSSVBUX01BTkRBSUMs
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01BWUFOX0hJRVJP
R0xZUEhTICAgICAgICAgICAgID0gODUsIC8qIE1heWEgKi8KICAgICAgIC8qKiBAc3RhYmxlIElD
VSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUVST0lUSUNfSElFUk9HTFlQSFMgICAgICAgICAgPSA4
NiwgLyogTWVybyAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9NRVJPSVRJQyAgICAgICAgICAgICAgICAgICAgICA9IFVTQ1JJUFRfTUVST0lUSUNfSElFUk9H
TFlQSFMsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX05LTyAg
ICAgICAgICAgICAgICAgICAgICAgICAgID0gODcsIC8qIE5rb28gKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT1JLSE9OICAgICAgICAgICAgICAgICAgICAg
ICAgPSA4OCwgLyogT3JraCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9PTERfUEVSTUlDICAgICAgICAgICAgICAgICAgICA9IDg5LCAvKiBQZXJtICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1BIQUdTX1BBICAgICAg
ICAgICAgICAgICAgICAgID0gOTAsIC8qIFBoYWcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfUEhPRU5JQ0lBTiAgICAgICAgICAgICAgICAgICAgPSA5MSwg
LyogUGhueCAqLwotICAgICAgVVNDUklQVF9QSE9ORVRJQ19QT0xMQVJEICAgICAgICAgICAgICA9
IDkyLCAvKiBQbHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAgIFVTQ1JJ
UFRfTUlBTyAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5MiwgLyogUGxyZCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLworICAgICAgVVNDUklQVF9QSE9ORVRJQ19QT0xMQVJEICAg
ICAgICAgICAgICA9IFVTQ1JJUFRfTUlBTywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfUk9OR09ST05HTyAgICAgICAgICAgICAgICAgICAgPSA5MywgLyogUm9y
byAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9TQVJBVEkg
ICAgICAgICAgICAgICAgICAgICAgICA9IDk0LCAvKiBTYXJhICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0VTVFJBTkdFTE9fU1lSSUFDICAgICAgICAgICAg
ID0gOTUsIC8qIFN5cmUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfV0VTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NiwgLyogU3lyaiAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9FQVNURVJOX1NZUklBQyAg
ICAgICAgICAgICAgICA9IDk3LCAvKiBTeXJuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCiAgICAgICBVU0NSSVBUX1RFTkdXQVIgICAgICAgICAgICAgICAgICAgICAgID0gOTgsIC8q
IFRlbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVkFJ
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5OSwgLyogVmFpaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9WSVNJQkxFX1NQRUVDSCAgICAgICAgICAg
ICAgICA9IDEwMCwvKiBWaXNwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAg
ICBVU0NSSVBUX0NVTkVJRk9STSAgICAgICAgICAgICAgICAgICAgID0gMTAxLC8qIFhzdXggKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVU5XUklUVEVOX0xB
TkdVQUdFUyAgICAgICAgICAgPSAxMDIsLyogWnh4eCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuNiAqLwogICAgICAgVVNDUklQVF9VTktOT1dOICAgICAgICAgICAgICAgICAgICAgICA9IDEw
MywvKiBaenp6ICovIC8qIFVua25vd249IkNvZGUgZm9yIHVuY29kZWQgc2NyaXB0IiwgZm9yIHVu
YXNzaWduZWQgY29kZSBwb2ludHMgKi8KIAotICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9t
IElTTyAxNTkyNCBAc3RhYmxlIElDVSAzLjggKi8KKyAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMg
ZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVT
Q1JJUFRfQ0FSSUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQsLyogQ2FyaSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9KQVBBTkVTRSAgICAgICAg
ICAgICAgICAgICAgICA9IDEwNSwvKiBKcGFuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44
ICovCiAgICAgICBVU0NSSVBUX0xBTk5BICAgICAgICAgICAgICAgICAgICAgICAgID0gMTA2LC8q
IExhbmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTFlD
SUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDcsLyogTHljaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MWURJQU4gICAgICAgICAgICAgICAgICAg
ICAgICA9IDEwOCwvKiBMeWRpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAg
ICBVU0NSSVBUX09MX0NISUtJICAgICAgICAgICAgICAgICAgICAgID0gMTA5LC8qIE9sY2sgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfUkVKQU5HICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMTAsLyogUmpuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuOCAqLwogICAgICAgVVNDUklQVF9TQVVSQVNIVFJBICAgICAgICAgICAgICAgICAgICA9IDEx
MSwvKiBTYXVyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBU
X1NJR05fV1JJVElORyAgICAgICAgICAgICAgICAgID0gMTEyLC8qIFNnbncgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU1VOREFORVNFICAgICAgICAgICAg
ICAgICAgICAgPSAxMTMsLyogU3VuZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwog
ICAgICAgVVNDUklQVF9NT09OICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNCwvKiBNb29u
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01FSVRFSV9N
QVlFSyAgICAgICAgICAgICAgICAgID0gMTE1LC8qIE10ZWkgKi8KIAotICAgICAgLyogTmV3IHNj
cmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjAgKi8KKyAgICAgIC8qIE5l
dyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
LjAgKi8KICAgICAgIFVTQ1JJUFRfSU1QRVJJQUxfQVJBTUFJQyAgICAgICAgICAgICAgPSAxMTYs
LyogQXJtaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9B
VkVTVEFOICAgICAgICAgICAgICAgICAgICAgICA9IDExNywvKiBBdnN0ICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0NIQUtNQSAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTE4LC8qIENha20gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAg
ICAgIFVTQ1JJUFRfS09SRUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTksLyogS29yZSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LQUlUSEkgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEyMCwvKiBLdGhpICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgNC4wICovCiAgICAgICBVU0NSSVBUX01BTklDSEFFQU4gICAgICAgICAgICAgICAgICAgID0g
MTIxLC8qIE1hbmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJ
UFRfSU5TQ1JJUFRJT05BTF9QQUhMQVZJICAgICAgICAgPSAxMjIsLyogUGhsaSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9QU0FMVEVSX1BBSExBVkkgICAg
ICAgICAgICAgICA9IDEyMywvKiBQaGxwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICov
CiAgICAgICBVU0NSSVBUX0JPT0tfUEFITEFWSSAgICAgICAgICAgICAgICAgID0gMTI0LC8qIFBo
bHYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfSU5TQ1JJ
UFRJT05BTF9QQVJUSElBTiAgICAgICAgPSAxMjUsLyogUHJ0aSAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9TQU1BUklUQU4gICAgICAgICAgICAgICAgICAg
ICA9IDEyNiwvKiBTYW1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBV
U0NSSVBUX1RBSV9WSUVUICAgICAgICAgICAgICAgICAgICAgID0gMTI3LC8qIFRhdnQgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfTUFUSEVNQVRJQ0FMX05P
VEFUSU9OICAgICAgICAgPSAxMjgsLyogWm10aCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQu
MCAqLwogICAgICAgVVNDUklQVF9TWU1CT0xTICAgICAgICAgICAgICAgICAgICAgICA9IDEyOSwv
KiBac3ltICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0
YWJsZSBJQ1UgNC40ICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX0JBTVVNICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTMwLC8qIEJhbXUgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfTElTVSAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxMzEsLyogTGlzdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAgVVND
UklQVF9OQUtISV9HRUJBICAgICAgICAgICAgICAgICAgICA9IDEzMiwvKiBOa2diICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX09MRF9TT1VUSF9BUkFCSUFO
ICAgICAgICAgICAgID0gMTMzLC8qIFNhcmIgKi8KIAotICAgICAgLyogTmV3IHNjcmlwdCBjb2Rl
cyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjYgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHQg
Y29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAg
ICAgIFVTQ1JJUFRfQkFTU0FfVkFIICAgICAgICAgICAgICAgICAgICAgPSAxMzQsLyogQmFzcyAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9EVVBMT1lBTl9T
SE9SVEFORCAgICAgICAgICAgICA9IDEzNSwvKiBEdXBsICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgNC42ICovCiAgICAgICBVU0NSSVBUX0VMQkFTQU4gICAgICAgICAgICAgICAgICAgICAgID0g
MTM2LC8qIEVsYmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJ
UFRfR1JBTlRIQSAgICAgICAgICAgICAgICAgICAgICAgPSAxMzcsLyogR3JhbiAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9LUEVMTEUgICAgICAgICAgICAg
ICAgICAgICAgICA9IDEzOCwvKiBLcGVsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICov
CiAgICAgICBVU0NSSVBUX0xPTUEgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTM5LC8qIExv
bWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUVOREUg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDAsLyogTWVuZCAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRVJPSVRJQ19DVVJTSVZFICAgICAgICAgICAg
ICA9IDE0MSwvKiBNZXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBV
U0NSSVBUX09MRF9OT1JUSF9BUkFCSUFOICAgICAgICAgICAgID0gMTQyLC8qIE5hcmIgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTkFCQVRBRUFOICAgICAg
ICAgICAgICAgICAgICAgPSAxNDMsLyogTmJhdCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQu
NiAqLwogICAgICAgVVNDUklQVF9QQUxNWVJFTkUgICAgICAgICAgICAgICAgICAgICA9IDE0NCwv
KiBQYWxtICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX1NJ
TkRISSAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ1LC8qIFNpbmQgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfV0FSQU5HX0NJVEkgICAgICAgICAgICAg
ICAgICAgPSAxNDYsLyogV2FyYSAqLwogCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisg
ICAgICBVU0NSSVBUX0FGQUtBICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ3LC8qIEFmYWsg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfSlVSQ0hFTiAg
ICAgICAgICAgICAgICAgICAgICAgPSAxNDgsLyogSnVyYyAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuOCAqLworICAgICAgVVNDUklQVF9NUk8gICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDE0OSwvKiBNcm9vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NS
SVBUX05VU0hVICAgICAgICAgICAgICAgICAgICAgICAgID0gMTUwLC8qIE5zaHUgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfU0hBUkFEQSAgICAgICAgICAg
ICAgICAgICAgICAgPSAxNTEsLyogU2hyZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAq
LworICAgICAgVVNDUklQVF9TT1JBX1NPTVBFTkcgICAgICAgICAgICAgICAgICA9IDE1MiwvKiBT
b3JhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1RBS1JJ
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTUzLC8qIFRha3IgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfVEFOR1VUICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxNTQsLyogVGFuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAg
VVNDUklQVF9XT0xFQUkgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NSwvKiBXb2xlICovCisK
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQVF9BTkFUT0xJQU5fSElF
Uk9HTFlQSFMgICAgICAgICA9IDE1NiwvKiBIbHV3ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICAgIFVTQ1JJUFRfS0hPSktJICAgICAgICAgICAgICAgICAgICAgICAgPSAxNTcs
LyogS2hvaiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBVU0NSSVBUX1RJ
UkhVVEEgICAgICAgICAgICAgICAgICAgICAgID0gMTU4LC8qIFRpcmggKi8KKworICAgICAgLyoq
IEBzdGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX0NBVUNBU0lBTl9BTEJBTklBTiAgICAg
ICAgICAgID0gMTU5LC8qIEFnaGIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAg
ICAgVVNDUklQVF9NQUhBSkFOSSAgICAgICAgICAgICAgICAgICAgICA9IDE2MCwvKiBNYWhqICov
CisKICAgICAgIC8qIFByaXZhdGUgdXNlIGNvZGVzIGZyb20gUWFhYSAtIFFhYnggYXJlIG5vdCBz
dXBwb3J0ZWQgKi8KLSAgICAgIFVTQ1JJUFRfQ09ERV9MSU1JVCAgICA9IDE0NworCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4yICovCisgICAgICBVU0NSSVBUX0NPREVfTElNSVQgICAgPSAxNjEK
IH0gVVNjcmlwdENvZGU7CiAKIC8qKgpAQCAtMjc3LDkgKzQ2NCw5IEBAIFVfU1RBQkxFIFVTY3Jp
cHRDb2RlICBVX0VYUE9SVDIKIHVzY3JpcHRfZ2V0U2NyaXB0KFVDaGFyMzIgY29kZXBvaW50LCBV
RXJyb3JDb2RlICplcnIpOwogCiAvKioKLSAqIElzIGNvZGUgcG9pbnQgYyB1c2VkIGluIHNjcmlw
dCBzYz8KLSAqIFRoYXQgaXMsIGRvZXMgY29kZSBwb2ludCBjIGhhdmUgdGhlIFNjcmlwdCBwcm9w
ZXJ0eSB2YWx1ZSBzYywKLSAqIG9yIGRvIGNvZGUgcG9pbnQgYydzIFNjcmlwdF9FeHRlbnNpb25z
IGluY2x1ZGUgc2NyaXB0IGNvZGUgc2M/CisgKiBEbyB0aGUgU2NyaXB0X0V4dGVuc2lvbnMgb2Yg
Y29kZSBwb2ludCBjIGNvbnRhaW4gc2NyaXB0IHNjPworICogSWYgYyBkb2VzIG5vdCBoYXZlIGV4
cGxpY2l0IFNjcmlwdF9FeHRlbnNpb25zLCB0aGVuIHRoaXMgdGVzdHMgd2hldGhlcgorICogYyBo
YXMgdGhlIFNjcmlwdCBwcm9wZXJ0eSB2YWx1ZSBzYy4KICAqCiAgKiBTb21lIGNoYXJhY3RlcnMg
YXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAqIEZvciBtb3JlIGluZm9y
bWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjQv
LgpAQCAtMjg4LDE1ICs0NzUsMjIgQEAgdXNjcmlwdF9nZXRTY3JpcHQoVUNoYXIzMiBjb2RlcG9p
bnQsIFVFcnJvckNvZGUgKmVycik7CiAgKiBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIFVuaWNv
ZGUgU3RhbmRhcmQsIGFuZCB0aHVzIGluIElDVS4KICAqIEBwYXJhbSBjIGNvZGUgcG9pbnQKICAq
IEBwYXJhbSBzYyBzY3JpcHQgY29kZQotICogQHJldHVybiBUUlVFIGlmIFNjcmlwdChjKT09c2Mg
b3Igc2MgaXMgaW4gU2NyaXB0X0V4dGVuc2lvbnMoYykKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBA
cmV0dXJuIFRSVUUgaWYgc2MgaXMgaW4gU2NyaXB0X0V4dGVuc2lvbnMoYykKKyAqIEBzdGFibGUg
SUNVIDQ5CiAgKi8KLVVfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCitVX1NUQUJMRSBVQm9vbCBVX0VY
UE9SVDIKIHVzY3JpcHRfaGFzU2NyaXB0KFVDaGFyMzIgYywgVVNjcmlwdENvZGUgc2MpOwogCiAv
KioKICAqIFdyaXRlcyBjb2RlIHBvaW50IGMncyBTY3JpcHRfRXh0ZW5zaW9ucyBhcyBhIGxpc3Qg
b2YgVVNjcmlwdENvZGUgdmFsdWVzCi0gKiB0byB0aGUgb3V0cHV0IHNjcmlwdHMgYXJyYXkuCisg
KiB0byB0aGUgb3V0cHV0IHNjcmlwdHMgYXJyYXkgYW5kIHJldHVybnMgdGhlIG51bWJlciBvZiBz
Y3JpcHQgY29kZXMuCisgKiAtIElmIGMgZG9lcyBoYXZlIFNjcmlwdF9FeHRlbnNpb25zLCB0aGVu
IHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUKKyAqICAgKG5vcm1hbGx5IENvbW1vbiBvciBJbmhl
cml0ZWQpIGlzIG5vdCBpbmNsdWRlZC4KKyAqIC0gSWYgYyBkb2VzIG5vdCBoYXZlIFNjcmlwdF9F
eHRlbnNpb25zLCB0aGVuIHRoZSBvbmUgU2NyaXB0IGNvZGUgaXMgd3JpdHRlbiB0byB0aGUgb3V0
cHV0IGFycmF5LgorICogLSBJZiBjIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQsIHRoZW4gdGhl
IG9uZSBVU0NSSVBUX1VOS05PV04gY29kZSBpcyB3cml0dGVuLgorICogSW4gb3RoZXIgd29yZHMs
IGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgMSwKKyAqIHRoZW4gdGhlIG91dHB1dCBhcnJheSBjb250
YWlucyBleGFjdGx5IGMncyBzaW5nbGUgU2NyaXB0IGNvZGUuCisgKiBJZiB0aGUgcmV0dXJuIHZh
bHVlIGlzIG4+PTIsIHRoZW4gdGhlIG91dHB1dCBhcnJheSBjb250YWlucyBjJ3MgbiBTY3JpcHRf
RXh0ZW5zaW9ucyBzY3JpcHQgY29kZXMuCiAgKgogICogU29tZSBjaGFyYWN0ZXJzIGFyZSBjb21t
b25seSB1c2VkIGluIG11bHRpcGxlIHNjcmlwdHMuCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg
c2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI0Ly4KQEAgLTMx
NCwxMyArNTA4LDEyMCBAQCB1c2NyaXB0X2hhc1NjcmlwdChVQ2hhcjMyIGMsIFVTY3JpcHRDb2Rl
IHNjKTsKICAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3Ig
ZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucwogICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVs
eS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAogICogICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxz
LikKLSAqIEByZXR1cm4gbnVtYmVyIG9mIHNjcmlwdCBjb2RlcyBpbiBjJ3MgU2NyaXB0X0V4dGVu
c2lvbnMsCisgKiBAcmV0dXJuIG51bWJlciBvZiBzY3JpcHQgY29kZXMgaW4gYydzIFNjcmlwdF9F
eHRlbnNpb25zLCBvciAxIGZvciB0aGUgc2luZ2xlIFNjcmlwdCB2YWx1ZSwKICAqICAgICAgICAg
d3JpdHRlbiB0byBzY3JpcHRzIHVubGVzcyBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiBpbmRpY2F0
ZXMgaW5zdWZmaWNpZW50IGNhcGFjaXR5Ci0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJ
Q1UgNDkKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBV
X0VYUE9SVDIKIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyhVQ2hhcjMyIGMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdENvZGUgKnNjcmlwdHMsIGludDMyX3QgY2FwYWNp
dHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqZXJyb3JDb2RlKTsKKwor
I2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisKKy8qKgorICogU2NyaXB0IHVzYWdlIGNvbnN0YW50
cy4KKyAqIFNlZSBVQVggIzMxIFVuaWNvZGUgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXgu
CisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzMS8jVGFibGVfQ2FuZGlkYXRl
X0NoYXJhY3RlcnNfZm9yX0V4Y2x1c2lvbl9mcm9tX0lkZW50aWZpZXJzCisgKgorICogQGRyYWZ0
IElDVSA1MQorICovCit0eXBlZGVmIGVudW0gVVNjcmlwdFVzYWdlIHsKKyAgICAvKiogTm90IGVu
Y29kZWQgaW4gVW5pY29kZS4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfTk9U
X0VOQ09ERUQsCisgICAgLyoqIFVua25vd24gc2NyaXB0IHVzYWdlLiBAZHJhZnQgSUNVIDUxICov
CisgICAgVVNDUklQVF9VU0FHRV9VTktOT1dOLAorICAgIC8qKiBDYW5kaWRhdGUgZm9yIEV4Y2x1
c2lvbiBmcm9tIElkZW50aWZpZXJzLiBAZHJhZnQgSUNVIDUxICovCisgICAgVVNDUklQVF9VU0FH
RV9FWENMVURFRCwKKyAgICAvKiogTGltaXRlZCBVc2Ugc2NyaXB0LiBAZHJhZnQgSUNVIDUxICov
CisgICAgVVNDUklQVF9VU0FHRV9MSU1JVEVEX1VTRSwKKyAgICAvKiogQXNwaXJhdGlvbmFsIFVz
ZSBzY3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0FTUElSQVRJT05B
TCwKKyAgICAvKiogUmVjb21tZW5kZWQgc2NyaXB0LiBAZHJhZnQgSUNVIDUxICovCisgICAgVVND
UklQVF9VU0FHRV9SRUNPTU1FTkRFRAorfSBVU2NyaXB0VXNhZ2U7CisKKy8qKgorICogV3JpdGVz
IHRoZSBzY3JpcHQgc2FtcGxlIGNoYXJhY3RlciBzdHJpbmcuCisgKiBUaGlzIHN0cmluZyBub3Jt
YWxseSBjb25zaXN0cyBvZiBvbmUgY29kZSBwb2ludCBidXQgbWlnaHQgYmUgbG9uZ2VyLgorICog
VGhlIHN0cmluZyBpcyBlbXB0eSBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkLgorICoKKyAq
IEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEBwYXJhbSBkZXN0IG91dHB1dCBzdHJpbmcg
YXJyYXkKKyAqIEBwYXJhbSBjYXBhY2l0eSBudW1iZXIgb2YgVUNoYXJzIGluIHRoZSBkZXN0IGFy
cmF5CisgKiBAcGFyYW0gcEVycm9yQ29kZSBzdGFuZGFyZCBJQ1UgaW4vb3V0IGVycm9yIGNvZGUs
IG11c3QgcGFzcyBVX1NVQ0NFU1MoKSBvbiBpbnB1dAorICogQHJldHVybiB0aGUgc3RyaW5nIGxl
bmd0aCwgZXZlbiBpZiBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUgorICogQGRyYWZ0IElDVSA1MQor
ICovCitVX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCit1c2NyaXB0X2dldFNhbXBsZVN0cmluZyhV
U2NyaXB0Q29kZSBzY3JpcHQsIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LCBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQ
QUNFX0JFR0lOCitjbGFzcyBVbmljb2RlU3RyaW5nOworVV9OQU1FU1BBQ0VfRU5ECisKKy8qKgor
ICogUmV0dXJucyB0aGUgc2NyaXB0IHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5nLgorICogVGhpcyBz
dHJpbmcgbm9ybWFsbHkgY29uc2lzdHMgb2Ygb25lIGNvZGUgcG9pbnQgYnV0IG1pZ2h0IGJlIGxv
bmdlci4KKyAqIFRoZSBzdHJpbmcgaXMgZW1wdHkgaWYgdGhlIHNjcmlwdCBpcyBub3QgZW5jb2Rl
ZC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIHRoZSBzYW1w
bGUgY2hhcmFjdGVyIHN0cmluZworICogQGRyYWZ0IElDVSA1MQorICovCitVX0NPTU1PTl9BUEkg
aWN1OjpVbmljb2RlU3RyaW5nIFVfRVhQT1JUMgordXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3Ry
aW5nKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKyNlbmRpZgorCisvKioKKyAqIFJldHVybnMgdGhl
IHNjcmlwdCB1c2FnZSBhY2NvcmRpbmcgdG8gVUFYICMzMSBVbmljb2RlIElkZW50aWZpZXIgYW5k
IFBhdHRlcm4gU3ludGF4LgorICogUmV0dXJucyBVU0NSSVBUX1VTQUdFX05PVF9FTkNPREVEIGlm
IHRoZSBzY3JpcHQgaXMgbm90IGVuY29kZWQgaW4gVW5pY29kZS4KKyAqCisgKiBAcGFyYW0gc2Ny
aXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIHNjcmlwdCB1c2FnZQorICogQHNlZSBVU2NyaXB0
VXNhZ2UKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVU2NyaXB0VXNhZ2UgVV9FWFBP
UlQyCit1c2NyaXB0X2dldFVzYWdlKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKy8qKgorICogUmV0
dXJucyBUUlVFIGlmIHRoZSBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICogRm9y
IGV4YW1wbGUsIEFyYWIgYW5kIEhlYnIuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29k
ZQorICogQHJldHVybiBUUlVFIGlmIHRoZSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdAorICogQGRy
YWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9pc1JpZ2h0
VG9MZWZ0KFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKy8qKgorICogUmV0dXJucyBUUlVFIGlmIHRo
ZSBzY3JpcHQgYWxsb3dzIGxpbmUgYnJlYWtzIGJldHdlZW4gbGV0dGVycyAoZXhjbHVkaW5nIGh5
cGhlbmF0aW9uKS4KKyAqIFN1Y2ggYSBzY3JpcHQgdHlwaWNhbGx5IHJlcXVpcmVzIGRpY3Rpb25h
cnktYmFzZWQgbGluZSBicmVha2luZy4KKyAqIEZvciBleGFtcGxlLCBIYW5pIGFuZCBUaGFpLgor
ICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUg
c2NyaXB0IGFsbG93cyBsaW5lIGJyZWFrcyBiZXR3ZWVuIGxldHRlcnMKKyAqIEBkcmFmdCBJQ1Ug
NTEKKyAqLworVV9EUkFGVCBVQm9vbCBVX0VYUE9SVDIKK3VzY3JpcHRfYnJlYWtzQmV0d2Vlbkxl
dHRlcnMoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgaW4g
bW9kZXJuIChvciBtb3N0IHJlY2VudCkgdXNhZ2Ugb2YgdGhlIHNjcmlwdCBjYXNlIGRpc3RpbmN0
aW9ucyBhcmUgY3VzdG9tYXJ5LgorICogRm9yIGV4YW1wbGUsIExhdG4gYW5kIEN5cmwuCisgKgor
ICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHJldHVybiBUUlVFIGlmIHRoZSBzY3Jp
cHQgaXMgY2FzZWQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVQm9vbCBVX0VYUE9S
VDIKK3VzY3JpcHRfaXNDYXNlZChVU2NyaXB0Q29kZSBzY3JpcHQpOworCisjZW5kaWYgIC8qIFVf
SElERV9EUkFGVF9BUEkgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VzZXQuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXNldC5oCmluZGV4IDc3YWIw
NjM0MmYyNmU5YzcwZTI3MzAyNGZhNmViZWY1NjJjZDU5ODEuLjQwNTEwY2Q0MTY3YzhmNzdkNTA2
NjFkZmZmN2ZlMDliOWVmODA1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dXNldC5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXNldC5oCkBAIC0xLDcgKzEsNyBA
QAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDIt
MjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykg
MjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCkBAIC04OSwxMyArODksNyBAQCBlbnVtIHsKICAgICAgKiBvZiBlYWNoIGV4aXN0aW5n
IGVsZW1lbnQgaW4gdGhlIHNldC4KICAgICAgKiBAc3RhYmxlIElDVSAzLjIKICAgICAgKi8KLSAg
ICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNCwKLSAgICAKLSAgICAvKioKLSAgICAgKiBFbm91
Z2ggZm9yIGFueSBzaW5nbGUtY29kZSBwb2ludCBzZXQKLSAgICAgKiBAaW50ZXJuYWwKLSAgICAg
Ki8KLSAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFDSVRZPTgKKyAgICBVU0VU
X0FERF9DQVNFX01BUFBJTkdTID0gNAogfTsKIAogLyoqCkBAIC0yMDcsNiArMjAxLDE2IEBAIHR5
cGVkZWYgZW51bSBVU2V0U3BhbkNvbmRpdGlvbiB7CiAgICAgVVNFVF9TUEFOX0NPTkRJVElPTl9D
T1VOVAogfSBVU2V0U3BhbkNvbmRpdGlvbjsKIAorZW51bSB7CisgICAgLyoqCisgICAgICogQ2Fw
YWNpdHkgb2YgVVNlcmlhbGl6ZWRTZXQ6OnN0YXRpY0FycmF5LgorICAgICAqIEVub3VnaCBmb3Ig
YW55IHNpbmdsZS1jb2RlIHBvaW50IHNldC4KKyAgICAgKiBBbHNvIHByb3ZpZGVzIHBhZGRpbmcg
Zm9yIG5pY2Ugc2l6ZW9mKFVTZXJpYWxpemVkU2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQK
KyAgICAgKi8KKyAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFDSVRZPTgKK307
CisKIC8qKgogICogQSBzZXJpYWxpemVkIGZvcm0gb2YgYSBVbmljb2RlIHNldC4gIExpbWl0ZWQg
bWFuaXB1bGF0aW9ucyBhcmUKICAqIHBvc3NpYmxlIGRpcmVjdGx5IG9uIGEgc2VyaWFsaXplZCBz
ZXQuICBTZWUgYmVsb3cuCkBAIC0yNDcsNyArMjUxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVVNlcmlh
bGl6ZWRTZXQgewogICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KIFVfU1RBQkxFIFVTZXQqIFVfRVhQ
T1JUMgotdXNldF9vcGVuRW1wdHkoKTsKK3VzZXRfb3BlbkVtcHR5KHZvaWQpOwogCiAvKioKICAq
IENyZWF0ZXMgYSBVU2V0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSByYW5nZSBvZiBjaGFyYWN0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCmluZGV4IDJlZTE2ZTk5Y2YzYzAwN2FiNzVlYzFm
NmJkNDFjMTVhZWFkOTI5NTIuLmQyZWEzMWM2NzQ3ZjhmMWMxZWIwMzcwZTI4NDNjM2Y2NDQ5OGIw
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEyLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0yMCw5ICsyMCwxNCBAQAogI2luY2x1
ZGUgInVuaWNvZGUvcHV0aWwuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VpdGVyLmgiCiAKLS8qKiBT
aW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRvIGF2b2lkIGluY2x1ZGluZyB1
bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KKy8qKgorICogXGRlZiBVQlJLX1RZUEVE
RUZfVUJSRUFLX0lURVJBVE9SCisgKiBAaW50ZXJuYWwgCisgKi8KKwogI2lmbmRlZiBVQlJLX1RZ
UEVERUZfVUJSRUFLX0lURVJBVE9SCiAjICAgZGVmaW5lIFVCUktfVFlQRURFRl9VQlJFQUtfSVRF
UkFUT1IKKy8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRvIGF2b2lk
IGluY2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KICAgICB0eXBlZGVm
IHN0cnVjdCBVQnJlYWtJdGVyYXRvciBVQnJlYWtJdGVyYXRvcjsKICNlbmRpZgogCkBAIC0xNDYs
OCArMTUxLDggQEAgdV9zdHJjYXQoVUNoYXIgICAgICpkc3QsCiAgKiBJZiA8Y29kZT5uJmx0Oz0w
PC9jb2RlPiB0aGVuIGRzdCBpcyBub3QgbW9kaWZpZWQuCiAgKgogICogQHBhcmFtIGRzdCBUaGUg
ZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZy4KLSAq
IEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFwcGVuZC4KKyAq
IEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgbjw9
MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBhcHBl
bmQ7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRzdDwvY29k
ZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNTUwLDkgKzU1NSw5IEBAIHVfc3RyQ2Fz
ZUNvbXBhcmUoY29uc3QgVUNoYXIgKnMxLCBpbnQzMl90IGxlbmd0aDEsCiAgKiBDb21wYXJlIHR3
byB1c3RyaW5ncyBmb3IgYml0d2lzZSBlcXVhbGl0eS4gCiAgKiBDb21wYXJlcyBhdCBtb3N0IDxj
b2RlPm48L2NvZGU+IGNoYXJhY3RlcnMuCiAgKgotICogQHBhcmFtIHVjczEgQSBzdHJpbmcgdG8g
Y29tcGFyZS4KLSAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUuCi0gKiBAcGFyYW0g
biBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb21wYXJlLgorICogQHBhcmFt
IHVjczEgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBuPD0wKS4K
KyAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBiZSBOVUxML2ludmFsaWQg
aWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0
byBjb21wYXJlOyBhbHdheXMgcmV0dXJucyAwIGlmIG48PTAuCiAgKiBAcmV0dXJuIDAgaWYgPGNv
ZGU+czE8L2NvZGU+IGFuZCA8Y29kZT5zMjwvY29kZT4gYXJlIGJpdHdpc2UgZXF1YWw7IGEgbmVn
YXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9jb2RlPiBpcyBiaXR3aXNlIGxlc3MgdGhhbiA8
Y29kZT5zMjwvY29kZT47IGEgcG9zaXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9jb2RlPiBp
cyBiaXR3aXNlIGdyZWF0ZXIgdGhhbiA8Y29kZT5zMjwvY29kZT4uCkBAIC02NjcsOCArNjcyLDgg
QEAgdV9zdHJjcHkoVUNoYXIgICAgICpkc3QsCiAgKiBpZiB0aGUgbGVuZ3RoIG9mIDxjb2RlPnNy
YzwvY29kZT4gaXMgbGVzcyB0aGFuIDxjb2RlPm48L2NvZGU+LgogICoKICAqIEBwYXJhbSBkc3Qg
VGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcu
Ci0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb3B5Lgor
ICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBu
PD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNv
cHk7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRzdDwvY29k
ZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNzQyLDggKzc0Nyw4IEBAIFVfU1RBQkxF
IGNoYXIqIFVfRVhQT1JUMiB1X2F1c3RybmNweShjaGFyICpkc3QsCiAvKioKICAqIFN5bm9ueW0g
Zm9yIG1lbWNweSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBwYXJhbSBkZXN0IFRoZSBk
ZXN0aW5hdGlvbiBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcKLSAqIEBw
YXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weQorICogQHBhcmFtIHNy
YyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBjb3VudDw9MCkKKyAq
IEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weTsgbm8tb3AgaWYg
PD0wCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9jb2RlPgogICogQHN0YWJs
ZSBJQ1UgMi4wCiAgKi8KQEAgLTc1Myw4ICs3NTgsOCBAQCB1X21lbWNweShVQ2hhciAqZGVzdCwg
Y29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBjb3VudCk7CiAvKioKICAqIFN5bm9ueW0gZm9yIG1l
bW1vdmUoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBAcGFyYW0gZGVzdCBUaGUgZGVzdGlu
YXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nCi0gKiBAcGFyYW0g
Y291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmUKKyAqIEBwYXJhbSBzcmMgVGhl
IHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgY291bnQ8PTApCisgKiBAcGFy
YW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmU7IG5vLW9wIGlmIDw9MAog
ICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwvY29kZT4KICAqIEBzdGFibGUgSUNV
IDIuMAogICovCkBAIC05MTgsNyArOTIzLDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMs
IFVDaGFyMzIgYywgaW50MzJfdCBjb3VudCk7CiAgKiAgICB9CiAgKiA8L3ByZT4KICAqIAotICog
Tm90ZSB0aGF0IHRoZSBtYWNyb3Mgd2lsbCBOT1QgY29uc2lzdGVudGx5IHdvcmsgaWYgdGhlaXIg
YXJndW1lbnQgaXMgYW5vdGhlciAjZGVmaW5lLiAKKyAqIE5vdGUgdGhhdCB0aGUgbWFjcm9zIHdp
bGwgTk9UIGNvbnNpc3RlbnRseSB3b3JrIGlmIHRoZWlyIGFyZ3VtZW50IGlzIGFub3RoZXIgPGNv
ZGU+I2RlZmluZTwvY29kZT4uIAogICogIFRoZSBmb2xsb3dpbmcgd2lsbCBub3Qgd29yayBvbiBh
bGwgcGxhdGZvcm1zLCBkb24ndCB1c2UgaXQuCiAgKiAKICAqIDxwcmU+CkBAIC05MzQsNyArOTM5
LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVDaGFyMzIgYywgaW50MzJfdCBjb3Vu
dCk7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQoVV9ERUNMQVJFX1VURjE2
KQotIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0
IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1VX0RFQ0xBUkVfVVRGMTYoY3MpCisjICAgZGVmaW5lIFVf
U1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgKnZhcj0oY29u
c3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpCiAgICAgLyoqQHN0YWJsZSBJQ1UgMi4wICov
CiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3RoKQogI2VsaWYgVV9TSVpF
T0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlf
RkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmluZWQoVV9XQ0hBUl9JU19VVEYx
NikpKQpAQCAtOTQyLDcgKzk0Nyw3IEBAIHVfbWVtcmNocjMyKGNvbnN0IFVDaGFyICpzLCBVQ2hh
cjMyIGMsIGludDMyX3QgY291bnQpOwogICAgIC8qKkBzdGFibGUgSUNVIDIuMCAqLwogIyAgIGRl
ZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0aCkKICNlbGlmIFVfU0laRU9GX1VDSEFS
PT0xICYmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0jICAgZGVmaW5lIFVfU1RS
SU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgdmFyWyhsZW5ndGgp
KzFdPXsgKGNvbnN0IFVDaGFyICopY3MgfQorIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwg
Y3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1jcwogICAgIC8q
KkBzdGFibGUgSUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxl
bmd0aCkKICNlbHNlCkBAIC0xMTU0LDEwICsxMTU5LDEyIEBAIHVfc3RyVG9UaXRsZShVQ2hhciAq
ZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAjZW5kaWYKIAogLyoqCi0gKiBDYXNlLWZvbGQg
dGhlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuCisgKiBDYXNlLWZvbGRzIHRoZSBjaGFyYWN0ZXJz
IGluIGEgc3RyaW5nLgorICoKICAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQg
YW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKICAqIGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9y
IHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0ZWQgSQotICog
YW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0
LgorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRp
bmcudHh0LgorICoKICAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4g
dGhlIG9yaWdpbmFsLgogICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBi
dWZmZXIgYXJlIGFsbG93ZWQgdG8gb3ZlcmxhcC4KICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3V0Zi5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91dGYuaAppbmRleCBm
Nzk0Nzk5MzVkNGExZDZiMWJlZmNkNDA1Y2QwNGY1MjM4MWI5M2U3Li5mNTk1NGZlOWZlNjk5ODkz
YmQzMThlMjQ3NzI5MjZjMTc1YTIwYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3V0Zi5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmLmgKQEAgLTEsNyArMSw3
IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5
OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKQEAgLTIyLDE1ICsyMiwyMCBAQAogICogYSBzdXJyb2dhdGUgb3IgYSBub24tY2hh
cmFjdGVyIGV0Yy4KICAqCiAgKiBUaGUgVUNoYXIgYW5kIFVDaGFyMzIgZGF0YSB0eXBlcyBmb3Ig
VW5pY29kZSBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cwotICogYXJlIGRlZmluZWQgaW4gdW1h
Y2hpbmVzLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBtYWNoaW5lLWRlcGVuZGVudC4KKyAqIGFyZSBk
ZWZpbmVkIGluIHVtYWNoaW5lLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBtYWNoaW5lLWRlcGVuZGVu
dC4KICAqCi0gKiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaCBhbmQgaXRzZWxmIGluY2x1
ZGVzIHV0ZjguaCBhbmQgdXRmMTYuaCBhZnRlciBzb21lCi0gKiBjb21tb24gZGVmaW5pdGlvbnMu
IFRob3NlIGZpbGVzIGRlZmluZSBtYWNyb3MgZm9yIGVmZmljaWVudGx5IGdldHRpbmcgY29kZSBw
b2ludHMKKyAqIElmIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIGlzIDAgdGhlbiB1
dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaAorICogYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4
LmggYW5kIHV0ZjE2LmggYWZ0ZXIgc29tZQorICogY29tbW9uIGRlZmluaXRpb25zLgorICogSWYg
VV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMgaXMgMSB0aGVuIGVhY2ggb2YgdGhlc2Ug
aGVhZGVycyBtdXN0IGJlCisgKiBpbmNsdWRlZCBleHBsaWNpdGx5IGlmIHRoZWlyIGRlZmluaXRp
b25zIGFyZSB1c2VkLgorICoKKyAqIHV0ZjguaCBhbmQgdXRmMTYuaCBkZWZpbmUgbWFjcm9zIGZv
ciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCiAgKiBpbiBhbmQgb3V0IG9mIFVURi04
LzE2IHN0cmluZ3MuCiAgKiB1dGYxNi5oIG1hY3JvcyBoYXZlICJVMTZfIiBwcmVmaXhlcy4KICAq
IHV0ZjguaCBkZWZpbmVzIHNpbWlsYXIgbWFjcm9zIHdpdGggIlU4XyIgcHJlZml4ZXMgZm9yIFVU
Ri04IHN0cmluZyBoYW5kbGluZy4KICAqCi0gKiBJQ1UgcHJvY2Vzc2VzIDE2LWJpdCBVbmljb2Rl
IHN0cmluZ3MuCisgKiBJQ1UgbW9zdGx5IHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdz
LgogICogTW9zdCBvZiB0aGUgdGltZSwgc3VjaCBzdHJpbmdzIGFyZSB3ZWxsLWZvcm1lZCBVVEYt
MTYuCiAgKiBTaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZXMgbXVzdCBiZSBoYW5kbGVkIGFzIHdl
bGwsIGFuZCBhcmUgdHJlYXRlZCBpbiBJQ1UKICAqIGxpa2UgcmVndWxhciBjb2RlIHBvaW50cyB3
aGVyZSBwb3NzaWJsZS4KQEAgLTQyLDE1ICs0NywxNiBAQAogICogSUNVIGZ1bmN0aW9ucyBoYW5k
bGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoVSsxMDAwMC4uVSsxMGZmZmYpCiAgKiBidXQg
YXJlIG9wdGltaXplZCBmb3IgdGhlIG11Y2ggbW9yZSBmcmVxdWVudGx5IG9jY3VycmluZyBCTVAg
Y29kZSBwb2ludHMuCiAgKgotICogdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25l
ZCAxNi1iaXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KLSAqIFVDaGFy
IGlzIGRlZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2X3QuCisg
KiB1bWFjaGluZS5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0IGludGVn
ZXIuCisgKiBXaGVyZSBhdmFpbGFibGUsIFVDaGFyIGlzIGRlZmluZWQgdG8gYmUgYSBjaGFyMTZf
dAorICogb3IgYSB3Y2hhcl90IChpZiB0aGF0IGlzIGFuIHVuc2lnbmVkIDE2LWJpdCB0eXBlKSwg
b3RoZXJ3aXNlIHVpbnQxNl90LgogICoKICAqIFVDaGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNp
Z25lZCAzMi1iaXQgaW50ZWdlciAoaW50MzJfdCksIGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQK
ICAqIFVuaWNvZGUgY29kZSBwb2ludCAoVW5pY29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZm
KS4KICAqIEJlZm9yZSBJQ1UgMi40LCB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1p
bGFybHkgcGxhdGZvcm0tZGVwZW5kZW50IGFzCiAgKiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4g
Rm9yIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi4KICAq
Ci0gKiB1dGYuaCBhbHNvIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIHNp
bmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgorICogdXRmLmggZGVmaW5lcyBhIHNtYWxsIG51bWJl
ciBvZiBDIG1hY3JvcyBmb3Igc2luZ2xlIFVuaWNvZGUgY29kZSBwb2ludHMuCiAgKiBUaGVzZSBh
cmUgc2ltcGxlIGNoZWNrcyBmb3Igc3Vycm9nYXRlcyBhbmQgbm9uLWNoYXJhY3RlcnMuCiAgKiBG
b3IgYWN0dWFsIFVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRpZXMgc2VlIHVjaGFyLmguCiAgKgpA
QCAtNTksOSArNjUsNiBAQAogICogVGhlIG1hY3JvcyB3aWxsIGRldGVjdCBpZiBhIHN1cnJvZ2F0
ZSBjb2RlIHVuaXQgaXMgdW5wYWlyZWQKICAqIChsZWFkIHVuaXQgd2l0aG91dCB0cmFpbCB1bml0
IG9yIHZpY2UgdmVyc2EpIGFuZCBqdXN0IHJldHVybiB0aGUgdW5pdCBpdHNlbGYKICAqIGFzIHRo
ZSBjb2RlIHBvaW50LgotICogKEl0IGlzIGFuIGFjY2lkZW50YWwgcHJvcGVydHkgb2YgVW5pY29k
ZSBhbmQgVVRGLTE2IHRoYXQgYWxsCi0gKiBtYWxmb3JtZWQgc2VxdWVuY2VzIGNhbiBiZSBleHBy
ZXNzZWQgdW5hbWJpZ3VvdXNseSB3aXRoIGEgZGlzdGluY3Qgc3VicmFuZ2UKLSAqIG9mIFVuaWNv
ZGUgY29kZSBwb2ludHMuKQogICoKICAqIFRoZSByZWd1bGFyICJzYWZlIiBtYWNyb3MgcmVxdWly
ZSB0aGF0IHRoZSBpbml0aWFsLCBwYXNzZWQtaW4gc3RyaW5nIGluZGV4CiAgKiBpcyB3aXRoaW4g
Ym91bmRzLiBUaGV5IG9ubHkgY2hlY2sgdGhlIGluZGV4IHdoZW4gdGhleSByZWFkIG1vcmUgdGhh
biBvbmUKQEAgLTk1LDcgKzk4LDcgQEAKICAqIGNvZGUgcG9pbnQgdmFsdWVzICgwLi5VKzEwZmZm
ZikuIFRoZXkgYXJlIGluZGljYXRlZCB3aXRoIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLgogICoK
ICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBj
aGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1s
KS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAg
KiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0
ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTEw
OCwzMiArMTExLDEyIEBACiAjaWZuZGVmIF9fVVRGX0hfXwogI2RlZmluZSBfX1VURl9IX18KIAot
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5o
IgogLyogaW5jbHVkZSB0aGUgdXRmWFguaCBhZnRlciB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25z
ICovCiAKIC8qIHNpbmdsZS1jb2RlIHBvaW50IGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qKgotICogVGhpcyB2YWx1ZSBpcyBp
bnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElzIHRoYXQKLSAqICh0YWtlIG9yKSBy
ZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4KLSAqIEl0IGlzIG91dHNpZGUgb2Yg
dGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEwZmZmZi4KLSAqIAotICogRm9yIGV4
YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4gYSBuZXcgQVBJCi0gKiBjb3VsZCBi
ZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgotICoKLSAqIElDVSBBUElzIGRlc2lnbmVkIGJl
Zm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Utc3BlY2lmaWMgImRvbmUiCi0gKiB2
YWx1ZXMsIG1vc3RseSAweGZmZmYuCi0gKiBUaG9zZSBtYXkgbmVlZCB0byBiZSBkaXN0aW5ndWlz
aGVkIGZyb20KLSAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250ZW50cyBieSBjYWxsaW5nIGZ1bmN0
aW9ucyBsaWtlCi0gKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFzTmV4dCgpIG9yIFVuaWNvZGVTdHJp
bmc6Omxlbmd0aCgpLgotICoKLSAqIEByZXR1cm4gLTEKLSAqIEBzZWUgVUNoYXIzMgotICogQHN0
YWJsZSBJQ1UgMi40Ci0gKi8KLSNkZWZpbmUgVV9TRU5USU5FTCAoLTEpCi0KLS8qKgogICogSXMg
dGhpcyBjb2RlIHBvaW50IGEgVW5pY29kZSBub25jaGFyYWN0ZXI/CiAgKiBAcGFyYW0gYyAzMi1i
aXQgY29kZSBwb2ludAogICogQHJldHVybiBUUlVFIG9yIEZBTFNFCkBAIC0yMjcsMTAgKzIxMCwx
NCBAQAogCiAvKiBpbmNsdWRlIHRoZSB1dGZYWC5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisjaWYgIVVfTk9fREVGQVVMVF9JTkNM
VURFX1VURl9IRUFERVJTCisKICNpbmNsdWRlICJ1bmljb2RlL3V0ZjguaCIKICNpbmNsdWRlICJ1
bmljb2RlL3V0ZjE2LmgiCiAKIC8qIHV0Zl9vbGQuaCBjb250YWlucyBkZXByZWNhdGVkLCBwcmUt
SUNVIDIuNCBkZWZpbml0aW9ucyAqLwogI2luY2x1ZGUgInVuaWNvZGUvdXRmX29sZC5oIgogCi0j
ZW5kaWYKKyNlbmRpZiAgLyogIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTICovCisK
KyNlbmRpZiAgLyogX19VVEZfSF9fICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3V0ZjE2LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjE2LmgKaW5kZXggNTA3OWMx
MTQ2YjNkMzQ3MjMwY2Q2OThhMGUxMzk2ODk3ZTQ4NDVhZC4uYmRkODhhOGI5YzRmMDBlYTBkZjI3
MmFjMDJmNjk2N2VmNjEwODliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91
dGYxNi5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmMTYuaApAQCAtMSw3ICsxLDcg
QEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgpAQCAtMTksMTEgKzE5LDkgQEAKICAqIFxicmllZiBDIEFQSTogMTYtYml0IFVuaWNv
ZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAKICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBk
ZWFsIHdpdGggMTYtYml0IFVuaWNvZGUgKFVURi0xNikgY29kZSB1bml0cyBhbmQgc3RyaW5ncy4K
LSAqIHV0ZjE2LmggaXMgaW5jbHVkZWQgYnkgdXRmLmggYWZ0ZXIgdW5pY29kZS91bWFjaGluZS5o
Ci0gKiBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCiAgKgogICogRm9yIG1vcmUgaW5mb3Jt
YXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0g
KiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqICho
dHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNh
Z2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNo
b3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTM0LDcgKzMyLDcg
QEAKICNpZm5kZWYgX19VVEYxNl9IX18KICNkZWZpbmUgX19VVEYxNl9IX18KIAotLyogdXRmLmgg
bXVzdCBiZSBpbmNsdWRlZCBmaXJzdC4gKi8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgi
CiAjaWZuZGVmIF9fVVRGX0hfXwogIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYK
QEAgLTE4Miw2ICsxODAsOSBAQAogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRo
ZSBsZWFkIG9yIHRyYWlsIHN1cnJvZ2F0ZSB1bml0CiAgKiBmb3IgYSBzdXBwbGVtZW50YXJ5IGNv
ZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZAogICogdGhlIGFkamFj
ZW50IG1hdGNoaW5nIHN1cnJvZ2F0ZSBhcyB3ZWxsLgorICoKKyAqIFRoZSBsZW5ndGggY2FuIGJl
IG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBJZiB0aGUgb2Zm
c2V0IHBvaW50cyB0byBhIHNpbmdsZSwgdW5wYWlyZWQgc3Vycm9nYXRlLCB0aGVuIHRoYXQgaXRz
ZWxmCiAgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBvaW50LgogICogSXRlcmF0aW9u
IHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVMTZfTkVYVF9VTlNBRkUg
b3IgVTE2X05FWFQuCkBAIC0xOTksNyArMjAwLDcgQEAKICAgICBpZihVMTZfSVNfU1VSUk9HQVRF
KGMpKSB7IFwKICAgICAgICAgdWludDE2X3QgX19jMjsgXAogICAgICAgICBpZihVMTZfSVNfU1VS
Uk9HQVRFX0xFQUQoYykpIHsgXAotICAgICAgICAgICAgaWYoKGkpKzE8KGxlbmd0aCkgJiYgVTE2
X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAorICAgICAgICAgICAgaWYoKGkpKzEhPShs
ZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVsoaSkrMV0pKSB7IFwKICAgICAgICAgICAg
ICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZKChjKSwgX19jMik7IFwKICAgICAgICAgICAg
IH0gXAogICAgICAgICB9IGVsc2UgeyBcCkBAIC0yNDQsNiArMjQ1LDggQEAKICAqIChQb3N0LWlu
Y3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMg
dW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAq
CisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJp
bmcuCisgKgogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgc3Vycm9nYXRlIHVu
aXQKICAqIGZvciBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUg
bWFjcm8gd2lsbCByZWFkCiAgKiB0aGUgZm9sbG93aW5nIHRyYWlsIHN1cnJvZ2F0ZSBhcyB3ZWxs
LgpAQCAtMjYyLDcgKzI2NSw3IEBACiAgICAgKGMpPShzKVsoaSkrK107IFwKICAgICBpZihVMTZf
SVNfTEVBRChjKSkgeyBcCiAgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKLSAgICAgICAgaWYoKGkp
PChsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVsoaSldKSkgeyBcCisgICAgICAgIGlm
KChpKSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKV0pKSB7IFwKICAgICAg
ICAgICAgICsrKGkpOyBcCiAgICAgICAgICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZKChj
KSwgX19jMik7IFwKICAgICAgICAgfSBcCkBAIC0zNDAsNiArMzQzLDggQEAKICAqIChQb3N0LWlu
Y3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVk
IHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhl
IGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoK
ICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3RyaW5nCiAgKiBAcGFyYW0gaSBzdHJpbmcgb2Zm
c2V0LCBtdXN0IGJlIGk8bGVuZ3RoCiAgKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKQEAg
LTM0Nyw3ICszNTIsNyBAQAogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVTE2X0ZX
RF8xKHMsIGksIGxlbmd0aCkgeyBcCi0gICAgaWYoVTE2X0lTX0xFQUQoKHMpWyhpKSsrXSkgJiYg
KGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKKyAgICBpZihVMTZfSVNf
TEVBRCgocylbKGkpKytdKSAmJiAoaSkhPShsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgocylbaV0p
KSB7IFwKICAgICAgICAgKysoaSk7IFwKICAgICB9IFwKIH0KQEAgLTM3OCwxNiArMzgzLDE4IEBA
CiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywgaGFu
ZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3VuZGFyaWVz
LgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVk
IHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCBVQ2hhciAqIHN0cmluZwotICogQHBhcmFt
IGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJp
bmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxs
ZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAcGFyYW0g
biBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tpcAogICogQHNlZSBVMTZfRldEX05fVU5TQUZF
CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVMTZfRldEX04ocywgaSwgbGVuZ3Ro
LCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7IFwKLSAgICB3aGlsZShfX04+MCAmJiAoaSk8
KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4wICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5n
dGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVMTZfRldEXzEocywgaSwgbGVuZ3Ro
KTsgXAogICAgICAgICAtLV9fTjsgXAogICAgIH0gXApAQCAtNTk4LDE1ICs2MDUsMTcgQEAKICAq
IFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgog
ICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBm
b3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUg
Zm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFy
ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxs
eSAwKQotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgc3RhcnQ8PWk8PWxlbmd0aAotICogQHBh
cmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGlu
ZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBv
ZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcg
bGVuZ3RoCiAgKiBAc2VlIFUxNl9TRVRfQ1BfTElNSVRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwogI2RlZmluZSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIHsg
XAotICAgIGlmKChzdGFydCk8KGkpICYmIChpKTwobGVuZ3RoKSAmJiBVMTZfSVNfTEVBRCgocylb
KGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkg
JiYgKChpKTwobGVuZ3RoKSB8fCAobGVuZ3RoKTwwKSAmJiBVMTZfSVNfTEVBRCgocylbKGkpLTFd
KSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCiAgICAgICAgICsrKGkpOyBcCiAgICAgfSBc
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjguaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdXRmOC5oCmluZGV4IDY0MDU3OTVhNWExYzUzNjk4ODQ2ZDExMDE1Njk5
YjYxYzMxMDIyMjQuLjIxZTVmM2QwNDc5MDUzMTU1ZjI5NGM0Mjg4NGY0Mjc0ZGE1NDRlYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmOC5oCisrKyBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdXRmOC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xOSwxMSArMTksOSBA
QAogICogXGJyaWVmIEMgQVBJOiA4LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1hY3JvcwogICogCiAg
KiBUaGlzIGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIDgtYml0IFVuaWNvZGUgKFVU
Ri04KSBjb2RlIHVuaXRzIChieXRlcykgYW5kIHN0cmluZ3MuCi0gKiB1dGY4LmggaXMgaW5jbHVk
ZWQgYnkgdXRmLmggYWZ0ZXIgdW5pY29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24g
ZGVmaW5pdGlvbnMuCiAgKgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0
aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1w
cm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2Rp
bmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVu
IHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19VVEY4X0hf
XwogI2RlZmluZSBfX1VURjhfSF9fCiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVkZWQgZmlyc3Qu
ICovCisjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VURl9IX18KICMg
ICBpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2VuZGlmCkBAIC02MiwxMyArNjAsNDEgQEAgVV9D
RlVOQyBVX0lNUE9SVCBjb25zdCB1aW50OF90IC8qIFVfSU1QT1JUMj8gKi8gLypVX0lNUE9SVCov
CiB1dGY4X2NvdW50VHJhaWxCeXRlc1syNTZdOwogCiAvKioKLSAqIENvdW50IHRoZSB0cmFpbCBi
eXRlcyBmb3IgYSBVVEYtOCBsZWFkIGJ5dGUuCisgKiBDb3VudHMgdGhlIHRyYWlsIGJ5dGVzIGZv
ciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIFJldHVybnMgMCBmb3IgMC4uMHhiZiBhcyB3ZWxsIGFz
IGZvciAweGZlIGFuZCAweGZmLgogICoKICAqIFRoaXMgaXMgaW50ZXJuYWwgc2luY2UgaXQgaXMg
bm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseSBieSBleHRlcm5hbCBjbGllbnRzOwogICog
aG93ZXZlciBpdCBpcyBjYWxsZWQgYnkgcHVibGljIG1hY3JvcyBpbiB0aGlzIGZpbGUgYW5kIHRo
dXMgbXVzdCByZW1haW4gc3RhYmxlLgorICoKKyAqIE5vdGU6IEJlZ2lubmluZyB3aXRoIElDVSA1
MCwgdGhlIGltcGxlbWVudGF0aW9uIHVzZXMgYSBtdWx0aS1jb25kaXRpb24gZXhwcmVzc2lvbgor
ICogd2hpY2ggd2FzIHNob3duIGluIDIwMTIgKG9uIHg4Ni02NCkgdG8gY29tcGlsZSB0byBmYXN0
LCBicmFuY2gtZnJlZSBjb2RlLgorICogbGVhZEJ5dGUgaXMgZXZhbHVhdGVkIG11bHRpcGxlIHRp
bWVzLgorICoKKyAqIFRoZSBwcmUtSUNVIDUwIGltcGxlbWVudGF0aW9uIHVzZWQgdGhlIGV4cG9y
dGVkIGFycmF5IHV0ZjhfY291bnRUcmFpbEJ5dGVzOgorICogI2RlZmluZSBVOF9DT1VOVF9UUkFJ
TF9CWVRFUyhsZWFkQnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzW2xlYWRCeXRlXSkKKyAqIGxl
YWRCeXRlIHdhcyBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgorICoKKyAqIEBwYXJhbSBsZWFkQnl0
ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4ZmYuCiAg
KiBAaW50ZXJuYWwKICAqLwotI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkg
KHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKyNkZWZpbmUgVThfQ09V
TlRfVFJBSUxfQllURVMobGVhZEJ5dGUpIFwKKyAgICAoKGxlYWRCeXRlKTwweGYwID8gXAorICAg
ICAgICAoKGxlYWRCeXRlKT49MHhjMCkrKChsZWFkQnl0ZSk+PTB4ZTApIDogXAorICAgICAgICAo
bGVhZEJ5dGUpPDB4ZmUgPyAzKygobGVhZEJ5dGUpPj0weGY4KSsoKGxlYWRCeXRlKT49MHhmYykg
OiAwKQorCisvKioKKyAqIENvdW50cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBi
eXRlIG9mIGEgdmFsaWQgVVRGLTggc2VxdWVuY2UuCisgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQg
bGVhZCBieXRlIGlzIDB4ZjQgY29ycmVzcG9uZGluZyB0byBVKzEwRkZGRi4KKyAqIGxlYWRCeXRl
IG1pZ2h0IGJlIGV2YWx1YXRlZCBtdWx0aXBsZSB0aW1lcy4KKyAqCisgKiBUaGlzIGlzIGludGVy
bmFsIHNpbmNlIGl0IGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgZXh0ZXJu
YWwgY2xpZW50czsKKyAqIGhvd2V2ZXIgaXQgaXMgY2FsbGVkIGJ5IHB1YmxpYyBtYWNyb3MgaW4g
dGhpcyBmaWxlIGFuZCB0aHVzIG11c3QgcmVtYWluIHN0YWJsZS4KKyAqCisgKiBAcGFyYW0gbGVh
ZEJ5dGUgVGhlIGZpcnN0IGJ5dGUgb2YgYSBVVEYtOCBzZXF1ZW5jZS4gTXVzdCBiZSAwLi4weGZm
LgorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVNfVU5TQUZF
KGxlYWRCeXRlKSBcCisgICAgKCgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkr
KChsZWFkQnl0ZSk+PTB4ZjApKQogCiAvKioKICAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxl
YXZlIG9ubHkgdGhlIGxvd2VyIGJpdHMgdGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQg
dmFsdWUuCkBAIC0yMDYsMjQgKzIzMiw2MCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWlu
dDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIFRoZSBvZmZzZXQgbWF5IHBv
aW50IHRvIGVpdGhlciB0aGUgbGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKICAq
IGZvciBhIGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwg
b2YgdGhlIGJ5dGVzCiAgKiBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBj
YW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIElmIHRo
ZSBvZmZzZXQgcG9pbnRzIHRvIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgog
ICogYyBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZS4KICAqIEl0ZXJhdGlvbiB0aHJvdWdoIGEg
c3RyaW5nIGlzIG1vcmUgZWZmaWNpZW50IHdpdGggVThfTkVYVF9VTlNBRkUgb3IgVThfTkVYVC4K
ICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQg
c3RhcnRpbmcgc3RyaW5nIG9mZnNldAotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBi
ZSBzdGFydDw9aTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBh
cmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50
MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxl
bmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZh
cmlhYmxlLCBzZXQgdG8gPDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9HRVRfVU5T
QUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9HRVQocywgc3RhcnQsIGks
IGxlbmd0aCwgYykgeyBcCi0gICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpbnQzMl90KShpKTsg
XAorICAgIGludDMyX3QgX3U4X2dldF9pbmRleD0oaSk7IFwKICAgICBVOF9TRVRfQ1BfU1RBUlQo
cywgc3RhcnQsIF91OF9nZXRfaW5kZXgpOyBcCiAgICAgVThfTkVYVChzLCBfdThfZ2V0X2luZGV4
LCBsZW5ndGgsIGMpOyBcCiB9CiAKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBH
ZXQgYSBjb2RlIHBvaW50IGZyb20gYSBzdHJpbmcgYXQgYSByYW5kb20tYWNjZXNzIG9mZnNldCwK
KyAqIHdpdGhvdXQgY2hhbmdpbmcgdGhlIG9mZnNldC4KKyAqIFRoZSBvZmZzZXQgbWF5IHBvaW50
IHRvIGVpdGhlciB0aGUgbGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKKyAqIGZv
ciBhIGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwgb2Yg
dGhlIGJ5dGVzCisgKiBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBjYW4g
YmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKKyAqIElmIHRoZSBv
ZmZzZXQgcG9pbnRzIHRvIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgorICog
YyBpcyBzZXQgdG8gVStGRkZELgorICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9y
ZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhUX1VOU0FGRSBvciBVOF9ORVhUX09SX0ZGRkQuCisgKgor
ICogVGhpcyBtYWNybyBkb2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBVK0ZGRkQg
aW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3JtZWQgc2Vx
dWVuY2UuCisgKiBVc2UgVThfR0VUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQu
CisgKgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0
IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJp
bmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQz
Ml90IHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBz
ZXQgdG8gVStGRkZEIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfR0VUCisgKiBAZHJh
ZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVThfR0VUX09SX0ZGRkQocywgc3RhcnQsIGksIGxlbmd0
aCwgYykgeyBcCisgICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAorICAgIFU4X1NFVF9D
UF9TVEFSVChzLCBzdGFydCwgX3U4X2dldF9pbmRleCk7IFwKKyAgICBVOF9ORVhUX09SX0ZGRkQo
cywgX3U4X2dldF9pbmRleCwgbGVuZ3RoLCBjKTsgXAorfQorI2VuZGlmIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKwogLyogZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yNDUsMTkgKzMw
NywxNiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFy
dCwgaW50MzJfdCBpKTsKICAqLwogI2RlZmluZSBVOF9ORVhUX1VOU0FGRShzLCBpLCBjKSB7IFwK
ICAgICAoYyk9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAotICAgIGlmKCh1aW50OF90KSgoYyktMHhj
MCk8MHgzNSkgeyBcCi0gICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJTF9CWVRF
UyhjKTsgXAotICAgICAgICBVOF9NQVNLX0xFQURfQllURShjLCBfX2NvdW50KTsgXAotICAgICAg
ICBzd2l0Y2goX19jb3VudCkgeyBcCi0gICAgICAgIC8qIGVhY2ggZm9sbG93aW5nIGJyYW5jaCBm
YWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBcCi0gICAgICAgIGNhc2UgMzogXAotICAg
ICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIGNhc2Ug
MjogXAotICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAg
ICAgIGNhc2UgMTogXAotICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2Yp
OyBcCi0gICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVzIHRvIG9wdGltaXplIHN3aXRjaCgpICov
IFwKLSAgICAgICAgICAgIGJyZWFrOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAg
aWYoKGMpPDB4ZTApIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXwoKHMpWyhp
KSsrXSYweDNmKTsgXAorICAgICAgICB9IGVsc2UgaWYoKGMpPDB4ZjApIHsgXAorICAgICAgICAg
ICAgLyogbm8gbmVlZCBmb3IgKGMmMHhmKSBiZWNhdXNlIHRoZSB1cHBlciBiaXRzIGFyZSB0cnVu
Y2F0ZWQgYWZ0ZXIgPDwxMiBpbiB0aGUgY2FzdCB0byAoVUNoYXIpICovIFwKKyAgICAgICAgICAg
IChjKT0oVUNoYXIpKCgoYyk8PDEyKXwoKChzKVtpXSYweDNmKTw8Nil8KChzKVsoaSkrMV0mMHgz
ZikpOyBcCisgICAgICAgICAgICAoaSkrPTI7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAg
ICAgICAgKGMpPSgoKGMpJjcpPDwxOCl8KCgocylbaV0mMHgzZik8PDEyKXwoKChzKVsoaSkrMV0m
MHgzZik8PDYpfCgocylbKGkpKzJdJjB4M2YpOyBcCisgICAgICAgICAgICAoaSkrPTM7IFwKICAg
ICAgICAgfSBcCiAgICAgfSBcCiB9CkBAIC0yNjgsMTQgKzMyNywxNiBAQCB1dGY4X2JhY2sxU2Fm
ZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQ
b3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGNo
ZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAq
CisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJp
bmcuCisgKgogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11
bHRpLWJ5dGUgc2VxdWVuY2UsCiAgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQg
dGhlIHdob2xlIHNlcXVlbmNlLgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBi
eXRlIG9yIGFuIGlsbGVnYWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KICAqIGMgaXMgc2V0IHRvIGEg
bmVnYXRpdmUgdmFsdWUuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwot
ICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxl
bmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11
c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAg
KiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ugb2Yg
YW4gZXJyb3IKICAqIEBzZWUgVThfTkVYVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAt
Mjg2LDcgKzM0Nyw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQz
Ml90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKICAg
ICAgICAgaWYoIC8qIGhhbmRsZSBVKzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAogICAgICAgICAg
ICAgKDB4ZTA8KGMpICYmIChjKTw9MHhlYykgJiYgXAotICAgICAgICAgICAgKCgoaSkrMSk8KGxl
bmd0aCkpICYmIFwKKyAgICAgICAgICAgICgoKGkpKzEpPChsZW5ndGgpIHx8IChsZW5ndGgpPDAp
ICYmIFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0weDNmICYm
IFwKICAgICAgICAgICAgIChfX3QyPSh1aW50OF90KSgocylbKGkpKzFdLTB4ODApKTw9IDB4M2Yg
XAogICAgICAgICApIHsgXApAQCAtMjk1LDE5ICszNTYsNzAgQEAgdXRmOF9iYWNrMVNhZmVCb2R5
KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgICAg
ICAoaSkrPTI7IFwKICAgICAgICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYg
aW5saW5lICovIFwKICAgICAgICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKLSAg
ICAgICAgICAgICgoaSk8KGxlbmd0aCkpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShsZW5ndGgp
KSAmJiBcCiAgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiBc
CiAgICAgICAgICkgeyBcCi0gICAgICAgICAgICAoYyk9KFVDaGFyKSgoKChjKSYweDFmKTw8Nil8
X190MSk7IFwKKyAgICAgICAgICAgIChjKT0oKChjKSYweDFmKTw8Nil8X190MTsgXAogICAgICAg
ICAgICAgKysoaSk7IFwKLSAgICAgICAgfSBlbHNlIGlmKFU4X0lTX0xFQUQoYykpIHsgXAorICAg
ICAgICB9IGVsc2UgeyBcCiAgICAgICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAiY29tcGxp
Y2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCi0gICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hh
clNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGludDMyX3QpKGxlbmd0aCksIGMs
IC0xKTsgXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgoY29uc3QgdWlu
dDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBjLCAtMSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBc
Cit9CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2RlIHBvaW50
IGZyb20gYSBzdHJpbmcgYXQgYSBjb2RlIHBvaW50IGJvdW5kYXJ5IG9mZnNldCwKKyAqIGFuZCBh
ZHZhbmNlIHRoZSBvZmZzZXQgdG8gdGhlIG5leHQgY29kZSBwb2ludCBib3VuZGFyeS4KKyAqIChQ
b3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCisgKiAiU2FmZSIgbWFjcm8sIGNo
ZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KKyAq
CisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJp
bmcuCisgKgorICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11
bHRpLWJ5dGUgc2VxdWVuY2UsCisgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQg
dGhlIHdob2xlIHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBi
eXRlIG9yIGFuIGlsbGVnYWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KKyAqIGMgaXMgc2V0IHRvIFUr
RkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBy
ZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxs
LWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9ORVhUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBp
cyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICog
QHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFy
YW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFy
MzIgdmFyaWFibGUsIHNldCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBV
OF9ORVhUCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVThfTkVYVF9PUl9GRkZEKHMs
IGksIGxlbmd0aCwgYykgeyBcCisgICAgKGMpPSh1aW50OF90KShzKVsoaSkrK107IFwKKyAgICBp
ZigoYyk+PTB4ODApIHsgXAorICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKKyAgICAgICAg
aWYoIC8qIGhhbmRsZSBVKzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAorICAgICAgICAgICAgKDB4
ZTA8KGMpICYmIChjKTw9MHhlYykgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkg
fHwgKGxlbmd0aCk8MCkgJiYgXAorICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0w
eDgwKSk8PTB4M2YgJiYgXAorICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0t
MHg4MCkpPD0gMHgzZiBcCisgICAgICAgICkgeyBcCisgICAgICAgICAgICAvKiBubyBuZWVkIGZv
ciAoYyYweGYpIGJlY2F1c2UgdGhlIHVwcGVyIGJpdHMgYXJlIHRydW5jYXRlZCBhZnRlciA8PDEy
IGluIHRoZSBjYXN0IHRvIChVQ2hhcikgKi8gXAorICAgICAgICAgICAgKGMpPShVQ2hhcikoKChj
KTw8MTIpfChfX3QxPDw2KXxfX3QyKTsgXAorICAgICAgICAgICAgKGkpKz0yOyBcCisgICAgICAg
IH0gZWxzZSBpZiggLyogaGFuZGxlIFUrMDA4MC4uVSswN0ZGIGlubGluZSAqLyBcCisgICAgICAg
ICAgICAoKGMpPDB4ZTAgJiYgKGMpPj0weGMyKSAmJiBcCisgICAgICAgICAgICAoKGkpIT0obGVu
Z3RoKSkgJiYgXAorICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4
M2YgXAorICAgICAgICApIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxfX3Qx
OyBcCisgICAgICAgICAgICArKyhpKTsgXAogICAgICAgICB9IGVsc2UgeyBcCi0gICAgICAgICAg
ICAoYyk9VV9TRU5USU5FTDsgXAorICAgICAgICAgICAgLyogZnVuY3Rpb24gY2FsbCBmb3IgImNv
bXBsaWNhdGVkIiBhbmQgZXJyb3IgY2FzZXMgKi8gXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4
dENoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBjLCAtMyk7
IFwKICAgICAgICAgfSBcCiAgICAgfSBcCiB9CisjZW5kaWYgLyogVV9ISURFX0RSQUZUX0FQSSAq
LwogCiAvKioKICAqIEFwcGVuZCBhIGNvZGUgcG9pbnQgdG8gYSBzdHJpbmcsIG92ZXJ3cml0aW5n
IDEgdG8gNCBieXRlcy4KQEAgLTM1MSw5ICs0NjMsOSBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIHRoZW4gaXNFcnJv
ciBpcyBzZXQgdG8gVFJVRS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5n
IGJ1ZmZlcgotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFjaXR5Ci0g
KiBAcGFyYW0gY2FwYWNpdHkgc2l6ZSBvZiB0aGUgc3RyaW5nIGJ1ZmZlcgotICogQHBhcmFtIGMg
Y29kZSBwb2ludCB0byBhcHBlbmQKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBpPGNhcGFjaXR5CisgKiBAcGFyYW0gY2FwYWNpdHkgaW50MzJfdCBzaXplIG9mIHRo
ZSBzdHJpbmcgYnVmZmVyCisgKiBAcGFyYW0gYyBVQ2hhcjMyIGNvZGUgcG9pbnQgdG8gYXBwZW5k
CiAgKiBAcGFyYW0gaXNFcnJvciBvdXRwdXQgVUJvb2wgc2V0IHRvIFRSVUUgaWYgYW4gZXJyb3Ig
b2NjdXJzLCBvdGhlcndpc2Ugbm90IG1vZGlmaWVkCiAgKiBAc2VlIFU4X0FQUEVORF9VTlNBRkUK
ICAqIEBzdGFibGUgSUNVIDIuNApAQCAtMzY5LDcgKzQ4MSw3IEBAIHV0ZjhfYmFjazFTYWZlQm9k
eShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAgICAgICAo
cylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+NikmMHgzZil8MHg4MCk7IFwKICAgICAgICAgKHMp
WyhpKSsrXT0odWludDhfdCkoKChjKSYweDNmKXwweDgwKTsgXAogICAgIH0gZWxzZSB7IFwKLSAg
ICAgICAgKGkpPXV0ZjhfYXBwZW5kQ2hhclNhZmVCb2R5KHMsIChpbnQzMl90KShpKSwgKGludDMy
X3QpKGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYXBwZW5k
Q2hhclNhZmVCb2R5KHMsIChpKSwgKGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwKICAgICB9
IFwKIH0KIApAQCAtMzg0LDcgKzQ5Niw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50
OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogQHN0YWJsZSBJQ1UgMi40CiAg
Ki8KICNkZWZpbmUgVThfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAotICAgIChpKSs9MStVOF9DT1VO
VF9UUkFJTF9CWVRFUygocylbaV0pOyBcCisgICAgKGkpKz0xK1U4X0NPVU5UX1RSQUlMX0JZVEVT
X1VOU0FGRSgodWludDhfdCkocylbaV0pOyBcCiB9CiAKIC8qKgpAQCAtMzkyLDkgKzUwNCwxMSBA
QCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50
MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1h
Y3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJp
ZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0
ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBw
YXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGgg
c3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJl
IGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHNl
ZSBVOF9GV0RfMV9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCkBAIC00MDIsNyArNTE2
LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQs
IGludDMyX3QgaSk7CiAgICAgdWludDhfdCBfX2I9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAogICAg
IGlmKFU4X0lTX0xFQUQoX19iKSkgeyBcCiAgICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VO
VF9UUkFJTF9CWVRFUyhfX2IpOyBcCi0gICAgICAgIGlmKChpKStfX2NvdW50PihsZW5ndGgpKSB7
IFwKKyAgICAgICAgaWYoKGkpK19fY291bnQ+KGxlbmd0aCkgJiYgKGxlbmd0aCk+PTApIHsgXAog
ICAgICAgICAgICAgX19jb3VudD0odWludDhfdCkoKGxlbmd0aCktKGkpKTsgXAogICAgICAgICB9
IFwKICAgICAgICAgd2hpbGUoX19jb3VudD4wICYmIFU4X0lTX1RSQUlMKChzKVtpXSkpIHsgXApA
QCAtNDM4LDE2ICs1NTIsMTggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMs
IGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0
aW9uLikKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQg
Zm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZl
IGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50
OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3Ro
Ci0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3Ry
aW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0
cmluZyBsZW5ndGgKICAqIEBwYXJhbSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBza2lwCiAg
KiBAc2VlIFU4X0ZXRF9OX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUg
VThfRldEX04ocywgaSwgbGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7IFwKLSAg
ICB3aGlsZShfX04+MCAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4wICYmICgo
aSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBV
OF9GV0RfMShzLCBpLCBsZW5ndGgpOyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBcCkBAIC00
NzksMTQgKzU5NSwxNCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50
MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxl
Z2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBwYXJhbSBz
IGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcg
b2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0
YXJ0PD1pCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1
c3VhbGx5IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3Rh
cnQ8PWkKICAqIEBzZWUgVThfU0VUX0NQX1NUQVJUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40
CiAgKi8KICNkZWZpbmUgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKSB7IFwKICAgICBpZihV
OF9JU19UUkFJTCgocylbKGkpXSkpIHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNhZmVCb2R5
KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJv
ZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwKIH0KIApAQCAtNTQ3LDggKzY2Myw4IEBAIHV0
ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90
IGkpOwogICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5j
ZSwgdGhlbiBjIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICoKICAqIEBwYXJhbSBzIGNv
bnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zm
c2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0
PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFs
bHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxp
CiAgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ug
b2YgYW4gZXJyb3IKICAqIEBzZWUgVThfUFJFVl9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApA
QCAtNTU2LDEzICs2NzIsNDIgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMs
IGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAjZGVmaW5lIFU4X1BSRVYocywgc3RhcnQsIGks
IGMpIHsgXAogICAgIChjKT0odWludDhfdCkocylbLS0oaSldOyBcCiAgICAgaWYoKGMpPj0weDgw
KSB7IFwKLSAgICAgICAgaWYoKGMpPD0weGJmKSB7IFwKLSAgICAgICAgICAgIChjKT11dGY4X3By
ZXZDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBc
Ci0gICAgICAgIH0gZWxzZSB7IFwKLSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBcCi0gICAg
ICAgIH0gXAorICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90
ICopcywgc3RhcnQsICYoaSksIGMsIC0xKTsgXAorICAgIH0gXAorfQorCisjaWZuZGVmIFVfSElE
RV9EUkFGVF9BUEkKKy8qKgorICogTW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2Rl
IHBvaW50IGJvdW5kYXJ5IHRvIHRoZSBwcmV2aW91cyBvbmUKKyAqIGFuZCBnZXQgdGhlIGNvZGUg
cG9pbnQgYmV0d2VlbiB0aGVtLgorICogKFByZS1kZWNyZW1lbnRpbmcgYmFja3dhcmQgaXRlcmF0
aW9uLikKKyAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQg
Zm9yIHN0cmluZyBib3VuZGFyaWVzLgorICoKKyAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRo
ZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQg
YSBtdWx0aS1ieXRlIHNlcXVlbmNlLCB0aGVuIHRoZSBtYWNybyB3aWxsIHJlYWQKKyAqIHRoZSB3
aG9sZSBzZXF1ZW5jZS4KKyAqIElmIHRoZSBvZmZzZXQgaXMgYmVoaW5kIGEgbGVhZCBieXRlLCB0
aGVuIHRoYXQgaXRzZWxmCisgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBvaW50Lgor
ICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhl
biBjIGlzIHNldCB0byBVK0ZGRkQuCisgKgorICogVGhpcyBtYWNybyBkb2VzIG5vdCBkaXN0aW5n
dWlzaCBiZXR3ZWVuIGEgcmVhbCBVK0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZGRkQgcmV0
dXJuZWQgZm9yIGFuIGlsbC1mb3JtZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfUFJFVigpIGlmIHRo
YXQgZGlzdGluY3Rpb24gaXMgaW1wb3J0YW50LgorICoKKyAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4
X3QgKiBzdHJpbmcKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZz
ZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBi
ZSBzdGFydDxpCisgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUr
RkZGRCBpbiBjYXNlIG9mIGFuIGVycm9yCisgKiBAc2VlIFU4X1BSRVYKKyAqIEBkcmFmdCBJQ1Ug
NTEKKyAqLworI2RlZmluZSBVOF9QUkVWX09SX0ZGRkQocywgc3RhcnQsIGksIGMpIHsgXAorICAg
IChjKT0odWludDhfdCkocylbLS0oaSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAg
ICAgKGMpPXV0ZjhfcHJldkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAm
KGkpLCBjLCAtMyk7IFwKICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRfQVBJICov
CiAKIC8qKgogICogTW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBvaW50IGJv
dW5kYXJ5IHRvIHRoZSBwcmV2aW91cyBvbmUuCkBAIC01ODYsMTQgKzczMSwxNCBAQCB1dGY4X2Jh
Y2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsK
ICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0
cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcK
LSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBA
cGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBp
bnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGlu
dDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAc2VlIFU4X0JBQ0tfMV9V
TlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0JBQ0tfMShzLCBzdGFy
dCwgaSkgeyBcCiAgICAgaWYoVThfSVNfVFJBSUwoKHMpWy0tKGkpXSkpIHsgXAotICAgICAgICAo
aSk9dXRmOF9iYWNrMVNhZmVCb2R5KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisgICAgICAg
IChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwKIH0KIApA
QCAtNjI2LDggKzc3MSw4IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBp
bnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGls
bGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFt
IHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBz
dGFydCBvZiB0aGUgc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0
YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUg
c3RyaW5nCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8
aQogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRvIHNraXAKICAqIEBzZWUgVThf
QkFDS19OX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC02NjYsMTUgKzgxMSwxNyBAQCB1
dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJf
dCBpKTsKICAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcg
bGVuZ3RoLgogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFu
ZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRp
dmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVp
bnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1
c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1s
ZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGlu
dDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50
MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBwYXJhbSBs
ZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFU4X1NFVF9DUF9MSU1JVF9VTlNB
RkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X1NFVF9DUF9MSU1JVChzLCBz
dGFydCwgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZigoc3RhcnQpPChpKSAmJiAoaSk8KGxlbmd0aCkp
IHsgXAorICAgIGlmKChzdGFydCk8KGkpICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAg
JiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVOF9CQUNLXzEocywgc3RhcnQsIGkpOyBcCiAg
ICAgICAgIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICB9IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmX29sZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
dGZfb2xkLmgKaW5kZXggODUwNGEwMzBkZGZjNGRiYWUzNjNlNWI1ZmE2YzVkMTU4YmI3Y2NlMy4u
ZjkxMjViMWRkMmVkN2UxYzY4NGRhMTY1NGY1ZTQ3ZGQ3Y2Q1ZmIxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91dGZfb2xkLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91dGZfb2xkLmgKQEAgLTEgKzEsMTE2OSBAQAotLyogVGhpcyBmaWxlIGlzIGludGVudGlvbmFs
bHkgbGVmdCBibGFuay4gKi8KKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29w
eXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dGZfb2xkLmgKKyogICBlbmNvZGlu
ZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0
aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAyc2VwMjEKKyogICBjcmVhdGVkIGJ5OiBNYXJr
dXMgVy4gU2NoZXJlcgorKi8KKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmllZiBDIEFQSTogRGVw
cmVjYXRlZCBtYWNyb3MgZm9yIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nCisgKi8KKworLyoqCisg
KiAKKyAqIFRoZSBtYWNyb3MgaW4gdXRmX29sZC5oIGFyZSBhbGwgZGVwcmVjYXRlZCBhbmQgdGhl
aXIgdXNlIGRpc2NvdXJhZ2VkLgorICogU29tZSBvZiB0aGUgZGVzaWduIHByaW5jaXBsZXMgYmVo
aW5kIHRoZSBzZXQgb2YgVVRGIG1hY3JvcworICogaGF2ZSBjaGFuZ2VkIG9yIHByb3ZlZCBpbXBy
YWN0aWNhbC4KKyAqIEFsbW9zdCBhbGwgb2YgdGhlIG9sZCAiVVRGIG1hY3JvcyIgYXJlIGF0IGxl
YXN0IHJlbmFtZWQuCisgKiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgbmV3IGVxdWl2YWxlbnQg
dG8gYW4gb2xkIG1hY3JvLCBwbGVhc2Ugc2VlIHRoZQorICogY29tbWVudCBhdCB0aGUgb2xkIG9u
ZS4KKyAqCisgKiBCcmllZiBzdW1tYXJ5IG9mIHJlYXNvbnMgZm9yIGRlcHJlY2F0aW9uOgorICog
LSBTd2l0Y2ggb24gVVRGX1NJWkUgKHNlbGVjdGlvbiBvZiBVVEYtOC8xNi8zMiBkZWZhdWx0IHN0
cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgaW1wcmFjdGljYWwuCisgKiAtIFN3aXRjaCBvbiBV
VEZfU0FGRSBldGMuIChzZWxlY3Rpb24gb2YgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1bHQgc3Ry
aW5nIHByb2Nlc3NpbmcpCisgKiAgIHdhcyBvZiBsaXR0bGUgdXNlIGFuZCBpbXByYWN0aWNhbC4K
KyAqIC0gV2hvbGUgY2xhc3NlcyBvZiBtYWNyb3MgYmVjYW1lIG9ic29sZXRlIG91dHNpZGUgb2Yg
dGhlIFVURl9TSVpFL1VURl9TQUZFCisgKiAgIHNlbGVjdGlvbiBmcmFtZXdvcms6IFVURjMyXyBt
YWNyb3MgKGFsbCB0cml2aWFsKQorICogICBhbmQgVVRGXyBkZWZhdWx0IGFuZCBpbnRlcm1lZGlh
dGUgbWFjcm9zIChhbGwgYWxpYXNlcykuCisgKiAtIFRoZSBzZWxlY3Rpb24gZnJhbWV3b3JrIGFs
c28gY2F1c2VkIG1hbnkgbWFjcm8gYWxpYXNlcy4KKyAqIC0gQ2hhbmdlIGluIFVuaWNvZGUgc3Rh
bmRhcmQ6ICJpcnJlZ3VsYXIiIHNlcXVlbmNlcyAoMy4wKSBiZWNhbWUgaWxsZWdhbCAoMy4yKS4K
KyAqIC0gQ2hhbmdlIG9mIGxhbmd1YWdlIGluIFVuaWNvZGUgc3RhbmRhcmQ6CisgKiAgIEdyb3dp
bmcgZGlzdGluY3Rpb24gYmV0d2VlbiBpbnRlcm5hbCB4LWJpdCBVbmljb2RlIHN0cmluZ3MgYW5k
IGV4dGVybmFsIFVURi14CisgKiAgIGZvcm1zLCB3aXRoIHRoZSBmb3JtZXIgbW9yZSBsZW5pZW50
LgorICogICBTdWdnZXN0cyByZW5hbWluZyBvZiBVVEYxNl8gbWFjcm9zIHRvIFUxNl8uCisgKiAt
IFRoZSBwcmVmaXggIlVURl8iIHdpdGhvdXQgYSB3aWR0aCBudW1iZXIgY29uZnVzZWQgc29tZSB1
c2Vycy4KKyAqIC0gIlNhZmUiIGFwcGVuZCBtYWNyb3MgbmVlZGVkIHRoZSBhZGRpdGlvbiBvZiBh
biBlcnJvciBpbmRpY2F0b3Igb3V0cHV0LgorICogLSAiU2FmZSIgVVRGLTggbWFjcm9zIHVzZWQg
bGVnaXRpbWF0ZSAoaWYgcmFyZWx5IHVzZWQpIGNvZGUgcG9pbnQgdmFsdWVzCisgKiAgIHRvIGlu
ZGljYXRlIGVycm9yIGNvbmRpdGlvbnMuCisgKiAtIFRoZSB1c2Ugb2YgdGhlICJfQ0hBUiIgaW5m
aXggZm9yIGNvZGUgcG9pbnQgb3BlcmF0aW9ucyBjb25mdXNlZCBzb21lIHVzZXJzLgorICoKKyAq
IE1vcmUgZGV0YWlsczoKKyAqCisgKiBVbnRpbCBJQ1UgMi4yLCB1dGYuaCB0aGVvcmV0aWNhbGx5
IGFsbG93ZWQgdG8gY2hvb3NlIGFtb25nIFVURi04LzE2LzMyCisgKiBmb3Igc3RyaW5nIHByb2Nl
c3NpbmcsIGFuZCBhbW9uZyB1bnNhZmUvc2FmZS9zdHJpY3QgZGVmYXVsdCBtYWNyb3MgZm9yIHRo
YXQuCisgKgorICogSXQgcHJvdmVkIG5lYXJseSBpbXBvc3NpYmxlIHRvIHdyaXRlIG5vbi10cml2
aWFsLCBoaWdoLXBlcmZvcm1hbmNlIGNvZGUKKyAqIHRoYXQgaXMgVVRGLWdlbmVyaWMuCisgKiBV
bnNhZmUgZGVmYXVsdCBtYWNyb3Mgd291bGQgYmUgZGFuZ2Vyb3VzIGZvciBkZWZhdWx0IHN0cmlu
ZyBwcm9jZXNzaW5nLAorICogYW5kIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhlICJzdHJpY3QiIHZl
cnNpb25zIGRpc2FwcGVhcmVkOgorICogQmV0d2VlbiBVbmljb2RlIDMuMCBhbmQgMy4yIGFsbCAi
aXJyZWd1bGFyIiBVVEYtOCBzZXF1ZW5jZXMgYmVjYW1lIGlsbGVnYWwuCisgKiBUaGUgb25seSBv
dGhlciBjb25kaXRpb25zIHRoYXQgInN0cmljdCIgY2hlY2tlZCBmb3Igd2VyZSBub24tY2hhcmFj
dGVycywKKyAqIHdoaWNoIGFyZSB2YWxpZCBkdXJpbmcgcHJvY2Vzc2luZy4gT25seSBkdXJpbmcg
dGV4dCBpbnB1dC9vdXRwdXQgc2hvdWxkIHRoZXkKKyAqIGJlIGNoZWNrZWQsIGFuZCBhdCB0aGF0
IHRpbWUgb3RoZXIgd2VsbC1mb3JtZWRuZXNzIGNoZWNrcyBtYXkgYmUKKyAqIG5lY2Vzc2FyeSBv
ciB1c2VmdWwgYXMgd2VsbC4KKyAqIFRoaXMgY2FuIHN0aWxsIGJlIGRvbmUgYnkgdXNpbmcgVTE2
X05FWFQgYW5kIFVfSVNfVU5JQ09ERV9OT05DSEFSCisgKiBvciBVX0lTX1VOSUNPREVfQ0hBUi4K
KyAqCisgKiBUaGUgb2xkIFVURjhfLi4uX1NBRkUgbWFjcm9zIGFsc28gdXNlZCBzb21lIG5vcm1h
bCBVbmljb2RlIGNvZGUgcG9pbnRzCisgKiB0byBpbmRpY2F0ZSBtYWxmb3JtZWQgc2VxdWVuY2Vz
LgorICogVGhlIG5ldyBVVEY4XyBtYWNyb3Mgd2l0aG91dCBzdWZmaXggdXNlIG5lZ2F0aXZlIHZh
bHVlcyBpbnN0ZWFkLgorICoKKyAqIFRoZSBlbnRpcmUgY29udGVudHMgb2YgdXRmMzIuaCB3YXMg
bW92ZWQgaGVyZSB3aXRob3V0IHJlcGxhY2VtZW50CisgKiBiZWNhdXNlIGFsbCB0aG9zZSBtYWNy
b3Mgd2VyZSB0cml2aWFsIGFuZAorICogd2VyZSBtZWFuaW5nZnVsIG9ubHkgaW4gdGhlIGZyYW1l
d29yayBvZiBjaG9vc2luZyB0aGUgVVRGIHNpemUuCisgKgorICogU2VlIEppdHRlcmJ1ZyAyMTUw
IGFuZCBpdHMgZGlzY3Vzc2lvbiBvbiB0aGUgSUNVIG1haWxpbmcgbGlzdAorICogaW4gU2VwdGVt
YmVyIDIwMDIuCisgKgorICogPGhyPgorICoKKyAqIDxlbT5PYnNvbGV0ZSBwYXJ0PC9lbT4gb2Yg
cHJlLUlDVSAyLjQgdXRmLmggZmlsZSBkb2N1bWVudGF0aW9uOgorICoKKyAqIDxwPlRoZSBvcmln
aW5hbCBjb25jZXB0IGZvciB0aGVzZSBmaWxlcyB3YXMgZm9yIElDVSB0byBhbGxvdworICogaW4g
cHJpbmNpcGxlIHRvIHNldCB3aGljaCBVVEYgKFVURi04LzE2LzMyKSBpcyB1c2VkIGludGVybmFs
bHkKKyAqIGJ5IGRlZmluaW5nIFVURl9TSVpFIHRvIGVpdGhlciA4LCAxNiwgb3IgMzIuIHV0Zi5o
IHdvdWxkIHRoZW4gZGVmaW5lIHRoZSBVQ2hhciB0eXBlCisgKiBhY2NvcmRpbmdseS4gVVRGLTE2
IHdhcyB0aGUgZGVmYXVsdC48L3A+CisgKgorICogPHA+VGhpcyBjb25jZXB0IGhhcyBiZWVuIGFi
YW5kb25lZC4KKyAqIEEgbG90IG9mIHRoZSBJQ1Ugc291cmNlIGNvZGUgYXNzdW1lcyBVQ2hhciBz
dHJpbmdzIGFyZSBpbiBVVEYtMTYuCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgdHJ1ZSBmb3IgbG93
LWxldmVsIGNvZGUgbGlrZQorICogY29udmVyc2lvbiwgbm9ybWFsaXphdGlvbiwgYW5kIGNvbGxh
dGlvbi4KKyAqIFRoZSB1dGYuaCBoZWFkZXIgZW5mb3JjZXMgdGhlIGRlZmF1bHQgb2YgVVRGLTE2
LgorICogVGhlIFVURi04IGFuZCBVVEYtMzIgbWFjcm9zIHJlbWFpbiBmb3Igbm93IGZvciBjb21w
bGV0ZW5lc3MgYW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuPC9wPgorICoKKyAqIDxwPkFjY29y
ZGluZ2x5LCB1dGYuaCBkZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJpdCBpbnRl
Z2VyLiBJZiB0aGlzIG1hdGNoZXMgd2NoYXJfdCwgdGhlbgorICogVUNoYXIgaXMgZGVmaW5lZCB0
byBiZSBleGFjdGx5IHdjaGFyX3QsIG90aGVyd2lzZSB1aW50MTZfdC48L3A+CisgKgorICogPHA+
VUNoYXIzMiBpcyBkZWZpbmVkIHRvIGJlIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIChpbnQzMl90
KSwgbGFyZ2UgZW5vdWdoIGZvciBhIDIxLWJpdAorICogVW5pY29kZSBjb2RlIHBvaW50IChVbmlj
b2RlIHNjYWxhciB2YWx1ZSwgMC4uMHgxMGZmZmYpLgorICogQmVmb3JlIElDVSAyLjQsIHRoZSBk
ZWZpbml0aW9uIG9mIFVDaGFyMzIgd2FzIHNpbWlsYXJseSBwbGF0Zm9ybS1kZXBlbmRlbnQgYXMK
KyAqIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyLiBGb3IgZGV0YWlscyBzZWUgdGhlIGRvY3VtZW50
YXRpb24gZm9yIFVDaGFyMzIgaXRzZWxmLjwvcD4KKyAqCisgKiA8cD51dGYuaCBhbHNvIGRlZmlu
ZXMgYSBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIGhhbmRsaW5nIHNpbmdsZSBVbmljb2RlIGNvZGUg
cG9pbnRzIGFuZAorICogZm9yIHVzaW5nIFVURiBVbmljb2RlIHN0cmluZ3MuIEl0IGluY2x1ZGVz
IHV0ZjguaCwgdXRmMTYuaCwgYW5kIHV0ZjMyLmggZm9yIHRoZSBhY3R1YWwKKyAqIGltcGxlbWVu
dGF0aW9ucyBvZiB0aG9zZSBtYWNyb3MgYW5kIHRoZW4gYWxpYXNlcyBvbmUgc2V0IG9mIHRoZW0g
KGZvciBVVEYtMTYpIGZvciBnZW5lcmFsIHVzZS4KKyAqIFRoZSBVVEYtc3BlY2lmaWMgbWFjcm9z
IGhhdmUgdGhlIFVURiBzaXplIGluIHRoZSBtYWNybyBuYW1lIHByZWZpeGVzIChVVEYxNl8uLi4p
LCB3aGlsZQorICogdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIGFsd2F5cyBiZWdpbiB3aXRoIFVU
Rl8uLi48L3A+CisgKgorICogPHA+TWFueSBzdHJpbmcgb3BlcmF0aW9ucyBjYW4gYmUgZG9uZSB3
aXRoIG9yIHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcuCisgKiBXaGVyZSBzdWNoIGEgZGlzdGluY3Rp
b24gaXMgdXNlZnVsLCB0aGVyZSBhcmUgdHdvIHZlcnNpb25zIG9mIHRoZSBtYWNyb3MsICJ1bnNh
ZmUiIGFuZCAic2FmZSIKKyAqIG9uZXMgd2l0aCAuLi5fVU5TQUZFIGFuZCAuLi5fU0FGRSBzdWZm
aXhlcy4gVGhlIHVuc2FmZSBtYWNyb3MgYXJlIGZhc3QgYnV0IG1heSBjYXVzZQorICogcHJvZ3Jh
bSBmYWlsdXJlcyBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IHdlbGwtZm9ybWVkLiBUaGUgc2FmZSBt
YWNyb3MgaGF2ZSBhbiBhZGRpdGlvbmFsLCBib29sZWFuCisgKiBwYXJhbWV0ZXIgInN0cmljdCIu
IElmIHN0cmljdCBpcyBGQUxTRSwgdGhlbiBvbmx5IGlsbGVnYWwgc2VxdWVuY2VzIGFyZSBkZXRl
Y3RlZC4KKyAqIE90aGVyd2lzZSwgaXJyZWd1bGFyIHNlcXVlbmNlcyBhbmQgbm9uLWNoYXJhY3Rl
cnMgYXJlIGRldGVjdGVkIGFzIHdlbGwgKGxpa2Ugc2luZ2xlIHN1cnJvZ2F0ZXMpLgorICogU2Fm
ZSBtYWNyb3MgcmV0dXJuIHNwZWNpYWwgZXJyb3IgY29kZSBwb2ludHMgZm9yIGlsbGVnYWwvaXJy
ZWd1bGFyIHNlcXVlbmNlczoKKyAqIFR5cGljYWxseSwgVStmZmZmLCBvciB2YWx1ZXMgdGhhdCB3
b3VsZCByZXN1bHQgaW4gYSBjb2RlIHVuaXQgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgbGVuZ3RoCisg
KiBhcyB0aGUgZXJyb25lb3VzIGlucHV0IHNlcXVlbmNlLjxicj4KKyAqIE5vdGUgdGhhdCBfVU5T
QUZFIG1hY3JvcyBoYXZlIGZld2VyIHBhcmFtZXRlcnM6IFRoZXkgZG8gbm90IGhhdmUgdGhlIHN0
cmljdG5lc3MgcGFyYW1ldGVyLCBhbmQKKyAqIHRoZXkgZG8gbm90IGhhdmUgc3RhcnQvbGVuZ3Ro
IHBhcmFtZXRlcnMgZm9yIGJvdW5kYXJ5IGNoZWNraW5nLjwvcD4KKyAqCisgKiA8cD5IZXJlLCB0
aGUgbWFjcm9zIGFyZSBhbGlhc2VkIGluIHR3byBzdGVwczoKKyAqIEluIHRoZSBmaXJzdCBzdGVw
LCB0aGUgVVRGLXNwZWNpZmljIG1hY3JvcyB3aXRoIFVURjE2XyBwcmVmaXggYW5kIF9VTlNBRkUg
YW5kIF9TQUZFIHN1ZmZpeGVzIGFyZQorICogYWxpYXNlZCBhY2NvcmRpbmcgdG8gdGhlIFVURl9T
SVpFIHRvIG1hY3JvcyB3aXRoIFVURl8gcHJlZml4IGFuZCB0aGUgc2FtZSBzdWZmaXhlcyBhbmQg
c2lnbmF0dXJlcy4KKyAqIFRoZW4sIGluIGEgc2Vjb25kIHN0ZXAsIHRoZSBkZWZhdWx0LCBnZW5l
cmFsIGFsaWFzIG1hY3JvcyBhcmUgc2V0IHRvIHVzZSBlaXRoZXIgdGhlIHVuc2FmZSBvcgorICog
dGhlIHNhZmUvbm90IHN0cmljdCAoZGVmYXVsdCkgb3IgdGhlIHNhZmUvc3RyaWN0IG1hY3JvOwor
ICogdGhlc2UgZ2VuZXJhbCBtYWNyb3MgZG8gbm90IGhhdmUgYSBzdHJpY3RuZXNzIHBhcmFtZXRl
ci48L3A+CisgKgorICogPHA+SXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IGNo
b2ljZSBmb3IgdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIHRvIGJlIHVuc2FmZSwgc2FmZS9ub3Qg
c3RyaWN0IG9yIHNhZmUvc3RyaWN0LgorICogVGhlIGRlZmF1bHQgaXMgc2FmZS9ub3Qgc3RyaWN0
LiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gc2VsZWN0IHRoZSB1bnNhZmUgbWFjcm9zIGFzIHRo
ZSBiYXNpcyBmb3IKKyAqIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nIGluIElDVSEgVG8gc2VsZWN0
IHRoaXMsIGRlZmluZSBVVEZfU0FGRSwgVVRGX1NUUklDVCwgb3IgVVRGX1VOU0FGRS48L3A+Cisg
KgorICogPHA+Rm9yIGdlbmVyYWwgdXNlLCBvbmUgc2hvdWxkIHVzZSB0aGUgZGVmYXVsdCwgZ2Vu
ZXJhbCBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgbm8gX1NBRkUvX1VOU0FGRSBzdWZmaXgu
CisgKiBPbmx5IGluIHNvbWUgY2FzZXMgaXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBjb250cm9sIHRo
ZSBjaG9pY2Ugb2YgbWFjcm8gZGlyZWN0bHkgYW5kIHVzZSBhIGxlc3MgZ2VuZXJpYyBhbGlhcy4K
KyAqIEZvciBleGFtcGxlLCBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGEgc3RyaW5nIGlzIHdl
bGwtZm9ybWVkIGFuZCB0aGUgaW5kZXggd2lsbCBzdGF5IHdpdGhpbiB0aGUgYm91bmRzLAorICog
dGhlbiB0aGUgX1VOU0FGRSB2ZXJzaW9uIG1heSBiZSB1c2VkLgorICogSWYgYSBVVEYtOCBzdHJp
bmcgaXMgdG8gYmUgcHJvY2Vzc2VkLCB0aGVuIHRoZSBtYWNyb3Mgd2l0aCBVVEY4XyBwcmVmaXhl
cyBuZWVkIHRvIGJlIHVzZWQuPC9wPgorICoKKyAqIDxocj4KKyAqCisgKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBVc2UgdGhlIG1hY3JvcyBpbiB1dGYuaCwgdXRmMTYuaCwgdXRmOC5oIGluc3RlYWQu
CisgKi8KKworI2lmbmRlZiBfX1VURl9PTERfSF9fCisjZGVmaW5lIF9fVVRGX09MRF9IX18KKwor
I2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworI2luY2x1ZGUgInVuaWNvZGUvdXRmLmgi
CisjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgor
CisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWZkZWYgVV9VU0VfVVRGX0RFUFJFQ0FURVMK
Ky8qKgorICogVW5pY29kZSBzdHJpbmcgYW5kIGFycmF5IG9mZnNldCBhbmQgaW5kZXggdHlwZS4K
KyAqIElDVSBhbHdheXMgY291bnRzIFVuaWNvZGUgY29kZSB1bml0cyAoVUNoYXJzKSBmb3IKKyAq
IHN0cmluZyBvZmZzZXRzLCBpbmRleGVzLCBhbmQgbGVuZ3Rocywgbm90IFVuaWNvZGUgY29kZSBw
b2ludHMuCisgKgorICogQG9ic29sZXRlIElDVSAyLjYuIFVzZSBpbnQzMl90IGRpcmVjdGx5IGlu
c3RlYWQgc2luY2UgdGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIHRoYXQgcmVsZWFzZS4KKyAq
LwordHlwZWRlZiBpbnQzMl90IFVUZXh0T2Zmc2V0OworI2VuZGlmCisKKy8qKiBOdW1iZXIgb2Yg
Yml0cyBpbiBhIFVuaWNvZGUgc3RyaW5nIGNvZGUgdW5pdCAtIElDVSB1c2VzIDE2LWJpdCBVbmlj
b2RlLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGX1NJWkUgMTYKKworLyoqCisgKiBUaGUgZGVmYXVsdCBjaG9pY2UgZm9yIGdlbmVy
YWwgVW5pY29kZSBzdHJpbmcgbWFjcm9zIGlzIHRvIHVzZSB0aGUgLi4uX1NBRkUgbWFjcm8gaW1w
bGVtZW50YXRpb25zCisgKiB3aXRoIHN0cmljdD1GQUxTRS4KKyAqCisgKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfU0FGRQor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI3Vu
ZGVmIFVURl9VTlNBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyN1bmRlZiBVVEZfU1RSSUNUCisKKy8qKgorICogVVRGOF9FUlJPUl9WQUxV
RV8xIGFuZCBVVEY4X0VSUk9SX1ZBTFVFXzIgYXJlIHNwZWNpYWwgZXJyb3IgdmFsdWVzIGZvciBV
VEYtOCwKKyAqIHdoaWNoIG5lZWQgMSBvciAyIGJ5dGVzIGluIFVURi04OgorICogXGNvZGUKKyAq
IFUrMDAxNSA9IE5BSyA9IE5lZ2F0aXZlIEFja25vd2xlZGdlLCBDMCBjb250cm9sIGNoYXJhY3Rl
cgorICogVSswMDlmID0gaGlnaGVzdCBDMSBjb250cm9sIGNoYXJhY3RlcgorICogXGVuZGNvZGUK
KyAqCisgKiBUaGVzZSBhcmUgdXNlZCBieSBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBzbyB0aGF0IHRo
ZXkgY2FuIHJldHVybiBhbiBlcnJvciB2YWx1ZQorICogdGhhdCBuZWVkcyB0aGUgc2FtZSBudW1i
ZXIgb2YgY29kZSB1bml0cyAoYnl0ZXMpIGFzIHdlcmUgc2VlbiBieQorICogYSBtYWNyby4gVGhl
eSBzaG91bGQgYmUgdGVzdGVkIHdpdGggVVRGX0lTX0VSUk9SKCkgb3IgVVRGX0lTX1ZBTElEKCku
CisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisg
Ki8KKyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8xIDB4MTUKKworLyoqCisgKiBTZWUgZG9jdW1l
bnRhdGlvbiBvbiBVVEY4X0VSUk9SX1ZBTFVFXzEgZm9yIGRldGFpbHMuCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
OF9FUlJPUl9WQUxVRV8yIDB4OWYKKworLyoqCisgKiBFcnJvciB2YWx1ZSBmb3IgYWxsIFVURnMu
IFRoaXMgY29kZSBwb2ludCB2YWx1ZSB3aWxsIGJlIHNldCBieSBtYWNyb3Mgd2l0aCBlcnJvcgor
ICogY2hlY2tpbmcgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0VSUk9S
X1ZBTFVFIDB4ZmZmZgorCisvKioKKyAqIElzIGEgZ2l2ZW4gMzItYml0IGNvZGUgYW4gZXJyb3Ig
dmFsdWUKKyAqIGFzIHJldHVybmVkIGJ5IG9uZSBvZiB0aGUgbWFjcm9zIGZvciBhbnkgVVRGPwor
ICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9JU19FUlJPUihjKSBcCisgICAgKCgoYykmMHhmZmZlKT09MHhmZmZlIHx8
IChjKT09VVRGOF9FUlJPUl9WQUxVRV8xIHx8IChjKT09VVRGOF9FUlJPUl9WQUxVRV8yKQorCisv
KioKKyAqIFRoaXMgaXMgYSBjb21iaW5lZCBtYWNybzogSXMgYyBhIHZhbGlkIFVuaWNvZGUgdmFs
dWUgX2FuZF8gbm90IGFuIGVycm9yIGNvZGU/CisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1ZBTElEKGMpIFwK
KyAgICAoVVRGX0lTX1VOSUNPREVfQ0hBUihjKSAmJiBcCisgICAgIChjKSE9VVRGOF9FUlJPUl9W
QUxVRV8xICYmIChjKSE9VVRGOF9FUlJPUl9WQUxVRV8yKQorCisvKioKKyAqIElzIHRoaXMgY29k
ZSB1bml0IG9yIGNvZGUgcG9pbnQgYSBzdXJyb2dhdGUgKFUrZDgwMC4uVStkZmZmKT8KKyAqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19TVVJST0dBVEUgYW5kIFUxNl9JU19T
VVJST0dBVEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJPR0FURSh1
Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmY4MDApPT0weGQ4MDApCisKKy8qKgorICogSXMgYSBnaXZl
biAzMi1iaXQgY29kZSBwb2ludCBhIFVuaWNvZGUgbm9uY2hhcmFjdGVyPworICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RFX05PTkNIQVIsIHNlZSB1dGZf
b2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihjKSBcCisgICAgKChj
KT49MHhmZGQwICYmIFwKKyAgICAgKCh1aW50MzJfdCkoYyk8PTB4ZmRlZiB8fCAoKGMpJjB4ZmZm
ZSk9PTB4ZmZmZSkgJiYgXAorICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZikKKworLyoqCisg
KiBJcyBhIGdpdmVuIDMyLWJpdCB2YWx1ZSBhIFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZSAoMC4u
VSsxMGZmZmYpCisgKiB0aGF0IGNhbiBiZSBhc3NpZ25lZCBhIGNoYXJhY3Rlcj8KKyAqCisgKiBD
b2RlIHBvaW50cyB0aGF0IGFyZSBub3QgY2hhcmFjdGVycyBpbmNsdWRlOgorICogLSBzaW5nbGUg
c3Vycm9nYXRlIGNvZGUgcG9pbnRzIChVK2Q4MDAuLlUrZGZmZiwgMjA0OCBjb2RlIHBvaW50cykK
KyAqIC0gdGhlIGxhc3QgdHdvIGNvZGUgcG9pbnRzIG9uIGVhY2ggcGxhbmUgKFUrX19mZmZlIGFu
ZCBVK19fZmZmZiwgMzQgY29kZSBwb2ludHMpCisgKiAtIFUrZmRkMC4uVStmZGVmIChuZXcgd2l0
aCBVbmljb2RlIDMuMSwgMzIgY29kZSBwb2ludHMpCisgKiAtIHRoZSBoaWdoZXN0IFVuaWNvZGUg
Y29kZSBwb2ludCB2YWx1ZSBpcyBVKzEwZmZmZgorICoKKyAqIFRoaXMgbWVhbnMgdGhhdCBhbGwg
Y29kZSBwb2ludHMgYmVsb3cgVStkODAwIGFyZSBjaGFyYWN0ZXIgY29kZSBwb2ludHMsCisgKiBh
bmQgdGhhdCBib3VuZGFyeSBpcyB0ZXN0ZWQgZmlyc3QgZm9yIHBlcmZvcm1hbmNlLgorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RFX0NIQVIsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfQ0hBUihjKSBcCisgICAgKCh1
aW50MzJfdCkoYyk8MHhkODAwIHx8IFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk+MHhkZmZmICYm
IFwKKyAgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmICYmIFwKKyAgICAgICAgICFVVEZf
SVNfVU5JQ09ERV9OT05DSEFSKGMpKSkKKworLyogRm9ybWVybHkgdXRmOC5oIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoq
CisgKiBDb3VudCB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlLgorICogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9DT1VOVF9UUkFJTF9CWVRFUywgc2VlIHV0
Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEY4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRCeXRlKSAo
dXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQorCisvKioKKyAqIE1hc2sg
YSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2VyIGJpdHMgdGhhdCBmb3JtIHBh
cnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X01BU0tfTEVBRF9CWVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
RjhfTUFTS19MRUFEX0JZVEUobGVhZEJ5dGUsIGNvdW50VHJhaWxCeXRlcykgKChsZWFkQnl0ZSkm
PSgxPDwoNi0oY291bnRUcmFpbEJ5dGVzKSkpLTEpCisKKy8qKiBJcyB0aGlzIHRoaXMgY29kZSBw
b2ludCBhIHNpbmdsZSBjb2RlIHVuaXQgKGJ5dGUpPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9JU19T
SU5HTEUodWNoYXIpICgoKHVjaGFyKSYweDgwKT09MCkKKy8qKiBJcyB0aGlzIHRoaXMgY29kZSB1
bml0IHRoZSBsZWFkIGNvZGUgdW5pdCAoYnl0ZSkgb2YgYSBjb2RlIHBvaW50PyBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjhfSVNfTEVBRCh1Y2hhcikgKCh1aW50OF90KSgodWNoYXIpLTB4YzApPDB4M2UpCisv
KiogSXMgdGhpcyB0aGlzIGNvZGUgdW5pdCBhIHRyYWlsaW5nIGNvZGUgdW5pdCAoYnl0ZSkgb2Yg
YSBjb2RlIHBvaW50PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX1RSQUlM
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0lTX1RSQUlMKHVjaGFyKSAoKCh1Y2hh
cikmMHhjMCk9PTB4ODApCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVuaWNvZGUgdmFsdWUgbmVl
ZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBV
c2UgVThfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHg3ZikgaW5zdGVhZCwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORUVEX01VTFRJUExFX1VDSEFSKGMpICgodWludDMy
X3QpKGMpPjB4N2YpCisKKy8qKgorICogR2l2ZW4gdGhlIGxlYWQgY2hhcmFjdGVyLCBob3cgbWFu
eSBieXRlcyBhcmUgdGFrZW4gYnkgdGhpcyBjb2RlIHBvaW50LgorICogSUNVIGRvZXMgbm90IGRl
YWwgd2l0aCBjb2RlIHBvaW50cyA+MHgxMGZmZmYKKyAqIHVubGVzcyBuZWNlc3NhcnkgZm9yIGFk
dmFuY2luZyBpbiB0aGUgYnl0ZSBzdHJlYW0uCisgKgorICogVGhlc2UgbGVuZ3RoIG1hY3JvcyB0
YWtlIGludG8gYWNjb3VudCB0aGF0IGZvciB2YWx1ZXMgPjB4MTBmZmZmCisgKiB0aGUgVVRGOF9B
UFBFTkRfQ0hBUl9TQUZFIG1hY3JvcyB3b3VsZCB3cml0ZSB0aGUgZXJyb3IgY29kZSBwb2ludCAw
eGZmZmYKKyAqIHdpdGggMyBieXRlcy4KKyAqIENvZGUgcG9pbnQgY29tcGFyaXNvbnMgbmVlZCB0
byBiZSBpbiB1aW50MzJfdCBiZWNhdXNlIFVDaGFyMzIKKyAqIG1heSBiZSBhIHNpZ25lZCB0eXBl
LCBhbmQgbmVnYXRpdmUgdmFsdWVzIG11c3QgYmUgcmVjb2duaXplZC4KKyAqCisgKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIGluc3RlYWQsIHNlZSB1dGYuaC4KKyAqLworI2lm
IDEKKyMgICBkZWZpbmUgVVRGOF9DSEFSX0xFTkdUSChjKSBcCisgICAgICAgICgodWludDMyX3Qp
KGMpPD0weDdmID8gMSA6IFwKKyAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDdmZiA/IDIg
OiBcCisgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoKGMpLTB4MTAwMDApPjB4ZmZmZmYgPyAz
IDogNCkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbHNlCisjICAgZGVmaW5lIFVU
RjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZiA/IDEgOiBc
CisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZmYgPyAyIDogXAorICAgICAgICAgICAg
ICAgICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAzIDogXAorICAgICAgICAgICAgICAgICAgICAo
KHVpbnQzMl90KShjKTw9MHgxMGZmZmYgPyA0IDogXAorICAgICAgICAgICAgICAgICAgICAgICAg
KCh1aW50MzJfdCkoYyk8PTB4M2ZmZmZmZiA/IDUgOiBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmZmZmZmYgPyA2IDogMykgXAorICAgICAgICAgICAg
ICAgICAgICAgICAgKSBcCisgICAgICAgICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgICAg
ICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbmRpZgorCisvKiogVGhlIG1heGlt
dW0gbnVtYmVyIG9mIGJ5dGVzIHBlciBjb2RlIHBvaW50LiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFU4X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhf
TUFYX0NIQVJfTEVOR1RIIDQKKworLyoqIEF2ZXJhZ2UgbnVtYmVyIG9mIGNvZGUgdW5pdHMgY29t
cGFyZWQgdG8gVVRGLTE2LiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9BUlJBWV9TSVpFKHNpemUpICgoNSooc2l6ZSkpLzIpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0dFVF9VTlNBRkUsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAor
ICAgIGludDMyX3QgX3V0ZjhfZ2V0X2NoYXJfdW5zYWZlX2luZGV4PShpbnQzMl90KShpKTsgXAor
ICAgIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIF91dGY4X2dldF9jaGFyX3Vuc2FmZV9p
bmRleCk7IFwKKyAgICBVVEY4X05FWFRfQ0hBUl9VTlNBRkUocywgX3V0ZjhfZ2V0X2NoYXJfdW5z
YWZlX2luZGV4LCBjKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0dF
VCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFSX1NBRkUo
cywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICBpbnQzMl90IF91dGY4X2dl
dF9jaGFyX3NhZmVfaW5kZXg9KGludDMyX3QpKGkpOyBcCisgICAgVVRGOF9TRVRfQ0hBUl9TVEFS
VF9TQUZFKHMsIHN0YXJ0LCBfdXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4KTsgXAorICAgIFVURjhf
TkVYVF9DSEFSX1NBRkUocywgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCwgbGVuZ3RoLCBjLCBz
dHJpY3QpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X05F
WFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X05FWFRfQ0hBUl9VTlNB
RkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZigodWludDhfdCko
KGMpLTB4YzApPDB4MzUpIHsgXAorICAgICAgICB1aW50OF90IF9fY291bnQ9VVRGOF9DT1VOVF9U
UkFJTF9CWVRFUyhjKTsgXAorICAgICAgICBVVEY4X01BU0tfTEVBRF9CWVRFKGMsIF9fY291bnQp
OyBcCisgICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKKyAgICAgICAgLyogZWFjaCBmb2xsb3dp
bmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKKyAgICAgICAgY2Fz
ZSAzOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKKyAg
ICAgICAgY2FzZSAyOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgz
Zik7IFwKKyAgICAgICAgY2FzZSAxOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVso
aSkrK10mMHgzZik7IFwKKyAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8gb3B0aW1pemUg
c3dpdGNoKCkgKi8gXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAgICAgICAgfSBcCisgICAgfSBc
Cit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0FQUEVORF9VTlNB
RkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfVU5TQUZFKHMs
IGksIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4N2YpIHsgXAorICAgICAgICAocylb
KGkpKytdPSh1aW50OF90KShjKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgaWYoKHVpbnQz
Ml90KShjKTw9MHg3ZmYpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChj
KT4+Nil8MHhjMCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYoKHVpbnQz
Ml90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90
KSgoKGMpPj4xMil8MHhlMCk7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAg
ICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpPj4xOCl8MHhmMCk7IFwKKyAgICAgICAgICAg
ICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+MTIpJjB4M2YpfDB4ODApOyBcCisgICAg
ICAgICAgICB9IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3QpKCgoKGMpPj42KSYw
eDNmKXwweDgwKTsgXAorICAgICAgICB9IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCko
KChjKSYweDNmKXwweDgwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9GV0RfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjhfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIChpKSs9MStVVEY4X0NPVU5UX1RSQUlM
X0JZVEVTKChzKVtpXSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVThfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0ZXRF9O
X1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShf
X04+MCkgeyBcCisgICAgICAgIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBcCisgICAgICAgIC0t
X19OOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhf
U0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNfVFJBSUwo
KHMpW2ldKSkgeyAtLShpKTsgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2Ug
VThfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X05FWFRfQ0hB
Ul9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsg
XAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKFVURjhfSVNfTEVBRChjKSkgeyBc
CisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KHMsICYoaSksIChpbnQzMl90
KShsZW5ndGgpLCBjLCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAg
IChjKT1VVEY4X0VSUk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfQVBQRU5EIGluc3RlYWQsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpICB7
IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0o
dWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChpKT11dGY4X2FwcGVuZENo
YXJTYWZlQm9keShzLCAoaW50MzJfdCkoaSksIChpbnQzMl90KShsZW5ndGgpLCBjLCBOVUxMKTsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9G
V0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9GV0RfMV9TQUZFKHMsIGksIGxl
bmd0aCkgVThfRldEXzEocywgaSwgbGVuZ3RoKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVOF9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9GV0Rf
Tl9TQUZFKHMsIGksIGxlbmd0aCwgbikgVThfRldEX04ocywgaSwgbGVuZ3RoLCBuKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkg
VThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVOF9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisg
ICAgaWYoVVRGOF9JU19UUkFJTChjKSkgeyBcCisgICAgICAgIHVpbnQ4X3QgX19iLCBfX2NvdW50
PTEsIF9fc2hpZnQ9NjsgXAorXAorICAgICAgICAvKiBjIGlzIGEgdHJhaWwgYnl0ZSAqLyBcCisg
ICAgICAgIChjKSY9MHgzZjsgXAorICAgICAgICBmb3IoOzspIHsgXAorICAgICAgICAgICAgX19i
PShzKVstLShpKV07IFwKKyAgICAgICAgICAgIGlmKF9fYj49MHhjMCkgeyBcCisgICAgICAgICAg
ICAgICAgVVRGOF9NQVNLX0xFQURfQllURShfX2IsIF9fY291bnQpOyBcCisgICAgICAgICAgICAg
ICAgKGMpfD0oVUNoYXIzMilfX2I8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICBicmVhazsg
XAorICAgICAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgICAgIChjKXw9KFVDaGFyMzIp
KF9fYiYweDNmKTw8X19zaGlmdDsgXAorICAgICAgICAgICAgICAgICsrX19jb3VudDsgXAorICAg
ICAgICAgICAgICAgIF9fc2hpZnQrPTY7IFwKKyAgICAgICAgICAgIH0gXAorICAgICAgICB9IFwK
KyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFD
S18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLXzFfVU5TQUZF
KHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNfVFJBSUwoKHMpWy0tKGkpXSkpIHt9IFwKK30K
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFDS19OX1VOU0FGRSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fVU5TQUZFKHMsIGksIG4pIHsg
XAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7IFwKKyAgICAgICAg
VVRGOF9CQUNLXzFfVU5TQUZFKHMsIGkpOyBcCisgICAgICAgIC0tX19OOyBcCisgICAgfSBcCit9
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X1NFVF9DUF9MSU1JVF9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfTElNSVRfVU5T
QUZFKHMsIGkpIHsgXAorICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgIFVURjhf
RldEXzFfVU5TQUZFKHMsIGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2Ug
VThfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1BSRVZfQ0hB
Ul9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBc
CisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMpPD0weGJmKSB7IFwKKyAgICAg
ICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkocywgc3RhcnQsICYoaSksIGMsIHN0cmlj
dCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgKGMpPVVURjhfRVJST1JfVkFM
VUVfMTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVThfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4
X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBVOF9CQUNLXzEocywgc3RhcnQsIGkpCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGOF9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikgVThfQkFDS19OKHMs
IHN0YXJ0LCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9T
RVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfTElN
SVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoKSBVOF9TRVRfQ1BfTElNSVQocywgc3RhcnQsIGks
IGxlbmd0aCkKKworLyogRm9ybWVybHkgdXRmMTYuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIElzIHVjaGFyIGEgZmly
c3QvbGVhZCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19M
RUFEIGFuZCBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX0ZJ
UlNUX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmZjMDApPT0weGQ4MDApCisKKy8q
KiBJcyB1Y2hhciBhIHNlY29uZC90cmFpbCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlMLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEZfSVNfU0VDT05EX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZm
ZmZjMDApPT0weGRjMDApCisKKy8qKiBBc3N1bWluZyBjIGlzIGEgc3Vycm9nYXRlLCBpcyBpdCBh
IGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVf
SVNfU1VSUk9HQVRFX0xFQUQgYW5kIFUxNl9JU19TVVJST0dBVEVfTEVBRCwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJPR0FURV9GSVJTVChjKSAoKChjKSYweDQwMCk9PTAp
CisKKy8qKiBIZWxwZXIgY29uc3RhbnQgZm9yIFVURjE2X0dFVF9QQUlSX1ZBTFVFLiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TVVJST0dBVEVfT0ZGU0VULCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEZfU1VSUk9HQVRFX09GRlNFVCAoKDB4ZDgwMDw8MTBVTCkrMHhk
YzAwLTB4MTAwMDApCisKKy8qKiBHZXQgdGhlIFVURi0zMiB2YWx1ZSBmcm9tIHRoZSBzdXJyb2dh
dGUgY29kZSB1bml0cy4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfR0VUX1NV
UFBMRU1FTlRBUlksIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0dFVF9QQUlSX1ZB
TFVFKGZpcnN0LCBzZWNvbmQpIFwKKyAgICAoKChmaXJzdCk8PDEwVUwpKyhzZWNvbmQpLVVURl9T
VVJST0dBVEVfT0ZGU0VUKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZJUlNUX1NVUlJPR0FURShz
dXBwbGVtZW50YXJ5KSAoVUNoYXIpKCgoc3VwcGxlbWVudGFyeSk+PjEwKSsweGQ3YzApCisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGX1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkgKFVDaGFy
KSgoKHN1cHBsZW1lbnRhcnkpJjB4M2ZmKXwweGRjMDApCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9MRUFELCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYx
Nl9MRUFEKHN1cHBsZW1lbnRhcnkpIFVURl9GSVJTVF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1RSQUlMLCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9UUkFJTChzdXBwbGVtZW50YXJ5KSBVVEZfU0VDT05E
X1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfSVNfU0lOR0xFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9J
U19TSU5HTEUodWNoYXIpICFVVEZfSVNfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMTZfSVNfTEVBRCh1Y2hhcikgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSh1Y2hhcikK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX1RSQUlMLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9JU19UUkFJTCh1Y2hhcikgVVRGX0lTX1NFQ09O
RF9TVVJST0dBVEUodWNoYXIpCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVuaWNvZGUgdmFsdWUg
bmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBVc2UgVTE2X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4ZmZmZikgaW5zdGVhZCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAo
KHVpbnQzMl90KShjKT4weGZmZmYpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFUxNl9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0NIQVJfTEVO
R1RIKGMpICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAxIDogMikKKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjE2X01BWF9DSEFSX0xFTkdUSCAyCisKKy8qKiBBdmVyYWdlIG51bWJlciBvZiBj
b2RlIHVuaXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0FSUkFZX1NJWkUoc2l6ZSkgKHNp
emUpCisKKy8qKgorICogR2V0IGEgc2luZ2xlIGNvZGUgcG9pbnQgZnJvbSBhbiBvZmZzZXQgdGhh
dCBwb2ludHMgdG8gYW55CisgKiBvZiB0aGUgY29kZSB1bml0cyB0aGF0IGJlbG9uZyB0byB0aGF0
IGNvZGUgcG9pbnQuCisgKiBBc3N1bWUgMDw9aTxsZW5ndGguCisgKgorICogVGhpcyBjb3VsZCBi
ZSB1c2VkIGZvciBpdGVyYXRpb24gdG9nZXRoZXIgd2l0aAorICogVVRGMTZfQ0hBUl9MRU5HVEgo
KSBhbmQgVVRGX0lTX0VSUk9SKCksCisgKiBidXQgdGhlIHVzZSBvZiBVVEYxNl9ORVhUX0NIQVJb
X1VOU0FGRV0oKSBhbmQKKyAqIFVURjE2X1BSRVZfQ0hBUltfVU5TQUZFXSgpIGlzIG1vcmUgZWZm
aWNpZW50IGZvciB0aGF0LgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
R0VUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEYxNl9HRVRfQ0hBUl9V
TlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorICAgIGlmKFVURl9JU19TVVJS
T0dBVEUoYykpIHsgXAorICAgICAgICBpZihVVEZfSVNfU1VSUk9HQVRFX0ZJUlNUKGMpKSB7IFwK
KyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIChzKVsoaSkrMV0pOyBc
CisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxV
RSgocylbKGkpLTFdLCAoYykpOyBcCisgICAgICAgIH0gXAorICAgIH0gXAorfQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMTZfR0VUX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJp
Y3QpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZfSVNfU1VSUk9HQVRFKGMpKSB7
IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZihVVEZfSVNfU1VSUk9HQVRF
X0ZJUlNUKGMpKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxPChsZW5ndGgpICYmIFVURl9JU19T
RUNPTkRfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAorICAgICAgICAgICAgICAgIChj
KT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAgICAgLyog
c3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQgYnkgVVRGX0lTX0VSUk9SKCkg
YW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAgICAgICB9IGVsc2UgaWYoc3Ry
aWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGUgKi8g
XAorICAgICAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICAgICAgICAgIH0g
XAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICBpZigoaSktMT49KHN0YXJ0KSAmJiBV
VEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAgICAgICAgICAg
ICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAoYykpOyBcCisgICAgICAgICAgICAg
ICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQgYnkgVVRGX0lTX0VS
Uk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAgICAgICB9IGVsc2Ug
aWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNvbmQgc3Vycm9n
YXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAg
ICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFVVEZfSVNf
VU5JQ09ERV9DSEFSKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVYVF9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRfQ0hBUl9VTlNBRkUo
cywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZihVVEZfSVNfRklSU1Rf
U1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKChjKSwg
KHMpWyhpKSsrXSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjE2X0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigodWludDMyX3QpKGMp
PD0weGZmZmYpIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoYyk7IFwKKyAgICB9
IGVsc2UgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgoKGMpPj4xMCkrMHhkN2Mw
KTsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKSYweDNmZil8MHhkYzAwKTsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
RldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfMV9VTlNB
RkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSgocylbKGkpKytdKSkg
eyBcCisgICAgICAgICsrKGkpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjE2X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7
IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjE2X0ZXRF8xX1VOU0FGRShzLCBp
KTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlm
KFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKChzKVtpXSkpIHsgXAorICAgICAgICAtLShpKTsgXAor
ICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9ORVhUIGluc3Rl
YWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRfQ0hBUl9TQUZFKHMsIGks
IGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKFVU
Rl9JU19GSVJTVF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisg
ICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBVVEZfSVNfU0VDT05EX1NVUlJPR0FURShfX2MyPShz
KVsoaSldKSkgeyBcCisgICAgICAgICAgICArKyhpKTsgXAorICAgICAgICAgICAgKGMpPVVURjE2
X0dFVF9QQUlSX1ZBTFVFKChjKSwgX19jMik7IFwKKyAgICAgICAgICAgIC8qIHN0cmljdDogKChj
KSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNf
VU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAg
ICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSAqLyBcCisgICAgICAgICAgICAoYyk9
VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3RyaWN0KSAm
JiAhVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNv
bmQgc3Vycm9nYXRlIG9yIG90aGVyIG5vbi1jaGFyYWN0ZXIgKi8gXAorICAgICAgICAoYyk9VVRG
X0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBV
c2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9B
UFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykgeyBcCisgICAgaWYoKHVpbnQzMl90KShj
KTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKGMpOyBcCisgICAg
fSBlbHNlIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgaWYoKGkpKzE8
KGxlbmd0aCkpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYyk+PjEw
KSsweGQ3YzApOyBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKSYweDNm
Zil8MHhkYzAwKTsgXAorICAgICAgICB9IGVsc2UgLyogbm90IGVub3VnaCBzcGFjZSAqLyB7IFwK
KyAgICAgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgIH0gXAor
ICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSBlcnJvciB2YWx1ZSAqLyB7IFwKKyAgICAg
ICAgKHMpWyhpKSsrXT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8xKHMsIGksIGxl
bmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwg
bikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMTZfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgVTE2X1NFVF9DUF9TVEFSVChz
LCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1BS
RVZfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9QUkVWX0NIQVJfVU5T
QUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGX0lTX1NF
Q09ORF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUo
KHMpWy0tKGkpXSwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfU0VDT05EX1NV
UlJPR0FURSgocylbLS0oaSldKSkgeyBcCisgICAgICAgIC0tKGkpOyBcCisgICAgfSBcCit9CisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNLX05fVU5TQUZFLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05fVU5TQUZFKHMsIGksIG4pIHsg
XAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7IFwKKyAgICAgICAg
VVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAor
fQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlU
X1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfTElNSVRf
VU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoKHMpWyhpKS0x
XSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChj
KT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUoYykpIHsgXAor
ICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisgICAgICAgIGlmKChpKT4oc3RhcnQpICYmIFVURl9J
U19GSVJTVF9TVVJST0dBVEUoX19jMj0ocylbKGkpLTFdKSkgeyBcCisgICAgICAgICAgICAtLShp
KTsgXAorICAgICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKF9fYzIsIChjKSk7IFwK
KyAgICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5
IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICB9
IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgLyogdW5tYXRjaGVkIHNlY29uZCBzdXJy
b2dhdGUgKi8gXAorICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9
IFwKKyAgICB9IGVsc2UgaWYoKHN0cmljdCkgJiYgIVVURl9JU19VTklDT0RFX0NIQVIoYykpIHsg
XAorICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9nYXRlIG9yIG90aGVyIG5vbi1jaGFy
YWN0ZXIgKi8gXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNLXzEsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBVMTZfQkFD
S18xKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05fU0FGRShz
LCBzdGFydCwgaSwgbikgVTE2X0JBQ0tfTihzLCBzdGFydCwgaSwgbikKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVCwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3Ro
KSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKy8qIEZvcm1lcmx5IHV0
ZjMyLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCisKKy8qCisqIE9sZCBkb2N1bWVudGF0aW9uOgorKgorKiAgIFRoaXMgZmlsZSBk
ZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggVVRGLTMyIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9p
bnRzLgorKiAgIFNpZ25hdHVyZXMgYW5kIHNlbWFudGljcyBhcmUgdGhlIHNhbWUgYXMgZm9yIHRo
ZSBzaW1pbGFybHkgbmFtZWQgbWFjcm9zCisqICAgaW4gdXRmMTYuaC4KKyogICB1dGYzMi5oIGlz
IGluY2x1ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hpbmUuaDwvcD4KKyogICBhbmQg
c29tZSBjb21tb24gZGVmaW5pdGlvbnMuCisqICAgPHA+PGI+VXNhZ2U6PC9iPiAgSUNVIGNvZGlu
ZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIHdoZW4g
dXNpbmcgdGhlc2UgbWFjcm9zLgorKiAgICAgICAgICAgICAgICAgIENvbXBvdW5kIHN0YXRlbWVu
dHMgKGN1cmx5IGJyYWNlcyB7fSkgbXVzdCBiZSB1c2VkICBmb3IgaWYtZWxzZS13aGlsZS4uLgor
KiAgICAgICAgICAgICAgICAgIGJvZGllcyBhbmQgYWxsIG1hY3JvIHN0YXRlbWVudHMgc2hvdWxk
IGJlIHRlcm1pbmF0ZWQgd2l0aCBzZW1pY29sb24uPC9wPgorKi8KKworLyogaW50ZXJuYWwgZGVm
aW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TQUZFKGMsIHN0cmljdCkgXAorICAgICghKHN0cmlj
dCkgPyBcCisgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmIDogXAorICAgICAgICBVVEZf
SVNfVU5JQ09ERV9DSEFSKGMpKQorCisvKgorICogRm9yIHRoZSBzZW1hbnRpY3Mgb2YgYWxsIG9m
IHRoZXNlIG1hY3Jvcywgc2VlIHV0ZjE2LmguCisgKiBUaGUgVVRGLTMyIHZlcnNpb25zIGFyZSB0
cml2aWFsIGJlY2F1c2UgYW55IGNvZGUgcG9pbnQgaXMKKyAqIGVuY29kZWQgdXNpbmcgZXhhY3Rs
eSBvbmUgY29kZSB1bml0LgorICovCisKKy8qIHNpbmdsZS1jb2RlIHBvaW50IGRlZmluaXRpb25z
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qIGNs
YXNzZXMgb2YgY29kZSB1bml0IHZhbHVlcyAqLworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0lTX1NJTkdMRSh1Y2hh
cikgMQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYzMl9JU19MRUFEKHVjaGFyKSAwCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0lTX1RSQUlMKHVj
aGFyKSAwCisKKy8qIG51bWJlciBvZiBjb2RlIHVuaXRzIHBlciBjb2RlIHBvaW50ICovCisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGMzJfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAwCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0NIQVJfTEVOR1RI
KGMpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMzJfTUFYX0NIQVJfTEVOR1RIIDEKKworLyogYXZlcmFnZSBudW1iZXIg
b2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYgKi8KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUlJBWV9T
SVpFKHNpemUpIChzaXplKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7
IFwKKyAgICAoYyk9KHMpW2ldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfR0VUX0NIQVJfU0FGRShzLCBz
dGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBp
ZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9W
QUxVRTsgXAorICAgIH0gXAorfQorCisvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndhcmQgaXRlcmF0
aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjMyX05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwK
K30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKHMp
WyhpKSsrXT0oYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfMV9VTlNBRkUocywgaSkgeyBcCisg
ICAgKysoaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisg
ICAgKGkpKz0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9TVEFSVF9VTlNBRkUocywg
aSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVYVF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjLCBz
dHJpY3QpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoIVVURjMyX0lTX1NBRkUo
Yywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9IFwK
K30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykgeyBcCisg
ICAgaWYoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpIHsgXAorICAgICAgICAocylbKGkpKytdPShj
KTsgXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSAweGZmZmQgKi8geyBcCisgICAg
ICAgIChzKVsoaSkrK109MHhmZmZkOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEXzFf
U0FGRShzLCBpLCBsZW5ndGgpIHsgXAorICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldE
X05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIHsgXAorICAgIGlmKCgoaSkrPShuKSk+KGxlbmd0aCkp
IHsgXAorICAgICAgICAoaSk9KGxlbmd0aCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9T
RVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwKK30KKworLyogZGVmaW5pdGlvbnMg
d2l0aCBiYWNrd2FyZCBpdGVyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAg
IChjKT0ocylbLS0oaSldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQkFDS18xX1VOU0FGRShzLCBpKSB7
IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9VTlNBRkUocywgaSwgbikg
eyBcCisgICAgKGkpLT0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9MSU1JVF9VTlNB
RkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1NBRkUocywgc3RhcnQsIGks
IGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVstLShpKV07IFwKKyAgICBpZighVVRGMzJfSVNf
U0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwKKyAgICAt
LShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0LCBpLCBuKSB7IFwK
KyAgICAoaSktPShuKTsgXAorICAgIGlmKChpKTwoc3RhcnQpKSB7IFwKKyAgICAgICAgKGkpPShz
dGFydCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMs
IGksIGxlbmd0aCkgeyBcCit9CisKKy8qIEZvcm1lcmx5IHV0Zi5oLCBwYXJ0IDIgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICog
RXN0aW1hdGUgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGZvciBhIHN0cmluZyBiYXNlZCBvbiB0
aGUgbnVtYmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9BUlJBWV9TSVpF
KHNpemUpIFVURjE2X0FSUkFZX1NJWkUoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
Rl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgICAgIFVURjE2X0dFVF9DSEFS
X1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9HRVQg
aW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0dFVF9DSEFSX1NBRkUocywg
c3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSBVVEYxNl9HRVRfQ0hBUl9TQUZFKHMsIHN0YXJ0
LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9O
RVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgIFVURjE2X05FWFRfQ0hBUl9V
TlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfTkVYVCBp
bnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSX1NBRkUocywg
aSwgbGVuZ3RoLCBjLCBzdHJpY3QpICBVVEYxNl9ORVhUX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgs
IGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
QVBQRU5EX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFS
X1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfVU5TQUZFKHMs
IGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFk
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBs
ZW5ndGgsIGMpICAgICAgICBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykK
KworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzFfVU5TQUZF
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFfVU5TQUZFKHMsIGkpICAgICAg
ICAgICAgICAgICAgICAgICBVVEYxNl9GV0RfMV9VTlNBRkUocywgaSkKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpICAgICAgICAgICAgICAgICBVVEYxNl9G
V0RfMV9TQUZFKHMsIGksIGxlbmd0aCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZf
RldEX05fVU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgICBVVEYxNl9GV0RfTl9VTlNB
RkUocywgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZX
RF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEX05fU0FGRShzLCBpLCBsZW5n
dGgsIG4pICAgICAgICAgICAgICBVVEYxNl9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwgbikKKwor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJUX1VO
U0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX1NUQVJUX1VOU0FG
RShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0
LCBpKSAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkpCisKKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1BSRVZfVU5TQUZFLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAg
ICAgICAgICAgICBVVEYxNl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgVTE2X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGX1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpICAgVVRGMTZf
UFJFVl9DSEFSX1NBRkUocywgc3RhcnQsIGksIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX0JBQ0tfMV9VTlNBRkUocywgaSkgICAgICAgICAgICAgICAgICAgICAg
VVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQkFDS18x
X1NBRkUocywgc3RhcnQsIGkpICAgICAgICAgICAgICAgICBVVEYxNl9CQUNLXzFfU0FGRShzLCBz
dGFydCwgaSkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFD
S19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9VTlNBRkUo
cywgaSwgbikgICAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1VOU0FGRShzLCBpLCBuKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pICAgICAg
ICAgICAgICBVVEYxNl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikKKworCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlUX1VOU0FGRSwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKSAgICAg
ICAgICAgICAgVVRGMTZfU0VUX0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgp
IFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkKKworLyogRGVm
aW5lIGRlZmF1bHQgbWFjcm9zIChVVEYtMTYgInNhZmUiKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSB1bml0IGFsb25lIGVu
Y29kZSBhIGNvZGUgcG9pbnQgKEJNUCwgbm90IGEgc3Vycm9nYXRlKT8KKyAqIFNhbWUgYXMgVVRG
MTZfSVNfU0lOR0xFLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVX0lTX1NJ
TkdMRSBhbmQgVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZf
SVNfU0lOR0xFKHVjaGFyKSBVMTZfSVNfU0lOR0xFKHVjaGFyKQorCisvKioKKyAqIElzIHRoaXMg
Y29kZSB1bml0IHRoZSBmaXJzdCBvbmUgb2Ygc2V2ZXJhbCAoYSBsZWFkIHN1cnJvZ2F0ZSk/Cisg
KiBTYW1lIGFzIFVURjE2X0lTX0xFQUQuCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX0lTX0xFQUQodWNoYXIpIFUxNl9JU19MRUFEKHVjaGFyKQorCisvKioKKyAqIElzIHRo
aXMgY29kZSB1bml0IG9uZSBvZiBzZXZlcmFsIGJ1dCBub3QgdGhlIGZpcnN0IG9uZSAoYSB0cmFp
bCBzdXJyb2dhdGUpPworICogU2FtZSBhcyBVVEYxNl9JU19UUkFJTC4KKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlMLCBzZWUgdXRm
X29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19UUkFJTCh1Y2hhcikgVTE2X0lTX1RSQUlMKHVj
aGFyKQorCisvKioKKyAqIERvZXMgdGhpcyBjb2RlIHBvaW50IHJlcXVpcmUgbXVsdGlwbGUgY29k
ZSB1bml0cyAoaXMgaXQgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQpPworICogU2FtZSBhcyBV
VEYxNl9ORUVEX01VTFRJUExFX1VDSEFSLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUx
Nl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGluc3RlYWQuCisgKi8KKyNk
ZWZpbmUgVVRGX05FRURfTVVMVElQTEVfVUNIQVIoYykgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hB
UihjKQorCisvKioKKyAqIEhvdyBtYW55IGNvZGUgdW5pdHMgYXJlIHVzZWQgdG8gZW5jb2RlIHRo
aXMgY29kZSBwb2ludCAoMSBvciAyKT8KKyAqIFNhbWUgYXMgVVRGMTZfQ0hBUl9MRU5HVEguCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRU5HVEgsIHNlZSB1dGZfb2xk
LmguCisgKi8KKyNkZWZpbmUgVVRGX0NIQVJfTEVOR1RIKGMpIFUxNl9MRU5HVEgoYykKKworLyoq
CisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIGF0IG1vc3QgZm9yIGFueSBVbmljb2Rl
IGNvZGUgcG9pbnQgKDIpPworICogU2FtZSBhcyBVVEYxNl9NQVhfQ0hBUl9MRU5HVEguCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9NQVhfQ0hBUl9MRU5HVEggVTE2X01BWF9MRU5HVEgKKwor
LyoqCisgKiBTZXQgYyB0byB0aGUgY29kZSBwb2ludCB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIHVu
aXQgaS4KKyAqIGkgY291bGQgcG9pbnQgdG8gdGhlIGxlYWQgb3IgdGhlIHRyYWlsIHN1cnJvZ2F0
ZSBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKiBpIGlzIG5vdCBtb2RpZmllZC4KKyAqIFNhbWUgYXMg
VVRGMTZfR0VUX0NIQVIuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfR0VULCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5l
IFVURl9HRVRfQ0hBUihzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSBVMTZfR0VUKHMsIHN0YXJ0LCBp
LCBsZW5ndGgsIGMpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBzdGFy
dHMgYXQgY29kZSB1bml0IGkKKyAqIGFuZCBhZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBjb2RlIHVu
aXRzIG9mIHRoaXMgY29kZSBwb2ludCAocG9zdC1pbmNyZW1lbnQpLgorICogaSBtdXN0IHBvaW50
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50LgorICogT3RoZXJ3aXNlIGMg
aXMgc2V0IHRvIHRoZSB0cmFpbCB1bml0IChzdXJyb2dhdGUpIGl0c2VsZi4KKyAqIFNhbWUgYXMg
VVRGMTZfTkVYVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxpPD1sZW5n
dGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9ORVhULCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9ORVhUX0NIQVIocywgaSwgbGVuZ3RoLCBjKSBV
MTZfTkVYVChzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQXBwZW5kIHRoZSBjb2RlIHVuaXRz
IG9mIGNvZGUgcG9pbnQgYyB0byB0aGUgc3RyaW5nIGF0IGluZGV4IGkKKyAqIGFuZCBhZHZhbmNl
IGkgdG8gYmV5b25kIHRoZSBuZXcgY29kZSB1bml0cyAocG9zdC1pbmNyZW1lbnQpLgorICogVGhl
IGNvZGUgdW5pdHMgYmVnaW5uaW5nIGF0IGluZGV4IGkgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAq
IFNhbWUgYXMgVVRGMTZfQVBQRU5EX0NIQVIuCisgKiBccHJlIDA8PWM8PTB4MTBmZmZmCisgKiBc
cHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFVzZSBVMTZfQVBQRU5EIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNk
ZWZpbmUgVVRGX0FQUEVORF9DSEFSKHMsIGksIGxlbmd0aCwgYykgVVRGMTZfQVBQRU5EX0NIQVJf
U0FGRShzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQWR2YW5jZSBpIHRvIGJleW9uZCB0aGUg
Y29kZSB1bml0cyBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGJlZ2lucyBhdCBpLgorICogSS5lLiwg
YWR2YW5jZSBpIGJ5IG9uZSBjb2RlIHBvaW50LgorICogU2FtZSBhcyBVVEYxNl9GV0RfMS4KKyAq
IFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzEsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNk
ZWZpbmUgVVRGX0ZXRF8xKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8xKHMsIGksIGxlbmd0aCkKKwor
LyoqCisgKiBBZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBjb2RlIHVuaXRzIG9mIHRoZSBuIGNvZGUg
cG9pbnRzIHdoZXJlIHRoZSBmaXJzdCBvbmUgYmVnaW5zIGF0IGkuCisgKiBJLmUuLCBhZHZhbmNl
IGkgYnkgbiBjb2RlIHBvaW50cy4KKyAqIFNhbWUgYXMgVVQxNl9GV0RfTi4KKyAqIFxwcmUgMDw9
aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfRldEX04sIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoq
CisgKiBUYWtlIHRoZSByYW5kb20tYWNjZXNzIGluZGV4IGkgYW5kIGFkanVzdCBpdCBzbyB0aGF0
IGl0IHBvaW50cyB0byB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIGNvZGUgcG9pbnQuCisgKiBUaGUg
aW5wdXQgaW5kZXggcG9pbnRzIHRvIGFueSBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50IGFuZCBp
cyBtb3ZlZCB0byBwb2ludCB0bworICogdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUgc2FtZSBj
b2RlIHBvaW50LiBpIGlzIG5ldmVyIGluY3JlbWVudGVkLgorICogSW4gb3RoZXIgd29yZHMsIGlm
IGkgcG9pbnRzIHRvIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgaXMgcHJlY2VkZWQgYnkgYSBtYXRj
aGluZworICogbGVhZCBzdXJyb2dhdGUsIHRoZW4gaSBpcyBkZWNyZW1lbnRlZC4gT3RoZXJ3aXNl
IGl0IGlzIG5vdCBtb2RpZmllZC4KKyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3RhcnQgYW4gaXRl
cmF0aW9uIHdpdGggVVRGX05FWFRfQ0hBUigpIGZyb20gYSByYW5kb20gaW5kZXguCisgKiBTYW1l
IGFzIFVURjE2X1NFVF9DSEFSX1NUQVJULgorICogXHByZSBzdGFydDw9aTxsZW5ndGgKKyAqIFxw
b3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfU0VU
X0NIQVJfU1RBUlQocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIGkpCisK
Ky8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMgY29kZSB1bml0cyBiZWZv
cmUgaQorICogYW5kIG1vdmUgaSBiYWNrd2FyZCAodG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIHRoaXMgY29kZSBwb2ludCAo
cHJlLWluY3JlbWVudCkuCisgKiBpIG11c3QgcG9pbnQgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBh
ZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29kZSBwb2ludCAoaT09bGVuZ3RoIGlzIGFsbG93ZWQp
LgorICogU2FtZSBhcyBVVEYxNl9QUkVWX0NIQVIuCisgKiBccHJlIHN0YXJ0PGk8PWxlbmd0aAor
ICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfUFJFViwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfUFJFVl9D
SEFSKHMsIHN0YXJ0LCBpLCBjKSBVMTZfUFJFVihzLCBzdGFydCwgaSwgYykKKworLyoqCisgKiBN
b3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nKQorICog
dG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGhhcyBjb2RlIHVu
aXRzIGJlZm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG9uZSBjb2RlIHBvaW50
LgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3Qg
dW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMg
VVRGMTZfQkFDS18xLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1p
PGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tf
MSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS18xKHMsIHN0YXJ0LCBpKSBV
MTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKioKKyAqIE1vdmUgaSBiYWNrd2FyZCAodG93YXJk
cyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29kZSB1bml0
IG9mIHRoZSBuIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBjb2RlIHVuaXRzIGJlZm9yZSBpLgorICog
SS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG4gY29kZSBwb2ludHMuCisgKiBpIG11c3QgcG9pbnQg
dG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29kZSBwb2lu
dCAoaT09bGVuZ3RoIGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9CQUNLX04uCisgKiBc
cHJlIHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgorICogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9CQUNLX04ocywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04ocywgc3Rh
cnQsIGksIG4pCisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBpIGFuZCBh
ZGp1c3QgaXQgc28gdGhhdCBpdCBwb2ludHMgYmV5b25kCisgKiBhIGNvZGUgcG9pbnQuIFRoZSBp
bnB1dCBpbmRleCBwb2ludHMgYmV5b25kIGFueSBjb2RlIHVuaXQKKyAqIG9mIGEgY29kZSBwb2lu
dCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgYmV5b25kIHRoZSBsYXN0IGNvZGUgdW5pdCBvZiB0aGUg
c2FtZQorICogY29kZSBwb2ludC4gaSBpcyBuZXZlciBkZWNyZW1lbnRlZC4KKyAqIEluIG90aGVy
IHdvcmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHByZWNlZGVk
IGJ5IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgaW5jcmVtZW50ZWQu
IE90aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0
YXJ0IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9QUkVWX0NIQVIoKSBmcm9tIGEgcmFuZG9tIGluZGV4
LgorICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9MSU1JVC4KKyAqIFxwcmUgc3RhcnQ8aTw9bGVu
Z3RoCisgKiBccG9zdCBzdGFydDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX1NFVF9DSEFSX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIFUxNl9TRVRfQ1BfTElN
SVQocywgc3RhcnQsIGksIGxlbmd0aCkKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQ
SSAqLworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dHlw
ZXMuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXR5cGVzLmgKaW5kZXggMDBiZjE0Y2U4ZTZl
NWQ2ZWM4ZWQ4N2Q4ZTk1NjE3MGNhNTc3ODdiMi4uOGY5MjRjOWQxNDI0MTc5Mjg0NjRiNzk0NDc5
NjEyMTc2MDEwMjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dHlwZXMu
aAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0eXBlcy5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDEyLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zNCw5ICszNCwxMyBA
QAogCiAKICNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCi0jaW5jbHVkZSAidW5pY29kZS91
dGYuaCIKICNpbmNsdWRlICJ1bmljb2RlL3V2ZXJzaW9uLmgiCiAjaW5jbHVkZSAidW5pY29kZS91
Y29uZmlnLmgiCisjaW5jbHVkZSA8ZmxvYXQuaD4KKworI2lmICFVX05PX0RFRkFVTFRfSU5DTFVE
RV9VVEZfSEVBREVSUworIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCisjZW5kaWYKIAogLyoh
CiAgKiBcZmlsZQpAQCAtNTMsOSArNTcsOSBAQAogICogXGRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQ
SQogICogQGludGVybmFsCiAgKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVz
cGx1cwogIyAgIGlmbmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQotIyAgICAgICBkZWZpbmUgVV9T
SE9XX0NQTFVTUExVU19BUEkgMQorIyAgICAgICBkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19BUEkg
MAogIyAgIGVuZGlmCiAjZWxzZQogIyAgIHVuZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJCkBAIC02
Nyw2ICs3MSwxMiBAQAogLyoqCiAgKiBcZGVmIFVfSElERV9EUkFGVF9BUEkKICAqIERlZmluZSB0
aGlzIHRvIDEgdG8gcmVxdWVzdCB0aGF0IGRyYWZ0IEFQSSBiZSAiaGlkZGVuIgorICogQGludGVy
bmFsCisgKi8KKy8qKgorICogXGRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgKiBEZWZpbmUgdGhp
cyB0byAxIHRvIHJlcXVlc3QgdGhhdCBpbnRlcm5hbCBBUEkgYmUgImhpZGRlbiIKKyAqIEBpbnRl
cm5hbAogICovCiAjaWYgIVVfREVGQVVMVF9TSE9XX0RSQUZUICYmICFkZWZpbmVkKFVfU0hPV19E
UkFGVF9BUEkpCiAjZGVmaW5lIFVfSElERV9EUkFGVF9BUEkgMQpAQCAtNzUsMTE2ICs4NSw4IEBA
CiAjZGVmaW5lIFVfSElERV9JTlRFUk5BTF9BUEkgMQogI2VuZGlmCiAKLSNpZmRlZiBVX0hJREVf
RFJBRlRfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91ZHJhZnQuaCIKLSNlbmRpZgotCi0jaWZkZWYg
VV9ISURFX0RFUFJFQ0FURURfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91ZGVwcmN0ZC5oIgotI2Vu
ZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3Vv
YnNsZXRlLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKLSNpbmNsdWRl
ICJ1bmljb2RlL3VpbnRybmFsLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9TWVNURU1fQVBJ
Ci0jaW5jbHVkZSAidW5pY29kZS91c3lzdGVtLmgiCi0jZW5kaWYKLQogLyoqIEB9ICovCiAKLQot
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwotLyogY2hhciBDaGFyYWN0ZXIgc2V0IGZhbWlseSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0qLwotCi0vKioKLSAqIFVfQ0hBUlNFVF9GQU1JTFkgaXMgZXF1YWwgdG8gdGhp
cyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBBU0NJSSBiYXNlZCBwbGF0Zm9ybS4KLSAq
IEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVmaW5lIFVfQVNDSUlfRkFNSUxZIDAKLQotLyoqCi0g
KiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZv
cm0gaXMgYW4gRUJDRElDIGJhc2VkIHBsYXRmb3JtLgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8K
LSNkZWZpbmUgVV9FQkNESUNfRkFNSUxZIDEKLQotLyoqCi0gKiBcZGVmIFVfQ0hBUlNFVF9GQU1J
TFkKLSAqCi0gKiA8cD5UaGVzZSBkZWZpbml0aW9ucyBhbGxvdyB0byBzcGVjaWZ5IHRoZSBlbmNv
ZGluZyBvZiB0ZXh0Ci0gKiBpbiB0aGUgY2hhciBkYXRhIHR5cGUgYXMgZGVmaW5lZCBieSB0aGUg
cGxhdGZvcm0gYW5kIHRoZSBjb21waWxlci4KLSAqIEl0IGlzIGVub3VnaCB0byBkZXRlcm1pbmUg
dGhlIGNvZGUgcG9pbnQgdmFsdWVzIG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIsCi0gKiB3aGlj
aCBhcmUgdGhlIG9uZXMgc2hhcmVkIGJ5IGFsbCBlbmNvZGluZ3MgdGhhdCBhcmUgaW4gdXNlCi0g
KiBvbiBhIGdpdmVuIHBsYXRmb3JtLjwvcD4KLSAqCi0gKiA8cD5UaG9zZSAiaW52YXJpYW50IGNo
YXJhY3RlcnMiIHNob3VsZCBiZSBhbGwgdGhlIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlCi0gKiBs
YXRpbiBsZXR0ZXJzLCB0aGUgZGlnaXRzLCB0aGUgc3BhY2UsIGFuZCAiYmFzaWMgcHVuY3R1YXRp
b24iLgotICogQWxzbywgJ1xcbicsICdcXHInLCAnXFx0JyBzaG91bGQgYmUgYXZhaWxhYmxlLjwv
cD4KLSAqCi0gKiA8cD5UaGUgbGlzdCBvZiAiaW52YXJpYW50IGNoYXJhY3RlcnMiIGlzOjxicj4K
LSAqIFxjb2RlCi0gKiAgICBBLVogIGEteiAgMC05ICBTUEFDRSAgIiAgJSAgJmFtcDsgICcgICgg
ICkgICogICsgICwgIC0gIC4gIC8gIDogIDsgIDwgID0gID4gID8gIF8KLSAqIFxlbmRjb2RlCi0g
KiA8YnI+Ci0gKiAoNTIgbGV0dGVycyArIDEwIG51bWJlcnMgKyAyMCBwdW5jL3N5bS9zcGFjZSA9
IDgyIHRvdGFsKTwvcD4KLSAqCi0gKiA8cD5UaGlzIG1hdGNoZXMgdGhlIElCTSBTeW50YWN0aWMg
Q2hhcmFjdGVyIFNldCAoQ1MgNjQwKS48L3A+Ci0gKgotICogPHA+SW4gb3RoZXIgd29yZHMsIGFs
bCB0aGUgZ3JhcGhpYyBjaGFyYWN0ZXJzIGluIDctYml0IEFTQ0lJIHNob3VsZAotICogYmUgc2Fm
ZWx5IGFjY2Vzc2libGUgZXhjZXB0IHRoZSBmb2xsb3dpbmc6PC9wPgotICoKLSAqIFxjb2RlCi0g
KiAgICAnXCcgPGJhY2tzbGFzaD4KLSAqICAgICdbJyA8bGVmdCBicmFja2V0PgotICogICAgJ10n
IDxyaWdodCBicmFja2V0PgotICogICAgJ3snIDxsZWZ0IGJyYWNlPgotICogICAgJ30nIDxyaWdo
dCBicmFjZT4KLSAqICAgICdeJyA8Y2lyY3VtZmxleD4KLSAqICAgICd+JyA8dGlsZGU+Ci0gKiAg
ICAnIScgPGV4Y2xhbWF0aW9uIG1hcms+Ci0gKiAgICAnIycgPG51bWJlciBzaWduPgotICogICAg
J3wnIDx2ZXJ0aWNhbCBsaW5lPgotICogICAgJyQnIDxkb2xsYXIgc2lnbj4KLSAqICAgICdAJyA8
Y29tbWVyY2lhbCBhdD4KLSAqICAgICdgJyA8Z3JhdmUgYWNjZW50PgotICogXGVuZGNvZGUKLSAq
IEBzdGFibGUgSUNVIDIuMAotICovCi0KLSNpZm5kZWYgVV9DSEFSU0VUX0ZBTUlMWQotIyAgIGRl
ZmluZSBVX0NIQVJTRVRfRkFNSUxZIDAKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9DSEFSU0VU
X0lTX1VURjgKLSAqCi0gKiBIYXJkY29kZSB0aGUgZGVmYXVsdCBjaGFyc2V0IHRvIFVURi04Lgot
ICoKLSAqIElmIHRoaXMgaXMgc2V0IHRvIDEsIHRoZW4KLSAqIC0gSUNVIHdpbGwgYXNzdW1lIHRo
YXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhciosIFN0cmluZ1BpZWNlLCBzdGQ6OnN0cmluZyBldGMu
Ci0gKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzeXN0ZW0g
QVBJIHVzZXMKLSAqIC0gc29tZSBJQ1UgY29kZSB3aWxsIHVzZSBmYXN0IGZ1bmN0aW9ucyBsaWtl
IHVfc3RyRnJvbVVURjgoKQotICogICByYXRoZXIgdGhhbiB0aGUgbW9yZSBnZW5lcmFsIGFuZCBt
b3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9uIEFQSSAodWNudi5oKQotICogLSB1Y252X2dldERl
ZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMgIlVURi04IgotICogLSB1Y252X3NldERlZmF1bHRO
YW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwgbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBjaGFyc2V0
Ci0gKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNVIGFyZSBzbWFsbGVyCi0gKiAtIG1vcmUgZnVuY3Rp
b25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0aGUgVUNPTkZJR19OT19DT05WRVJTSU9OIGJ1aWxk
LXRpbWUKLSAqICAgY29uZmlndXJhdGlvbiBvcHRpb24gKHNlZSB1bmljb2RlL3Vjb25maWcuaCkK
LSAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZCBvcHRpb24gaW4gdWNvbmZpZy5o
IGlzIG1vcmUgdXNhYmxlCi0gKgotICogQHN0YWJsZSBJQ1UgNC4yCi0gKiBAc2VlIFVDT05GSUdf
Tk9fQ09OVkVSU0lPTgotICovCi0jaWZuZGVmIFVfQ0hBUlNFVF9JU19VVEY4Ci0jICAgZGVmaW5l
IFVfQ0hBUlNFVF9JU19VVEY4IDAKLSNlbmRpZgotCiAvKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAv
KiBJQ1VEQVRBIG5hbWluZyBzY2hlbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC0yMzIsOSAr
MTM0LDExIEBACiAgKiBJQ1UgMS44Lnggb24gRUJDRElDLCBldGMuLgogICogQHN0YWJsZSBJQ1Ug
Mi4wCiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBVX0lDVV9WRVJTSU9O
X1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUiAgLyoqPCBAaW50ZXJuYWwgKi8KKyNkZWZpbmUg
VV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBVX0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9U
WVBFX0xFVFRFUgorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAjZGVmaW5lIFVfVVNSREFU
QV9OQU1FICAgICJ1c3JkdCIgVV9JQ1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9MRVRU
RVIgIC8qKjwgQGludGVybmFsICovCi0jZGVmaW5lIFVfVVNFX1VTUkRBVEEgICAgIDAgIC8qKjwg
QGludGVybmFsICovCisjZGVmaW5lIFVfVVNFX1VTUkRBVEEgICAgIDEgIC8qKjwgQGludGVybmFs
ICovCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogLyoqCiAgKiAgVV9JQ1Vf
RU5UUllfUE9JTlQgaXMgdGhlIG5hbWUgb2YgdGhlIERMTCBlbnRyeSBwb2ludCB0byB0aGUgSUNV
IGRhdGEgbGlicmFyeS4KQEAgLTI0NywzOCArMTUxLDI4IEBACiAgKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcI2RlZmluZSBVX0lDVV9FTlRSWV9QT0lOVCBpY3VkdDE5X2RhdAog
ICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UICBV
X0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSwgVV9JQ1Vf
VkVSU0lPTl9NSU5PUl9OVU0pCisjZGVmaW5lIFVfSUNVREFUQV9FTlRSWV9QT0lOVCAgVV9ERUYy
X0lDVURBVEFfRU5UUllfUE9JTlQoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0sVV9MSUJfU1VGRklY
X0NfTkFNRSkKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKLSAqIERvIG5vdCB1
c2UuCisgKiBEbyBub3QgdXNlLiBOb3RlIHRoYXQgaXQncyBPSyBmb3IgdGhlIDJuZCBhcmd1bWVu
dCB0byBiZSB1bmRlZmluZWQgKGxpdGVyYWwpLgogICogQGludGVybmFsCiAgKi8KLSNkZWZpbmUg
VV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBVX0RFRl9JQ1VEQVRBX0VO
VFJZX1BPSU5UKG1ham9yLCBtaW5vcikKKyNkZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9J
TlQobWFqb3Isc3VmZikgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvcixzdWZmKQorCiAv
KioKICAqIERvIG5vdCB1c2UuCiAgKiBAaW50ZXJuYWwKICAqLwogI2lmbmRlZiBVX0RFRl9JQ1VE
QVRBX0VOVFJZX1BPSU5UCiAvKiBhZmZlY3RlZCBieSBzeW1ib2wgcmVuYW1pbmcuIFNlZSBwbGF0
Zm9ybS5oICovCi0jZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9y
KSBpY3VkdCMjbWFqb3IjI21pbm9yIyNfZGF0Ci0jZW5kaWYKLQotLyoqCi0gKiBcZGVmIFVfQ0FM
TENPTlYKLSAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJTi9VX0NERUNMX0VORCwgdGhpcyBxdWFs
aWZpZXIgaXMgbmVjZXNzYXJ5Ci0gKiBpbiBjYWxsYmFjayBmdW5jdGlvbiB0eXBlZGVmcyB0byBt
YWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50aW9uCi0gKiBpcyBjb21wYXRpYmxlLgot
ICoKLSAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24tSUNVLUFQSSBmdW5jdGlvbnMuCi0gKiBX
aGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQSSwKLSAqIHlvdSBtdXN0IHVzZSB0aGUg
VV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4KLSAqIEBzdGFibGUgSUNVIDIuMAotICov
Ci0jaWYgZGVmaW5lZChPUzM5MCkgJiYgZGVmaW5lZChYUF9DUExVU1BMVVMpCi0jICAgIGRlZmlu
ZSBVX0NBTExDT05WIF9fY2RlY2wKKyNpZm5kZWYgVV9MSUJfU1VGRklYX0NfTkFNRQorI2RlZmlu
ZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBzdWZmKSBpY3VkdCMjbWFqb3IjI19k
YXQKICNlbHNlCi0jICAgIGRlZmluZSBVX0NBTExDT05WIFVfRVhQT1JUMgorI2RlZmluZSBVX0RF
Rl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBzdWZmKSBpY3VkdCMjc3VmZiAjIyBtYWpvciMj
X2RhdAorI2VuZGlmCiAjZW5kaWYKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwog
CiAvKioKICAqIFxkZWYgTlVMTApAQCAtMjg2LDcgKzE4MCw3IEBACiAgKiBAc3RhYmxlIElDVSAy
LjAKICAqLwogI2lmbmRlZiBOVUxMCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1
c3BsdXMKICNkZWZpbmUgTlVMTCAgICAwCiAjZWxzZQogI2RlZmluZSBOVUxMICAgICgodm9pZCAq
KTApCkBAIC0zMTUsNTQgKzIwOSwxNyBAQCB0eXBlZGVmIGRvdWJsZSBVRGF0ZTsKIC8qKiBUaGUg
bnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBwZXIgZGF5IEBzdGFibGUgSUNVIDIuMCAqLwogI2RlZmlu
ZSBVX01JTExJU19QRVJfREFZICAgICAgICg4NjQwMDAwMCkKIAotCi0vKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCi0vKiBVQ2xhc3NJRC1iYXNlZCBSVFRJICovCi0vKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CisvKiogCisgKiBNYXhpbXVtIFVEYXRlIHZhbHVlIAorICogQHN0YWJsZSBJQ1UgNC44IAorICov
IAorI2RlZmluZSBVX0RBVEVfTUFYIERCTF9NQVgKIAogLyoqCi0gKiBVQ2xhc3NJRCBpcyB1c2Vk
IHRvIGlkZW50aWZ5IGNsYXNzZXMgd2l0aG91dCB1c2luZyBSVFRJLCBzaW5jZSBSVFRJCi0gKiBp
cyBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgQysrIGNvbXBpbGVycy4gIEVhY2ggY2xhc3MgaGll
cmFyY2h5IHdoaWNoIG5lZWRzCi0gKiB0byBpbXBsZW1lbnQgcG9seW1vcnBoaWMgY2xvbmUoKSBv
ciBvcGVyYXRvcj09KCkgZGVmaW5lcyB0d28gbWV0aG9kcywKLSAqIGRlc2NyaWJlZCBpbiBkZXRh
aWwgYmVsb3cuICBVQ2xhc3NJRCB2YWx1ZXMgY2FuIGJlIGNvbXBhcmVkIHVzaW5nCi0gKiBvcGVy
YXRvcj09KCkuIE5vdGhpbmcgZWxzZSBzaG91bGQgYmUgZG9uZSB3aXRoIHRoZW0uCi0gKgotICog
XHBhcgotICogZ2V0RHluYW1pY0NsYXNzSUQoKSBpcyBkZWNsYXJlZCBpbiB0aGUgYmFzZSBjbGFz
cyBvZiB0aGUgaGllcmFyY2h5IGFzCi0gKiBhIHB1cmUgdmlydHVhbC4gIEVhY2ggY29uY3JldGUg
c3ViY2xhc3MgaW1wbGVtZW50cyBpdCBpbiB0aGUgc2FtZSB3YXk6Ci0gKgotICogXGNvZGUKLSAq
ICAgICAgY2xhc3MgQmFzZSB7Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAgICAgICAgIHZpcnR1YWwg
VUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdCA9IDA7Ci0gKiAgICAgIH0KLSAqCi0g
KiAgICAgIGNsYXNzIERlcml2ZWQgewotICogICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICB2aXJ0
dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3QKLSAqICAgICAgICAgICAgeyBy
ZXR1cm4gRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpOyB9Ci0gKiAgICAgIH0KLSAqIFxlbmRj
b2RlCi0gKgotICogRWFjaCBjb25jcmV0ZSBjbGFzcyBpbXBsZW1lbnRzIGdldFN0YXRpY0NsYXNz
SUQoKSBhcyB3ZWxsLCB3aGljaCBhbGxvd3MKLSAqIGNsaWVudHMgdG8gdGVzdCBmb3IgYSBzcGVj
aWZpYyB0eXBlLgotICoKLSAqIFxjb2RlCi0gKiAgICAgIGNsYXNzIERlcml2ZWQgewotICogICAg
ICBwdWJsaWM6Ci0gKiAgICAgICAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRp
Y0NsYXNzSUQoKTsKLSAqICAgICAgcHJpdmF0ZToKLSAqICAgICAgICAgIHN0YXRpYyBjaGFyIGZn
Q2xhc3NJRDsKLSAqICAgICAgfQotICoKLSAqICAgICAgLy8gSW4gRGVyaXZlZC5jcHA6Ci0gKiAg
ICAgIFVDbGFzc0lEIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKQotICogICAgICAgIHsgcmV0
dXJuIChVQ2xhc3NJRCkmRGVyaXZlZDo6ZmdDbGFzc0lEOyB9Ci0gKiAgICAgIGNoYXIgRGVyaXZl
ZDo6ZmdDbGFzc0lEID0gMDsgLy8gVmFsdWUgaXMgaXJyZWxldmFudAotICogXGVuZGNvZGUKLSAq
IEBzdGFibGUgSUNVIDIuMAotICovCi10eXBlZGVmIHZvaWQqIFVDbGFzc0lEOworICogTWluaW11
bSBVRGF0ZSB2YWx1ZSAKKyAqIEBzdGFibGUgSUNVIDQuOCAKKyAqLyAKKyNkZWZpbmUgVV9EQVRF
X01JTiAtVV9EQVRFX01BWAogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBTaGFyZWQgbGli
cmFyeS9ETEwgaW1wb3J0LWV4cG9ydCBBUEkgY29udHJvbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCkBAIC0zNzMsNyArMjMwLDcgQEAgdHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKICAq
IElDVSBpcyBzZXBhcmF0ZWQgaW50byB0aHJlZSBsaWJyYXJpZXMuCiAgKi8KIAotLyoKKy8qKgog
ICogXGRlZiBVX0NPTUJJTkVEX0lNUExFTUVOVEFUSU9OCiAgKiBTZXQgdG8gZXhwb3J0IGxpYnJh
cnkgc3ltYm9scyBmcm9tIGluc2lkZSB0aGUgSUNVIGxpYnJhcnkKICAqIHdoZW4gYWxsIG9mIElD
VSBpcyBpbiBhIHNpbmdsZSBsaWJyYXJ5LgpAQCAtNTQwLDkgKzM5Nyw5IEBAIHR5cGVkZWYgdm9p
ZCogVUNsYXNzSUQ7CiAgKgogICogTm90ZTogVGhpcyBpcyBjdXJyZW50bHkgb25seSBkb25lIG9u
IFdpbmRvd3MgYmVjYXVzZQogICogc29tZSBMaW51eC9Vbml4IGNvbXBpbGVycyBoYXZlIHByb2Js
ZW1zIHdpdGggZGVmaW5pbmcgZ2xvYmFsIG5ldy9kZWxldGUuCi0gKiBPbiBXaW5kb3dzLCBVX1dJ
TkRPV1MgaXMgZGVmaW5lZCwgYW5kIGl0IGlzIF9NU0NfVkVSPj0xMjAwIGZvciBNU1ZDIDYuMCBh
bmQgaGlnaGVyLgorICogT24gV2luZG93cywgaXQgaXMgX01TQ19WRVI+PTEyMDAgZm9yIE1TVkMg
Ni4wIGFuZCBoaWdoZXIuCiAgKi8KLSNpZiBkZWZpbmVkKFhQX0NQTFVTUExVUykgJiYgZGVmaW5l
ZChXSU4zMikgJiYgVV9ERUJVRyAmJiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OICYmIChfTVND
X1ZFUj49MTIwMCkgJiYgIWRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5UQVRJT04pICYmIChkZWZp
bmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRB
VElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VU
X0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJT04pKQor
I2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmIFVfREVCVUcgJiYgVV9PVkVSUklERV9DWFhfQUxM
T0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDApICYmICFkZWZpbmVkKFVfU1RBVElDX0lNUExFTUVO
VEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChV
X0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikgfHwg
ZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVEVYX0lN
UExFTUVOVEFUSU9OKSkKIAogI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKQEAgLTc0
Myw2ICs2MDAsNyBAQCB0eXBlZGVmIGVudW0gVUVycm9yQ29kZSB7CiAgICAgVV9VTkRFRklORURf
S0VZV09SRCwgICAgICAgICAgICAgIC8qKjwgVW5kZWZpbmVkIFBsdXJhbCBrZXl3b3JkICovCiAg
ICAgVV9ERUZBVUxUX0tFWVdPUkRfTUlTU0lORywgICAgICAgIC8qKjwgTWlzc2luZyBERUZBVUxU
IHJ1bGUgaW4gcGx1cmFsIHJ1bGVzICovCiAgICAgVV9ERUNJTUFMX05VTUJFUl9TWU5UQVhfRVJS
T1IsICAgIC8qKjwgRGVjaW1hbCBudW1iZXIgc3ludGF4IGVycm9yICovCisgICAgVV9GT1JNQVRf
SU5FWEFDVF9FUlJPUiwgICAgICAgICAgIC8qKjwgQ2Fubm90IGZvcm1hdCBhIG51bWJlciBleGFj
dGx5IGFuZCByb3VuZGluZyBtb2RlIGlzIFJPVU5EX1VOTkVDRVNTQVJZIEBzdGFibGUgSUNVIDQu
OCAqLwogICAgIFVfRk1UX1BBUlNFX0VSUk9SX0xJTUlULCAgICAgICAgICAvKio8IFRoZSBsaW1p
dCBmb3IgZm9ybWF0IGxpYnJhcnkgZXJyb3JzICovCiAKICAgICAvKgpAQCAtODI2LDcgKzY4NCw3
IEBAIHR5cGVkZWYgZW51bSBVRXJyb3JDb2RlIHsKIC8qIFVzZSB0aGUgZm9sbG93aW5nIHRvIGRl
dGVybWluZSBpZiBhbiBVRXJyb3JDb2RlIHJlcHJlc2VudHMgKi8KIC8qIG9wZXJhdGlvbmFsIHN1
Y2Nlc3Mgb3IgZmFpbHVyZS4gKi8KIAotI2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3Bs
dXNwbHVzCiAgICAgLyoqCiAgICAgICogRG9lcyB0aGUgZXJyb3IgY29kZSBpbmRpY2F0ZSBzdWNj
ZXNzPwogICAgICAqIEBzdGFibGUgSUNVIDIuMApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91dmVybnVtLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V2ZXJudW0uaAppbmRl
eCA3MjIxNjEyOTIwOTJkYTYwNjI4OWMwNmVjMjM2MTMwODUzOTFjNDE4Li5iZDBiMGM5ODk4YTIz
NTc5ZThmYjgxMTlmNmNkMTYzOWFjMmE4ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3V2ZXJudW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V2ZXJudW0uaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0
IChDKSAyMDAwLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDAtMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgogKgpAQCAtMTIsNTcgKzEyLDY2IEBACiAqICAgQ3JlYXRlZCBieTogVmxh
ZGltaXIgV2VpbnN0ZWluCiAqICAgVXBkYXRlZCBieTogU3RldmVuIFIuIExvb21pcwogKgotKiAg
R2V0cyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4KLSoKLSogSU1QT1JU
QU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhpbmdzIG5lZWQgdG8g
YmUgZG9uZToKLSogc291cmNlL2NvbW1vbi91bmljb2RlL3V2ZXJudW0uaCAtIHRoaXMgZmlsZTog
dXBkYXRlIG1ham9yLCBtaW5vciwKLSogICAgICAgIHBhdGNobGV2ZWwsIHN1ZmZpeCwgdmVyc2lv
biwgc2hvcnQgdmVyc2lvbiBjb25zdGFudHMsIG5hbWVzcGFjZSwKLSogICAgICAgICAgICAgICAg
ICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0Ci0qCi0qIFRoZSBmb2xsb3dpbmcgZmls
ZXMgbmVlZCB0byBiZSB1cGRhdGVkIGFzIHdlbGwsIHdoaWNoIGNhbiBiZSBkb25lCi0qICBieSBy
dW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRvd3MtbWFrZWZpbGVz
JyBpbiBpY3Uvc291cmNlLgotKgotKgotKiBzb3VyY2UvY29tbW9uL2NvbW1vbi52Y3Byb2ogLSB1
cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbwotKiAgICAgICAgICAg
ICAgICAgICB0aGF0IGl0IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24K
LSogc291cmNlL2kxOG4vaTE4bi52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJv
agotKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9u
LnZjcHJvagotKiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQotKiBzb3Vy
Y2Uvc3R1YmRhdGEvc3R1YmRhdGEudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3By
b2oKLSogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9q
Ci0qIHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFNRSBzbyB0
aGF0IGl0IGNvbnRhaW5zCi0qICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBuZXcgbWFq
b3IvbWlub3IgY29tYmluYXRpb24gYW5kIHRoZSBVbmljb2RlIHZlcnNpb24uCiAqLwogCisvKioK
KyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IGRlZmluaXRpb25zIG9mIElDVSB2ZXJzaW9uIG51
bWJlcnMKKyAqCisgKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgYnkgdXZlcnNpb24uaCBhbmQgb3Ro
ZXIgZmlsZXMuIFRoaXMgZmlsZSBjb250YWlucyBvbmx5CisgKiBtYWNyb3MgYW5kIGRlZmluaXRp
b25zLiBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVycyBhcmUgZGVmaW5lZCBoZXJlLgorICovCisK
KyAvKgorICAqIElNUE9SVEFOVDogV2hlbiB1cGRhdGluZyB2ZXJzaW9uLCB0aGUgZm9sbG93aW5n
IHRoaW5ncyBuZWVkIHRvIGJlIGRvbmU6CisgICogc291cmNlL2NvbW1vbi91bmljb2RlL3V2ZXJu
dW0uaCAtIHRoaXMgZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKKyAgKiAgICAgICAgcGF0Y2hs
ZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50cywgbmFtZXNwYWNl
LAorICAqICAgICAgICAgICAgICAgICAgICByZW5hbWluZyBtYWNybywgYW5kIGNvcHlyaWdodAor
ICAqCisgICogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCwg
d2hpY2ggY2FuIGJlIGRvbmUKKyAgKiAgYnkgcnVubmluZyB0aGUgVU5JWCBtYWtlZmlsZSB0YXJn
ZXQgJ3VwZGF0ZS13aW5kb3dzLW1ha2VmaWxlcycgaW4gaWN1L3NvdXJjZS4KKyAgKgorICAqCisg
ICogc291cmNlL2NvbW1vbi9jb21tb24udmNwcm9qIC0gdXBkYXRlICdPdXRwdXQgZmlsZSBuYW1l
JyBvbiB0aGUgbGluayB0YWIgc28KKyAgKiAgICAgICAgICAgICAgICAgICB0aGF0IGl0IGNvbnRh
aW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24KKyAgKiBzb3VyY2UvaTE4bi9pMThu
LnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNlL2xheW91
dC9sYXlvdXQudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAgKiBzb3Vy
Y2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQorICAqIHNvdXJjZS9zdHViZGF0YS9z
dHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAqIHNvdXJj
ZS9pby9pby52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAqIHNvdXJj
ZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFNRSBzbyB0aGF0IGl0IGNv
bnRhaW5zCisgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBtYWpvci9taW5v
ciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KKyAgKi8KKwogI2lmbmRlZiBV
VkVSTlVNX0gKICNkZWZpbmUgVVZFUk5VTV9ICiAKLS8qKiBUaGUgc3RhbmRhcmQgY29weXJpZ2h0
IG5vdGljZSB0aGF0IGdldHMgY29tcGlsZWQgaW50byBlYWNoIGxpYnJhcnkuIAorLyoqIFRoZSBz
dGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVhY2ggbGli
cmFyeS4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVh
c2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFVfQ09QWVJJR0hU
X1NUUklORyBcCi0gICIgQ29weXJpZ2h0IChDKSAyMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICIK
KyAgIiBDb3B5cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIgogCi0vKiogVGhl
IGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisvKiogVGhlIGN1cnJl
bnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwg
Y2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNV
IDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNIDQKKyNkZWZpbmUgVV9J
Q1VfVkVSU0lPTl9NQUpPUl9OVU0gNTIKIAotLyoqIFRoZSBjdXJyZW50IElDVSBtaW5vciB2ZXJz
aW9uIGFzIGFuIGludGVnZXIuIAorLyoqIFRoZSBjdXJyZW50IElDVSBtaW5vciB2ZXJzaW9uIGFz
IGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVu
dCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmluZSBVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA2CisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNIDEK
IAotLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50ZWdlci4g
IAorLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50ZWdlci4K
ICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9m
IElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fUEFU
Q0hMRVZFTF9OVU0gMQorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVNIDAKIAot
LyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFuIGludGVnZXIuICAK
Ky8qKiBUaGUgY3VycmVudCBJQ1UgYnVpbGQgbGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgog
ICogIFRoaXMgdmFsdWUgaXMgZm9yIHVzZSBieSBJQ1UgY2xpZW50cy4gSXQgZGVmYXVsdHMgdG8g
MC4KICAqICBAc3RhYmxlIElDVSA0LjAKICAqLwpAQCAtNzAsMzkgKzc5LDU5IEBACiAjZGVmaW5l
IFVfSUNVX1ZFUlNJT05fQlVJTERMRVZFTF9OVU0gMAogI2VuZGlmCiAKLS8qKiBHbHVlZCB2ZXJz
aW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMgCisvKiogR2x1ZWQgdmVyc2lvbiBzdWZmaXggZm9yIHJl
bmFtZXJzCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVudCByZWxl
YXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmluZSBVX0lDVV9WRVJT
SU9OX1NVRkZJWCBfNDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TVUZGSVggXzUyCiAKLS8qKiBH
bHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMgCisvKioKKyAqIFxkZWYg
VV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKKyAqIEBpbnRlcm5hbAorICovCisvKioKKyAq
IFxkZWYgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisgKi8KKy8q
KiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMKICAqICBUaGlzIHZh
bHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVS4KICAqICBJ
ZiBhIGN1c3RvbSBzdWZmaXggKHN1Y2ggYXMgbWF0Y2hpbmcgbGlicmFyeSBzdWZmaXhlcykgaXMg
ZGVzaXJlZCwgdGhpcyBjYW4gYmUgbW9kaWZpZWQuCiAgKiAgTm90ZSB0aGF0IGlmIHByZXNlbnQs
IHBsYXRmb3JtLmggbWF5IGNvbnRhaW4gYW4gZWFybGllciBkZWZpbml0aW9uIG9mIHRoaXMgbWFj
cm8uCisgKiAgXGRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICAqICBAc3RhYmxlIElDVSA0
LjIKICAqLworCiAjaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQotI2RlZmluZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfNDYKKyNpZmRlZiBVX0hBVkVfTElCX1NV
RkZJWAorI2RlZmluZSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSx6KSB4ICMjIHkg
IyMgIHoKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopIFVfREVG
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopCisjZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LFVfSUNVX1ZFUlNJ
T05fU1VGRklYLFVfTElCX1NVRkZJWF9DX05BTUUpCisjZWxzZQorI2RlZmluZSBVX0RFRl9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHgseSkgeCAjIyB5CisjZGVmaW5lIFVfREVGMl9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHgseSkgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkpCisjZGVm
aW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh4LFVfSUNVX1ZFUlNJT05fU1VGRklYKQorI2VuZGlmCiAjZW5kaWYKIAogLyoqIFRo
ZSBjdXJyZW50IElDVSBsaWJyYXJ5IHZlcnNpb24gYXMgYSBkb3R0ZWQtZGVjaW1hbCBzdHJpbmcu
IFRoZSBwYXRjaGxldmVsCi0gKiAgb25seSBhcHBlYXJzIGluIHRoaXMgc3RyaW5nIGlmIGl0IG5v
bi16ZXJvLiAKKyAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYgaXQgbm9uLXplcm8u
CiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVudCByZWxlYXNlcyBv
ZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjQKICAqLwotI2RlZmluZSBVX0lDVV9WRVJTSU9OICI0
LjYuMSIKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTiAiNTIuMSIKIAotLyoqIFRoZSBjdXJyZW50IElD
VSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBkb3RzLCBm
b3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLiAKKy8qKiBUaGUgY3VycmVudCBJQ1UgbGlicmFyeSBt
YWpvci9taW5vciB2ZXJzaW9uIGFzIGEgc3RyaW5nIHdpdGhvdXQgZG90cywgZm9yIGxpYnJhcnkg
bmFtZSBzdWZmaXhlcy4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1
ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5lIFVf
SUNVX1ZFUlNJT05fU0hPUlQgIjQ2IgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NIT1JUICI1MiIK
IAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKiogRGF0YSB2ZXJzaW9uIGluIElDVTRD
LgogICogQGludGVybmFsIElDVSA0LjQgSW50ZXJuYWwgVXNlIE9ubHkKICAqKi8KLSNkZWZpbmUg
VV9JQ1VfREFUQV9WRVJTSU9OICI0LjYiCisjZGVmaW5lIFVfSUNVX0RBVEFfVkVSU0lPTiAiNTIu
MSIKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQogICogSUNVIGNvbGxhdGlvbiBmcmFtZXdvcmsgdmVyc2lvbiBpbmZvcm1hdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dmVyc2lvbi5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS91dmVyc2lvbi5oCmluZGV4IGU1NGNkNTVhNjdjYmM0Y2M2OTJlNGUzNjkyMWRh
MmIzNmFkMTVhNWYuLjc0ZTMwOTEwNTUxNGFkZjM4MjM3YTNiN2E0MDk4MDFhODE1YTVkNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXZlcnNpb24uaAorKysgYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEwLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTY3LDcgKzY3
LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07
CiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBiZWdpbnMgYW4gZXh0ZXJuICJDKysiIGxp
bmthZ2UgYmxvY2sgKHRvIHByb3RlY3QKICAqIGFnYWluc3QgY2FzZXMgaW4gd2hpY2ggYW4gZXh0
ZXJuYWwgY2xpZW50IGluY2x1ZGVzIElDVSBoZWFkZXIgZmlsZXMgaW5zaWRlCiAgKiBhbiBleHRl
cm4gIkMiIGxpbmthZ2UgYmxvY2spLgotICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBu
YW1lc3BhY2VzLCBpdCBhbHNvIGJlZ2lucyBhIG5hbWVzcGFjZSBibG9jay4KKyAqCisgKiBJdCBh
bHNvIGJlZ2lucyBhIHZlcnNpb25lZC1JQ1UtbmFtZXNwYWNlIGJsb2NrLgogICogQHN0YWJsZSBJ
Q1UgMi40CiAgKi8KIApAQCAtNzcsOCArNzgsOCBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25J
bmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFdoZW4gbm90IGNvbXBpbGluZyBmb3IgQysr
LCBpdCBkb2VzIG5vdGhpbmcuCiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBlbmRzIHRo
ZSBleHRlcm4gIkMrKyIgYmxvY2sgYmVndW4gYnkKICAqIFVfTkFNRVNQQUNFX0JFR0lOLgotICog
SWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGVuZHMgdGhl
IG5hbWVzcGFjZSBibG9jawotICogYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4uCisgKgorICog
SXQgYWxzbyBlbmRzIHRoZSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jayBiZWd1biBieSBV
X05BTUVTUEFDRV9CRUdJTi4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTg2LDcgKzg3
LDkgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07
CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1VTRQogICogVGhpcyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhh
dCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQogICogcHVibGljIElDVSBDKysgQVBJIG5h
bWVzcGFjZS4KLSAqIElmIHRoZSBjb21waWxlciBkb2Vzbid0IHN1cHBvcnQgbmFtZXNwYWNlcywg
dGhpcyBkb2VzIG5vdGhpbmcuCisgKiBUaGlzIGlzIGludm9rZWQgYnkgZGVmYXVsdDsgd2UgcmVj
b21tZW5kIHRoYXQgeW91IHR1cm4gaXQgb2ZmOgorICogU2VlIHRoZSAiUmVjb21tZW5kZWQgQnVp
bGQgT3B0aW9ucyIgc2VjdGlvbiBvZiB0aGUgSUNVNEMgcmVhZG1lCisgKiAoaHR0cDovL3NvdXJj
ZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90cnVuay9yZWFkbWUuaHRtbCNSZWNCdWls
ZCkKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTk0LDEzICs5NywxNCBAQCB0eXBlZGVm
IHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFxkZWYgVV9O
QU1FU1BBQ0VfUVVBTElGSUVSCiAgKiBUaGlzIGlzIHVzZWQgdG8gcXVhbGlmeSB0aGF0IGEgZnVu
Y3Rpb24gb3IgY2xhc3MgaXMgcGFydCBvZgogICogdGhlIHB1YmxpYyBJQ1UgQysrIEFQSSBuYW1l
c3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFjZXMsIHRo
aXMgZG9lcyBub3RoaW5nLgorICoKKyAqIFRoaXMgbWFjcm8gaXMgdW5uZWNlc3Nhcnkgc2luY2Ug
SUNVIDQ5IHJlcXVpcmVzIG5hbWVzcGFjZSBzdXBwb3J0LgorICogWW91IGNhbiBqdXN0IHVzZSAi
aWN1OjoiIGluc3RlYWQuCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCiAvKiBEZWZpbmUgbmFt
ZXNwYWNlIHN5bWJvbHMgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LiAqLwotI2lmZGVmIFhQ
X0NQTFVTUExVUwotI2lmIFVfSEFWRV9OQU1FU1BBQ0UKKyNpZmRlZiBfX2NwbHVzcGx1cwogIyAg
IGlmIFVfRElTQUJMRV9SRU5BTUlORwogIyAgICAgICBkZWZpbmUgVV9JQ1VfTkFNRVNQQUNFIGlj
dQogICAgICAgICBuYW1lc3BhY2UgVV9JQ1VfTkFNRVNQQUNFIHsgfQpAQCAtMTIyLDEyICsxMjYs
NiBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsK
ICAgICAgICAgVV9OQU1FU1BBQ0VfVVNFCiAjICAgZW5kaWYKICNlbHNlCi0jICAgZGVmaW5lIFVf
TkFNRVNQQUNFX0JFR0lOIGV4dGVybiAiQysrIiB7Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNFX0VO
RCB9Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9R
VUFMSUZJRVIKLSNlbmRpZgotI2Vsc2UKICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfQkVHSU4KICMg
ICBkZWZpbmUgVV9OQU1FU1BBQ0VfRU5ECiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQpAQCAt
MTgwLDcgKzE3OCw3IEBAIHVfdmVyc2lvbkZyb21VU3RyaW5nKFVWZXJzaW9uSW5mbyB2ZXJzaW9u
QXJyYXksIGNvbnN0IFVDaGFyICp2ZXJzaW9uU3RyaW5nKTsKICAqIEBzdGFibGUgSUNVIDIuNAog
ICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgotdV92ZXJzaW9uVG9TdHJpbmcoVVZlcnNpb25J
bmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7Cit1X3ZlcnNpb25Ub1N0cmlu
Zyhjb25zdCBVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjaGFyICp2ZXJzaW9uU3RyaW5nKTsK
IAogLyoqCiAgKiBHZXRzIHRoZSBJQ1UgcmVsZWFzZSB2ZXJzaW9uLiAgVGhlIHZlcnNpb24gYXJy
YXkgc3RvcmVzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pY3UvdW5pY29kZS9ieXRlc3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29k
ZS9ieXRlc3RyZWFtLmgKaW5kZXggZmI5ZTA3YTI1ZGNkOWI5NWQ5YTM3YTBiOGE3MmIzNWU2M2Ex
ZmZiOC4uMTc0YWEzOGFmY2UwNzAyMDE0YWJhODhlNTI5MzdlZmU0YWJlYzEyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvYnl0ZXN0cmVhbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ljdS91bmljb2RlL2J5dGVzdHJlYW0uaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHly
aWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwog
Ly8gQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIC8vCiAvLyBD
b3B5cmlnaHQgMjAwNyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtNTYsNyAr
NTYsNyBAQCBwdWJsaWM6CiAgICAqIFZpcnR1YWwgZGVzdHJ1Y3Rvci4KICAgICogQHN0YWJsZSBJ
Q1UgNC4yCiAgICAqLwotICB2aXJ0dWFsIH5CeXRlU2luaygpIHsgfQorICB2aXJ0dWFsIH5CeXRl
U2luaygpOwogCiAgIC8qKgogICAgKiBBcHBlbmQgImJ5dGVzWzAsbi0xXSIgdG8gdGhpcy4KQEAg
LTE1MCwxMiArMTUwLDE3IEBAIHB1YmxpYzoKICAgICovCiAgIENoZWNrZWRBcnJheUJ5dGVTaW5r
KGNoYXIqIG91dGJ1ZiwgaW50MzJfdCBjYXBhY2l0eSk7CiAgIC8qKgorICAgKiBEZXN0cnVjdG9y
LgorICAgKiBAc3RhYmxlIElDVSA0LjIKKyAgICovCisgIHZpcnR1YWwgfkNoZWNrZWRBcnJheUJ5
dGVTaW5rKCk7CisgIC8qKgogICAgKiBSZXR1cm5zIHRoZSBzaW5rIHRvIGl0cyBvcmlnaW5hbCBz
dGF0ZSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIGJ1ZmZlci4KICAgICogVXNlZnVsIGZvciByZXVz
aW5nIGJvdGggdGhlIGJ1ZmZlciBhbmQgdGhlIHNpbmsgZm9yIG11bHRpcGxlIHN0cmVhbXMuCiAg
ICAqIFJlc2V0cyB0aGUgc3RhdGUgdG8gTnVtYmVyT2ZCeXRlc1dyaXR0ZW4oKT1OdW1iZXJPZkJ5
dGVzQXBwZW5kZWQoKT0wCiAgICAqIGFuZCBPdmVyZmxvd2VkKCk9RkFMU0UuCiAgICAqIEByZXR1
cm4gKnRoaXMKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAq
LwogICB2aXJ0dWFsIENoZWNrZWRBcnJheUJ5dGVTaW5rJiBSZXNldCgpOwogICAvKioKQEAgLTIw
MSw3ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAqIElmIE92ZXJmbG93ZWQoKSB0aGVuIE51bWJlck9m
Qnl0ZXNBcHBlbmRlZCgpPk51bWJlck9mQnl0ZXNXcml0dGVuKCkKICAgICogZWxzZSB0aGV5IHJl
dHVybiB0aGUgc2FtZSBudW1iZXIuCiAgICAqIEByZXR1cm4gbnVtYmVyIG9mIGJ5dGVzIHdyaXR0
ZW4gdG8gdGhlIGJ1ZmZlcgotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0
LjYKICAgICovCiAgIGludDMyX3QgTnVtYmVyT2ZCeXRlc0FwcGVuZGVkKCkgY29uc3QgeyByZXR1
cm4gYXBwZW5kZWRfOyB9CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL2NoYXJpdGVy
LmgKaW5kZXggMTJmYzkyNDhhMjNiNWE2NzQ0NTJmM2JhNGMzMGQ5MTkxOGUyNzkzMi4uZThkNjUw
OTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5p
Y29kZS9jaGFyaXRlci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAg
Q29weXJpZ2h0IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgog
KgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKQEAgLTM2Miw2ICszNjIsMTIgQEAgcHVibGljOgogICAgIGVudW0gRU9y
aWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKIAogICAgIC8qKgorICAgICAqIERlc3Ry
dWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hh
cmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgogICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRv
IGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCiAgICAgICogY29uY3JldGUgY2xh
c3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNhbWUKICAgICAgKiBjaGFyYWN0
ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaAppbmRleCBiNzZhMWY4NTYyOTky
M2JkZGI4NDZlOThhMDg0ODMzNDdjYTRlZTRhLi5lM2NjYjI1ODE1NGNjMjE2MDk4ZWJjMjczOWZi
N2I2ODIyMDU5Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9sb2Nh
bHBvaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTQ0LDYgKzE0NCwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHB0cj1wOwogICAgIH0KIHByb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBBY3R1YWwgcG9p
bnRlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KICAgICBUICpwdHI7CiBwcml2YXRlOgog
ICAgIC8vIE5vIGNvbXBhcmlzb24gb3BlcmF0b3JzIHdpdGggb3RoZXIgTG9jYWxQb2ludGVyQmFz
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oIGIv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaAppbmRleCAzZGU0MGQyNTY1NTNj
NGFhZjFlYzA0ODMxZTk5YzU1M2ZkN2M0NmU5Li4xYjJhYjMwNmVhMzM3ODI5ZmQ5OWIyYzBmMjgy
NzBkMjljN2JiMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3BsYXRmb3JtLmgKQEAgLTEs
MTUgKzEsMTEgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQg
KEMpIDE5OTctMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHly
aWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICoKLSogTm90ZTogYXV0b2NvbmYgY3JlYXRlcyBwbGF0Zm9ybS5oIGZy
b20gcGxhdGZvcm0uaC5pbiBhdCBjb25maWd1cmUgdGltZS4KLSoKLSoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotKgogKiAgRklMRSBOQU1FIDogcGxhdGZvcm0uaAogKgogKiAgIERhdGUgICAgICAgIE5h
bWUgICAgICAgIERlc2NyaXB0aW9uCkBAIC0yMywzNzkgKzE5LDczNyBAQAogI2lmbmRlZiBfUExB
VEZPUk1fSAogI2RlZmluZSBfUExBVEZPUk1fSAogCisjaW5jbHVkZSAidW5pY29kZS91Y29uZmln
LmgiCisjaW5jbHVkZSAidW5pY29kZS91dmVybnVtLmgiCisKIC8qKgotICogXGZpbGUgCi0gKiBc
YnJpZWYgQmFzaWMgdHlwZXMgZm9yIHRoZSBwbGF0Zm9ybSAKKyAqIFxmaWxlCisgKiBcYnJpZWYg
QmFzaWMgdHlwZXMgZm9yIHRoZSBwbGF0Zm9ybS4KKyAqCisgKiBUaGlzIGZpbGUgdXNlZCB0byBi
ZSBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYvY29uZmlndXJlLgorICogU3RhcnRpbmcgd2l0aCBJQ1Ug
NDksIHBsYXRmb3JtLmggaXMgYSBub3JtYWwgc291cmNlIGZpbGUsCisgKiB0byBzaW1wbGlmeSBj
cm9zcy1jb21waWxpbmcgYW5kIHdvcmtpbmcgd2l0aCBub24tYXV0b2NvbmYvbWFrZSBidWlsZCBz
eXN0ZW1zLgorICoKKyAqIFdoZW4gYSB2YWx1ZSBpbiB0aGlzIGZpbGUgZG9lcyBub3Qgd29yayBv
biBhIHBsYXRmb3JtLCB0aGVuIHBsZWFzZQorICogdHJ5IHRvIGRlcml2ZSBpdCBmcm9tIHRoZSBV
X1BMQVRGT1JNIHZhbHVlCisgKiAoZm9yIHdoaWNoIHdlIG1pZ2h0IG5lZWQgYSBuZXcgdmFsdWUg
Y29uc3RhbnQgaW4gcmFyZSBjYXNlcykKKyAqIGFuZC9vciBmcm9tIG90aGVyIG1hY3JvcyB0aGF0
IGFyZSBwcmVkZWZpbmVkIGJ5IHRoZSBjb21waWxlcgorICogb3IgZGVmaW5lZCBpbiBzdGFuZGFy
ZCAoUE9TSVggb3IgcGxhdGZvcm0gb3IgY29tcGlsZXIpIGhlYWRlcnMuCisgKgorICogQXMgYSB0
ZW1wb3Jhcnkgd29ya2Fyb3VuZCwgeW91IGNhbiBhZGQgYW4gZXhwbGljaXQgPGNvZGU+I2RlZmlu
ZTwvY29kZT4gZm9yIHNvbWUgbWFjcm9zCisgKiBiZWZvcmUgaXQgaXMgZmlyc3QgdGVzdGVkLCBv
ciBhZGQgYW4gZXF1aXZhbGVudCAtRCBtYWNybyBkZWZpbml0aW9uCisgKiB0byB0aGUgY29tcGls
ZXIncyBjb21tYW5kIGxpbmUuCisgKgorICogTm90ZTogU29tZSBjb21waWxlcnMgcHJvdmlkZSB3
YXlzIHRvIHNob3cgdGhlIHByZWRlZmluZWQgbWFjcm9zLgorICogRm9yIGV4YW1wbGUsIHdpdGgg
Z2NjIHlvdSBjYW4gY29tcGlsZSBhbiBlbXB0eSAuYyBmaWxlIGFuZCBoYXZlIHRoZSBjb21waWxl
cgorICogcHJpbnQgdGhlIHByZWRlZmluZWQgbWFjcm9zIHdpdGgKKyAqIFxjb2RlCisgKiBnY2Mg
LUUgLWRNIC14IGMgL2Rldi9udWxsIHwgc29ydAorICogXGVuZGNvZGUKKyAqIChZb3UgY2FuIHBy
b3ZpZGUgYW4gYWN0dWFsIGVtcHR5IC5jIGZpbGUgcmF0aGVyIHRoYW4gL2Rldi9udWxsLgorICog
PGNvZGU+LXggYysrPC9jb2RlPiBpcyBmb3IgQysrLikKICAqLwogCi0vKiBUaGlzIGZpbGUgc2hv
dWxkIGJlIGluY2x1ZGVkIGJlZm9yZSB1dmVybnVtLmguICovCi0jaWYgZGVmaW5lZChVVkVSTlVN
X0gpCi0jIGVycm9yIERvIG5vdCBpbmNsdWRlIHVuaWNvZGUvdXZlcm51bS5oIGJlZm9yZSAjaW5j
bHVkaW5nIHVuaWNvZGUvcGxhdGZvcm0uaC4gIEluc3RlYWQgb2YgdW5pY29kZS91dmVybnVtLmgs
ICNpbmNsdWRlIHVuaWNvZGUvdXZlcnNpb24uaAotI2VuZGlmCi0KIC8qKgotICogRGV0ZXJtaW5l
IHdoZXRlciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmllcy4gCisgKiBEZWZpbmUg
c29tZSB0aGluZ3Mgc28gdGhhdCB0aGV5IGNhbiBiZSBkb2N1bWVudGVkLgogICogQGludGVybmFs
CiAgKi8KLSNpZm5kZWYgVUNMTl9OT19BVVRPX0NMRUFOVVAKLSNkZWZpbmUgVUNMTl9OT19BVVRP
X0NMRUFOVVAgMQotI2VuZGlmCi0KLS8qIE5lZWQgcGxhdGZvcm0uaCB3aGVuIHVzaW5nIENZR1dJ
Tk1TVkMgdG8gZ2V0IGRlZmluaXRpb25zIGFib3ZlLiBJZ25vcmUgZXZlcnl0aGluZyBlbHNlLiAq
LwotI2lmbmRlZiBDWUdXSU5NU1ZDCisjaWZkZWYgVV9JTl9ET1hZR0VOCisvKgorICogUHJvYmxl
bTogInBsYXRmb3JtLmg6MzM1OiB3YXJuaW5nOiBkb2N1bWVudGF0aW9uIGZvciB1bmtub3duIGRl
ZmluZSBVX0hBVkVfU1REX1NUUklORyBmb3VuZC4iIG1lYW5zIHRoYXQgVV9IQVZFX1NURF9TVFJJ
TkcgaXMgbm90IGRvY3VtZW50ZWQuCisgKiBTb2x1dGlvbjogI2RlZmluZSBhbnkgZGVmaW5lcyBm
b3Igbm9uIEBpbnRlcm5hbCBBUEkgaGVyZSwgc28gdGhhdCB0aGV5IGFyZSB2aXNpYmxlIGluIHRo
ZSBkb2NzLiAgSWYgeW91IGp1c3Qgc2V0IFBSRURFRklORUQgaW4gRG94eWZpbGUuaW4sICB0aGV5
IHdvbid0IGJlIGRvY3VtZW50ZWQuCisgKi8KIAotLyoqIERlZmluZSB0aGUgcGxhdGZvcm0gd2Un
cmUgb24uICovCi0jaWZuZGVmIFVfREFSV0lOCi0jZGVmaW5lIFVfREFSV0lOCisvKiBOb25lIGZv
ciBub3cuICovCiAjZW5kaWYKIAogLyoqCi0gKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAotICogRGVm
aW5lIHdoZXRoZXIgZGlyZW50LmggaXMgYXZhaWxhYmxlIAorICogXGRlZiBVX1BMQVRGT1JNCisg
KiBUaGUgVV9QTEFURk9STSBtYWNybyBkZWZpbmVzIHRoZSBwbGF0Zm9ybSB3ZSdyZSBvbi4KKyAq
CisgKiBXZSB1c2VkIHRvIGRlZmluZSBvbmUgZGlmZmVyZW50LCB2YWx1ZS1sZXNzIG1hY3JvIHBl
ciBwbGF0Zm9ybS4KKyAqIFRoYXQgbWFkZSBpdCBoYXJkIHRvIGtub3cgdGhlIHNldCBvZiByZWxl
dmFudCBwbGF0Zm9ybXMgYW5kIG1hY3JvcywKKyAqIGFuZCBoYXJkIHRvIGRlYWwgd2l0aCB2YXJp
YW50cyBvZiBwbGF0Zm9ybXMuCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNDksIHdlIGRlZmlu
ZSBwbGF0Zm9ybXMgYXMgbnVtZXJpYyBtYWNyb3MsCisgKiB3aXRoIHJhbmdlcyBvZiB2YWx1ZXMg
Zm9yIHJlbGF0ZWQgcGxhdGZvcm1zIGFuZCB0aGVpciB2YXJpYW50cy4KKyAqIFRoZSBVX1BMQVRG
T1JNIG1hY3JvIGlzIHNldCB0byBvbmUgb2YgdGhlc2UgdmFsdWVzLgorICoKKyAqIEhpc3Rvcmlj
YWwgbm90ZSBmcm9tIHRoZSBTb2xhcmlzIFdpa2lwZWRpYSBhcnRpY2xlOgorICogQVQmVCBhbmQg
U3VuIGNvbGxhYm9yYXRlZCBvbiBhIHByb2plY3QgdG8gbWVyZ2UgdGhlIG1vc3QgcG9wdWxhciBV
bml4IHZhcmlhbnRzCisgKiBvbiB0aGUgbWFya2V0IGF0IHRoYXQgdGltZTogQlNELCBTeXN0ZW0g
ViwgYW5kIFhlbml4LgorICogVGhpcyBiZWNhbWUgVW5peCBTeXN0ZW0gViBSZWxlYXNlIDQgKFNW
UjQpLgorICoKICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVfSEFWRV9ESVJFTlRfSAotI2Rl
ZmluZSBVX0hBVkVfRElSRU5UX0ggMQotI2VuZGlmCiAKLS8qKiBEZWZpbmUgd2hldGhlciBpbnR0
eXBlcy5oIGlzIGF2YWlsYWJsZSAqLwotI2lmbmRlZiBVX0hBVkVfSU5UVFlQRVNfSAotI2RlZmlu
ZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisvKiogVW5rbm93biBwbGF0Zm9ybS4gQGludGVybmFsICov
CisjZGVmaW5lIFVfUEZfVU5LTk9XTiAwCisvKiogV2luZG93cyBAaW50ZXJuYWwgKi8KKyNkZWZp
bmUgVV9QRl9XSU5ET1dTIDEwMDAKKy8qKiBNaW5HVy4gV2luZG93cywgY2FsbHMgdG8gV2luMzIg
QVBJLCBidXQgdXNpbmcgR05VIGdjYyBhbmQgYmludXRpbHMuIEBpbnRlcm5hbCAqLworI2RlZmlu
ZSBVX1BGX01JTkdXIDE4MDAKKy8qKgorICogQ3lnd2luLiBXaW5kb3dzLCBjYWxscyB0byBjeWd3
aW4xLmRsbCBmb3IgUG9zaXggZnVuY3Rpb25zLAorICogdXNpbmcgTVNWQyBvciBHTlUgZ2NjIGFu
ZCBiaW51dGlscy4KKyAqIEBpbnRlcm5hbAorICovCisjZGVmaW5lIFVfUEZfQ1lHV0lOIDE5MDAK
Ky8qIFJlc2VydmUgMjAwMCBmb3IgVV9QRl9VTklYPyAqLworLyoqIEhQLVVYIGlzIGJhc2VkIG9u
IFVOSVggU3lzdGVtIFYuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0hQVVggMjEwMAorLyoq
IFNvbGFyaXMgaXMgYSBVbml4IG9wZXJhdGluZyBzeXN0ZW0gYmFzZWQgb24gU1ZSNC4gQGludGVy
bmFsICovCisjZGVmaW5lIFVfUEZfU09MQVJJUyAyNjAwCisvKiogQlNEIGlzIGEgVU5JWCBvcGVy
YXRpbmcgc3lzdGVtIGRlcml2YXRpdmUuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0JTRCAz
MDAwCisvKiogQUlYIGlzIGJhc2VkIG9uIFVOSVggU3lzdGVtIFYgUmVsZWFzZXMgYW5kIDQuMyBC
U0QuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0FJWCAzMTAwCisvKiogSVJJWCBpcyBiYXNl
ZCBvbiBVTklYIFN5c3RlbSBWIHdpdGggQlNEIGV4dGVuc2lvbnMuIEBpbnRlcm5hbCAqLworI2Rl
ZmluZSBVX1BGX0lSSVggMzIwMAorLyoqCisgKiBEYXJ3aW4gaXMgYSBQT1NJWC1jb21wbGlhbnQg
b3BlcmF0aW5nIHN5c3RlbSwgY29tcG9zZWQgb2YgY29kZSBkZXZlbG9wZWQgYnkgQXBwbGUsCisg
KiBhcyB3ZWxsIGFzIGNvZGUgZGVyaXZlZCBmcm9tIE5lWFRTVEVQLCBCU0QsIGFuZCBvdGhlciBw
cm9qZWN0cywKKyAqIGJ1aWx0IGFyb3VuZCB0aGUgTWFjaCBrZXJuZWwuCisgKiBEYXJ3aW4gZm9y
bXMgdGhlIGNvcmUgc2V0IG9mIGNvbXBvbmVudHMgdXBvbiB3aGljaCBNYWMgT1MgWCwgQXBwbGUg
VFYsIGFuZCBpT1MgYXJlIGJhc2VkLgorICogKE9yaWdpbmFsIGRlc2NyaXB0aW9uIG1vZGlmaWVk
IGZyb20gV2lraVBlZGlhLikKKyAqIEBpbnRlcm5hbAorICovCisjZGVmaW5lIFVfUEZfREFSV0lO
IDM1MDAKKy8qKiBpUGhvbmUgT1MgKGlPUykgaXMgYSBkZXJpdmF0aXZlIG9mIE1hYyBPUyBYLiBA
aW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9JUEhPTkUgMzU1MAorLyoqIFFOWCBpcyBhIGNvbW1l
cmNpYWwgVW5peC1saWtlIHJlYWwtdGltZSBvcGVyYXRpbmcgc3lzdGVtIHJlbGF0ZWQgdG8gQlNE
LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9RTlggMzcwMAorLyoqIExpbnV4IGlzIGEgVW5p
eC1saWtlIG9wZXJhdGluZyBzeXN0ZW0uIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0xJTlVY
IDQwMDAKKy8qKiBBbmRyb2lkIGlzIGJhc2VkIG9uIExpbnV4LiBAaW50ZXJuYWwgKi8KKyNkZWZp
bmUgVV9QRl9BTkRST0lEIDQwNTAKKy8qKiAiQ2xhc3NpYyIgTWFjIE9TICgxOTg0LTIwMDEpIEBp
bnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0NMQVNTSUNfTUFDT1MgODAwMAorLyoqIHovT1MgaXMg
dGhlIHN1Y2Nlc3NvciB0byBPUy8zOTAgd2hpY2ggd2FzIHRoZSBzdWNjZXNzb3IgdG8gTVZTLiBA
aW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9PUzM5MCA5MDAwCisvKiogIklCTSBpIiBpcyB0aGUg
Y3VycmVudCBuYW1lIG9mIHdoYXQgdXNlZCB0byBiZSBpNS9PUyBhbmQgZWFybGllciBPUy80MDAu
IEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX09TNDAwIDk0MDAKKworI2lmZGVmIFVfUExBVEZP
Uk0KKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9f
TUlOR1czMl9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfTUlOR1cKKyNlbGlmIGRlZmlu
ZWQoX19DWUdXSU5fXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0NZR1dJTgorI2VsaWYg
ZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoV0lONjQpIHx8IGRl
ZmluZWQoX1dJTjY0KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfV0lORE9XUworI2VsaWYg
ZGVmaW5lZChfX0FORFJPSURfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0FORFJPSUQK
KyAgICAvKiBBbmRyb2lkIHdjaGFyX3Qgc3VwcG9ydCBkZXBlbmRzIG9uIHRoZSBBUEkgbGV2ZWwu
ICovCisjICAgaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KKyNlbGlmIGRlZmluZWQobGlu
dXgpIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fbGludXgpCisjICAgZGVmaW5l
IFVfUExBVEZPUk0gVV9QRl9MSU5VWAorI2VsaWYgZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmlu
ZWQoX19NQUNIX18pCisjICAgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CisjICAgaWYg
ZGVmaW5lZChUQVJHRVRfT1NfSVBIT05FKSAmJiBUQVJHRVRfT1NfSVBIT05FICAvKiB2YXJpYW50
IG9mIFRBUkdFVF9PU19NQUMgKi8KKyMgICAgICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9JUEhP
TkUKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfREFSV0lOCisjICAg
ZW5kaWYKKyNlbGlmIGRlZmluZWQoQlNEKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVk
KF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fTWlyQlNEX18pCisjICAgZGVmaW5lIFVfUExBVEZP
Uk0gVV9QRl9CU0QKKyNlbGlmIGRlZmluZWQoc3VuKSB8fCBkZWZpbmVkKF9fc3VuKQorICAgIC8q
IENoZWNrIGRlZmluZWQoX19TVlI0KSB8fCBkZWZpbmVkKF9fc3ZyNF9fKSB0byBkaXN0aW5ndWlz
aCBTb2xhcmlzIGZyb20gU3VuT1M/ICovCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9TT0xB
UklTCisjICAgaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICAgICAgLyogU29sYXJpcy9HQ0MgbmVl
ZHMgdGhpcyBoZWFkZXIgZmlsZSB0byBnZXQgdGhlIHByb3BlciBlbmRpYW5uZXNzLiBOb3JtYWxs
eSwgdGhpcworICAgICAgICAgKiBoZWFkZXIgZmlsZSBpcyBpbmNsdWRlZCB3aXRoIHN0ZGRlZi5o
IGJ1dCBvbiBTb2xhaXJzL0dDQywgdGhlIEdDQyB2ZXJzaW9uIG9mIHN0ZGRlZi5oCisgICAgICAg
ICAqICBpcyBpbmNsdWRlZCB3aGljaCBkb2VzIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZpbGUu
CisgICAgICAgICAqLworIyAgICAgICBpbmNsdWRlIDxzeXMvaXNhX2RlZnMuaD4KKyMgICBlbmRp
ZgorI2VsaWYgZGVmaW5lZChfQUlYKSB8fCBkZWZpbmVkKF9fVE9TX0FJWF9fKQorIyAgIGRlZmlu
ZSBVX1BMQVRGT1JNIFVfUEZfQUlYCisjZWxpZiBkZWZpbmVkKF9ocHV4KSB8fCBkZWZpbmVkKGhw
dXgpIHx8IGRlZmluZWQoX19ocHV4KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSFBVWAor
I2VsaWYgZGVmaW5lZChzZ2kpIHx8IGRlZmluZWQoX19zZ2kpCisjICAgZGVmaW5lIFVfUExBVEZP
Uk0gVV9QRl9JUklYCisjZWxpZiBkZWZpbmVkKG1hY2ludG9zaCkKKyMgICBkZWZpbmUgVV9QTEFU
Rk9STSBVX1BGX0NMQVNTSUNfTUFDT1MKKyNlbGlmIGRlZmluZWQoX19RTlhfXykgfHwgZGVmaW5l
ZChfX1FOWE5UT19fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfUU5YCisjZWxpZiBkZWZp
bmVkKF9fVE9TX01WU19fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfT1MzOTAKKyNlbGlm
IGRlZmluZWQoX19PUzQwMF9fKSB8fCBkZWZpbmVkKF9fVE9TX09TNDAwX18pCisjICAgZGVmaW5l
IFVfUExBVEZPUk0gVV9QRl9PUzQwMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BG
X1VOS05PV04KICNlbmRpZgogCiAvKioKLSAqIERlZmluZSB3aGF0IHN1cHBvcnQgZm9yIEMrKyBz
dHJlYW1zIGlzIGF2YWlsYWJsZS4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQg
dG8gMTk5NzExLCB0aGVuICZsdDtpb3N0cmVhbSZndDsgaXMgYXZhaWxhYmxlCi0gKiAoMTk5Nzcx
MSBpcyB0aGUgZGF0ZSB0aGUgSVNPL0lFQyBDKysgRkRJUyB3YXMgcHVibGlzaGVkKSwgYW5kIHRo
ZW4KLSAqIG9uZSBzaG91bGQgcXVhbGlmeSBzdHJlYW1zIHVzaW5nIHRoZSBzdGQgbmFtZXNwYWNl
IGluIElDVSBoZWFkZXIKLSAqIGZpbGVzLgotICogICAgIElmIFVfSU9TVFJFQU1fU09VUkNFIGlz
IHNldCB0byAxOTg1MDYsIHRoZW4gJmx0O2lvc3RyZWFtLmgmZ3Q7IGlzCi0gKiBhdmFpbGFibGUg
aW5zdGVhZCAoMTk4NTA2IGlzIHRoZSBkYXRlIHdoZW4gU3Ryb3VzdHJ1cCBwdWJsaXNoZWQKLSAq
ICJBbiBFeHRlbnNpYmxlIEkvTyBGYWNpbGl0eSBmb3IgQysrIiBhdCB0aGUgc3VtbWVyIFVTRU5J
WCBjb25mZXJlbmNlKS4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyAwLCB0aGVuIEMr
KyBzdHJlYW1zIGFyZSBub3QgYXZhaWxhYmxlIGFuZAotICogc3VwcG9ydCBmb3IgdGhlbSB3aWxs
IGJlIHNpbGVudGx5IHN1cHByZXNzZWQgaW4gSUNVLgotICoKKyAqIFxkZWYgQ1lHV0lOTVNWQwor
ICogRGVmaW5lZCBpZiB0aGlzIGlzIFdpbmRvd3Mgd2l0aCBDeWd3aW4sIGJ1dCB1c2luZyBNU1ZD
IHJhdGhlciB0aGFuIGdjYy4KKyAqIE90aGVyd2lzZSB1bmRlZmluZWQuCisgKiBAaW50ZXJuYWwK
ICAqLwotCi0jaWZuZGVmIFVfSU9TVFJFQU1fU09VUkNFCi0jZGVmaW5lIFVfSU9TVFJFQU1fU09V
UkNFIDE5OTcxMQorLyogQ29tbWVudGVkIG91dCBiZWNhdXNlIHRoaXMgaXMgYWxyZWFkeSBzZXQg
aW4gbWgtY3lnd2luLW1zdmMKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfQ1lHV0lOICYmIGRlZmlu
ZWQoX01TQ19WRVIpCisjICAgZGVmaW5lIENZR1dJTk1TVkMKICNlbmRpZgorKi8KIAogLyoqCi0g
KiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0gKiBEZWZpbmUgd2hldGhlciB0aGUgc3RhbmRhcmQg
QysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBpcyBhdmFpbGFibGUuCi0gKiBGb3IgcGxh
dGZvcm1zIHRoYXQgZG8gbm90IHVzZSBwbGF0Zm9ybS5oIGFuZCBkbyBub3QgZGVmaW5lIHRoaXMg
Y29uc3RhbnQKLSAqIGluIHRoZWlyIHBsYXRmb3JtLXNwZWNpZmljIGhlYWRlcnMsIHN0ZF9zdHJp
bmcuaCBkZWZhdWx0cwotICogVV9IQVZFX1NURF9TVFJJTkcgdG8gMS4KKyAqIFxkZWYgVV9QTEFU
Rk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBsYXRmb3Jt
IHVzZXMgb25seSB0aGUgV2luMzIgQVBJLgorICogU2V0IHRvIDEgZm9yIFdpbmRvd3MvTVNWQyBh
bmQgTWluR1cgYnV0IG5vdCBDeWd3aW4uCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0hB
VkVfU1REX1NUUklORwotI2RlZmluZSBVX0hBVkVfU1REX1NUUklORyAxCisjaWZkZWYgVV9QTEFU
Rk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgKFVfUEZfV0lORE9XUyA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0g
VV9QRl9NSU5HVykgfHwgZGVmaW5lZChDWUdXSU5NU1ZDKQorIyAgIGRlZmluZSBVX1BMQVRGT1JN
X1VTRVNfT05MWV9XSU4zMl9BUEkgMQorI2Vsc2UKKyAgICAvKiBDeWd3aW4gaW1wbGVtZW50cyBQ
T1NJWC4gKi8KKyMgICBkZWZpbmUgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJIDAKICNl
bmRpZgogCi0vKiogQHsgRGV0ZXJtaW5lcyB3aGV0aGVyIHNwZWNpZmljIHR5cGVzIGFyZSBhdmFp
bGFibGUgKi8KLSNpZm5kZWYgVV9IQVZFX0lOVDhfVAotI2RlZmluZSBVX0hBVkVfSU5UOF9UIDEK
Ky8qKgorICogXGRlZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKyAqIERlZmluZXMgd2hldGhl
ciB0aGUgV2luMzIgQVBJIGlzIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0uCisgKiBTZXQgdG8g
MSBmb3IgV2luZG93cy9NU1ZDLCBNaW5HVyBhbmQgQ3lnd2luLgorICogQGludGVybmFsCisgKi8K
KyNpZmRlZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX1dJTkRPV1MgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRG
T1JNIDw9IFVfUEZfQ1lHV0lOCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSAx
CisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgMAogI2VuZGlmCiAK
LSNpZm5kZWYgVV9IQVZFX1VJTlQ4X1QKLSNkZWZpbmUgVV9IQVZFX1VJTlQ4X1QgMAorLyoqCisg
KiBcZGVmIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWAorICogRGVmaW5lcyB3aGV0aGVyIHRo
ZSBwbGF0Zm9ybSBpbXBsZW1lbnRzIChtb3N0IG9mKSB0aGUgUE9TSVggQVBJLgorICogU2V0IHRv
IDEgZm9yIEN5Z3dpbiBhbmQgbW9zdCBvdGhlciBwbGF0Zm9ybXMuCisgKiBAaW50ZXJuYWwKKyAq
LworI2lmZGVmIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWAorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSB8
fCBVX1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUworIyAgIGRlZmluZSBVX1BMQVRGT1JN
X0lNUExFTUVOVFNfUE9TSVggMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JTVBMRU1F
TlRTX1BPU0lYIDEKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9JTlQxNl9UCi0jZGVmaW5lIFVf
SEFWRV9JTlQxNl9UIDEKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VECisg
KiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGlzIExpbnV4IG9yIG9uZSBvZiBpdHMgZGVy
aXZhdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSVNfTElOVVhf
QkFTRUQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX0xJ
TlVYIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0FORFJPSUQKKyMgICBkZWZp
bmUgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRCAxCisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRG
T1JNX0lTX0xJTlVYX0JBU0VEIDAKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9VSU5UMTZfVAot
I2RlZmluZSBVX0hBVkVfVUlOVDE2X1QgMAorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSVNfREFS
V0lOX0JBU0VECisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGlzIERhcndpbiBvciBv
bmUgb2YgaXRzIGRlcml2YXRpdmVzLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX1BMQVRG
T1JNX0lTX0RBUldJTl9CQVNFRAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIFVfUEZfREFSV0lOIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0lQ
SE9ORQorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRCAxCisjZWxzZQorIyAg
IGRlZmluZSBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRCAwCiAjZW5kaWYKIAotI2lmbmRlZiBV
X0hBVkVfSU5UMzJfVAotI2RlZmluZSBVX0hBVkVfSU5UMzJfVCAxCisvKioKKyAqIFxkZWYgVV9I
QVZFX1NURElOVF9ICisgKiBEZWZpbmVzIHdoZXRoZXIgc3RkaW50LmggaXMgYXZhaWxhYmxlLiBJ
dCBpcyBhIEM5OSBzdGFuZGFyZCBoZWFkZXIuCisgKiBXZSB1c2VkIHRvIGluY2x1ZGUgaW50dHlw
ZXMuaCB3aGljaCBpbmNsdWRlcyBzdGRpbnQuaCBidXQgd2UgdXN1YWxseSBkbyBub3QgbmVlZAor
ICogdGhlIGFkZGl0aW9uYWwgZGVmaW5pdGlvbnMgZnJvbSBpbnR0eXBlcy5oLgorICogQGludGVy
bmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfU1RESU5UX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMgICBp
ZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXIHx8IChk
ZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUj49MTYwMCkKKyAgICAgICAgLyogV2luZG93cyBW
aXN1YWwgU3R1ZGlvIDkgYW5kIGJlbG93IGRvIG5vdCBoYXZlIHN0ZGludC5oICYgaW50dHlwZXMu
aCwgYnV0IFZTIDIwMTAgYWRkcyB0aGVtLiAqLworIyAgICAgICBkZWZpbmUgVV9IQVZFX1NURElO
VF9IIDEKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMAorIyAgIGVu
ZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfU09MQVJJUworICAgIC8qIFNvbGFyaXMgaGFz
IGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURElO
VF9IIDAKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BSVggJiYgIWRlZmluZWQoX0FJWDUxKSAm
JiBkZWZpbmVkKF9QT1dFUikKKyAgICAvKiBQUEMgQUlYIDw9IDQuMyBoYXMgaW50dHlwZXMuaCBi
dXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMAorI2Vsc2UK
KyMgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDEKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9V
SU5UMzJfVAotI2RlZmluZSBVX0hBVkVfVUlOVDMyX1QgMAorLyoqCisgKiBcZGVmIFVfSEFWRV9J
TlRUWVBFU19ICisgKiBEZWZpbmVzIHdoZXRoZXIgaW50dHlwZXMuaCBpcyBhdmFpbGFibGUuIEl0
IGlzIGEgQzk5IHN0YW5kYXJkIGhlYWRlci4KKyAqIFdlIGluY2x1ZGUgaW50dHlwZXMuaCB3aGVy
ZSBpdCBpcyBhdmFpbGFibGUgYnV0IHN0ZGludC5oIGlzIG5vdC4KKyAqIEBpbnRlcm5hbAorICov
CisjaWZkZWYgVV9IQVZFX0lOVFRZUEVTX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFs
dWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfU09MQVJJUworICAgIC8qIFNvbGFyaXMg
aGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX0lO
VFRZUEVTX0ggMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWCAmJiAhZGVmaW5lZChfQUlY
NTEpICYmIGRlZmluZWQoX1BPV0VSKQorICAgIC8qIFBQQyBBSVggPD0gNC4zIGhhcyBpbnR0eXBl
cy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEK
KyNlbHNlCisgICAgLyogTW9zdCBwbGF0Zm9ybXMgaGF2ZSBib3RoIGludHR5cGVzLmggYW5kIHN0
ZGludC5oLCBvciBuZWl0aGVyLiAqLworIyAgIGRlZmluZSBVX0hBVkVfSU5UVFlQRVNfSCBVX0hB
VkVfU1RESU5UX0gKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9JTlQ2NF9UCi0jZGVmaW5lIFVf
SEFWRV9JTlQ2NF9UIDEKKy8qKgorICogXGRlZiBVX0lPU1RSRUFNX1NPVVJDRQorICogRGVmaW5l
cyB3aGF0IHN1cHBvcnQgZm9yIEMrKyBzdHJlYW1zIGlzIGF2YWlsYWJsZS4KKyAqCisgKiBJZiBV
X0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk5NzExLCB0aGVuICZsdDtpb3N0cmVhbSZndDsg
aXMgYXZhaWxhYmxlCisgKiAodGhlIElTTy9JRUMgQysrIEZESVMgd2FzIHB1Ymxpc2hlZCBpbiBO
b3ZlbWJlciAxOTk3KSwgYW5kIHRoZW4KKyAqIG9uZSBzaG91bGQgcXVhbGlmeSBzdHJlYW1zIHVz
aW5nIHRoZSBzdGQgbmFtZXNwYWNlIGluIElDVSBoZWFkZXIKKyAqIGZpbGVzLgorICogU3RhcnRp
bmcgd2l0aCBJQ1UgNDksIHRoaXMgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIHZlcnNpb24uCisgKgor
ICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5ODUwNiwgdGhlbiAmbHQ7aW9zdHJl
YW0uaCZndDsgaXMKKyAqIGF2YWlsYWJsZSBpbnN0ZWFkIChpbiBKdW5lIDE5ODUgU3Ryb3VzdHJ1
cCBwdWJsaXNoZWQKKyAqICJBbiBFeHRlbnNpYmxlIEkvTyBGYWNpbGl0eSBmb3IgQysrIiBhdCB0
aGUgc3VtbWVyIFVTRU5JWCBjb25mZXJlbmNlKS4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCB0
aGlzIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZCBhbnkgbW9yZS4KKyAqCisgKiBJZiBVX0lPU1RS
RUFNX1NPVVJDRSBpcyAwIChvciBhbnkgdmFsdWUgbGVzcyB0aGFuIDE5OTcxMSksCisgKiB0aGVu
IEMrKyBzdHJlYW1zIGFyZSBub3QgYXZhaWxhYmxlIGFuZAorICogc3VwcG9ydCBmb3IgdGhlbSB3
aWxsIGJlIHNpbGVudGx5IHN1cHByZXNzZWQgaW4gSUNVLgorICoKKyAqIEBpbnRlcm5hbAorICov
CisjaWZuZGVmIFVfSU9TVFJFQU1fU09VUkNFCisjZGVmaW5lIFVfSU9TVFJFQU1fU09VUkNFIDE5
OTcxMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX1VJTlQ2NF9UCi0jZGVmaW5lIFVfSEFWRV9V
SU5UNjRfVCAwCisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9TVFJJTkcKKyAqIERlZmluZXMgd2hl
dGhlciB0aGUgc3RhbmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBpcyBhdmFp
bGFibGUuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9TVERfU1RSSU5HCisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZF
X1NURF9TVFJJTkcgMQogI2VuZGlmCiAKLS8qKiBAfSAqLwotCiAvKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCiAvKiogQHsgQ29tcGlsZXIgYW5kIGVudmlyb25tZW50IGZlYXR1cmVzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLS8q
IERlZmluZSB3aGV0aGVyIG5hbWVzcGFjZSBpcyBzdXBwb3J0ZWQgKi8KLSNpZm5kZWYgVV9IQVZF
X05BTUVTUEFDRQotI2RlZmluZSBVX0hBVkVfTkFNRVNQQUNFIDEKLSNlbmRpZgotCi0vKiBEZXRl
cm1pbmVzIHRoZSBlbmRpYW5uZXNzIG9mIHRoZSBwbGF0Zm9ybQotICAgSXQncyBkb25lIHRoaXMg
d2F5IGluIGNhc2UgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyBhcmUgYmVpbmcgYnVpbHQgYXQgb25j
ZS4KLSAgIEZvciBleGFtcGxlLCBEYXJ3aW4gc3VwcG9ydHMgZmF0IGJpbmFyaWVzLCB3aGljaCBj
YW4gYmUgYm90aCBQUEMgYW5kIHg4NiBiYXNlZC4gKi8KLSNpZiBkZWZpbmVkKEJZVEVfT1JERVIp
ICYmIGRlZmluZWQoQklHX0VORElBTikKLSNkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChCWVRFX09S
REVSID09IEJJR19FTkRJQU4pCisvKioKKyAqIFxkZWYgVV9HQ0NfTUFKT1JfTUlOT1IKKyAqIElu
ZGljYXRlcyB3aGV0aGVyIHRoZSBjb21waWxlciBpcyBnY2MgKHRlc3QgZm9yICE9IDApLAorICog
YW5kIGlmIHNvLCBjb250YWlucyBpdHMgbWFqb3IgKHRpbWVzIDEwMCkgYW5kIG1pbm9yIHZlcnNp
b24gbnVtYmVycy4KKyAqIElmIHRoZSBjb21waWxlciBpcyBub3QgZ2NjLCB0aGVuIFVfR0NDX01B
Sk9SX01JTk9SID09IDAuCisgKgorICogRm9yIGV4YW1wbGUsIGZvciB0ZXN0aW5nIGZvciB3aGV0
aGVyIHdlIGhhdmUgZ2NjLCBhbmQgd2hldGhlciBpdCdzIDQuNiBvciBoaWdoZXIsCisgKiB1c2Ug
IiNpZiBVX0dDQ19NQUpPUl9NSU5PUiA+PSA0MDYiLgorICogQGludGVybmFsCisgKi8KKyNpZmRl
ZiBfX0dOVUNfXworIyAgIGRlZmluZSBVX0dDQ19NQUpPUl9NSU5PUiAoX19HTlVDX18gKiAxMDAg
KyBfX0dOVUNfTUlOT1JfXykKICNlbHNlCi0jZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisjICAg
ZGVmaW5lIFVfR0NDX01BSk9SX01JTk9SIDAKICNlbmRpZgogCi0vKiAxIG9yIDAgdG8gZW5hYmxl
IG9yIGRpc2FibGUgdGhyZWFkcy4gIElmIHVuZGVmaW5lZCwgZGVmYXVsdCBpczogZW5hYmxlIHRo
cmVhZHMuICovCi0jaWZuZGVmIElDVV9VU0VfVEhSRUFEUyAKLSNkZWZpbmUgSUNVX1VTRV9USFJF
QURTIDEKLSNlbmRpZgotCi0vKiBPbiBzdHJvbmcgbWVtb3J5IG1vZGVsIENQVXMgKGUuZy4geDg2
IENQVXMpLCB3ZSB1c2UgYSBzYWZlICYgcXVpY2sgZG91YmxlIGNoZWNrIGxvY2suICovCi0jaWYg
ZGVmaW5lZChfX0dOVUNfXykgJiYgKGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf
NjRfXykpCi0jZGVmaW5lIFVNVFhfU1RST05HX01FTU9SWV9NT0RFTCAxCi0jZW5kaWYKLQotI2lm
bmRlZiBVX0RFQlVHCi0jZGVmaW5lIFVfREVCVUcgMAotI2VuZGlmCi0KLSNpZm5kZWYgVV9SRUxF
QVNFCi0jZGVmaW5lIFVfUkVMRUFTRSAxCisvKioKKyAqIFxkZWYgVV9JU19CSUdfRU5ESUFOCisg
KiBEZXRlcm1pbmVzIHRoZSBlbmRpYW5uZXNzIG9mIHRoZSBwbGF0Zm9ybS4KKyAqIEBpbnRlcm5h
bAorICovCisjaWZkZWYgVV9JU19CSUdfRU5ESUFOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChCWVRFX09SREVSKSAmJiBkZWZpbmVkKEJJR19FTkRJ
QU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAoQllURV9PUkRFUiA9PSBCSUdfRU5ESUFO
KQorI2VsaWYgZGVmaW5lZChfX0JZVEVfT1JERVJfXykgJiYgZGVmaW5lZChfX09SREVSX0JJR19F
TkRJQU5fXykKKyAgICAvKiBnY2MgKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChfX0JZ
VEVfT1JERVJfXyA9PSBfX09SREVSX0JJR19FTkRJQU5fXykKKyNlbGlmIGRlZmluZWQoX19CSUdf
RU5ESUFOX18pIHx8IGRlZmluZWQoX0JJR19FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VO
RElBTiAxCisjZWxpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKSB8fCBkZWZpbmVkKF9MSVRU
TEVfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMAorI2VsaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TMzkwIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCB8fCBkZWZpbmVkKF9f
czM5MF9fKSB8fCBkZWZpbmVkKF9fczM5MHhfXykKKyAgICAvKiBUaGVzZSBwbGF0Zm9ybXMgZG8g
bm90IGFwcGVhciB0byBwcmVkZWZpbmUgYW55IGVuZGlhbm5lc3MgbWFjcm9zLiAqLworIyAgIGRl
ZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChfUEFfUklTQzFfMCkgfHwgZGVm
aW5lZChfUEFfUklTQzFfMSkgfHwgZGVmaW5lZChfUEFfUklTQzJfMCkKKyAgICAvKiBIUFBBIGRv
IG5vdCBhcHBlYXIgdG8gcHJlZGVmaW5lIGFueSBlbmRpYW5uZXNzIG1hY3Jvcy4gKi8KKyMgICBk
ZWZpbmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoc3BhcmMpIHx8IGRlZmluZWQo
X19zcGFyYykgfHwgZGVmaW5lZChfX3NwYXJjX18pCisgICAgLyogU29tZSBzcGFyYyBiYXNlZCBz
eXN0ZW1zIChlLmcuIExpbnV4KSBkbyBub3QgcHJlZGVmaW5lIGFueSBlbmRpYW5uZXNzIG1hY3Jv
cy4gKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbHNlCisjICAgZGVmaW5lIFVf
SVNfQklHX0VORElBTiAwCiAjZW5kaWYKIAotLyogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gZGlzYWJs
ZSByZW5hbWluZyBvciBub3QuIFRoaXMgb3ZlcnJpZGVzIHRoZQotICAgc2V0dGluZyBpbiB1bWFj
aGluZS5oIHdoaWNoIGlzIGZvciBhbGwgcGxhdGZvcm1zLiAqLwotI2lmbmRlZiBVX0RJU0FCTEVf
UkVOQU1JTkcKLSNkZWZpbmUgVV9ESVNBQkxFX1JFTkFNSU5HIDEKKy8qKgorICogXGRlZiBVX0hB
VkVfUExBQ0VNRU5UX05FVworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIG92ZXJyaWRlIHBsYWNl
bWVudCBuZXcgYW5kIGRlbGV0ZSBmb3IgU1RMLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KKyNp
ZmRlZiBVX0hBVkVfUExBQ0VNRU5UX05FVworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgIGRlZmluZSBVX0hBVkVfUExB
Q0VNRU5UX05FVyAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfUExBQ0VNRU5UX05FVyAxCiAj
ZW5kaWYKIAotLyogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gb3ZlcnJpZGUgbmV3IGFuZCBkZWxldGUu
ICovCi0jaWZuZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04KLSNkZWZpbmUgVV9PVkVSUklE
RV9DWFhfQUxMT0NBVElPTiAxCi0jZW5kaWYKLS8qIERldGVybWluZSB3aGV0aGVyIHRvIG92ZXJy
aWRlIHBsYWNlbWVudCBuZXcgYW5kIGRlbGV0ZSBmb3IgU1RMLiAqLwotI2lmbmRlZiBVX0hBVkVf
UExBQ0VNRU5UX05FVwotI2RlZmluZSBVX0hBVkVfUExBQ0VNRU5UX05FVyAxCisvKioKKyAqIFxk
ZWYgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAKKyAqIERlZmluZSB0aGlzIHRvIGRlZmluZSB0
aGUgTUZDIGRlYnVnIHZlcnNpb24gb2YgdGhlIG9wZXJhdG9yIG5ldy4KKyAqCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworI2lmZGVmIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcKKyAgICAvKiBV
c2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAg
IGRlZmluZSBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIDEKKyNlbHNlCisjICAgZGVmaW5lIFVf
SEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAogI2VuZGlmCiAKLS8qIERldGVybWluZSB3aGV0aGVy
IHRvIGVuYWJsZSB0cmFjaW5nLiAqLwotI2lmbmRlZiBVX0VOQUJMRV9UUkFDSU5HCi0jZGVmaW5l
IFVfRU5BQkxFX1RSQUNJTkcgMQorLyogQ29tcGF0aWJpbGl0eSB3aXRoIG5vbiBjbGFuZyBjb21w
aWxlcnMgKi8KKyNpZm5kZWYgX19oYXNfYXR0cmlidXRlCisjICAgIGRlZmluZSBfX2hhc19hdHRy
aWJ1dGUoeCkgMAogI2VuZGlmCiAKIC8qKgotICogV2hldGhlciB0byBlbmFibGUgRHluYW1pYyBs
b2FkaW5nIGluIElDVQorICogXGRlZiBVX01BTExPQ19BVFRSCisgKiBBdHRyaWJ1dGUgdG8gbWFy
ayBmdW5jdGlvbnMgYXMgbWFsbG9jLWxpa2UKICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVf
RU5BQkxFX0RZTE9BRAotI2RlZmluZSBVX0VOQUJMRV9EWUxPQUQgMQorI2lmIGRlZmluZWQoX19H
TlVDX18pICYmIF9fR05VQ19fPj0zCisjICAgIGRlZmluZSBVX01BTExPQ19BVFRSIF9fYXR0cmli
dXRlX18gKChfX21hbGxvY19fKSkKKyNlbHNlCisjICAgIGRlZmluZSBVX01BTExPQ19BVFRSCiAj
ZW5kaWYKIAogLyoqCi0gKiBXaGV0aGVyIHRvIHRlc3QgRHluYW1pYyBsb2FkaW5nIGFzIGFuIE9T
IGNhcGFiaWx0eQorICogXGRlZiBVX0FMTE9DX1NJWkVfQVRUUgorICogQXR0cmlidXRlIHRvIHNw
ZWNpZnkgdGhlIHNpemUgb2YgdGhlIGFsbG9jYXRlZCBidWZmZXIgZm9yIG1hbGxvYy1saWtlIGZ1
bmN0aW9ucwogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9DSEVDS19EWUxPQUQKLSNkZWZp
bmUgVV9DSEVDS19EWUxPQUQgMQotI2VuZGlmCi0KLQotLyoqIERvIHdlIGFsbG93IElDVSB1c2Vy
cyB0byB1c2UgdGhlIGRyYWZ0IEFQSXMgYnkgZGVmYXVsdD8gKi8KLSNpZm5kZWYgVV9ERUZBVUxU
X1NIT1dfRFJBRlQKLSNkZWZpbmUgVV9ERUZBVUxUX1NIT1dfRFJBRlQgMQorI2lmIChkZWZpbmVk
KF9fR05VQ19fKSAmJiAoX19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19N
SU5PUl9fID49IDMpKSkgfHwgX19oYXNfYXR0cmlidXRlKGFsbG9jX3NpemUpCisjICAgZGVmaW5l
IFVfQUxMT0NfU0laRV9BVFRSKFgpIF9fYXR0cmlidXRlX18gKChhbGxvY19zaXplKFgpKSkKKyMg
ICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIyKFgsWSkgX19hdHRyaWJ1dGVfXyAoKGFsbG9jX3Np
emUoWCxZKSkpCisjZWxzZQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUihYKQorIyAgIGRl
ZmluZSBVX0FMTE9DX1NJWkVfQVRUUjIoWCxZKQogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCi0vKiogQHsgQ2hhcmFjdGVyIGRhdGEgdHlwZXMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IENo
YXJhY3RlciBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgKChkZWZpbmVkKE9T
MzkwKSAmJiAoIWRlZmluZWQoX19DSEFSU0VUX0xJQikgfHwgIV9fQ0hBUlNFVF9MSUIpKSkgfHwg
ZGVmaW5lZChPUzQwMCkKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSAxCisvKioKKyAqIFVf
Q0hBUlNFVF9GQU1JTFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBp
cyBhbiBBU0NJSSBiYXNlZCBwbGF0Zm9ybS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisjZGVm
aW5lIFVfQVNDSUlfRkFNSUxZIDAKKworLyoqCisgKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFs
IHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gRUJDRElDIGJhc2VkIHBsYXRm
b3JtLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyNkZWZpbmUgVV9FQkNESUNfRkFNSUxZIDEK
KworLyoqCisgKiBcZGVmIFVfQ0hBUlNFVF9GQU1JTFkKKyAqCisgKiA8cD5UaGVzZSBkZWZpbml0
aW9ucyBhbGxvdyB0byBzcGVjaWZ5IHRoZSBlbmNvZGluZyBvZiB0ZXh0CisgKiBpbiB0aGUgY2hh
ciBkYXRhIHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgcGxhdGZvcm0gYW5kIHRoZSBjb21waWxlci4K
KyAqIEl0IGlzIGVub3VnaCB0byBkZXRlcm1pbmUgdGhlIGNvZGUgcG9pbnQgdmFsdWVzIG9mICJp
bnZhcmlhbnQgY2hhcmFjdGVycyIsCisgKiB3aGljaCBhcmUgdGhlIG9uZXMgc2hhcmVkIGJ5IGFs
bCBlbmNvZGluZ3MgdGhhdCBhcmUgaW4gdXNlCisgKiBvbiBhIGdpdmVuIHBsYXRmb3JtLjwvcD4K
KyAqCisgKiA8cD5UaG9zZSAiaW52YXJpYW50IGNoYXJhY3RlcnMiIHNob3VsZCBiZSBhbGwgdGhl
IHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlCisgKiBsYXRpbiBsZXR0ZXJzLCB0aGUgZGlnaXRzLCB0
aGUgc3BhY2UsIGFuZCAiYmFzaWMgcHVuY3R1YXRpb24iLgorICogQWxzbywgJ1xcbicsICdcXHIn
LCAnXFx0JyBzaG91bGQgYmUgYXZhaWxhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgbGlzdCBvZiAi
aW52YXJpYW50IGNoYXJhY3RlcnMiIGlzOjxicj4KKyAqIFxjb2RlCisgKiAgICBBLVogIGEteiAg
MC05ICBTUEFDRSAgIiAgJSAgJmFtcDsgICcgICggICkgICogICsgICwgIC0gIC4gIC8gIDogIDsg
IDwgID0gID4gID8gIF8KKyAqIFxlbmRjb2RlCisgKiA8YnI+CisgKiAoNTIgbGV0dGVycyArIDEw
IG51bWJlcnMgKyAyMCBwdW5jL3N5bS9zcGFjZSA9IDgyIHRvdGFsKTwvcD4KKyAqCisgKiA8cD5U
aGlzIG1hdGNoZXMgdGhlIElCTSBTeW50YWN0aWMgQ2hhcmFjdGVyIFNldCAoQ1MgNjQwKS48L3A+
CisgKgorICogPHA+SW4gb3RoZXIgd29yZHMsIGFsbCB0aGUgZ3JhcGhpYyBjaGFyYWN0ZXJzIGlu
IDctYml0IEFTQ0lJIHNob3VsZAorICogYmUgc2FmZWx5IGFjY2Vzc2libGUgZXhjZXB0IHRoZSBm
b2xsb3dpbmc6PC9wPgorICoKKyAqIFxjb2RlCisgKiAgICAnXCcgPGJhY2tzbGFzaD4KKyAqICAg
ICdbJyA8bGVmdCBicmFja2V0PgorICogICAgJ10nIDxyaWdodCBicmFja2V0PgorICogICAgJ3sn
IDxsZWZ0IGJyYWNlPgorICogICAgJ30nIDxyaWdodCBicmFjZT4KKyAqICAgICdeJyA8Y2lyY3Vt
ZmxleD4KKyAqICAgICd+JyA8dGlsZGU+CisgKiAgICAnIScgPGV4Y2xhbWF0aW9uIG1hcms+Cisg
KiAgICAnIycgPG51bWJlciBzaWduPgorICogICAgJ3wnIDx2ZXJ0aWNhbCBsaW5lPgorICogICAg
JyQnIDxkb2xsYXIgc2lnbj4KKyAqICAgICdAJyA8Y29tbWVyY2lhbCBhdD4KKyAqICAgICdgJyA8
Z3JhdmUgYWNjZW50PgorICogXGVuZGNvZGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisjaWZk
ZWYgVV9DSEFSU0VUX0ZBTUlMWQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiAoIWRlZmluZWQoX19DSEFSU0VUX0xJ
QikgfHwgIV9fQ0hBUlNFVF9MSUIpCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgVV9FQkNE
SUNfRkFNSUxZCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAgJiYgIWRlZmluZWQoX19V
VEYzMl9fKQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfRUJDRElDX0ZBTUlMWQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSBVX0FTQ0lJX0ZBTUlMWQorI2VuZGlmCisK
Ky8qKgorICogXGRlZiBVX0NIQVJTRVRfSVNfVVRGOAorICoKKyAqIEhhcmRjb2RlIHRoZSBkZWZh
dWx0IGNoYXJzZXQgdG8gVVRGLTguCisgKgorICogSWYgdGhpcyBpcyBzZXQgdG8gMSwgdGhlbgor
ICogLSBJQ1Ugd2lsbCBhc3N1bWUgdGhhdCBhbGwgbm9uLWludmFyaWFudCBjaGFyKiwgU3RyaW5n
UGllY2UsIHN0ZDo6c3RyaW5nIGV0Yy4KKyAqICAgY29udGFpbiBVVEYtOCB0ZXh0LCByZWdhcmRs
ZXNzIG9mIHdoYXQgdGhlIHN5c3RlbSBBUEkgdXNlcworICogLSBzb21lIElDVSBjb2RlIHdpbGwg
dXNlIGZhc3QgZnVuY3Rpb25zIGxpa2UgdV9zdHJGcm9tVVRGOCgpCisgKiAgIHJhdGhlciB0aGFu
IHRoZSBtb3JlIGdlbmVyYWwgYW5kIG1vcmUgaGVhdnktd2VpZ2h0IGNvbnZlcnNpb24gQVBJICh1
Y252LmgpCisgKiAtIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBhbHdheXMgcmV0dXJucyAiVVRGLTgi
CisgKiAtIHVjbnZfc2V0RGVmYXVsdE5hbWUoKSBpcyBkaXNhYmxlZCBhbmQgd2lsbCBub3QgY2hh
bmdlIHRoZSBkZWZhdWx0IGNoYXJzZXQKKyAqIC0gc3RhdGljIGJ1aWxkcyBvZiBJQ1UgYXJlIHNt
YWxsZXIKKyAqIC0gbW9yZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSB3aXRoIHRoZSBVQ09O
RklHX05PX0NPTlZFUlNJT04gYnVpbGQtdGltZQorICogICBjb25maWd1cmF0aW9uIG9wdGlvbiAo
c2VlIHVuaWNvZGUvdWNvbmZpZy5oKQorICogLSB0aGUgVUNPTkZJR19OT19DT05WRVJTSU9OIGJ1
aWxkIG9wdGlvbiBpbiB1Y29uZmlnLmggaXMgbW9yZSB1c2FibGUKKyAqCisgKiBAc3RhYmxlIElD
VSA0LjIKKyAqIEBzZWUgVUNPTkZJR19OT19DT05WRVJTSU9OCisgKi8KKyNpZmRlZiBVX0NIQVJT
RVRfSVNfVVRGOAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9BTkRST0lEIHx8IFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VECisj
ICAgZGVmaW5lIFVfQ0hBUlNFVF9JU19VVEY4IDEKKyNlbHNlCisjICAgZGVmaW5lIFVfQ0hBUlNF
VF9JU19VVEY4IDAKICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LwotLyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IHdjaGFyIHN1cHBvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBJbmZvcm1hdGlvbiBhYm91dCB3
Y2hhciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KIAotI2lmbmRlZiBVX0hBVkVfV0NIQVJfSAotI2RlZmluZSBV
X0hBVkVfV0NIQVJfSCAgICAgIDEKKy8qKgorICogXGRlZiBVX0hBVkVfV0NIQVJfSAorICogSW5k
aWNhdGVzIHdoZXRoZXIgPHdjaGFyLmg+IGlzIGF2YWlsYWJsZSAoMSkgb3Igbm90ICgwKS4gU2V0
IHRvIDEgYnkgZGVmYXVsdC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lmZGVmIFVf
SEFWRV9XQ0hBUl9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
VV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgJiYgX19BTkRST0lEX0FQSV9fIDwgOQorICAgIC8q
CisgICAgICogQW5kcm9pZCBiZWZvcmUgR2luZ2VyYnJlYWQgKEFuZHJvaWQgMi4zLCBBUEkgbGV2
ZWwgOSkgZGlkIG5vdCBzdXBwb3J0IHdjaGFyX3QuCisgICAgICogVGhlIHR5cGUgYW5kIGhlYWRl
ciBleGlzdGVkLCBidXQgdGhlIGxpYnJhcnkgZnVuY3Rpb25zIGRpZCBub3Qgd29yayBhcyBleHBl
Y3RlZC4KKyAgICAgKiBUaGUgc2l6ZSBvZiB3Y2hhcl90IHdhcyAxIGJ1dCBMInh5eiIgc3RyaW5n
IGxpdGVyYWxzIGhhZCAzMi1iaXQgdW5pdHMgYW55d2F5LgorICAgICAqLworIyAgIGRlZmluZSBV
X0hBVkVfV0NIQVJfSCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfV0NIQVJfSCAxCiAjZW5k
aWYKIAotI2lmbmRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0jZGVmaW5lIFVfU0laRU9GX1dDSEFSX1Qg
ICAgNAorLyoqCisgKiBcZGVmIFVfU0laRU9GX1dDSEFSX1QKKyAqIFVfU0laRU9GX1dDSEFSX1Q9
PXNpemVvZih3Y2hhcl90KQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisjaWZkZWYgVV9T
SVpFT0ZfV0NIQVJfVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlm
IChVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCAmJiBfX0FORFJPSURfQVBJX18gPCA5KSB8fCBV
X1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUworICAgIC8qCisgICAgICogQ2xhc3NpYyBN
YWMgT1MgYW5kIE1hYyBPUyBYIGJlZm9yZSAxMC4zIChQYW50aGVyKSBkaWQgbm90IHN1cHBvcnQg
d2NoYXJfdCBvciB3c3RyaW5nLgorICAgICAqIE5ld2VyIE1hYyBPUyBYIGhhcyBzaXplIDQuCisg
ICAgICovCisjICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMQorI2VsaWYgVV9QTEFURk9STV9I
QVNfV0lOMzJfQVBJIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DWUdXSU4KKyMgICBkZWZpbmUgVV9T
SVpFT0ZfV0NIQVJfVCAyCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYCisgICAgLyoKKyAg
ICAgKiBBSVggNi4xIGluZm9ybWF0aW9uLCBzZWN0aW9uICJXaWRlIGNoYXJhY3RlciBkYXRhIHJl
cHJlc2VudGF0aW9uIjoKKyAgICAgKiAiLi4uIHRoZSB3Y2hhcl90IGRhdGF0eXBlIGlzIDMyLWJp
dCBpbiB0aGUgNjQtYml0IGVudmlyb25tZW50IGFuZAorICAgICAqIDE2LWJpdCBpbiB0aGUgMzIt
Yml0IGVudmlyb25tZW50LiIKKyAgICAgKiBhbmQKKyAgICAgKiAiQWxsIGxvY2FsZXMgdXNlIFVu
aWNvZGUgZm9yIHRoZWlyIHdpZGUgY2hhcmFjdGVyIGNvZGUgdmFsdWVzIChwcm9jZXNzIGNvZGUp
LAorICAgICAqIGV4Y2VwdCB0aGUgSUJNLWV1Y1RXIGNvZGVzZXQuIgorICAgICAqLworIyAgIGlm
ZGVmIF9fNjRCSVRfXworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CisjICAgZWxz
ZQorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzM5MAorICAgIC8qCisgICAgICogei9PUyBWMVIxMSBpbmZvcm1h
dGlvbiBjZW50ZXIsIHNlY3Rpb24gIkxQNjQgfCBJTFAzMiI6CisgICAgICogIkluIDMxLWJpdCBt
b2RlLCB0aGUgc2l6ZSBvZiBsb25nIGFuZCBwb2ludGVycyBpcyA0IGJ5dGVzIGFuZCB0aGUgc2l6
ZSBvZiB3Y2hhcl90IGlzIDIgYnl0ZXMuCisgICAgICogVW5kZXIgTFA2NCwgdGhlIHNpemUgb2Yg
bG9uZyBhbmQgcG9pbnRlciBpcyA4IGJ5dGVzIGFuZCB0aGUgc2l6ZSBvZiB3Y2hhcl90IGlzIDQg
Ynl0ZXMuIgorICAgICAqLworIyAgIGlmZGVmIF9MUDY0CisjICAgICAgIGRlZmluZSBVX1NJWkVP
Rl9XQ0hBUl9UIDQKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIK
KyMgICBlbmRpZgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisjICAgaWYgZGVmaW5l
ZChfX1VURjMyX18pCisgICAgICAgIC8qCisgICAgICAgICAqIExPQ0FMRVRZUEUoKkxPQ0FMRVVU
RikgaXMgc3BlY2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBp
biBVVEYtMzIsCisgICAgICAgICAqIG5hcnJvdy1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gVVRG
LTguCisgICAgICAgICAqLworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CisjICAg
ZWxpZiBkZWZpbmVkKF9fVUNTMl9fKQorICAgICAgICAvKgorICAgICAgICAgKiBMT0NBTEVUWVBF
KCpMT0NBTEVVQ1MyKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFjdGVyIHN0
cmluZ3MgYXJlIGluIFVDUy0yLAorICAgICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3Mg
YXJlIGluIEVCQ0RJQy4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hB
Ul9UIDIKKyNlbHNlCisgICAgICAgIC8qCisgICAgICAgICAqIExPQ0FMRVRZUEUoKkNMRCkgb3Ig
TE9DQUxFVFlQRSgqTE9DQUxFKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFj
dGVyIHN0cmluZ3MgYXJlIGluIDE2LWJpdCBFQkNESUMsCisgICAgICAgICAqIG5hcnJvdy1jaGFy
YWN0ZXIgc3RyaW5ncyBhcmUgaW4gRUJDRElDLgorICAgICAgICAgKi8KKyMgICAgICAgZGVmaW5l
IFVfU0laRU9GX1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxzZQorIyAgIGRlZmluZSBVX1NJWkVP
Rl9XQ0hBUl9UIDQKICNlbmRpZgogCiAjaWZuZGVmIFVfSEFWRV9XQ1NDUFkKLSNkZWZpbmUgVV9I
QVZFX1dDU0NQWSAgICAgICAxCisjZGVmaW5lIFVfSEFWRV9XQ1NDUFkgVV9IQVZFX1dDSEFSX0gK
ICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyoqCisgKiBcZGVmIFVfSEFWRV9DSEFSMTZfVAorICog
RGVmaW5lcyB3aGV0aGVyIHRoZSBjaGFyMTZfdCB0eXBlIGlzIGF2YWlsYWJsZSBmb3IgVVRGLTE2
CisgKiBhbmQgdSJhYmMiIFVURi0xNiBzdHJpbmcgbGl0ZXJhbHMgYXJlIHN1cHBvcnRlZC4KKyAq
IFRoaXMgaXMgYSBuZXcgc3RhbmRhcmQgdHlwZSBhbmQgc3RhbmRhcmQgc3RyaW5nIGxpdGVyYWwg
c3ludGF4IGluIEMrKzB4CisgKiBidXQgaGFzIGJlZW4gYXZhaWxhYmxlIGluIHNvbWUgY29tcGls
ZXJzIGJlZm9yZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0NIQVIxNl9UCisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2Vsc2UKKyAgICAvKgorICAgICAq
IE5vdGVzOgorICAgICAqIFZpc3VhbCBTdHVkaW8gMTAgKF9NU0NfVkVSPj0xNjAwKSBkZWZpbmVz
IGNoYXIxNl90IGJ1dAorICAgICAqIGRvZXMgbm90IHN1cHBvcnQgdSJhYmMiIHN0cmluZyBsaXRl
cmFscy4KKyAgICAgKiBnY2MgNC40IGRlZmluZXMgdGhlIF9fQ0hBUjE2X1RZUEVfXyBtYWNybyB0
byBhIHVzYWJsZSB0eXBlIGJ1dAorICAgICAqIGRvZXMgbm90IHN1cHBvcnQgdSJhYmMiIHN0cmlu
ZyBsaXRlcmFscy4KKyAgICAgKiBDKysxMSBhbmQgQzExIHJlcXVpcmUgc3VwcG9ydCBmb3IgVVRG
LTE2IGxpdGVyYWxzCisgICAgICovCisjICAgaWYgKGRlZmluZWQoX19jcGx1c3BsdXMpICYmIF9f
Y3BsdXNwbHVzID49IDIwMTEwM0wpIHx8IChkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pICYmIF9f
U1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTCkKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9DSEFSMTZf
VCAxCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9IQVZFX0NIQVIxNl9UIDAKKyMgICBlbmRp
ZgorI2VuZGlmCisKKy8qKgogICogQHsKICAqIFxkZWYgVV9ERUNMQVJFX1VURjE2Ci0gKiBEbyBu
b3QgdXNlIHRoaXMgbWFjcm8uIFVzZSB0aGUgVU5JQ09ERV9TVFJJTkcgb3IgVV9TVFJJTkdfREVD
TCBtYWNyb3MKLSAqIGluc3RlYWQuCi0gKiBAaW50ZXJuYWwKLSAqCi0gKiBcZGVmIFVfR05VQ19V
VEYxNl9TVFJJTkcKKyAqIERvIG5vdCB1c2UgdGhpcyBtYWNybyBiZWNhdXNlIGl0IGlzIG5vdCBk
ZWZpbmVkIG9uIGFsbCBwbGF0Zm9ybXMuCisgKiBVc2UgdGhlIFVOSUNPREVfU1RSSU5HIG9yIFVf
U1RSSU5HX0RFQ0wgbWFjcm9zIGluc3RlYWQuCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBV
X0dOVUNfVVRGMTZfU1RSSU5HCi0jZGVmaW5lIFVfR05VQ19VVEYxNl9TVFJJTkcgMAotI2VuZGlm
Ci0jaWYgMSB8fCBkZWZpbmVkKFVfQ0hFQ0tfVVRGMTZfU1RSSU5HKQotI2lmIChkZWZpbmVkKF9f
eGxDX18pICYmIGRlZmluZWQoX19JQk1fVVRGX0xJVEVSQUwpICYmIFVfU0laRU9GX1dDSEFSX1Qg
IT0gMikgXAorI2lmZGVmIFVfREVDTEFSRV9VVEYxNgorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5l
ZCB2YWx1ZS4gKi8KKyNlbGlmIFVfSEFWRV9DSEFSMTZfVCBcCisgICAgfHwgKGRlZmluZWQoX194
bENfXykgJiYgZGVmaW5lZChfX0lCTV9VVEZfTElURVJBTCkgJiYgVV9TSVpFT0ZfV0NIQVJfVCAh
PSAyKSBcCiAgICAgfHwgKGRlZmluZWQoX19IUF9hQ0MpICYmIF9fSFBfYUNDID49IDAzNTAwMCkg
XAotICAgIHx8IChkZWZpbmVkKF9fSFBfY2MpICYmIF9fSFBfY2MgPj0gMTExMTA2KSBcCi0gICAg
fHwgVV9HTlVDX1VURjE2X1NUUklORwotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSB1
ICMjIHN0cmluZwotI2VsaWYgKGRlZmluZWQoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDID49
IDB4NTUwKQotLyogfHwgKGRlZmluZWQoX19TVU5QUk9fQykgJiYgX19TVU5QUk9fQyA+PSAweDU4
MCkgKi8KLS8qIFN1bidzIEMgY29tcGlsZXIgaGFzIGlzc3VlcyB3aXRoIHRoaXMgbm90YXRpb24s
IGFuZCBpdCdzIHVucmVsaWFibGUuICovCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcp
IFUgIyMgc3RyaW5nCisgICAgfHwgKGRlZmluZWQoX19IUF9jYykgJiYgX19IUF9jYyA+PSAxMTEx
MDYpCisjICAgZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIHUgIyMgc3RyaW5nCiAjZWxp
ZiBVX1NJWkVPRl9XQ0hBUl9UID09IDIgXAotICAgICYmIChVX0NIQVJTRVRfRkFNSUxZID09IDAg
fHwgKChkZWZpbmVkKE9TMzkwKSB8fCBkZWZpbmVkKE9TNDAwKSkgJiYgZGVmaW5lZChfX1VDUzJf
XykpKQotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBMICMjIHN0cmluZwotI2VuZGlm
Ci0jZW5kaWYKLQotLyoqIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBJ
bmZvcm1hdGlvbiBhYm91dCBQT1NJWCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KLSNpZm5kZWYgVV9I
QVZFX05MX0xBTkdJTkZPX0NPREVTRVQKLSNkZWZpbmUgVV9IQVZFX05MX0xBTkdJTkZPX0NPREVT
RVQgIDEKLSNlbmRpZgotCi0jaWZuZGVmIFVfTkxfTEFOR0lORk9fQ09ERVNFVAotI2RlZmluZSBV
X05MX0xBTkdJTkZPX0NPREVTRVQgICAgICAgQ09ERVNFVAotI2VuZGlmCi0KLSNpZiAxCi0jZGVm
aW5lIFVfVFpTRVQgICAgICAgICB0enNldAotI2VuZGlmCi0jaWYgMAotI2RlZmluZSBVX1RJTUVa
T05FICAgICAgdGltZXpvbmUKLSNlbmRpZgotI2lmIDEKLSNkZWZpbmUgVV9UWk5BTUUgICAgICAg
IHR6bmFtZQorICAgICYmIChVX0NIQVJTRVRfRkFNSUxZID09IDAgfHwgKFVfUEZfT1MzOTAgPD0g
VV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfT1M0MDAgJiYgZGVmaW5lZChfX1VDUzJf
XykpKQorIyAgIGRlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBMICMjIHN0cmluZworI2Vs
c2UKKyAgICAvKiBMZWF2ZSBVX0RFQ0xBUkVfVVRGMTYgdW5kZWZpbmVkLiBTZWUgdW5pc3RyLmgu
ICovCiAjZW5kaWYKIAotI2RlZmluZSBVX0hBVkVfTU1BUCAgICAgMQotI2RlZmluZSBVX0hBVkVf
UE9QRU4gICAgMQotCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7
IFN5bWJvbCBpbXBvcnQtZXhwb3J0IGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBTeW1ib2wgaW1wb3J0LWV4cG9ydCBjb250cm9s
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ki8KIAotI2lmIDEKLSNkZWZpbmUgVV9FWFBPUlQgX19hdHRyaWJ1dGVfXygodmlz
aWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNpZmRlZiBVX0VYUE9SVAorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5UQVRJT04p
CisjICAgZGVmaW5lIFVfRVhQT1JUCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorIyAgIGRlZmlu
ZSBVX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQogI2VsaWYg
KGRlZmluZWQoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDID49IDB4NTUwKSBcCiAgICB8fCAo
ZGVmaW5lZChfX1NVTlBST19DKSAmJiBfX1NVTlBST19DID49IDB4NTUwKSAKLSNkZWZpbmUgVV9F
WFBPUlQgX19nbG9iYWwKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19nbG9iYWwKIC8qI2VsaWYgZGVm
aW5lZChfX0hQX2FDQykgfHwgZGVmaW5lZChfX0hQX2NjKQotI2RlZmluZSBVX0VYUE9SVCBfX2Rl
Y2xzcGVjKGRsbGV4cG9ydCkqLworIyAgIGRlZmluZSBVX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4
cG9ydCkqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19k
ZWNsc3BlYyhkbGxleHBvcnQpCiAjZWxzZQotI2RlZmluZSBVX0VYUE9SVAorIyAgIGRlZmluZSBV
X0VYUE9SVAogI2VuZGlmCiAKIC8qIFVfQ0FMTENPTlYgaXMgcmVsZWF0ZWQgdG8gVV9FWFBPUlQy
ICovCi0jZGVmaW5lIFVfRVhQT1JUMgotCi0vKiBjeWd3aW4gbmVlZHMgdG8gZXhwb3J0L2ltcG9y
dCBkYXRhICovCi0jaWYgZGVmaW5lZChVX0NZR1dJTikgJiYgIWRlZmluZWQoX19HTlVDX18pCi0j
ZGVmaW5lIFVfSU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2lmZGVmIFVfRVhQT1JUMgor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX01TQ19W
RVIpCisjICAgZGVmaW5lIFVfRVhQT1JUMiBfX2NkZWNsCiAjZWxzZQotI2RlZmluZSBVX0lNUE9S
VCAKLSNlbmRpZgotCi0vKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsg
Q29kZSBhbGlnbm1lbnQgYW5kIEMgZnVuY3Rpb24gaW5saW5pbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZuZGVmIFVf
SU5MSU5FCi0jICAgaWZkZWYgX19jcGx1c3BsdXMKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIGlu
bGluZQotIyAgIGVsc2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIF9faW5saW5lX18KLSMgICBl
bmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgVV9BTElHTl9DT0RFCi0jZGVmaW5lIFVfQUxJR05fQ09E
RShuKSAKKyMgICBkZWZpbmUgVV9FWFBPUlQyCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KLS8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBHQ0MgYnVpbHQgaW4gZnVuY3Rpb25zIGZvciBhdG9t
aWMgbWVtb3J5IG9wZXJhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCi0KLS8qKgotICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKLSAqIEBpbnRl
cm5hbAotICovCi0jaWZuZGVmIFVfSEFWRV9HQ0NfQVRPTUlDUwotI2RlZmluZSBVX0hBVkVfR0ND
X0FUT01JQ1MgMQorI2lmZGVmIFVfSU1QT1JUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyAgICAvKiBXaW5kb3dzIG5lZWRzIHRv
IGV4cG9ydC9pbXBvcnQgZGF0YS4gKi8KKyMgICBkZWZpbmUgVV9JTVBPUlQgX19kZWNsc3BlYyhk
bGxpbXBvcnQpCisjZWxzZQorIyAgIGRlZmluZSBVX0lNUE9SVCAKICNlbmRpZgogCi0vKiogQH0g
Ki8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IFByb2dyYW1zIHVzZWQgYnkgSUNV
IGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
LS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLQogLyoqCi0gKiBcZGVmIFVfTUFLRQotICogV2hhdCBw
cm9ncmFtIHRvIGV4ZWN1dGUgdG8gcnVuICdtYWtlJworICogXGRlZiBVX0NBTExDT05WCisgKiBT
aW1pbGFyIHRvIFVfQ0RFQ0xfQkVHSU4vVV9DREVDTF9FTkQsIHRoaXMgcXVhbGlmaWVyIGlzIG5l
Y2Vzc2FyeQorICogaW4gY2FsbGJhY2sgZnVuY3Rpb24gdHlwZWRlZnMgdG8gbWFrZSBzdXJlIHRo
YXQgdGhlIGNhbGxpbmcgY29udmVudGlvbgorICogaXMgY29tcGF0aWJsZS4KKyAqCisgKiBUaGlz
IGlzIG9ubHkgdXNlZCBmb3Igbm9uLUlDVS1BUEkgZnVuY3Rpb25zLgorICogV2hlbiBhIGZ1bmN0
aW9uIGlzIGEgcHVibGljIElDVSBBUEksCisgKiB5b3UgbXVzdCB1c2UgdGhlIFVfQ0FQSSBhbmQg
VV9FWFBPUlQyIHF1YWxpZmllcnMuCisgKiBAc3RhYmxlIElDVSAyLjAKICAqLwotI2lmbmRlZiBV
X01BS0UKLSNkZWZpbmUgVV9NQUtFICAiL3Vzci9iaW4vZ251bWFrZSIKKyNpZiBVX1BMQVRGT1JN
ID09IFVfUEZfT1MzOTAgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyMgICAgZGVmaW5lIFVfQ0FM
TENPTlYgX19jZGVjbAorI2Vsc2UKKyMgICAgZGVmaW5lIFVfQ0FMTENPTlYgVV9FWFBPUlQyCiAj
ZW5kaWYKIAotLyoqIEB9ICovCi0KLSNlbmRpZiAvKiBDWUdXSU5NU1ZDICovCi0KLS8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KLS8qIEN1c3RvbSBpY3UgZW50cnkgcG9pbnQgcmVuYW1pbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCi0KLS8qKgotICogRGVmaW5lIHRoZSBsaWJyYXJ5IHN1ZmZpeCB3aXRoIEMg
c3ludGF4LgotICogQGludGVybmFsCi0gKi8KLSMgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUUg
Ci0vKioKLSAqIERlZmluZSB0aGUgbGlicmFyeSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0aCBDIHN5
bnRheAotICogQGludGVybmFsCi0gKi8KLSMgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUVfU1RS
SU5HICIiCi0vKioKLSAqIDEgaWYgYSBjdXN0b20gbGlicmFyeSBzdWZmaXggaXMgc2V0Ci0gKiBA
aW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9IQVZFX0xJQl9TVUZGSVggMAotCi0jaWYgVV9IQVZF
X0xJQl9TVUZGSVgKLSMgaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQotLyogUmVuYW1p
bmcgcGF0dGVybjogICAgdV9zdHJjcHlfNDFfc3VmZml4ICovCi0jICBkZWZpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHgpICAgIHggIyMgXyAjIyA0NiAjIyAKLSMgIGRlZmluZSBVX0RFRl9J
Q1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikgaWN1ZHQjIyMjbWFqb3IjI21pbm9yIyNf
ZGF0Ci0KLSMgZW5kaWYKLSNlbmRpZgorLyogQH0gKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wdHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3B0eXBlcy5oCmluZGV4IDFmMzRkMmY4NGU0MTBlZjc5MzBhNjZlZjZlNzRjYjY0YmNi
YzU4MWQuLmI3ZjcxMTYwMzI4MmMzNmM3MzIyMjBlN2E5NmM5MTMzZGQwMjUwZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3B0eXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ljdS91bmljb2RlL3B0eXBlcy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTIsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTcsNDAgKzE3
LDY5IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICovCiAKKy8qKgorICogXGZpbGUKKyAqIFxi
cmllZiBDIEFQSTogRGVmaW5pdGlvbnMgb2YgaW50ZWdlciB0eXBlcyBvZiB2YXJpb3VzIHdpZHRo
cworICovCisKICNpZm5kZWYgX1BUWVBFU19ICiAjZGVmaW5lIF9QVFlQRVNfSAogCi0jaW5jbHVk
ZSA8c3lzL3R5cGVzLmg+CisvKioKKyAqIFxkZWYgX19TVERDX0xJTUlUX01BQ1JPUworICogQWNj
b3JkaW5nIHRvIHRoZSBMaW51eCBzdGRpbnQuaCwgdGhlIElTTyBDOTkgc3RhbmRhcmQgc3BlY2lm
aWVzIHRoYXQgaW4gQysrIGltcGxlbWVudGF0aW9ucworICogbWFjcm9zIGxpa2UgSU5UMzJfTUlO
IGFuZCBVSU5UUFRSX01BWCBzaG91bGQgb25seSBiZSBkZWZpbmVkIGlmIGV4cGxpY2l0bHkgcmVx
dWVzdGVkLgorICogV2UgbmVlZCB0byBkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUyBiZWZvcmUg
aW5jbHVkaW5nIHN0ZGludC5oIGluIEMrKyBjb2RlCisgKiB0aGF0IHVzZXMgc3VjaCBsaW1pdCBt
YWNyb3MuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisj
ZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKKyNlbmRpZgorCisvKiBOVUxMLCBzaXplX3QsIHdj
aGFyX3QgKi8KKyNpbmNsdWRlIDxzdGRkZWYuaD4KIAorLyoKKyAqIElmIGFsbCBjb21waWxlcnMg
cHJvdmlkZWQgYWxsIG9mIHRoZSBDOTkgaGVhZGVycyBhbmQgdHlwZXMsCisgKiB3ZSB3b3VsZCBq
dXN0IHVuY29uZGl0aW9uYWxseSAjaW5jbHVkZSA8c3RkaW50Lmg+IGhlcmUKKyAqIGFuZCBub3Qg
bmVlZCBhbnkgb2YgdGhlIHN0dWZmIGFmdGVyIGluY2x1ZGluZyBwbGF0Zm9ybS5oLgorICovCisK
Ky8qIEZpbmQgb3V0IGlmIHdlIGhhdmUgc3RkaW50LmggZXRjLiAqLwogI2luY2x1ZGUgInVuaWNv
ZGUvcGxhdGZvcm0uaCIKIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogR2VuZXJpYyBkYXRh
IHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0vKiBJZiB5b3VyIHBsYXRmb3JtIGRv
ZXMgbm90IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIsIHlvdSBtYXkKLSAgIG5lZWQgdG8g
ZWRpdCB0aGUgdHlwZWRlZnMgYmVsb3cuICovCi0jaWYgVV9IQVZFX0lOVFRZUEVTX0gKKy8qIElm
IHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIsIHlvdSBt
YXkKKyAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgaW4gdGhlICNlbHNlIHNlY3Rpb24gYmVs
b3cuCisgICBVc2UgI2lmLi4uI2Vsc2UuLi4jZW5kaWYgd2l0aCBwcmVkZWZpbmVkIGNvbXBpbGVy
IG1hY3JvcyBpZiBwb3NzaWJsZS4gKi8KKyNpZiBVX0hBVkVfU1RESU5UX0gKKworLyoKKyAqIFdl
IG1vc3RseSBuZWVkIDxzdGRpbnQuaD4gKHdoaWNoIGRlZmluZXMgdGhlIHN0YW5kYXJkIGludGVn
ZXIgdHlwZXMpIGJ1dCBub3QgPGludHR5cGVzLmg+LgorICogPGludHR5cGVzLmg+IGluY2x1ZGVz
IDxzdGRpbnQuaD4gYW5kIGFkZHMgdGhlIHByaW50Zi9zY2FuZiBoZWxwZXJzIFBSSWQzMiwgU0NO
eDE2IGV0Yy4KKyAqIHdoaWNoIHdlIGFsbW9zdCBuZXZlciB1c2UsIHBsdXMgc3R1ZmYgbGlrZSBp
bWF4YWJzKCkgd2hpY2ggd2UgbmV2ZXIgdXNlLgorICovCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAK
LS8qIGF1dG9jb25mIDIuMTMgc29tZXRpbWVzIGNhbid0IHByb3Blcmx5IGZpbmQgdGhlIGRhdGEg
dHlwZXMgaW4gPGludHR5cGVzLmg+ICovCi0vKiBvcy8zOTAgbmVlZHMgPGludHR5cGVzLmg+LCBi
dXQgaXQgZG9lc24ndCBoYXZlIGludDhfdCwgYW5kIGl0IHNvbWV0aW1lcyAqLwotLyogZG9lc24n
dCBoYXZlIHVpbnQ4X3QgZGVwZW5kaW5nIG9uIHRoZSBPUyB2ZXJzaW9uLiAqLwotLyogU28gd2Ug
aGF2ZSB0aGlzIHdvcmsgYXJvdW5kLiAqLwotI2lmZGVmIE9TMzkwCisjaWYgVV9QTEFURk9STSA9
PSBVX1BGX09TMzkwCiAvKiBUaGUgZmVhdHVyZXMgaGVhZGVyIGlzIG5lZWRlZCB0byBnZXQgKHUp
aW50NjRfdCBzb21ldGltZXMuICovCiAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSNpZiAhIFVfSEFW
RV9JTlQ4X1QKLXR5cGVkZWYgc2lnbmVkIGNoYXIgaW50OF90OwotI2VuZGlmCisvKiB6L09TIGhh
cyA8c3RkaW50Lmg+LCBidXQgc29tZSB2ZXJzaW9ucyBhcmUgbWlzc2luZyB1aW50OF90IChBUEFS
IFBLNjIyNDgpLiAqLwogI2lmICFkZWZpbmVkKF9fdWludDhfdCkKICNkZWZpbmUgX191aW50OF90
IDEKIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90OwogI2VuZGlmCi0jZW5kaWYgLyogT1Mz
OTAgKi8KKyNlbmRpZiAvKiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAgKi8KKworI2VsaWYgVV9I
QVZFX0lOVFRZUEVTX0gKIAotI2luY2x1ZGUgPGludHR5cGVzLmg+CisjICAgaW5jbHVkZSA8aW50
dHlwZXMuaD4KIAotI2Vsc2UgLyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNlbHNlIC8qIG5laXRo
ZXIgVV9IQVZFX1NURElOVF9IIG5vciBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjaWYgISBVX0hB
VkVfSU5UOF9UCiB0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsKQEAgLTc3LDE2ICsxMDYsMjEg
QEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CiAjZW5kaWYKIAogI2lmICEgVV9IQVZF
X0lOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVkZWYgc2lnbmVkIF9faW50NjQgaW50
NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludDY0X3Q7Ci0vKiBl
bHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRpZgogCiAj
aWYgISBVX0hBVkVfVUlOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVkZWYgdW5zaWdu
ZWQgX19pbnQ2NCB1aW50NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv
bmcgdWludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBlICovCisj
ZW5kaWYKICNlbmRpZgogCi0jZW5kaWYgLyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNlbmRpZiAv
KiBVX0hBVkVfU1RESU5UX0ggLyBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjZW5kaWYgLyogX1BU
WVBFU19IICovCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3B1dGls
LmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wdXRpbC5oCmluZGV4IDcxZDVkMjY0MzA1
MjliNjBiN2VhNGM0ZDgzMGRiYzg2MTc1Mjk0NjUuLjZmYzdlOWNkNWE2MmE1NTk0NmFlNmQ3Nzg3
YmYyNWQyMzYxMTBhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3B1
dGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcHV0aWwuaApAQCAtMSw3ICsx
LDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5
OTctMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAo
QykgMTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKQEAgLTMwLDEyICszMCw2IEBACiAgICogXGJyaWVmIEMgQVBJOiBQbGF0Zm9ybSBV
dGlsaXRpZXMKICAgKi8KIAotLyoqIERlZmluZSB0aGlzIHRvIDEgaWYgeW91ciBwbGF0Zm9ybSBz
dXBwb3J0cyBJRUVFIDc1NCBmbG9hdGluZyBwb2ludCwKLSAgIHRvIDAgaWYgaXQgZG9lcyBub3Qu
ICovCi0jaWZuZGVmIElFRUVfNzU0Ci0jICAgZGVmaW5lIElFRUVfNzU0IDEKLSNlbmRpZgotCiAv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KIC8qIFBsYXRmb3JtIHV0aWxpdGllcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCkBAIC05Myw0MyArODcsMjAgQEAgVV9TVEFCTEUgY29uc3QgY2hhciogVV9FWFBP
UlQyIHVfZ2V0RGF0YURpcmVjdG9yeSh2b2lkKTsKICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIgdV9zZXREYXRhRGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcmVjdG9yeSk7CiAKLSNpZiAhVV9D
SEFSU0VUX0lTX1VURjgKLS8qKgotICogUGxlYXNlIHVzZSB1Y252X2dldERlZmF1bHROYW1lKCkg
aW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3IgdGhpcyBwbGF0Zm9y
bSBhbmQgbG9jYWxlLgotICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBV
bml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9u
IG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCi0gKiBAcmV0dXJu
IHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIAotICogQGludGVybmFsCi0g
Ki8KLVVfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dldERlZmF1bHRDb2Rl
cGFnZSh2b2lkKTsKLSNlbmRpZgotCi0vKioKLSAqIFBsZWFzZSB1c2UgdWxvY19nZXREZWZhdWx0
KCkgaW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nIGJ5IHF1
ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCi0gKiAgICAgemVybyBpZiBvbmUgY2Fubm90IGJlIGZvdW5k
LiAKLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxlKCkgb24gVW5peCBwbGF0Zm9y
bXMuIFBsZWFzZSByZWFkIHRoZQotICogcGxhdGZvcm0gZG9jdW1lbnRhdGlvbiBvbiBzZXRsb2Nh
bGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgotICogQHJldHVybiB0aGUgZGVmYXVs
dCBsb2NhbGUgSUQgc3RyaW5nCi0gKiBAaW50ZXJuYWwKLSAqLwotVV9JTlRFUk5BTCBjb25zdCBj
aGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlEKHZvaWQpOwotCiAvKioKICAq
IEB7CiAgKiBGaWxlc3lzdGVtIGZpbGUgYW5kIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMuCiAg
KiBFeGFtcGxlOiAnLycgYW5kICc6JyBvbiBVbml4LCAnXFwnIGFuZCAnOycgb24gV2luZG93cy4K
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCi0jaWZkZWYgWFBfTUFDCisjaWYgVV9QTEFURk9STSA9
PSBVX1BGX0NMQVNTSUNfTUFDT1MKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9DSEFSICc6JwogIyAg
IGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFSICc6JwogIyAgIGRlZmluZSBVX1BBVEhfU0VQX0NI
QVIgJzsnCiAjICAgZGVmaW5lIFVfRklMRV9TRVBfU1RSSU5HICI6IgogIyAgIGRlZmluZSBVX0ZJ
TEVfQUxUX1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5lIFVfUEFUSF9TRVBfU1RSSU5HICI7Igot
I2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChPUzIpCisjZWxpZiBVX1BMQVRGT1JNX1VT
RVNfT05MWV9XSU4zMl9BUEkKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9DSEFSICdcXCcKICMgICBk
ZWZpbmUgVV9GSUxFX0FMVF9TRVBfQ0hBUiAnLycKICMgICBkZWZpbmUgVV9QQVRIX1NFUF9DSEFS
ICc7JwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcmVwLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaAppbmRleCAzZmFiNmZhMTI3MmUwZjYwYTQxNzM5
YzgzMWIzZjA2Zjk3YzZhMGUwLi40YzdlYWUxNDAxZGNkNmM5NTQyMTU3ZGJmYTBmMmZlM2VhOGRj
NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgotKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyogQ29weXJpZ2h0IChDKSAxOTk5LTIw
MTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCiAqIG90
aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAgRGF0ZSAg
ICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KQEAgLTIwNSw3ICsyMDUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAgICAgKiBAc3RhYmxlIElDVSAyLjQK
ICAgICAgKi8KLSAgICBSZXBsYWNlYWJsZSgpOworICAgIGlubGluZSBSZXBsYWNlYWJsZSgpOwog
CiAgICAgLyoKICAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yIG5vdCBkZWNsYXJlZC4gVGhlIGNv
bXBpbGVyIHdpbGwgcHJvdmlkZSBvbmUKQEAgLTIzNyw2ICsyMzcsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBVQ2hhcjMyIGdldENoYXIzMkF0KGludDMyX3Qgb2Zmc2V0KSBjb25zdCA9IDA7
CiB9OwogCitpbmxpbmUgUmVwbGFjZWFibGU6OlJlcGxhY2VhYmxlKCkge30KKwogaW5saW5lIGlu
dDMyX3QKIFJlcGxhY2VhYmxlOjpsZW5ndGgoKSBjb25zdCB7CiAgICAgcmV0dXJuIGdldExlbmd0
aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RkX3N0cmluZy5o
IGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RkX3N0cmluZy5oCmluZGV4IGRkNDNiNzQ1
YTAwYzUzNDVhZTk4MTEyNmZiMjkyMzY4ZWU3MmJlMzUuLjY3YjFkNmM1YWFkMTBhMGI2MjgzN2My
NTI1NDc3NjM1YjZiMDFmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2Rl
L3N0ZF9zdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9zdGRfc3RyaW5n
LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI1LDU0ICsyNSwxMCBAQAogCiAjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKIAotLyoqCi0gKiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0gKiBE
ZWZpbmUgd2hldGhlciB0aGUgc3RhbmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRl
ciBpcyBhdmFpbGFibGUuCi0gKiBAaW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0hBVkVfU1REX1NU
UklORwotI2RlZmluZSBVX0hBVkVfU1REX1NUUklORyAxCi0jZW5kaWYKLQogI2lmIFVfSEFWRV9T
VERfU1RSSU5HCiAKICNpbmNsdWRlIDxzdHJpbmc+CiAKLS8qKgotICogXGRlZiBVX1NURF9OUwot
ICogRGVmaW5lIHRoZSBuYW1lc3BhY2UgdG8gdXNlIGZvciBzdGFuZGFyZCBDKysgKFNUTCkgY2xh
c3Nlcy4KLSAqIEVpdGhlciBzdGQgb3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQuMgotICovCi0K
LS8qKgotICogXGRlZiBVX1NURF9OU1EKLSAqIERlZmluZSB0aGUgbmFtZXNwYWNlIHF1YWxpZmll
ciB0byB1c2UgZm9yIHN0YW5kYXJkIEMrKyAoU1RMKSBjbGFzc2VzLgotICogRWl0aGVyIHN0ZDo6
IG9yIGVtcHR5LgotICogRm9yIGV4YW1wbGUsCi0gKiAgIFVfU1REX05TUSBzdHJpbmcgU3RyaW5n
RnJvbVVuaWNvZGVTdHJpbmcoY29uc3QgVW5pY29kZVN0cmluZyAmdW5pc3RyKTsKLSAqIEBkcmFm
dCBJQ1UgNC4yCi0gKi8KLQotLyoqCi0gKiBcZGVmIFVfU1REX05TX1VTRQotICogVGhpcyBpcyB1
c2VkIHRvIHNwZWNpZnkgdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQotICogc3Rh
bmRhcmQgKFNUTCkgbmFtZXNwYWNlLgotICogRWl0aGVyICJ1c2luZyBuYW1lc3BhY2Ugc3RkOyIg
b3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQuMgotICovCi0jaWZuZGVmIFVfU1REX05TUQotIyAg
IGlmIFVfSEFWRV9OQU1FU1BBQ0UKLSMgICAgICAgZGVmaW5lIFVfU1REX05TIHN0ZAotIyAgICAg
ICBkZWZpbmUgVV9TVERfTlNRIFVfU1REX05TOjoKLSMgICAgICAgZGVmaW5lIFVfU1REX05TX1VT
RSB1c2luZyBuYW1lc3BhY2UgVV9TVERfTlM7Ci0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9T
VERfTlMKLSMgICAgICAgZGVmaW5lIFVfU1REX05TUQotIyAgICAgICBkZWZpbmUgVV9TVERfTlNf
VVNFCi0jICAgZW5kaWYKLSNlbmRpZgotCiAjZW5kaWYgIC8vIFVfSEFWRV9TVERfU1RSSU5HCiAK
ICNlbmRpZiAgLy8gX19TVERfU1RSSU5HX0hfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aWN1L3VuaWNvZGUvc3RyZW51bS5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RyZW51
bS5oCmluZGV4IGNlNDIxOTVhNGYyY2IyMmMyZDM0NGNiOWY3YmRmODY3YTU3MDQzZmEuLjNkYmUy
MWM2YjJkZGRmYjg2OTM4N2Q0OGVmZDYyNDNkYjM5MTViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2ljdS91bmljb2RlL3N0cmVudW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5p
Y29kZS9zdHJlbnVtLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA3LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOCw2ICsxMTgsNyBAQCBw
dWJsaWM6CiAgICAgICoKICAgICAgKiBTdGFydGluZyB3aXRoIElDVSAyLjgsIHRoZSBkZWZhdWx0
IGltcGxlbWVudGF0aW9uIGNhbGxzIHNuZXh0KCkKICAgICAgKiBhbmQgaGFuZGxlcyB0aGUgY29u
dmVyc2lvbi4KKyAgICAgKiBFaXRoZXIgbmV4dCgpIG9yIHNuZXh0KCkgbXVzdCBiZSBpbXBsZW1l
bnRlZCBkaWZmZXJlbnRseSBieSBhIHN1YmNsYXNzLgogICAgICAqCiAgICAgICogQHBhcmFtIHN0
YXR1cyB0aGUgZXJyb3IgY29kZS4KICAgICAgKiBAcGFyYW0gcmVzdWx0TGVuZ3RoIGEgcG9pbnRl
ciB0byByZWNlaXZlIHRoZSBsZW5ndGgsIGNhbiBiZSBOVUxMLgpAQCAtMTYzLDEyICsxNjQsMTYg
QEAgcHVibGljOgogICAgICAqIDxwPklmIHRoZSBpdGVyYXRvciBpcyBvdXQgb2Ygc3luYyB3aXRo
IGl0cyBzZXJ2aWNlLCBzdGF0dXMgaXMgc2V0CiAgICAgICogdG8gVV9FTlVNX09VVF9PRl9TWU5D
X0VSUk9SIGFuZCBOVUxMIGlzIHJldHVybmVkLjwvcD4KICAgICAgKgorICAgICAqIFN0YXJ0aW5n
IHdpdGggSUNVIDIuOCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgbmV4dCgpCisg
ICAgICogYW5kIGhhbmRsZXMgdGhlIGNvbnZlcnNpb24uCisgICAgICogRWl0aGVyIG5leHQoKSBv
ciBzbmV4dCgpIG11c3QgYmUgaW1wbGVtZW50ZWQgZGlmZmVyZW50bHkgYnkgYSBzdWJjbGFzcy4K
KyAgICAgKgogICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUuCiAgICAgICogQHJl
dHVybiBhIHBvaW50ZXIgdG8gdGhlIHN0cmluZywgb3IgTlVMTC4KICAgICAgKgogICAgICAqIEBz
dGFibGUgSUNVIDIuNCAKICAgICAgKi8KLSAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcq
IHNuZXh0KFVFcnJvckNvZGUmIHN0YXR1cykgPSAwOworICAgIHZpcnR1YWwgY29uc3QgVW5pY29k
ZVN0cmluZyogc25leHQoVUVycm9yQ29kZSYgc3RhdHVzKTsKIAogICAgIC8qKgogICAgICAqIDxw
PlJlc2V0cyB0aGUgaXRlcmF0b3IuICBUaGlzIHJlLWVzdGFibGlzaGVzIHN5bmMgd2l0aCB0aGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3N0cmluZ3BpZWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9zdHJpbmdwaWVjZS5oCmluZGV4IDc5ZDVhMDUwZWM3
NDc1ZTliZGRmY2M1YTBhOTUyYzk2ZjIzZTI4YmMuLmIyOTU3MWQ0YWRiYmRkOWQ2ZDgzMmFhZWIw
Zjk3NjhiMjQxNjFhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3N0
cmluZ3BpZWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RyaW5ncGllY2Uu
aApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworLy8gQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKIC8vIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAvLwogLy8gQ29weXJpZ2h0IDIwMDEgYW5kIG9ud2FyZHMgR29vZ2xlIElu
Yy4KQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ1BpZWNlIDogcHVi
bGljIFVNZW1vcnkgewogICAgKiBDb25zdHJ1Y3RzIGZyb20gYSBzdGQ6OnN0cmluZy4KICAgICog
QHN0YWJsZSBJQ1UgNC4yCiAgICAqLwotICBTdHJpbmdQaWVjZShjb25zdCBVX1NURF9OU1Egc3Ry
aW5nJiBzdHIpCisgIFN0cmluZ1BpZWNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpCiAgICAgOiBw
dHJfKHN0ci5kYXRhKCkpLCBsZW5ndGhfKHN0YXRpY19jYXN0PGludDMyX3Q+KHN0ci5zaXplKCkp
KSB7IH0KICNlbmRpZgogICAvKioKQEAgLTEzNiwxNiArMTM2LDE2IEBAIGNsYXNzIFVfQ09NTU9O
X0FQSSBTdHJpbmdQaWVjZSA6IHB1YmxpYyBVTWVtb3J5IHsKIAogICAvKioKICAgICogUmVzZXQg
dGhlIHN0cmluZ3BpZWNlIHRvIHJlZmVyIHRvIG5ldyBkYXRhLgotICAgKiBAcGFyYW0gZGF0YSBw
b2ludGVyIHRoZSBuZXcgc3RyaW5nIGRhdGEuICBOZWVkIG5vdCBiZSBudWwgdGVybWluYXRlZC4K
KyAgICogQHBhcmFtIHhkYXRhIHBvaW50ZXIgdGhlIG5ldyBzdHJpbmcgZGF0YS4gIE5lZWQgbm90
IGJlIG51bCB0ZXJtaW5hdGVkLgogICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggb2YgdGhlIG5l
dyBkYXRhCi0gICAqIEBpbnRlcm5hbAorICAgKiBAc3RhYmxlIElDVSA0LjgKICAgICovCi0gIHZv
aWQgc2V0KGNvbnN0IGNoYXIqIGRhdGEsIGludDMyX3QgbGVuKSB7IHB0cl8gPSBkYXRhOyBsZW5n
dGhfID0gbGVuOyB9CisgIHZvaWQgc2V0KGNvbnN0IGNoYXIqIHhkYXRhLCBpbnQzMl90IGxlbikg
eyBwdHJfID0geGRhdGE7IGxlbmd0aF8gPSBsZW47IH0KIAogICAvKioKICAgICogUmVzZXQgdGhl
IHN0cmluZ3BpZWNlIHRvIHJlZmVyIHRvIG5ldyBkYXRhLgogICAgKiBAcGFyYW0gc3RyIGEgcG9p
bnRlciB0byBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4gCi0gICAqIEBpbnRlcm5hbAorICAgKiBA
c3RhYmxlIElDVSA0LjgKICAgICovCiAgIHZvaWQgc2V0KGNvbnN0IGNoYXIqIHN0cik7CiAKQEAg
LTE4Myw3ICsxODMsNyBAQCBjbGFzcyBVX0NPTU1PTl9BUEkgU3RyaW5nUGllY2UgOiBwdWJsaWMg
VU1lbW9yeSB7CiAgICAqIE1heGltdW0gaW50ZWdlciwgdXNlZCBhcyBhIGRlZmF1bHQgdmFsdWUg
Zm9yIHN1YnN0cmluZyBtZXRob2RzLgogICAgKiBAc3RhYmxlIElDVSA0LjIKICAgICovCi0gIHN0
YXRpYyBjb25zdCBpbnQzMl90IG5wb3MgPSAweDdmZmZmZmZmOworICBzdGF0aWMgY29uc3QgaW50
MzJfdCBucG9zOyAvLyA9IDB4N2ZmZmZmZmY7CiAKICAgLyoqCiAgICAqIFJldHVybnMgYSBzdWJz
dHJpbmcgb2YgdGhpcyBTdHJpbmdQaWVjZS4KQEAgLTIwMyw3ICsyMDMsNyBAQCBjbGFzcyBVX0NP
TU1PTl9BUEkgU3RyaW5nUGllY2UgOiBwdWJsaWMgVU1lbW9yeSB7CiAgKiBAcGFyYW0geCBUaGUg
Zmlyc3QgU3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEBwYXJhbSB5IFRoZSBzZWNvbmQgU3Ry
aW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc3RyaW5nIGRhdGEg
aXMgZXF1YWwKLSAqIEBpbnRlcm5hbAorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8KIFVfRVhQT1JU
IFVCb29sIFVfRVhQT1JUMiAKIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nUGllY2UmIHgsIGNvbnN0
IFN0cmluZ1BpZWNlJiB5KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBvcGVyYXRvcj09KGNvbnN0IFN0
cmluZ1BpZWNlJiB4LCBjb25zdCBTdHJpbmdQaWVjZSYgeSk7CiAgKiBAcGFyYW0geCBUaGUgZmly
c3QgU3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEBwYXJhbSB5IFRoZSBzZWNvbmQgU3RyaW5n
UGllY2UgdG8gY29tcGFyZS4KICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc3RyaW5nIGRhdGEgaXMg
bm90IGVxdWFsCi0gKiBAaW50ZXJuYWwKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCiBpbmxpbmUg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmdQaWVjZSYgeCwgY29uc3QgU3RyaW5nUGllY2Um
IHkpIHsKICAgcmV0dXJuICEoeCA9PSB5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lj
dS91bmljb2RlL3VicmsuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VicmsuaAppbmRl
eCBmODMwNGE2NjI4ZGZkYjUxMmViOTIwZWQzOTJkNDQyYzI0Yjk5ODdhLi5lOWMwZWY2MjdiNjcy
NzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
Y3UvdW5pY29kZS91YnJrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWJyay5o
CkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiBDb3B5cmlnaHQg
KEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMywgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqLwpAQCAtMjQzLDEwICsyNDMsMTIgQEAg
dWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAgICpydWxlcywKIC8qKgogICogVGhyZWFkIHNh
ZmUgY2xvbmluZyBvcGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBjbG9uZWQK
LSAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBj
bG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICogQHBhcmFtIHN0
YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2Ug
TlVMTC48L2VtPjxicj4KKyAqICB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9u
ZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgogICogIElmIGJ1ZmZlciBp
cyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgotICogIENs
aWVudHMgY2FuIHVzZSB0aGUgVV9CUktfU0FGRUNMT05FX0JVRkZFUlNJWkUuIFRoaXMgd2lsbCBw
cm9iYWJseSBiZSBlbm91Z2ggdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb25zLgotICogQHBhcmFt
IHBCdWZmZXJTaXplIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgKiAgQ2xp
ZW50cyBjYW4gdXNlIHRoZSBVX0JSS19TQUZFQ0xPTkVfQlVGRkVSU0laRS4KKyAqIEBwYXJhbSBw
QnVmZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNl
IE5VTEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNw
YWNlLgogICogIElmICpwQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6ZSBmb3IgdXNl
IGluIGNsb25pbmcgd2lsbAogICogIGJlIHJldHVybmVkICgncHJlLWZsaWdodGluZycpCiAgKiAg
SWYgKnBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2FmZSBjbG9u
ZSwKQEAgLTI2MywxMSArMjY1LDE1IEBAIHVicmtfc2FmZUNsb25lKAogICAgICAgICAgIGludDMy
X3QgKnBCdWZmZXJTaXplLAogICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5k
ZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKIC8qKgogICAqIEEgcmVjb21tZW5kZWQgc2l6ZSAo
aW4gYnl0ZXMpIGZvciB0aGUgbWVtb3J5IGJ1ZmZlciB0byBiZSBwYXNzZWQgdG8gdWJya19zYXZl
Q2xvbmUoKS4KLSAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERv
IG5vdCByZWx5IG9uIHVicmtfc2FmZUNsb25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBi
dWZmZXIuCiAgICovCi0jZGVmaW5lIFVfQlJLX1NBRkVDTE9ORV9CVUZGRVJTSVpFIDUxMgorI2Rl
ZmluZSBVX0JSS19TQUZFQ0xPTkVfQlVGRkVSU0laRSAxCisKKyNlbmRpZiAvKiBVX0hJREVfREVQ
UkVDQVRFRF9BUEkgKi8KIAogLyoqCiAqIENsb3NlIGEgVUJyZWFrSXRlcmF0b3IuCkBAIC0zMTMs
NyArMzE5LDEzIEBAIHVicmtfc2V0VGV4dChVQnJlYWtJdGVyYXRvciogYmksCiAKIAogLyoqCi0g
KiBTZXRzIGFuIGV4aXN0aW5nIGl0ZXJhdG9yIHRvIHBvaW50IHRvIGEgbmV3IHBpZWNlIG9mIHRl
eHQKKyAqIFNldHMgYW4gZXhpc3RpbmcgaXRlcmF0b3IgdG8gcG9pbnQgdG8gYSBuZXcgcGllY2Ug
b2YgdGV4dC4KKyAqCisgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJyZWFrIGl0
ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAqIG5hdGl2ZSBpbmRpY2VzIGZyb20gdGhlIFVUZXh0LiBG
b3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJl
YWsgcG9zaXRpb25zIHJldHVybmVkIGJ5IFxyZWYgdWJya19uZXh0LCBccmVmIHVicmtfcHJldmlv
dXMsIGV0Yy4KKyAqIHdpbGwgYmUgVVRGLTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9z
aXRpb25zLgorICoKICAqIEBwYXJhbSBiaSBUaGUgaXRlcmF0b3IgdG8gdXNlCiAgKiBAcGFyYW0g
dGV4dCBUaGUgdGV4dCB0byBiZSBzZXQuCiAgKiAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIG1h
a2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCkBA
IC0zNDIsNyArMzU0LDcgQEAgVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVicmtfY3VycmVu
dChjb25zdCBVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUgdGV4
dCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgdGV4dCBib3VuZGFyeS4KKyAqIEFkdmFu
Y2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91
bmRhcnkuCiAgKgogICogQHBhcmFtIGJpIFRoZSBicmVhayBpdGVyYXRvciB0byB1c2UuCiAgKiBA
cmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSwgb3Ig
VUJSS19ET05FCkBAIC0zNTQsNyArMzY2LDcgQEAgVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIK
IHVicmtfbmV4dChVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUg
dGV4dCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQgdGV4dCBib3VuZGFyeS4KKyAqIFNl
dCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgY3Vy
cmVudCBib3VuZGFyeS4KICAqCiAgKiBAcGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9yIHRvIHVz
ZS4KICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJlY2VkaW5nIHRleHQg
Ym91bmRhcnksIG9yIFVCUktfRE9ORQpAQCAtMzY2LDcgKzM3OCw3IEBAIFVfU1RBQkxFIGludDMy
X3QgVV9FWFBPUlQyCiB1YnJrX3ByZXZpb3VzKFVCcmVha0l0ZXJhdG9yICpiaSk7CiAKIC8qKgot
ICogRGV0ZXJtaW5lIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0
IGJlaW5nIHNjYW5uZWQuCisgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRl
eCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCiAgKiBU
aGlzIGlzIG5vdCBhbHdheXMgdGhlIHNhbWUgYXMgaW5kZXggMCBvZiB0aGUgdGV4dC4KICAqIEBw
YXJhbSBiaSBUaGUgYnJlYWsgaXRlcmF0b3IgdG8gdXNlLgogICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5l
ZC4KQEAgLTM3Nyw4ICszODksNyBAQCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWJya19m
aXJzdChVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUgaW5kZXgg
aW1tZWRpYXRlbHkgPEVNPmJleW9uZDwvRU0+IHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4
dCBiZWluZwotICogc2Nhbm5lZC4KKyAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhl
IGluZGV4IGltbWVkaWF0ZWx5IDxFTT5iZXlvbmQ8L0VNPiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4g
dGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KICAqIFRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBs
YXN0IGNoYXJhY3Rlci4KICAqIEBwYXJhbSBiaSBUaGUgYnJlYWsgaXRlcmF0b3IgdG8gdXNlLgog
ICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBpbW1lZGlhdGVseSA8RU0+YmV5b25kPC9F
TT4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZQpAQCAtMzkwLDggKzQwMSw4IEBAIFVfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyCiB1YnJrX2xhc3QoVUJyZWFrSXRlcmF0b3IgKmJpKTsKIAogLyoq
Ci0gKiBEZXRlcm1pbmUgdGhlIHRleHQgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQg
b2Zmc2V0LgotICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gb2Zm
c2V0LCBvciBVQlJLX0RPTkUuCisgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBm
aXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgKiBUaGUgbmV3
IHBvc2l0aW9uIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gb2Zmc2V0LCBvciBVQlJLX0RPTkUuCiAg
KiBAcGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9yIHRvIHVzZS4KICAqIEBwYXJhbSBvZmZzZXQg
VGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KICAqIEByZXR1cm4gVGhlIHRleHQgYm91bmRh
cnkgcHJlY2VkaW5nIG9mZnNldCwgb3IgVUJSS19ET05FLgpAQCAtNDAzLDcgKzQxNCw3IEBAIHVi
cmtfcHJlY2VkaW5nKFVCcmVha0l0ZXJhdG9yICpiaSwKICAgICAgICAgICAgaW50MzJfdCBvZmZz
ZXQpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUgdGV4dCBib3VuZGFyeSBmb2xsb3dpbmcgdGhl
IHNwZWNpZmllZCBvZmZzZXQuCisgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgZmlyc3Qg
Ym91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgogICogVGhlIHZhbHVlIHJl
dHVybmVkIGlzIGFsd2F5cyBncmVhdGVyIHRoYW4gb2Zmc2V0LCBvciBVQlJLX0RPTkUuCiAgKiBA
cGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9yIHRvIHVzZS4KICAqIEBwYXJhbSBvZmZzZXQgVGhl
IG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KQEAgLTQ5NSw2ICs1MDYsMzUgQEAgdWJya19nZXRS
dWxlU3RhdHVzVmVjKFVCcmVha0l0ZXJhdG9yICpiaSwgaW50MzJfdCAqZmlsbEluVmVjLCBpbnQz
Ml90IGNhcGFjaXR5LAogVV9TVEFCTEUgY29uc3QgY2hhciogVV9FWFBPUlQyCiB1YnJrX2dldExv
Y2FsZUJ5VHlwZShjb25zdCBVQnJlYWtJdGVyYXRvciAqYmksIFVMb2NEYXRhTG9jYWxlVHlwZSB0
eXBlLCBVRXJyb3JDb2RlKiBzdGF0dXMpOwogCisvKioKKyAgKiAgU2V0IHRoZSBzdWJqZWN0IHRl
eHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAq
ICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIHN0YXRlLgorICAqICBU
aGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRl
bnQuCisgICoKKyAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmly
b25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICogIHN0cmluZ3MgdGhhdCBtYXkg
bW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlm
eWluZworICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHBy
b3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICogIHN0cmluZyBpbiBpdHMgbmV3
IHBvc2l0aW9uLgorICAqCisgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgbmV2ZXIg
Y29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vz
c2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0Cisg
ICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVm
ZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZl
cmVuY2VzIHRvIHRoZSBuZXcuCisgICoKKyAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMg
bm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQKKyAgKiAgICAgICAgICAgIHN5
c3RlbS1sZXZlbCBjb2RlLiAgIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBj
b2xsZWN0aW9uCisgICogICAgICAgICAgICB0aGF0IG1vdmVzIHRoZSB0ZXh0IGluIG1lbW9yeS4K
KyAgKgorICAqIEBwYXJhbSBiaSAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvci4KKyAgKiBAcGFy
YW0gdGV4dCAgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICogQHBhcmFtIHN0
YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICoK
KyAgKiBAc3RhYmxlIElDVSA0OQorICAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3Vicmtf
cmVmcmVzaFVUZXh0KFVCcmVha0l0ZXJhdG9yICpiaSwKKyAgICAgICAgICAgICAgICAgICAgICAg
VVRleHQgICAgICAgICAgKnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
ICAgICpzdGF0dXMpOwogCiAjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElP
TiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y2hhci5oIGIv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNoYXIuaAppbmRleCA5M2FhNjYzMjA2YjJiNGM0
ODIwYjgyY2ZjNjZjODRhMmQwMGFlOWIyLi4xYTViNzFiNDYzZTQ4MzZlZTUxMzUyYmFhYzZiNGU0
YzcyNjNmMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y2hhci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VjaGFyLmgKQEAgLTEsNiArMSw2IEBA
CiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM5LDcgKzM5LDcg
QEAgVV9DREVDTF9CRUdJTgogICogQHNlZSB1X2dldFVuaWNvZGVWZXJzaW9uCiAgKiBAc3RhYmxl
IElDVSAyLjAKICAqLwotI2RlZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4wIgorI2RlZmluZSBV
X1VOSUNPREVfVkVSU0lPTiAiNi4zIgogCiAvKioKICAqIFxmaWxlCkBAIC0xMzksMTkgKzEzOSw2
IEBAIFVfQ0RFQ0xfQkVHSU4KICAqLwogI2RlZmluZSBVX01BU0soeCkgKCh1aW50MzJfdCkxPDwo
eCkpCiAKLS8qCi0gKiAhISBOb3RlOiBTZXZlcmFsIGNvbW1lbnRzIGluIHRoaXMgZmlsZSBhcmUg
bWFjaGluZS1yZWFkIGJ5IHRoZQotICogZ2VucG5hbWUgdG9vbC4gIFRoZXNlIGNvbW1lbnRzIGRl
c2NyaWJlIHRoZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuCi0gKiBpY3UgZW51bSBjb25zdGFudHMg
YW5kIFVDRCBlbnRpdGllcy4gIERvIG5vdCBkZWxldGUgdGhlbS4gIFVwZGF0ZQotICogdGhlc2Ug
Y29tbWVudHMgYXMgbmVlZGVkLgotICoKLSAqIEFueSBjb21tZW50IG9mIHRoZSBmb3JtICIvICpb
bmFtZV0qIC8iIChzcGFjZXMgYWRkZWQpIGlzIHN1Y2gKLSAqIGEgY29tbWVudC4KLSAqCi0gKiBU
aGUgVV9KR18qIGFuZCBVX0dDXypfTUFTSyBjb25zdGFudHMgYXJlIG1hdGNoZWQgYnkgdGhlaXIg
c3ltYm9saWMKLSAqIG5hbWUsIHdoaWNoIG11c3QgbWF0Y2ggUHJvcGVydHlWYWx1ZUFsaWFzZXMu
dHh0LgotICovCi0KIC8qKgogICogU2VsZWN0aW9uIGNvbnN0YW50cyBmb3IgVW5pY29kZSBwcm9w
ZXJ0aWVzLgogICogVGhlc2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBsaWtlIHVf
aGFzQmluYXJ5UHJvcGVydHkgdG8gc2VsZWN0CkBAIC0xNzIsOSArMTU5LDExIEBAIFVfQ0RFQ0xf
QkVHSU4KICAqIEBzdGFibGUgSUNVIDIuMQogICovCiB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsK
LSAgICAvKiAgU2VlIG5vdGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQmluYXJ5IHByb3Bl
cnR5IERhc2giLAotICAgICAgICAiRW51bWVyYXRlZCBwcm9wZXJ0eSBTY3JpcHQiLCAiRG91Ymxl
IHByb3BlcnR5IE51bWVyaWNfVmFsdWUiLAotICAgICAgICBhbmQgIlN0cmluZyBwcm9wZXJ0eSBB
Z2UiIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAgICogTm90ZTogVVByb3Bl
cnR5IGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1h
dGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVQ0hBUl88VW5pY29kZSBwcm9wZXJ0eSBuYW1l
Pj08aW50ZWdlcj4sCisgICAgICovCiAKICAgICAvKiAgTm90ZTogUGxhY2UgVUNIQVJfQUxQSEFC
RVRJQyBiZWZvcmUgVUNIQVJfQklOQVJZX1NUQVJUIHNvIHRoYXQKICAgICBkZWJ1Z2dlcnMgZGlz
cGxheSBVQ0hBUl9BTFBIQUJFVElDIGFzIHRoZSBzeW1ib2xpYyBuYW1lIGZvciAwLApAQCAtNDkx
LDggKzQ4MCwxMyBAQCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAgICAgKGh0dHA6Ly93
d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKICAgICAgICAgUmV0dXJucyBVV29yZEJyZWFr
VmFsdWVzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgVUNIQVJfV09SRF9CUkVBSz0w
eDEwMTQsCisgICAgLyoqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9QYWlyZWRfQnJhY2tldF9U
eXBlIChuZXcgaW4gVW5pY29kZSA2LjMpLgorICAgICAgICBVc2VkIGluIFVBWCAjOTogVW5pY29k
ZSBCaWRpcmVjdGlvbmFsIEFsZ29yaXRobQorICAgICAgICAoaHR0cDovL3d3dy51bmljb2RlLm9y
Zy9yZXBvcnRzL3RyOS8pCisgICAgICAgIFJldHVybnMgVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB2
YWx1ZXMuIEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVF9U
WVBFPTB4MTAxNSwKICAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3Ig
ZW51bWVyYXRlZC9pbnRlZ2VyIFVuaWNvZGUgcHJvcGVydGllcy4gQHN0YWJsZSBJQ1UgMi4yICov
Ci0gICAgVUNIQVJfSU5UX0xJTUlUPTB4MTAxNSwKKyAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE2
LAogCiAgICAgLyoqIEJpdG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNrLgogICAg
ICAgICBUaGlzIGlzIHRoZSBHZW5lcmFsX0NhdGVnb3J5IHByb3BlcnR5IHJldHVybmVkIGFzIGEg
Yml0IG1hc2suCkBAIC01MjcsOSArNTIxLDExIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewog
ICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgogICAgICAgICBDb3JyZXNwb25k
cyB0byB1X3N0ckZvbGRDYXNlIGluIHVzdHJpbmcuaC4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAg
VUNIQVJfQ0FTRV9GT0xESU5HPTB4NDAwMiwKLSAgICAvKiogU3RyaW5nIHByb3BlcnR5IElTT19D
b21tZW50LgotICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldElTT0NvbW1lbnQuIEBzdGFibGUg
SUNVIDIuNCAqLworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKyAgICAvKiogRGVwcmVj
YXRlZCBzdHJpbmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICAgIENvcnJlc3BvbmRzIHRv
IHVfZ2V0SVNPQ29tbWVudC4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJfSVNPX0NP
TU1FTlQ9MHg0MDAzLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAv
KiogU3RyaW5nIHByb3BlcnR5IExvd2VyY2FzZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25k
cyB0byB1X3N0clRvTG93ZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBV
Q0hBUl9MT1dFUkNBU0VfTUFQUElORz0weDQwMDQsCkBAIC01NTEsMjkgKzU0NywzMyBAQCB0eXBl
ZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9N
YXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVGl0bGUgaW4gdXN0cmluZy5o
LiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9USVRMRUNBU0VfTUFQUElORz0weDQwMEEs
CisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkg
VW5pY29kZV8xX05hbWUuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfY2hhck5hbWUuIEBzdGFi
bGUgSUNVIDIuNCAqLworICAgICAgICBUaGlzIHByb3BlcnR5IGlzIG9mIGxpdHRsZSBwcmFjdGlj
YWwgdmFsdWUuCisgICAgICAgIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0dXJu
IGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgQ29ycmVzcG9uZHMg
dG8gdV9jaGFyTmFtZShVX1VOSUNPREVfMTBfQ0hBUl9OQU1FKS4gQGRlcHJlY2F0ZWQgSUNVIDQ5
ICovCiAgICAgVUNIQVJfVU5JQ09ERV8xX05BTUU9MHg0MDBCLAorI2VuZGlmICAvKiBVX0hJREVf
REVQUkVDQVRFRF9BUEkgKi8KICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFVwcGVyY2FzZV9NYXBw
aW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVXBwZXIgaW4gdXN0cmluZy5oLiBA
c3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9VUFBFUkNBU0VfTUFQUElORz0weDQwMEMsCisg
ICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0IChuZXcgaW4gVW5pY29k
ZSA2LjMpLgorICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldEJpZGlQYWlyZWRCcmFja2V0LiBA
c3RhYmxlIElDVSA1MiAqLworICAgIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVQ9MHg0MDBELAog
ICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29k
ZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElDVSAyLjQgKi8KLSAgICBVQ0hBUl9TVFJJTkdfTElNSVQ9
MHg0MDBELAorICAgIFVDSEFSX1NUUklOR19MSU1JVD0weDQwMEUsCiAKLSAgICAvKiogUHJvdmlz
aW9uYWwgcHJvcGVydHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCi0g
ICAgICAgIEFzIGEgcHJvdmlzaW9uYWwgcHJvcGVydHksIGl0IG1heSBiZSBtb2RpZmllZCBvciBy
ZW1vdmVkCi0gICAgICAgIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFy
ZCwgYW5kIHRodXMgaW4gSUNVLgorICAgIC8qKiBNaXNjZWxsYW5lb3VzIHByb3BlcnR5IFNjcmlw
dF9FeHRlbnNpb25zIChuZXcgaW4gVW5pY29kZSA2LjApLgogICAgICAgICBTb21lIGNoYXJhY3Rl
cnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAgICAgICAgRm9yIG1v
cmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIyNC8uCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVzY3JpcHRfaGFzU2NyaXB0IGFuZCB1
c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lvbnMgaW4gdXNjcmlwdC5oLgotICAgICAgICBAZHJhZnQg
SUNVIDQuNiAqLworICAgICAgICBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9TQ1JJUFRf
RVhURU5TSU9OUz0weDcwMDAsCi0gICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHBy
b3BlcnRpZXMgd2l0aCB1bnVzdWFsIHZhbHVlIHR5cGVzLiBAZHJhZnQgSUNVIDQuNiAqLworICAg
IC8qKiBGaXJzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3VhbCB2
YWx1ZSB0eXBlcy4gQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUNIQVJfT1RIRVJfUFJPUEVSVFlf
U1RBUlQ9VUNIQVJfU0NSSVBUX0VYVEVOU0lPTlMsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhl
IGxhc3QgY29uc3RhbnQgZm9yIFVuaWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUg
dHlwZXMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYgKi8KKyAgICAgKiBAc3RhYmxlIElDVSA0LjYg
Ki8KICAgICBVQ0hBUl9PVEhFUl9QUk9QRVJUWV9MSU1JVD0weDcwMDEsCi0KICAgICAvKiogUmVw
cmVzZW50cyBhIG5vbmV4aXN0ZW50IG9yIGludmFsaWQgcHJvcGVydHkgb3IgcHJvcGVydHkgdmFs
dWUuIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX0lOVkFMSURfQ09ERSA9IC0xCiB9IFVQ
cm9wZXJ0eTsKQEAgLTU4NSw3ICs1ODUsMTIgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eSB7CiAg
Ki8KIHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAg
Q29tbWVudHMgb2YgdGhlIGZvcm0gIkNuIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAv
KgorICAgICAqIE5vdGU6IFVDaGFyQ2F0ZWdvcnkgY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29t
bWVudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBh
aXJzIG9mIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAyLWxldHRlciBHZW5l
cmFsX0NhdGVnb3J5IHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10r
PiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOb24tY2F0ZWdvcnkgZm9yIHVuYXNz
aWduZWQgYW5kIG5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludHMuIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVfVU5BU1NJR05FRCAgICAgICAgICAgICAgPSAwLApAQCAtNzcwLDcgKzc3NSwxMiBAQCB0
eXBlZGVmIGVudW0gVUNoYXJDYXRlZ29yeQogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVk
ZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMg
b2YgdGhlIGZvcm0gIkVOIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVDaGFyRGlyZWN0aW9uIGNvbnN0YW50cyBhbmQgdGhlaXIgQVBJIGNvbW1lbnRzIGFy
ZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBwYWlycyBvZiBs
aW5lcyBsaWtlCisgICAgICogICAgIC8gKiogPFVuaWNvZGUgMS4uMy1sZXR0ZXIgQmlkaV9DbGFz
cyB2YWx1ZT4gY29tbWVudC4uLiAqIC8KKyAgICAgKiAgICAgVV88W0EtWl9dKz4gPSA8aW50ZWdl
cj4sCisgICAgICovCiAKICAgICAvKiogTCBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVX0xFRlRf
VE9fUklHSFQgICAgICAgICAgICAgICA9IDAsCkBAIC04MTAsMjEgKzgyMCw1NyBAQCB0eXBlZGVm
IGVudW0gVUNoYXJEaXJlY3Rpb24gewogICAgIFVfRElSX05PTl9TUEFDSU5HX01BUksgICAgICAg
ID0gMTcsCiAgICAgLyoqIEJOIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQk9VTkRBUllfTkVV
VFJBTCAgICAgICAgICAgID0gMTgsCisgICAgLyoqIEZTSSBAc3RhYmxlIElDVSA1MiAqLworICAg
IFVfRklSU1RfU1RST05HX0lTT0xBVEUgICAgICAgID0gMTksCisgICAgLyoqIExSSSBAc3RhYmxl
IElDVSA1MiAqLworICAgIFVfTEVGVF9UT19SSUdIVF9JU09MQVRFICAgICAgID0gMjAsCisgICAg
LyoqIFJMSSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUklHSFRfVE9fTEVGVF9JU09MQVRFICAg
ICAgID0gMjEsCisgICAgLyoqIFBESSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUE9QX0RJUkVD
VElPTkFMX0lTT0xBVEUgICAgID0gMjIsCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVfQ0hBUl9ESVJFQ1RJT05fQ09VTlQKIH0gVUNoYXJEaXJlY3Rpb247CiAKIC8qKgorICogQmlk
aSBQYWlyZWQgQnJhY2tldCBUeXBlIGNvbnN0YW50cy4KKyAqCisgKiBAc2VlIFVDSEFSX0JJRElf
UEFJUkVEX0JSQUNLRVRfVFlQRQorICogQHN0YWJsZSBJQ1UgNTIKKyAqLwordHlwZWRlZiBlbnVt
IFVCaWRpUGFpcmVkQnJhY2tldFR5cGUgeworICAgIC8qCisgICAgICogTm90ZTogVUJpZGlQYWly
ZWRCcmFja2V0VHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAg
ICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9CUFRfPFVuaWNvZGUgQmlk
aV9QYWlyZWRfQnJhY2tldF9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICAvKiogTm90
IGEgcGFpcmVkIGJyYWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9CUFRfTk9ORSwKKyAg
ICAvKiogT3BlbiBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9P
UEVOLAorICAgIC8qKiBDbG9zZSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAg
ICBVX0JQVF9DTE9TRSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9DT1VO
VCAvKiAzICovCit9IFVCaWRpUGFpcmVkQnJhY2tldFR5cGU7CisKKy8qKgogICogQ29uc3RhbnRz
IGZvciBVbmljb2RlIGJsb2Nrcywgc2VlIHRoZSBVbmljb2RlIERhdGEgZmlsZSBCbG9ja3MudHh0
CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogZW51bSBVQmxvY2tDb2RlIHsKKyAgICAvKgorICAg
ICAqIE5vdGU6IFVCbG9ja0NvZGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2Qu
cHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVCTE9DS188VW5p
Y29kZSBCbG9jayB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBO
ZXcgTm9fQmxvY2sgdmFsdWUgaW4gVW5pY29kZSA0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICBV
QkxPQ0tfTk9fQkxPQ0sgPSAwLCAvKltub25lXSovIC8qIFNwZWNpYWwgcmFuZ2UgaW5kaWNhdGlu
ZyBOb19CbG9jayAqLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19C
QVNJQ19MQVRJTiA9IDEsIC8qWzAwMDBdKi8gLypTZWUgbm90ZSAhISovCisgICAgVUJMT0NLX0JB
U0lDX0xBVElOID0gMSwgLypbMDAwMF0qLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVCTE9DS19MQVRJTl8xX1NVUFBMRU1FTlQ9MiwgLypbMDA4MF0qLwpAQCAtMTA2MSw3ICsx
MTA3LDcgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAgICBVQkxPQ0tfTE9XX1NVUlJPR0FURVMgPTc3
LCAvKltEQzAwXSovCiAKICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VT
RV9BUkVBLgorICAgICAqIFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVfVVNFLgogICAgICAqIFVudGls
IFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRl
IFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJs
b2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBV
QSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDY5LDkgKzExMTUsOSBAQCBlbnVtIFVC
bG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICovCi0gICAg
VUJMT0NLX1BSSVZBVEVfVVNFID0gNzgsCisgICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPTc4
LCAvKltFMDAwXSovCiAgICAgLyoqCi0gICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0Uu
CisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQS4KICAgICAgKiBVbnRpbCBV
bmljb2RlIDMuMS4xLCB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBV
c2UiLAogICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9j
ay4KICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEg
dG8gIlByaXZhdGUgVXNlIEFyZWEiIGFuZApAQCAtMTA3OSw3ICsxMTI1LDcgQEAgZW51bSBVQmxv
Y2tDb2RlIHsKICAgICAgKgogICAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgICAqLwotICAgIFVC
TE9DS19QUklWQVRFX1VTRV9BUkVBID1VQkxPQ0tfUFJJVkFURV9VU0UsIC8qW0UwMDBdKi8KKyAg
ICBVQkxPQ0tfUFJJVkFURV9VU0UgPSBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSwKIAogICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dS
QVBIUyA9NzksIC8qW0Y5MDBdKi8KQEAgLTExMTEsMzMgKzExNTcsMzMgQEAgZW51bSBVQmxvY2tD
b2RlIHsKICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4xICovCiAKICAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCAgLCAvKlsxMDMwMF0q
LworICAgIFVCTE9DS19PTERfSVRBTElDID0gODgsIC8qWzEwMzAwXSovCiAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19HT1RISUMgPSA4OSAsIC8qWzEwMzMwXSovCisgICAg
VUJMT0NLX0dPVEhJQyA9IDg5LCAvKlsxMDMzMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KLSAgICBVQkxPQ0tfREVTRVJFVCA9IDkwICwgLypbMTA0MDBdKi8KKyAgICBVQkxPQ0tfREVT
RVJFVCA9IDkwLCAvKlsxMDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBV
QkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxICwgLypbMUQwMDBdKi8KKyAgICBV
QkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxLCAvKlsxRDAwMF0qLwogICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTVVTSUNBTF9TWU1CT0xTID0gOTIgLCAv
KlsxRDEwMF0qLworICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiwgLypbMUQxMDBdKi8K
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBI
QU5VTUVSSUNfU1lNQk9MUyA9IDkzICAsIC8qWzFENDAwXSovCisgICAgVUJMT0NLX01BVEhFTUFU
SUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyA9IDkzLCAvKlsxRDQwMF0qLwogICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJ
T05fQiAgPSA5NCAsIC8qWzIwMDAwXSovCisgICAgVUJMT0NLX0NKS19VTklGSUVEX0lERU9HUkFQ
SFNfRVhURU5TSU9OX0IgID0gOTQsIC8qWzIwMDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwotICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQg
PSA5NSAsIC8qWzJGODAwXSovCisgICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQ
SFNfU1VQUExFTUVOVCA9IDk1LCAvKlsyRjgwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQkxPQ0tfVEFHUyA9IDk2LCAvKltFMDAwMF0qLwogCiAgICAgLyogTmV3IGJsb2Nr
cyBpbiBVbmljb2RlIDMuMiAqLwogCisgICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KKyAgICBV
QkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCA9IDk3LCAvKlswNTAwXSovCiAgICAgLyoqCiAgICAg
ICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxv
Y2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgogICAgICAqIEBzdGFibGUgSUNVIDIuMgogICAg
ICAqLwotICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZID0gOTcsIAotICAgIC8qKiBA
c3RhYmxlIElDVSAzLjAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQgPSBVQkxP
Q0tfQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSwgLypbMDUwMF0qLworICAgIFVCTE9DS19DWVJJTExJ
Q19TVVBQTEVNRU5UQVJZID0gVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQsIAogICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICBVQkxPQ0tfVEFHQUxPRyA9IDk4LCAvKlsxNzAwXSovCiAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwpAQCAtMTM4MSw4ICsxNDI3LDMzIEBAIGVudW0gVUJs
b2NrQ29kZSB7CiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVCTE9DS19DSktfVU5J
RklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9EID0gMjA5LCAvKlsyQjc0MF0qLwogCi0gICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DT1VOVCA9IDIxMCwKKyAgICAvKiBOZXcg
YmxvY2tzIGluIFVuaWNvZGUgNi4xICovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICBVQkxPQ0tfQVJBQklDX0VYVEVOREVEX0EgPSAyMTAsIC8qWzA4QTBdKi8KKyAgICAvKiogQHN0
YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfQVJBQklDX01BVEhFTUFUSUNBTF9BTFBIQUJFVElD
X1NZTUJPTFMgPSAyMTEsIC8qWzFFRTAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisg
ICAgVUJMT0NLX0NIQUtNQSA9IDIxMiwgLypbMTExMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfTUVFVEVJX01BWUVLX0VYVEVOU0lPTlMgPSAyMTMsIC8qW0FBRTBd
Ki8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNfQ1VSU0lW
RSA9IDIxNCwgLypbMTA5QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxP
Q0tfTUVST0lUSUNfSElFUk9HTFlQSFMgPSAyMTUsIC8qWzEwOTgwXSovCisgICAgLyoqIEBzdGFi
bGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX01JQU8gPSAyMTYsIC8qWzE2RjAwXSovCisgICAgLyoq
IEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NIQVJBREEgPSAyMTcsIC8qWzExMTgwXSov
CisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NPUkFfU09NUEVORyA9IDIx
OCwgLypbMTEwRDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU1VO
REFORVNFX1NVUFBMRU1FTlQgPSAyMTksIC8qWzFDQzBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfVEFLUkkgPSAyMjAsIC8qWzExNjgwXSovCisKKyAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgVUJMT0NLX0NPVU5UID0gMjIxLAogCiAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19JTlZBTElEX0NPREU9LTEKQEAgLTEzOTksNyArMTQ3
MCwxMyBAQCB0eXBlZGVmIGVudW0gVUJsb2NrQ29kZSBVQmxvY2tDb2RlOwogICogQHN0YWJsZSBJ
Q1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewotICAgIFVfRUFfTkVV
VFJBTCwgICAvKltOXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVUVh
c3RBc2lhbldpZHRoIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAg
ICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0VBXzxVbmljb2RlIEVhc3Rf
QXNpYW5fV2lkdGggdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfRUFfTkVVVFJBTCwgICAv
KltOXSovCiAgICAgVV9FQV9BTUJJR1VPVVMsIC8qW0FdKi8KICAgICBVX0VBX0hBTEZXSURUSCwg
LypbSF0qLwogICAgIFVfRUFfRlVMTFdJRFRILCAvKltGXSovCkBAIC0xNDA3LDEwICsxNDg0LDYg
QEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgICAgVV9FQV9XSURFLCAgICAgIC8q
W1ddKi8KICAgICBVX0VBX0NPVU5UCiB9IFVFYXN0QXNpYW5XaWR0aDsKLS8qCi0gKiBJbXBsZW1l
bnRhdGlvbiBub3RlOgotICogS2VlcCBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnQgdmFsdWVzIGlu
IHN5bmMgd2l0aCBuYW1lcyBsaXN0IGluIGdlbnByb3BzL3Byb3BzMi5jLgotICovCiAKIC8qKgog
ICogU2VsZWN0b3IgY29uc3RhbnRzIGZvciB1X2NoYXJOYW1lKCkuCkBAIC0xNDI0LDEwICsxNDk3
LDIxIEBAIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KIHR5cGVkZWYgZW51bSBVQ2hhck5hbWVDaG9pY2UgeworICAgIC8qKiBVbmljb2RlIGNo
YXJhY3RlciBuYW1lIChOYW1lIHByb3BlcnR5KS4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9V
TklDT0RFX0NIQVJfTkFNRSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAorICAgIC8q
KgorICAgICAqIFRoZSBVbmljb2RlXzFfTmFtZSBwcm9wZXJ0eSB2YWx1ZSB3aGljaCBpcyBvZiBs
aXR0bGUgcHJhY3RpY2FsIHZhbHVlLgorICAgICAqIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNV
IEFQSXMgcmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBuYW1lIGNob2ljZS4KKyAgICAg
KiBAZGVwcmVjYXRlZCBJQ1UgNDkKKyAgICAgKi8KICAgICBVX1VOSUNPREVfMTBfQ0hBUl9OQU1F
LAotICAgIFVfRVhURU5ERURfQ0hBUl9OQU1FLAotICAgIFVfQ0hBUl9OQU1FX0FMSUFTLCAgICAg
ICAgICAvKio8IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElD
VSA0LjQgKi8KKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisgICAgLyoqIFN0
YW5kYXJkIG9yIHN5bnRoZXRpYyBjaGFyYWN0ZXIgbmFtZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgVV9FWFRFTkRFRF9DSEFSX05BTUUgPSBVX1VOSUNPREVfQ0hBUl9OQU1FKzIsCisgICAgLyoq
IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8K
KyAgICBVX0NIQVJfTkFNRV9BTElBUywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAg
VV9DSEFSX05BTUVfQ0hPSUNFX0NPVU5UCiB9IFVDaGFyTmFtZUNob2ljZTsKIApAQCAtMTQ1Nyw3
ICsxNTQxLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHlOYW1lQ2hvaWNlIHsKICAqIEBzdGFi
bGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVURlY29tcG9zaXRpb25UeXBlIHsKLSAgICBV
X0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8q
CisgICAgICogTm90ZTogVURlY29tcG9zaXRpb25UeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5
IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAg
ICBVX0RUXzxVbmljb2RlIERlY29tcG9zaXRpb25fVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLwor
CisgICAgVV9EVF9OT05FLCAgICAgICAgICAgICAgLypbbm9uZV0qLwogICAgIFVfRFRfQ0FOT05J
Q0FMLCAgICAgICAgIC8qW2Nhbl0qLwogICAgIFVfRFRfQ09NUEFULCAgICAgICAgICAgIC8qW2Nv
bV0qLwogICAgIFVfRFRfQ0lSQ0xFLCAgICAgICAgICAgIC8qW2VuY10qLwpAQCAtMTQ4NSw3ICsx
NTc1LDEzIEBAIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewogICogQHN0YWJsZSBJ
Q1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVSm9pbmluZ1R5cGUgewotICAgIFVfSlRfTk9OX0pP
SU5JTkcsICAgICAgIC8qW1VdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVSm9pbmluZ1R5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisg
ICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSlRfPFVuaWNvZGUgSm9p
bmluZ19UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0pUX05PTl9KT0lOSU5HLCAg
ICAgICAvKltVXSovCiAgICAgVV9KVF9KT0lOX0NBVVNJTkcsICAgICAgLypbQ10qLwogICAgIFVf
SlRfRFVBTF9KT0lOSU5HLCAgICAgIC8qW0RdKi8KICAgICBVX0pUX0xFRlRfSk9JTklORywgICAg
ICAvKltMXSovCkBAIC0xNTAxLDYgKzE1OTcsMTIgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlw
ZSB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nR3JvdXAg
eworICAgIC8qCisgICAgICogTm90ZTogVUpvaW5pbmdHcm91cCBjb25zdGFudHMgYXJlIHBhcnNl
ZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAg
KiAgICAgVV9KR188VW5pY29kZSBKb2luaW5nX0dyb3VwIHZhbHVlIG5hbWU+CisgICAgICovCisK
ICAgICBVX0pHX05PX0pPSU5JTkdfR1JPVVAsCiAgICAgVV9KR19BSU4sCiAgICAgVV9KR19BTEFQ
SCwKQEAgLTE1NTksNiArMTY2MSw3IEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3VwIHsKICAg
ICBVX0pHX0JVUlVTSEFTS0lfWUVIX0JBUlJFRSwgLyoqPCBAc3RhYmxlIElDVSA0LjAgKi8KICAg
ICBVX0pHX0ZBUlNJX1lFSCwgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVX0pHX05ZQSwg
ICAgICAgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0pHX1JPSElOR1lBX1lFSCwgIC8q
KjwgQHN0YWJsZSBJQ1UgNDkgKi8KICAgICBVX0pHX0NPVU5UCiB9IFVKb2luaW5nR3JvdXA7CiAK
QEAgLTE1NjksNyArMTY3MiwxMyBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91cCB7CiAgKiBA
c3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7
Ci0gICAgVV9HQ0JfT1RIRVIgPSAwLCAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEq
LworICAgIC8qCisgICAgICogTm90ZTogVUdyYXBoZW1lQ2x1c3RlckJyZWFrIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX0dDQl88VW5pY29kZSBHcmFwaGVtZV9DbHVzdGVyX0JyZWFrIHZhbHVl
IG5hbWU+CisgICAgICovCisKKyAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhd
Ki8KICAgICBVX0dDQl9DT05UUk9MID0gMSwgICAgICAgICAgLypbQ05dKi8KICAgICBVX0dDQl9D
UiA9IDIsICAgICAgICAgICAgICAgLypbQ1JdKi8KICAgICBVX0dDQl9FWFRFTkQgPSAzLCAgICAg
ICAgICAgLypbRVhdKi8KQEAgLTE1ODEsNyArMTY5MCw4IEBAIHR5cGVkZWYgZW51bSBVR3JhcGhl
bWVDbHVzdGVyQnJlYWsgewogICAgIFVfR0NCX1YgPSA5LCAgICAgICAgICAgICAgICAvKltWXSov
CiAgICAgVV9HQ0JfU1BBQ0lOR19NQVJLID0gMTAsICAgIC8qW1NNXSovIC8qIGZyb20gaGVyZSBv
bjogbmV3IGluIFVuaWNvZGUgNS4xL0lDVSA0LjAgKi8KICAgICBVX0dDQl9QUkVQRU5EID0gMTEs
ICAgICAgICAgLypbUFBdKi8KLSAgICBVX0dDQl9DT1VOVCA9IDEyCisgICAgVV9HQ0JfUkVHSU9O
QUxfSU5ESUNBVE9SID0gMTIsICAvKltSSV0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUw
ICovCisgICAgVV9HQ0JfQ09VTlQgPSAxMwogfSBVR3JhcGhlbWVDbHVzdGVyQnJlYWs7CiAKIC8q
KgpAQCAtMTU5Miw3ICsxNzAyLDEzIEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVyQnJl
YWsgewogICogQHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFs
dWVzIHsKLSAgICBVX1dCX09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90
ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVV29yZEJyZWFrVmFsdWVzIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX1dCXzxVbmljb2RlIFdvcmRfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAg
Ki8KKworICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfV0Jf
QUxFVFRFUiA9IDEsICAgICAgICAgICAvKltMRV0qLwogICAgIFVfV0JfRk9STUFUID0gMiwgICAg
ICAgICAgICAvKltGT10qLwogICAgIFVfV0JfS0FUQUtBTkEgPSAzLCAgICAgICAgICAvKltLQV0q
LwpAQCAtMTYwNSw3ICsxNzIxLDExIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsK
ICAgICBVX1dCX0xGID0gMTAsICAgICAgICAgICAgICAgLypbTEZdKi8KICAgICBVX1dCX01JRE5V
TUxFVCA9MTEsICAgICAgICAgLypbTUJdKi8KICAgICBVX1dCX05FV0xJTkUgPTEyLCAgICAgICAg
ICAgLypbTkxdKi8KLSAgICBVX1dCX0NPVU5UID0gMTMKKyAgICBVX1dCX1JFR0lPTkFMX0lORElD
QVRPUiA9IDEzLCAgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1UgNTAgKi8KKyAg
ICBVX1dCX0hFQlJFV19MRVRURVIgPSAxNCwgICAgLypbSExdKi8gLyogZnJvbSBoZXJlIG9uOiBu
ZXcgaW4gVW5pY29kZSA2LjMvSUNVIDUyICovCisgICAgVV9XQl9TSU5HTEVfUVVPVEUgPSAxNSwg
ICAgIC8qW1NRXSovCisgICAgVV9XQl9ET1VCTEVfUVVPVEUgPSAxNiwgICAgIC8qW0RRXSovCisg
ICAgVV9XQl9DT1VOVCA9IDE3CiB9IFVXb3JkQnJlYWtWYWx1ZXM7CiAKIC8qKgpAQCAtMTYxNSw3
ICsxNzM1LDEzIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAqIEBzdGFibGUg
SUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewotICAgIFVfU0JfT1RI
RVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAg
ICAqIE5vdGU6IFVTZW50ZW5jZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNl
dWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX1NCXzxV
bmljb2RlIFNlbnRlbmNlX0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX1NCX09U
SEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8KICAgICBVX1NCX0FURVJNID0gMSwgICAgICAg
ICAgICAgLypbQVRdKi8KICAgICBVX1NCX0NMT1NFID0gMiwgICAgICAgICAgICAgLypbQ0xdKi8K
ICAgICBVX1NCX0ZPUk1BVCA9IDMsICAgICAgICAgICAgLypbRk9dKi8KQEAgLTE2NDAsNyArMTc2
NiwxMyBAQCB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewogICogQHN0YWJsZSBJQ1UgMi4y
CiAgKi8KIHR5cGVkZWYgZW51bSBVTGluZUJyZWFrIHsKLSAgICBVX0xCX1VOS05PV04gPSAwLCAg
ICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBV
TGluZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAq
IEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0xCXzxVbmljb2RlIExpbmVfQnJl
YWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfTEJfVU5LTk9XTiA9IDAsICAgICAgICAg
ICAvKltYWF0qLwogICAgIFVfTEJfQU1CSUdVT1VTID0gMSwgICAgICAgICAvKltBSV0qLwogICAg
IFVfTEJfQUxQSEFCRVRJQyA9IDIsICAgICAgICAvKltBTF0qLwogICAgIFVfTEJfQlJFQUtfQk9U
SCA9IDMsICAgICAgICAvKltCMl0qLwpAQCAtMTY1NSw5ICsxNzg3LDkgQEAgdHlwZWRlZiBlbnVt
IFVMaW5lQnJlYWsgewogICAgIFVfTEJfR0xVRSA9IDEyLCAgICAgICAgICAgICAgLypbR0xdKi8K
ICAgICBVX0xCX0hZUEhFTiA9IDEzLCAgICAgICAgICAgIC8qW0hZXSovCiAgICAgVV9MQl9JREVP
R1JBUEhJQyA9IDE0LCAgICAgICAvKltJRF0qLwotICAgIFVfTEJfSU5TRVBFUkFCTEUgPSAxNSwK
ICAgICAvKiogUmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5p
Y29kZSA0LjAuMS9JQ1UgMy4wIEBzdGFibGUgSUNVIDMuMCAqLwotICAgIFVfTEJfSU5TRVBBUkFC
TEU9VV9MQl9JTlNFUEVSQUJMRSwvKltJTl0qLworICAgIFVfTEJfSU5TRVBBUkFCTEUgPSAxNSwg
ICAgICAgLypbSU5dKi8KKyAgICBVX0xCX0lOU0VQRVJBQkxFID0gVV9MQl9JTlNFUEFSQUJMRSwK
ICAgICBVX0xCX0lORklYX05VTUVSSUMgPSAxNiwgICAgIC8qW0lTXSovCiAgICAgVV9MQl9MSU5F
X0ZFRUQgPSAxNywgICAgICAgICAvKltMRl0qLwogICAgIFVfTEJfTk9OU1RBUlRFUiA9IDE4LCAg
ICAgICAgLypbTlNdKi8KQEAgLTE2NzksNyArMTgxMSwxMCBAQCB0eXBlZGVmIGVudW0gVUxpbmVC
cmVhayB7CiAgICAgVV9MQl9KVCA9IDM0LCAgICAgICAgICAgICAgICAvKltKVF0qLwogICAgIFVf
TEJfSlYgPSAzNSwgICAgICAgICAgICAgICAgLypbSlZdKi8KICAgICBVX0xCX0NMT1NFX1BBUkVO
VEhFU0lTID0gMzYsIC8qW0NQXSovIC8qIG5ldyBpbiBVbmljb2RlIDUuMi9JQ1UgNC40ICovCi0g
ICAgVV9MQl9DT1VOVCA9IDM3CisgICAgVV9MQl9DT05ESVRJT05BTF9KQVBBTkVTRV9TVEFSVEVS
ID0gMzcsLypbQ0pdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAgIFVfTEJf
SEVCUkVXX0xFVFRFUiA9IDM4LCAgICAgLypbSExdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lD
VSA0OSAqLworICAgIFVfTEJfUkVHSU9OQUxfSU5ESUNBVE9SID0gMzksLypbUkldKi8gLyogbmV3
IGluIFVuaWNvZGUgNi4yL0lDVSA1MCAqLworICAgIFVfTEJfQ09VTlQgPSA0MAogfSBVTGluZUJy
ZWFrOwogCiAvKioKQEAgLTE2ODksNyArMTgyNCwxMyBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVh
ayB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1lcmljVHlwZSB7
Ci0gICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLyAvKlNlZSBub3RlICEhKi8K
KyAgICAvKgorICAgICAqIE5vdGU6IFVOdW1lcmljVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBi
eSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAg
ICAgVV9OVF88VW5pY29kZSBOdW1lcmljX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IFVfTlRfTk9ORSwgICAgICAgICAgICAgIC8qW05vbmVdKi8KICAgICBVX05UX0RFQ0lNQUwsICAg
ICAgICAgICAvKltkZV0qLwogICAgIFVfTlRfRElHSVQsICAgICAgICAgICAgIC8qW2RpXSovCiAg
ICAgVV9OVF9OVU1FUklDLCAgICAgICAgICAgLypbbnVdKi8KQEAgLTE3MDMsNyArMTg0NCwxMyBA
QCB0eXBlZGVmIGVudW0gVU51bWVyaWNUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuNgogICovCiB0
eXBlZGVmIGVudW0gVUhhbmd1bFN5bGxhYmxlVHlwZSB7Ci0gICAgVV9IU1RfTk9UX0FQUExJQ0FC
TEUsICAgLypbTkFdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSGFu
Z3VsU3lsbGFibGVUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5Lgor
ICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0hTVF88VW5pY29kZSBI
YW5ndWxfU3lsbGFibGVfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9IU1RfTk9U
X0FQUExJQ0FCTEUsICAgLypbTkFdKi8KICAgICBVX0hTVF9MRUFESU5HX0pBTU8sICAgICAvKltM
XSovCiAgICAgVV9IU1RfVk9XRUxfSkFNTywgICAgICAgLypbVl0qLwogICAgIFVfSFNUX1RSQUlM
SU5HX0pBTU8sICAgIC8qW1RdKi8KQEAgLTE5MDYsNiArMjA1Myw4IEBAIHVfZ2V0SW50UHJvcGVy
dHlNYXhWYWx1ZShVUHJvcGVydHkgd2hpY2gpOwogICoKICAqIEZvciBjaGFyYWN0ZXJzIHdpdGhv
dXQgYW55IG51bWVyaWMgdmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSwK
ICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gVV9OT19OVU1FUklDX1ZBTFVFLgorICogTm90
ZTogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgVW5pY29kZSBTdGFuZGFyZCB3aGljaCBzcGVj
aWZpZXMgTmFOIGFzIHRoZSBkZWZhdWx0IHZhbHVlLgorICogKE5hTiBpcyBub3QgYXZhaWxhYmxl
IG9uIGFsbCBwbGF0Zm9ybXMuKQogICoKICAqIFNpbWlsYXIgdG8gamF2YS5sYW5nLkNoYXJhY3Rl
ci5nZXROdW1lcmljVmFsdWUoKSwgYnV0IHVfZ2V0TnVtZXJpY1ZhbHVlKCkKICAqIGFsc28gc3Vw
cG9ydHMgbmVnYXRpdmUgdmFsdWVzLCBsYXJnZSB2YWx1ZXMsIGFuZCBmcmFjdGlvbnMsCkBAIC0y
Mzc5LDcgKzI1MjgsNyBAQCB1X2lzTWlycm9yZWQoVUNoYXIzMiBjKTsKICAqIGFzIHRoZSBtaXJy
b3ItaW1hZ2Ugb2YgdGhlIGRlZmF1bHQgZ2x5cGggb2YgdGhlIHNwZWNpZmllZAogICogY2hhcmFj
dGVyLiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tCiAgKiBj
b2RlcGFnZXMgd2l0aCB2aXN1YWwgb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlw
aAotICogc2VsZWNldGlvbiBjYXBhYmlsaXRpZXMuCisgKiBzZWxlY3Rpb24gY2FwYWJpbGl0aWVz
LgogICoKICAqIEBwYXJhbSBjIHRoZSBjb2RlIHBvaW50IHRvIGJlIG1hcHBlZAogICogQHJldHVy
biBhbm90aGVyIFVuaWNvZGUgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1pcnJvci1p
bWFnZQpAQCAtMjM5NCw2ICsyNTQzLDI1IEBAIFVfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCiB1
X2NoYXJNaXJyb3IoVUNoYXIzMiBjKTsKIAogLyoqCisgKiBNYXBzIHRoZSBzcGVjaWZpZWQgY2hh
cmFjdGVyIHRvIGl0cyBwYWlyZWQgYnJhY2tldCBjaGFyYWN0ZXIuCisgKiBGb3IgQmlkaV9QYWly
ZWRfQnJhY2tldF9UeXBlIT1Ob25lLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHVfY2hhck1pcnJvcigp
LgorICogT3RoZXJ3aXNlIGMgaXRzZWxmIGlzIHJldHVybmVkLgorICogU2VlIGh0dHA6Ly93d3cu
dW5pY29kZS5vcmcvcmVwb3J0cy90cjkvCisgKgorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQg
dG8gYmUgbWFwcGVkCisgKiBAcmV0dXJuIHRoZSBwYWlyZWQgYnJhY2tldCBjb2RlIHBvaW50LAor
ICogICAgICAgICBvciBjIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcKKyAqICAg
ICAgICAgKEJpZGlfUGFpcmVkX0JyYWNrZXRfVHlwZT1Ob25lKQorICoKKyAqIEBzZWUgVUNIQVJf
QklESV9QQUlSRURfQlJBQ0tFVAorICogQHNlZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUX1RZ
UEUKKyAqIEBzZWUgdV9jaGFyTWlycm9yCisgKiBAc3RhYmxlIElDVSA1MgorICovCitVX1NUQUJM
RSBVQ2hhcjMyIFVfRVhQT1JUMgordV9nZXRCaWRpUGFpcmVkQnJhY2tldChVQ2hhcjMyIGMpOwor
CisvKioKICAqIFJldHVybnMgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgdmFsdWUgZm9yIHRoZSBjb2Rl
IHBvaW50LgogICoKICAqIFNhbWUgYXMgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlKCkuCkBA
IC0yNTUzLDEzICsyNzIxLDExIEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2RlLCBVQ2hhck5hbWVD
aG9pY2UgbmFtZUNob2ljZSwKICAgICAgICAgICAgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZl
ckxlbmd0aCwKICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKKyNpZm5kZWYg
VV9ISURFX0RFUFJFQ0FURURfQVBJIAogLyoqCi0gKiBHZXQgdGhlIElTTyAxMDY0NiBjb21tZW50
IGZvciBhIGNoYXJhY3Rlci4KLSAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1h
dGl2ZSBmaWVsZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKLSAqIERhdGFiYXNlIChVbmljb2Rl
RGF0YS50eHQgZmllbGQgMTEpIGFuZCBpcyBmcm9tIHRoZSBJU08gMTA2NDYgbmFtZXMgbGlzdC4K
LSAqCi0gKiBOb3RlOiBVbmljb2RlIDUuMiByZW1vdmVzIGFsbCBJU08gY29tbWVudCBkYXRhLCBy
ZXN1bHRpbmcgaW4gZW1wdHkgc3RyaW5ncwotICogcmV0dXJuZWQgZm9yIGFsbCBjaGFyYWN0ZXJz
LgorICogUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgKiBVc2VkIHRvIHJldHVybiB0aGUgSVNP
IDEwNjQ2IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICogVGhlIFVuaWNvZGUgSVNPX0NvbW1l
bnQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIHZhbHVlcy4KICAqCiAgKiBAcGFy
YW0gYyBUaGUgY2hhcmFjdGVyIChjb2RlIHBvaW50KSBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBJU08g
Y29tbWVudC4KICAqICAgICAgICAgICAgIEl0IG11c3QgYmUgPGNvZGU+MDw9Yzw9MHgxMGZmZmY8
L2NvZGU+LgpAQCAtMjU3MCwxOCArMjczNiwxNSBAQCB1X2NoYXJOYW1lKFVDaGFyMzIgY29kZSwg
VUNoYXJOYW1lQ2hvaWNlIG5hbWVDaG9pY2UsCiAgKiBAcGFyYW0gcEVycm9yQ29kZSBQb2ludGVy
IHRvIGEgVUVycm9yQ29kZSB2YXJpYWJsZTsKICAqICAgICAgICBjaGVjayBmb3IgPGNvZGU+VV9T
VUNDRVNTKCk8L2NvZGU+IGFmdGVyIDxjb2RlPnVfZ2V0SVNPQ29tbWVudCgpPC9jb2RlPgogICog
ICAgICAgIHJldHVybnMuCi0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGNvbW1lbnQsIG9y
IDAgaWYgdGhlcmUgaXMgbm8gY29tbWVudCBmb3IgdGhpcyBjaGFyYWN0ZXIuCi0gKiAgICAgICAg
IElmIHRoZSBkZXN0Q2FwYWNpdHkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGgs
IHRoZW4gdGhlIGJ1ZmZlcgotICogICAgICAgICBjb250YWlucyB0aGUgdHJ1bmNhdGVkIG5hbWUg
YW5kIHRoZSByZXR1cm5lZCBsZW5ndGggaW5kaWNhdGVzIHRoZSBmdWxsCi0gKiAgICAgICAgIGxl
bmd0aCBvZiB0aGUgbmFtZS4KLSAqICAgICAgICAgVGhlIGxlbmd0aCBkb2VzIG5vdCBpbmNsdWRl
IHRoZSB6ZXJvLXRlcm1pbmF0aW9uLgorICogQHJldHVybiAwCiAgKgotICogQHN0YWJsZSBJQ1Ug
Mi4yCisgKiBAZGVwcmVjYXRlZCBJQ1UgNDkKICAqLwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKIHVfZ2V0SVNPQ29tbWVudChVQ2hhcjMyIGMsCiAgICAgICAgICAgICAgICAgY2hhciAqZGVz
dCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAq
IEZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2Rl
IHBvaW50IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNu
di5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNudi5oCmluZGV4IDk4ZGE4ZmY2OTQ3
YTMzMzAxYjc5YTk5MWU0YWY0Mjc3MDE1M2JhYzkuLmM1ZmMyZGM3ODU2YTE2ZTIxZmQzMDc5MTdi
NzM4MDI3ZjU2NjA1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vj
bnYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y252LmgKQEAgLTEsNiArMSw2
IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTMs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICB1Y252Lmg6CkBA
IC04OCw0NiArODgsODIgQEAgVV9DREVDTF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8K
IHR5cGVkZWYgZW51bSB7CisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVU5T
VVBQT1JURURfQ09OVkVSVEVSID0gLTEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVDTlZfU0JDUyA9IDAsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfREJD
UyA9IDEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTUJDUyA9IDIsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTEFUSU5fMSA9IDMsCisgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGOCA9IDQsCisgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVDTlZfVVRGMTZfQmlnRW5kaWFuID0gNSwKKyAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4wICovCiAgICAgVUNOVl9VVEYxNl9MaXR0bGVFbmRpYW4gPSA2LAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjMyX0JpZ0VuZGlhbiA9IDcsCisgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGMzJfTGl0dGxlRW5kaWFuID0gOCwKKyAg
ICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9FQkNESUNfU1RBVEVGVUwgPSA5LAor
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0lTT18yMDIyID0gMTAsCiAKKyAg
ICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xID0gMTEsCisgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMiwgCisgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVUNOVl9MTUJDU180LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X0xNQkNTXzUsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfNiwK
KyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU184LAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzExLAorICAgIC8qKiBAc3RhYmxlIElD
VSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE2LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8K
ICAgICBVQ05WX0xNQkNTXzE3LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X0xNQkNTXzE4LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE5
LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTX0xBU1QgPSBVQ05W
X0xNQkNTXzE5LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0haLAorICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1NDU1UsCisgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVDTlZfSVNDSUksCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfVVNfQVNDSUksCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZf
VVRGNywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9CT0NVMSwKKyAgICAv
KiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9VVEYxNiwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4yICovCiAgICAgVUNOVl9VVEYzMiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgVUNOVl9DRVNVOCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNOVl9JTUFQ
X01BSUxCT1gsCisgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgIFVDTlZfQ09NUE9VTkRf
VEVYVCwKIAogICAgIC8qIE51bWJlciBvZiBjb252ZXJ0ZXIgdHlwZXMgZm9yIHdoaWNoIHdlIGhh
dmUgY29udmVyc2lvbiByb3V0aW5lcy4gKi8KICAgICBVQ05WX05VTUJFUl9PRl9TVVBQT1JURURf
Q09OVkVSVEVSX1RZUEVTCi0KIH0gVUNvbnZlcnRlclR5cGU7CiAKIC8qKgpAQCAtMzA1LDYgKzM0
MSw4IEBAIHVjbnZfY29tcGFyZU5hbWVzKGNvbnN0IGNoYXIgKm5hbWUxLCBjb25zdCBjaGFyICpu
YW1lMik7CiAgKiBvdGhlciB0aGFuIGl0cyBhbiBhbGlhcyBzdGFydGluZyB3aXRoIHRoZSBsZXR0
ZXJzICJjcCIuIFBsZWFzZSBkbyBub3QKICAqIGFzc29jaWF0ZSBhbnkgbWVhbmluZyB0byB0aGVz
ZSBhbGlhc2VzLjwvcD4KICAqCisgKiBcc25pcHBldCBzYW1wbGVzL3VjbnYvY29udnNhbXAuY3Bw
IHVjbnZfb3BlbgorICoKICAqIEBwYXJhbSBjb252ZXJ0ZXJOYW1lIE5hbWUgb2YgdGhlIGNvZGVk
IGNoYXJhY3RlciBzZXQgdGFibGUuCiAgKiAgICAgICAgICBUaGlzIG1heSBoYXZlIG9wdGlvbnMg
YXBwZW5kZWQgdG8gdGhlIHN0cmluZy4KICAqICAgICAgICAgIElBTkEgYWxpYXMgY2hhcmFjdGVy
IHNldCBuYW1lcywgSUJNIENDU0lEcyBzdGFydGluZyB3aXRoICJpYm0tIiwKQEAgLTQ4MywxMCAr
NTIxLDEyIEBAIHVjbnZfb3BlblBhY2thZ2UoY29uc3QgY2hhciAqcGFja2FnZU5hbWUsIGNvbnN0
IGNoYXIgKmNvbnZlcnRlck5hbWUsIFVFcnJvckNvZGUKICAqIGFkanVzdGVkIHBvaW50ZXIgYW5k
IHVzZSBhbiBhY2NvcmRpbmdseSBzbWFsbGVyIGJ1ZmZlciBzaXplLgogICoKICAqIEBwYXJhbSBj
bnYgY29udmVydGVyIHRvIGJlIGNsb25lZAotICogQHBhcmFtIHN0YWNrQnVmZmVyIHVzZXIgYWxs
b2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkgd2lsbCBi
ZSBhbGxvY2F0ZWQuIAorICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0
aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4KKyAqICB1c2VyIGFsbG9j
YXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUg
YWxsb2NhdGVkLiAKICAqICBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9y
eSB3aWxsIGJlIGFsbG9jYXRlZC4KICAqICBDbGllbnRzIGNhbiB1c2UgdGhlIFVfQ05WX1NBRkVD
TE9ORV9CVUZGRVJTSVpFLiBUaGlzIHdpbGwgcHJvYmFibHkgYmUgZW5vdWdoIHRvIGF2b2lkIG1l
bW9yeSBhbGxvY2F0aW9ucy4KLSAqIEBwYXJhbSBwQnVmZmVyU2l6ZSBwb2ludGVyIHRvIHNpemUg
b2YgYWxsb2NhdGVkIHNwYWNlLiBwQnVmZmVyU2l6ZSBtdXN0IG5vdCBiZSBOVUxMLgorICogQHBh
cmFtIHBCdWZmZXJTaXplIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUy
LCB1c2UgTlVMTCBvciAxLjwvZW0+PGJyPgorICogIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0
ZWQgc3BhY2UuCiAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJh
dGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCiAgKiAgQW4gaW5mb3Jt
YXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HLAogICog
IGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUgbmVjZXNzYXJ5LgpAQCAtNTAyLDE0ICs1
NDIsMTggQEAgdWNudl9zYWZlQ2xvbmUoY29uc3QgVUNvbnZlcnRlciAqY252LAogICAgICAgICAg
ICAgICAgaW50MzJfdCAgICAgICAgICAqcEJ1ZmZlclNpemUsIAogICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAgICAgICAqc3RhdHVzKTsKIAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkK
KwogLyoqCiAgKiBcZGVmIFVfQ05WX1NBRkVDTE9ORV9CVUZGRVJTSVpFCiAgKiBEZWZpbml0aW9u
IG9mIGEgYnVmZmVyIHNpemUgdGhhdCBpcyBkZXNpZ25lZCB0byBiZSBsYXJnZSBlbm91Z2ggZm9y
CiAgKiBjb252ZXJ0ZXJzIHRvIGJlIGNsb25lZCB3aXRoIHVjbnZfc2FmZUNsb25lKCkuCi0gKiBA
c3RhYmxlIElDVSAyLjAKKyAqIEBkZXByZWNhdGVkIElDVSA1Mi4gRG8gbm90IHJlbHkgb24gdWNu
dl9zYWZlQ2xvbmUoKSBjbG9uaW5nIGludG8gYW55IHByb3ZpZGVkIGJ1ZmZlci4KICAqLwogI2Rl
ZmluZSBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0laRSAgMTAyNAogCisjZW5kaWYgLyogVV9ISURF
X0RFUFJFQ0FURURfQVBJICovCisKIC8qKgogICogRGVsZXRlcyB0aGUgdW5pY29kZSBjb252ZXJ0
ZXIgYW5kIHJlbGVhc2VzIHJlc291cmNlcyBhc3NvY2lhdGVkCiAgKiB3aXRoIGp1c3QgdGhpcyBp
bnN0YW5jZS4KQEAgLTE4MjEsNiArMTg2NSw3IEBAIHVjbnZfZ2V0Q2Fub25pY2FsTmFtZShjb25z
dCBjaGFyICphbGlhcywgY29uc3QgY2hhciAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBFcnJvCiBV
X1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCiB1Y252X2dldERlZmF1bHROYW1lKHZvaWQp
OwogCisjaWZuZGVmIFVfSElERV9TWVNURU1fQVBJCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gaXMg
bm90IHRocmVhZCBzYWZlLiBETyBOT1QgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gQU5ZIElDVQog
ICogZnVuY3Rpb24gaXMgYmVpbmcgdXNlZCBmcm9tIG1vcmUgdGhhbiBvbmUgdGhyZWFkISBUaGlz
IGZ1bmN0aW9uIHNldHMgdGhlCkBAIC0xODM5LDYgKzE4ODQsNyBAQCB1Y252X2dldERlZmF1bHRO
YW1lKHZvaWQpOwogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgogdWNudl9zZXREZWZhdWx0
TmFtZShjb25zdCBjaGFyICpuYW1lKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8K
IAogLyoqCiAgKiBGaXhlcyB0aGUgYmFja3NsYXNoIGNoYXJhY3RlciBtaXNtYXBwaW5nLiAgRm9y
IGV4YW1wbGUsIGluIFNKSVMsIHRoZSBiYWNrc2xhc2ggCkBAIC0xOTE4LDM0ICsxOTY0LDcgQEAg
dWNudl91c2VzRmFsbGJhY2soY29uc3QgVUNvbnZlcnRlciAqY252KTsKICAqIGluc3RlYWQgb2Yg
dGhlIGlucHV0IHNpZ25hdHVyZSBieXRlcy4KICAqIDxwPgogICogVXNhZ2U6Ci0gKiBAY29kZSAg
ICAgCi0gKiAgICAgIFVFcnJvckNvZGUgZXJyID0gVV9aRVJPX0VSUk9SOwotICogICAgICBjaGFy
IGlucHV0W10gPSB7ICdceEVGJywnXHhCQicsICdceEJGJywnXHg0MScsJ1x4NDInLCdceDQzJyB9
OwotICogICAgICBpbnQzMl90IHNpZ25hdHVyZUxlbmd0aCA9IDA7Ci0gKiAgICAgIGNoYXIgKmVu
Y29kaW5nID0gdWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKGlucHV0LHNpemVvZihpbnB1dCks
JnNpZ25hdHVyZUxlbmd0aCwmZXJyKTsKLSAqICAgICAgVUNvbnZlcnRlciAqY29udiA9IE5VTEw7
Ci0gKiAgICAgIFVDaGFyIG91dHB1dFsxMDBdOwotICogICAgICBVQ2hhciAqdGFyZ2V0ID0gb3V0
cHV0LCAqb3V0OwotICogICAgICBjaGFyICpzb3VyY2UgPSBpbnB1dDsKLSAqICAgICAgaWYoZW5j
b2RpbmchPU5VTEwgJiYgVV9TVUNDRVNTKGVycikpewotICogICAgICAgICAgLy8gc2hvdWxkIHNp
Z25hdHVyZSBiZSBkaXNjYXJkZWQgPwotICogICAgICAgICAgY29udiA9IHVjbnZfb3BlbihlbmNv
ZGluZywgJmVycik7Ci0gKiAgICAgICAgICAvLyBkbyB0aGUgY29udmVyc2lvbgotICogICAgICAg
ICAgdWNudl90b1VuaWNvZGUoY29udiwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl
dCwgb3V0cHV0ICsgc2l6ZW9mKG91dHB1dCkvVV9TSVpFT0ZfVUNIQVIsCi0gKiAgICAgICAgICAg
ICAgICAgICAgICAgICBzb3VyY2UsIGlucHV0ICsgc2l6ZW9mKGlucHV0KSwKLSAqICAgICAgICAg
ICAgICAgICAgICAgICAgIE5VTEwsIFRSVUUsICZlcnIpOwotICogICAgICAgICAgb3V0ID0gb3V0
cHV0OwotICogICAgICAgICAgaWYgKGRpc2NhcmRTaWduYXR1cmUpewotICogICAgICAgICAgICAg
ICsrb3V0OyAvLyBpZ25vcmUgaW5pdGlhbCBVK0ZFRkYKLSAqICAgICAgICAgIH0KLSAqICAgICAg
ICAgIHdoaWxlKG91dCAhPSB0YXJnZXQpIHsKLSAqICAgICAgICAgICAgICBwcmludGYoIiUwNHgg
IiwgKm91dCsrKTsKLSAqICAgICAgICAgIH0KLSAqICAgICAgICAgIHB1dHMoIiIpOwotICogICAg
ICB9Ci0gKiAgICAgCi0gKiBAZW5kY29kZQorICogXHNuaXBwZXQgc2FtcGxlcy91Y252L2NvbnZz
YW1wLmNwcCB1Y252X2RldGVjdFVuaWNvZGVTaWduYXR1cmUKICAqCiAgKiBAcGFyYW0gc291cmNl
ICAgICAgICAgICAgVGhlIHNvdXJjZSBzdHJpbmcgaW4gd2hpY2ggdGhlIHNpZ25hdHVyZSBzaG91
bGQgYmUgZGV0ZWN0ZWQuCiAgKiBAcGFyYW0gc291cmNlTGVuZ3RoICAgICAgTGVuZ3RoIG9mIHRo
ZSBpbnB1dCBzdHJpbmcsIG9yIC0xIGlmIHRlcm1pbmF0ZWQgd2l0aCBhIE5VTCBieXRlLgpAQCAt
MTk5MSw2ICsyMDEwLDI0IEBAIHVjbnZfZnJvbVVDb3VudFBlbmRpbmcoY29uc3QgVUNvbnZlcnRl
ciogY252LCBVRXJyb3JDb2RlKiBzdGF0dXMpOwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIK
IHVjbnZfdG9VQ291bnRQZW5kaW5nKGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwgVUVycm9yQ29kZSog
c3RhdHVzKTsKIAorLyoqCisgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjaGFyc2V0IG9m
IHRoZSBjb252ZXJ0ZXIgaGFzIGEgZml4ZWQgbnVtYmVyIG9mIGJ5dGVzCisgKiBwZXIgY2hhcnNl
dCBjaGFyYWN0ZXIuCisgKiBBbiBleGFtcGxlIG9mIHRoaXMgYXJlIGNvbnZlcnRlcnMgdGhhdCBh
cmUgb2YgdGhlIHR5cGUgVUNOVl9TQkNTIG9yIFVDTlZfREJDUy4KKyAqIEFub3RoZXIgZXhhbXBs
ZSBpcyBVVEYtMzIgd2hpY2ggaXMgYWx3YXlzIDQgYnl0ZXMgcGVyIGNoYXJhY3Rlci4KKyAqIEEg
VW5pY29kZSBjb2RlIHBvaW50IG1heSBiZSByZXByZXNlbnRlZCBieSBtb3JlIHRoYW4gb25lIFVU
Ri04IG9yIFVURi0xNiBjb2RlIHVuaXQKKyAqIGJ1dCBhIFVURi0zMiBjb252ZXJ0ZXIgZW5jb2Rl
cyBlYWNoIGNvZGUgcG9pbnQgd2l0aCA0IGJ5dGVzLgorICogTm90ZTogVGhpcyBtZXRob2QgaXMg
bm90IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNoYXJzZXQg
aGFzIGEKKyAqIGZpeGVkIHJhdGlvIG9mIGJ5dGVzIHRvIFVuaWNvZGUgY29kZXMgPGk+dW5pdHM8
L2k+IGZvciBhbnkgcGFydGljdWxhciBVbmljb2RlIGVuY29kaW5nIGZvcm0uCisgKiBGQUxTRSBp
cyByZXR1cm5lZCB3aXRoIHRoZSBVRXJyb3JDb2RlIGlmIGVycm9yIG9jY3VycyBvciBjbnYgaXMg
TlVMTC4KKyAqIEBwYXJhbSBjbnYgICAgICAgVGhlIGNvbnZlcnRlciB0byBiZSB0ZXN0ZWQKKyAq
IEBwYXJhbSBzdGF0dXMgICAgSUNVIGVycm9yIGNvZGUgaW4vb3V0IHBhcmFtdGVyCisgKiBAcmV0
dXJuIFRSVUUgaWYgdGhlIGNvbnZlcnRlciBpcyBmaXhlZC13aWR0aAorICogQHN0YWJsZSBJQ1Ug
NC44CisgKi8KK1VfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgordWNudl9pc0ZpeGVkV2lkdGgoVUNv
bnZlcnRlciAqY252LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCiAjZW5kaWYKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y29sLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pY3UvdW5pY29kZS91Y29sLmgKaW5kZXggNGE0Y2Q2MDZlOGE3NzNkYmIxZTg3ZGVlNGMx
MDljZGFkNTExZTZkNy4uNWE0NTliNTJhZjRhOWZkNzY4NDAwNWM3ODlhYzM1NDNlOTI4ZDkzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNvbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjb2wuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCi0qIENvcHlyaWdodCAoYykgMTk5Ni0yMDEwLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisqIENvcHlyaWdodCAo
YykgMTk5Ni0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuCiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCiAqLwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIK
ICNpbmNsdWRlICJ1bmljb2RlL3Vsb2MuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VzZXQuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VzY3JpcHQuaCIKIAogLyoqCiAgKiBcZmlsZQpAQCAtNjMsMTIgKzY0
LDEyIEBAIHR5cGVkZWYgc3RydWN0IFVDb2xsYXRvciBVQ29sbGF0b3I7CiAKIC8qKgogICogVUNP
TF9MRVNTIGlzIHJldHVybmVkIGlmIHNvdXJjZSBzdHJpbmcgaXMgY29tcGFyZWQgdG8gYmUgbGVz
cyB0aGFuIHRhcmdldAotICogc3RyaW5nIGluIHRoZSB1X3N0cmNvbGwoKSBtZXRob2QuCisgKiBz
dHJpbmcgaW4gdGhlIHVjb2xfc3RyY29sbCgpIG1ldGhvZC4KICAqIFVDT0xfRVFVQUwgaXMgcmV0
dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBlcXVhbCB0byB0YXJnZXQK
LSAqIHN0cmluZyBpbiB0aGUgdV9zdHJjb2xsKCkgbWV0aG9kLgorICogc3RyaW5nIGluIHRoZSB1
Y29sX3N0cmNvbGwoKSBtZXRob2QuCiAgKiBVQ09MX0dSRUFURVIgaXMgcmV0dXJuZWQgaWYgc291
cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBncmVhdGVyIHRoYW4KLSAqIHRhcmdldCBzdHJp
bmcgaW4gdGhlIHVfc3RyY29sbCgpIG1ldGhvZC4KLSAqIEBzZWUgdV9zdHJjb2xsKCkKKyAqIHRh
cmdldCBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29sbCgpIG1ldGhvZC4KKyAqIEBzZWUgdWNvbF9z
dHJjb2xsKCkKICAqIDxwPgogICogUG9zc2libGUgdmFsdWVzIGZvciBhIGNvbXBhcmlzb24gcmVz
dWx0IAogICogQHN0YWJsZSBJQ1UgMi4wCkBAIC0xMzIsMTggKzEzMyw3NiBAQCB0eXBlZGVmIGVu
dW0gewogCiB9IFVDb2xBdHRyaWJ1dGVWYWx1ZTsKIAotLyoqIEVudW0gY29udGFpbmluZyB0aGUg
Y29kZXMgZm9yIHJlb3JkZXJpbmcgc2VnbWVudHMgb2YgdGhlIGNvbGxhdGlvbiB0YWJsZSB0aGF0
IGFyZSBub3Qgc2NyaXB0Ci0gKiAgY29kZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIHRv
IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgc2NyaXB0IGNvZGVzLgotICogIEBpbnRl
cm5hbAorLyoqCisgKiBFbnVtIGNvbnRhaW5pbmcgdGhlIGNvZGVzIGZvciByZW9yZGVyaW5nIHNl
Z21lbnRzIG9mIHRoZSBjb2xsYXRpb24gdGFibGUgdGhhdCBhcmUgbm90IHNjcmlwdAorICogY29k
ZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24g
d2l0aCB0aGUgc2NyaXB0IGNvZGVzLgorICogQHNlZSB1Y29sX2dldFJlb3JkZXJDb2RlcworICog
QHNlZSB1Y29sX3NldFJlb3JkZXJDb2RlcworICogQHNlZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9y
ZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCi10
eXBlZGVmIGVudW0gewotICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFICAgICAgICAgID0gMHgx
MDAwLAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX0ZJUlNUICAgICAgICAgID0gVUNPTF9SRU9SREVS
X0NPREVfU1BBQ0UsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfUFVOQ1RVQVRJT04gICAgPSAweDEw
MDEsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfU1lNQk9MICAgICAgICAgPSAweDEwMDIsCi0gICAg
VUNPTF9SRU9SREVSX0NPREVfQ1VSUkVOQ1kgICAgICAgPSAweDEwMDMsCi0gICAgVUNPTF9SRU9S
REVSX0NPREVfRElHSVQgICAgICAgICAgPSAweDEwMDQsCi0gICAgVUNPTF9SRU9SREVSX0NPREVf
TElNSVQgICAgICAgICAgPSAweDEwMDUKKyB0eXBlZGVmIGVudW0geworICAgLyoqCisgICAgKiBB
IHNwZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZWZh
dWx0CisgICAgKiByZW9yZGVyaW5nIGNvZGVzIGZvciBhIGxvY2FsZS4KKyAgICAqIEBzdGFibGUg
SUNVIDQuOAorICAgICovICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfREVGQVVMVCAgICAgICA9
IC0xLAorICAgLyoqCisgICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQgaXMgdXNl
ZCB0byBzcGVjaWZ5IG5vIHJlb3JkZXJpbmcgY29kZXMuCisgICAgKiBAc3RhYmxlIElDVSA0LjgK
KyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX05PTkUgICAgICAgICAgPSBVU0NSSVBU
X1VOS05PV04sCisgICAvKioKKyAgICAqIEEgc3BlY2lhbCByZW9yZGVyaW5nIGNvZGUgdGhhdCBp
cyB1c2VkIHRvIHNwZWNpZnkgYWxsIG90aGVyIGNvZGVzIHVzZWQgZm9yCisgICAgKiByZW9yZGVy
aW5nIGV4Y2VwdCBmb3IgdGhlIGNvZGVzIGxpc2VkIGFzIFVDb2xSZW9yZGVyQ29kZSB2YWx1ZXMg
YW5kIHRob3NlCisgICAgKiBsaXN0ZWQgZXhwbGljaXRseSBpbiBhIHJlb3JkZXJpbmcuCisgICAg
KiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX09USEVS
UyAgICAgICAgPSBVU0NSSVBUX1VOS05PV04sCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0
aCB0aGUgc3BhY2UgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1
bGUgdmFsdWUgInNwYWNlIi4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAg
IFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFICAgICAgICAgPSAweDEwMDAsCisgICAvKioKKyAgICAq
IFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgZW51bWVyYXRpb24gb2YgcmVvcmRlcmluZyBncm91cHMu
IFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBpbgorICAgICogcmFuZ2UgY2hlY2tpbmcgYW5kIGVu
dW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVzLgorICAgICogQHN0YWJsZSBJQ1UgNC44Cisg
ICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfRklSU1QgICAgICAgICA9IFVDT0xfUkVP
UkRFUl9DT0RFX1NQQUNFLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhlIHB1bmN0
dWF0aW9uIHByb3BlcnR5LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBydWxlIHZh
bHVlICJwdW5jdCIuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAgICBVQ09M
X1JFT1JERVJfQ09ERV9QVU5DVFVBVElPTiAgID0gMHgxMDAxLAorICAgLyoqCisgICAgKiBDaGFy
YWN0ZXJzIHdpdGggdGhlIHN5bWJvbCBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVu
dCB0byB0aGUgcnVsZSB2YWx1ZSAic3ltYm9sIi4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAg
ICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NZTUJPTCAgICAgICAgPSAweDEwMDIsCisg
ICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgY3VycmVuY3kgcHJvcGVydHkuCisgICAg
KiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgImN1cnJlbmN5Ii4KKyAgICAq
IEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0NVUlJF
TkNZICAgICAgPSAweDEwMDMsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgZGln
aXQgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUg
ImRpZ2l0Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVP
UkRFUl9DT0RFX0RJR0lUICAgICAgICAgPSAweDEwMDQsCisgICAvKioKKyAgICAqIFRoZSBsaW1p
dCBvZiB0aGUgcmVvcmRlciBjb2Rlcy4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIHJhbmdl
IGNoZWNraW5nIAorICAgICogYW5kIGVudW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVzLgor
ICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVf
TElNSVQgICAgICAgICA9IDB4MTAwNQogfSBVQ29sUmVvcmRlckNvZGU7CiAKIC8qKgpAQCAtMTc5
LDEwICsyMzgsMTIgQEAgdHlwZWRlZiBVQ29sQXR0cmlidXRlVmFsdWUgVUNvbGxhdGlvblN0cmVu
Z3RoOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAgIC8qKiBB
dHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBvZiBzZWNvbmRhcnkgd2VpZ2h0cyAtIHVzZWQgaW4gRnJl
bmNoLgorICAgICAvKiogQXR0cmlidXRlIGZvciBkaXJlY3Rpb24gb2Ygc2Vjb25kYXJ5IHdlaWdo
dHMgLSB1c2VkIGluIENhbmFkaWFuIEZyZW5jaC4KICAgICAgICogQWNjZXB0YWJsZSB2YWx1ZXMg
YXJlIFVDT0xfT04sIHdoaWNoIHJlc3VsdHMgaW4gc2Vjb25kYXJ5IHdlaWdodHMKICAgICAgICog
YmVpbmcgY29uc2lkZXJlZCBiYWNrd2FyZHMgYW5kIFVDT0xfT0ZGIHdoaWNoIHRyZWF0cyBzZWNv
bmRhcnkKLSAgICAgICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuKi8KKyAgICAg
ICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuCisgICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAgKi8KICAgICAgVUNPTF9GUkVOQ0hfQ09MTEFUSU9OLCAKICAgICAgLyoqIEF0
dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMuCiAgICAgICAqIEFjY2VwdGFi
bGUgdmFsdWVzIGFyZSBVQ09MX05PTl9JR05PUkFCTEUgKGRlZmF1bHQpCkBAIC0xOTEsMTQgKzI1
MiwxOCBAQCB0eXBlZGVmIGVudW0gewogICAgICAgKiBhbmQgVUNPTF9TSElGVEVEIHdoaWNoIGNh
dXNlcyBjb2RlcG9pbnRzIHdpdGggcHJpbWFyeSAKICAgICAgICogd2VpZ2h0cyB0aGF0IGFyZSBl
cXVhbCBvciBiZWxvdyB0aGUgdmFyaWFibGUgdG9wIHZhbHVlCiAgICAgICAqIHRvIGJlIGlnbm9y
ZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQgdG8gdGhlIHF1YXRlcm5hcnkgCi0gICAgICAq
IGxldmVsLiovCisgICAgICAqIGxldmVsLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
ICovCiAgICAgIFVDT0xfQUxURVJOQVRFX0hBTkRMSU5HLCAKICAgICAgLyoqIENvbnRyb2xzIHRo
ZSBvcmRlcmluZyBvZiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLgogICAgICAgKiBBY2Nl
cHRhYmxlIHZhbHVlcyBhcmUgVUNPTF9PRkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMKICAgICAg
ICogdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycyBpbiBhY2NvcmRhbmNlIHRvIHRoZWlyIHRl
cnRpYXJ5CiAgICAgICAqIHdlaWdodHMsIFVDT0xfVVBQRVJfRklSU1Qgd2hpY2ggZm9yY2VzIHVw
cGVyIGNhc2UgbGV0dGVycyB0byAKICAgICAgICogc29ydCBiZWZvcmUgbG93ZXIgY2FzZSBsZXR0
ZXJzLCBhbmQgVUNPTF9MT1dFUl9GSVJTVCB3aGljaCBkb2VzIAotICAgICAgKiB0aGUgb3Bwb3Np
dGUuICovCisgICAgICAqIHRoZSBvcHBvc2l0ZS4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICAqLwogICAgICBVQ09MX0NBU0VfRklSU1QsIAogICAgICAvKiogQ29udHJvbHMgd2hldGhl
ciBhbiBleHRyYSBjYXNlIGxldmVsIChwb3NpdGlvbmVkIGJlZm9yZSB0aGUgdGhpcmQKICAgICAg
ICogbGV2ZWwpIGlzIGdlbmVyYXRlZCBvciBub3QuIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBVQ09M
X09GRiAoZGVmYXVsdCksIApAQCAtMjA2LDcgKzI3MSw5IEBAIHR5cGVkZWYgZW51bSB7CiAgICAg
ICAqIGxldmVsIHRvIGJlIGdlbmVyYXRlZC4gQ29udGVudHMgb2YgdGhlIGNhc2UgbGV2ZWwgYXJl
IGFmZmVjdGVkIGJ5CiAgICAgICAqIHRoZSB2YWx1ZSBvZiBVQ09MX0NBU0VfRklSU1QgYXR0cmli
dXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIAogICAgICAgKiBhY2NlbnQgZGlmZmVyZW5jZXMg
aW4gYSBzdHJpbmcgaXMgdG8gc2V0IHRoZSBzdHJlbmd0aCB0byBVQ09MX1BSSU1BUlkKLSAgICAg
ICogYW5kIGVuYWJsZSBjYXNlIGxldmVsLiAqLworICAgICAgKiBhbmQgZW5hYmxlIGNhc2UgbGV2
ZWwuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9DQVNFX0xF
VkVMLAogICAgICAvKiogQ29udHJvbHMgd2hldGhlciB0aGUgbm9ybWFsaXphdGlvbiBjaGVjayBh
bmQgbmVjZXNzYXJ5IG5vcm1hbGl6YXRpb25zCiAgICAgICAqIGFyZSBwZXJmb3JtZWQuIFdoZW4g
c2V0IHRvIFVDT0xfT0ZGIChkZWZhdWx0KSBubyBub3JtYWxpemF0aW9uIGNoZWNrCkBAIC0yMTQs
OSArMjgxLDEzIEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIGlucHV0IGRhdGEgaXMgaW4gc28t
Y2FsbGVkIEZDRCBmb3JtIChzZWUgdXNlcnMgbWFudWFsIGZvciBtb3JlIGluZm8pLgogICAgICAg
KiBXaGVuIHNldCB0byBVQ09MX09OLCBhbiBpbmNyZW1lbnRhbCBjaGVjayBpcyBwZXJmb3JtZWQg
dG8gc2VlIHdoZXRoZXIKICAgICAgICogdGhlIGlucHV0IGRhdGEgaXMgaW4gdGhlIEZDRCBmb3Jt
LiBJZiB0aGUgZGF0YSBpcyBub3QgaW4gdGhlIEZDRCBmb3JtLAotICAgICAgKiBpbmNyZW1lbnRh
bCBORkQgbm9ybWFsaXphdGlvbiBpcyBwZXJmb3JtZWQuICovCisgICAgICAqIGluY3JlbWVudGFs
IE5GRCBub3JtYWxpemF0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICAqLwogICAgICBVQ09MX05PUk1BTElaQVRJT05fTU9ERSwgCi0gICAgIC8qKiBBbiBh
bGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUgYXR0cmlidXRlICovCisgICAgIC8qKiBB
biBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUgYXR0cmlidXRlLgorICAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfREVDT01QT1NJVElPTl9NT0RFID0g
VUNPTF9OT1JNQUxJWkFUSU9OX01PREUsCiAgICAgIC8qKiBUaGUgc3RyZW5ndGggYXR0cmlidXRl
LiBDYW4gYmUgZWl0aGVyIFVDT0xfUFJJTUFSWSwgVUNPTF9TRUNPTkRBUlksCiAgICAgICAqIFVD
T0xfVEVSVElBUlksIFVDT0xfUVVBVEVSTkFSWSBvciBVQ09MX0lERU5USUNBTC4gVGhlIHVzdWFs
IHN0cmVuZ3RoCkBAIC0yMjcsMjAgKzI5OCwzNyBAQCB0eXBlZGVmIGVudW0gewogICAgICAgKiBV
Q09MX0hJUkFHQU5BX1FVQVRFUk5BUlkgbW9kZSB0byBvbi4gT3RoZXJ3aXNlLCBxdWF0ZXJuYXJ5
IGxldmVsCiAgICAgICAqIGlzIGFmZmVjdGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdu
b3JhYmxlIGNvZGUgcG9pbnRzIGluCiAgICAgICAqIHRoZSBzdHJpbmcuIElkZW50aWNhbCBzdHJl
bmd0aCBpcyByYXJlbHkgdXNlZnVsLCBhcyBpdCBhbW91bnRzIAotICAgICAgKiB0byBjb2RlcG9p
bnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3RyaW5nLiAqLworICAgICAgKiB0byBjb2RlcG9p
bnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3RyaW5nLgorICAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgICovCiAgICAgIFVDT0xfU1RSRU5HVEgsICAKKyNpZm5kZWYgVV9ISURFX0RFUFJF
Q0FURURfQVBJCiAgICAgIC8qKiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUgcG9zaXRp
b25zIEhpcmFnYW5hIGJlZm9yZSBhbGwgIAogICAgICAgKiBub24taWdub3JhYmxlcyBvbiBxdWF0
ZXJuYXJ5IGxldmVsIFRoaXMgaXMgYSBzbmVha3kgd2F5IHRvIHByb2R1Y2UgSklTCi0gICAgICAq
IHNvcnQgb3JkZXIgKi8KLSAgICAgVUNPTF9ISVJBR0FOQV9RVUFURVJOQVJZX01PREUsCisgICAg
ICAqIHNvcnQgb3JkZXIuCisgICAgICAqCisgICAgICAqIFRoaXMgYXR0cmlidXRlIGlzIGFuIGlt
cGxlbWVudGF0aW9uIGRldGFpbCBvZiB0aGUgQ0xEUiBKYXBhbmVzZSB0YWlsb3JpbmcuCisgICAg
ICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBjaGFuZ2UgdG8gdXNlIGEgZGlmZmVyZW50IG1l
Y2hhbmlzbQorICAgICAgKiB0byBhY2hpZXZlIHRoZSBzYW1lIEphcGFuZXNlIHNvcnQgb3JkZXIu
CisgICAgICAqIFNpbmNlIElDVSA1MCwgdGhpcyBhdHRyaWJ1dGUgaXMgbm90IHNldHRhYmxlIGFu
eSBtb3JlIHZpYSBBUEkgZnVuY3Rpb25zLgorICAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgSW1w
bGVtZW50YXRpb24gZGV0YWlsLCBjYW5ub3QgYmUgc2V0IHZpYSBBUEksIG1pZ2h0IGJlIHJlbW92
ZWQgZnJvbSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICovCisgICAgIFVDT0xfSElSQUdBTkFfUVVB
VEVSTkFSWV9NT0RFID0gVUNPTF9TVFJFTkdUSCArIDEsCisjZW5kaWYgIC8qIFVfSElERV9ERVBS
RUNBVEVEX0FQSSAqLwogICAgICAvKiogV2hlbiB0dXJuZWQgb24sIHRoaXMgYXR0cmlidXRlIGdl
bmVyYXRlcyBhIGNvbGxhdGlvbiBrZXkKICAgICAgICogZm9yIHRoZSBudW1lcmljIHZhbHVlIG9m
IHN1YnN0cmluZ3Mgb2YgZGlnaXRzLgogICAgICAgKiBUaGlzIGlzIGEgd2F5IHRvIGdldCAnMTAw
JyB0byBzb3J0IEFGVEVSICcyJy4gTm90ZSB0aGF0IHRoZSBsb25nZXN0CiAgICAgICAqIGRpZ2l0
IHN1YnN0cmluZyB0aGF0IGNhbiBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbGxhdGlvbiBlbGVt
ZW50IGlzCiAgICAgICAqIDI1NCBkaWdpdHMgKG5vdCBjb3VudGluZyBsZWFkaW5nIHplcm9zKS4g
SWYgYSBkaWdpdCBzdWJzdHJpbmcgaXMKICAgICAgICogbG9uZ2VyIHRoYW4gdGhhdCwgdGhlIGRp
Z2l0cyBiZXlvbmQgdGhlIGxpbWl0IHdpbGwgYmUgdHJlYXRlZCBhcyBhCi0gICAgICAqIHNlcGFy
YXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24g
ZWxlbWVudC4gKi8KLSAgICAgVUNPTF9OVU1FUklDX0NPTExBVElPTiwgCisgICAgICAqIHNlcGFy
YXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24g
ZWxlbWVudC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAqLworICAgICBVQ09MX05V
TUVSSUNfQ09MTEFUSU9OID0gVUNPTF9TVFJFTkdUSCArIDIsIAorICAgICAvKioKKyAgICAgICog
VGhlIG51bWJlciBvZiBVQ29sQXR0cmlidXRlIGNvbnN0YW50cy4KKyAgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0FUVFJJQlVURV9DT1VOVAogfSBVQ29sQXR0cmli
dXRlOwogCkBAIC0yNDgsOSArMzM2LDE5IEBAIHR5cGVkZWYgZW51bSB7CiAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gIC8qKiBSZXRyaWV2ZSB0YWlsb3Jpbmcgb25s
eSAqLworICAvKioKKyAgICogUmV0cmlldmVzIHRoZSB0YWlsb3JpbmcgcnVsZXMgb25seS4KKyAg
ICogU2FtZSBhcyBjYWxsaW5nIHRoZSB2ZXJzaW9uIG9mIGdldFJ1bGVzKCkgd2l0aG91dCBVQ29s
UnVsZU9wdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwogICBVQ09MX1RBSUxPUklO
R19PTkxZLCAKLSAgLyoqIFJldHJpZXZlIFVDQSBydWxlcyBhbmQgdGFpbG9yaW5nICovCisgIC8q
KgorICAgKiBSZXRyaWV2ZXMgdGhlICJVQ0EgcnVsZXMiIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSB0
YWlsb3JpbmcgcnVsZXMuCisgICAqIFRoZSAiVUNBIHJ1bGVzIiBhcmUgYW4gPGk+YXBwcm94aW1h
dGlvbjwvaT4gb2YgdGhlIHJvb3QgY29sbGF0b3IncyBzb3J0IG9yZGVyLgorICAgKiBUaGV5IGFy
ZSBhbG1vc3QgbmV2ZXIgdXNlZCBvciB1c2VmdWwgYXQgcnVudGltZSBhbmQgY2FuIGJlIHJlbW92
ZWQgZnJvbSB0aGUgZGF0YS4KKyAgICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2NvbGxhdGlvbi9jdXN0b21pemF0aW9uI1RPQy1CdWlsZGluZy1vbi1FeGlzdGluZy1Mb2Nh
bGVzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KICAgVUNPTF9GVUxMX1JVTEVTIAogfSBV
Q29sUnVsZU9wdGlvbiA7CiAKQEAgLTM0Nyw2ICs0NDUsNyBAQCB1Y29sX29wZW5Gcm9tU2hvcnRT
dHJpbmcoIGNvbnN0IGNoYXIgKmRlZmluaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVQYXJzZUVycm9yICpwYXJzZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogLyoqCiAg
KiBHZXQgYSBzZXQgY29udGFpbmluZyB0aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkgdGhlIGNv
bGxhdG9yLiBUaGUgc2V0IGluY2x1ZGVzCiAgKiBib3RoIHRoZSBVQ0EgY29udHJhY3Rpb25zIGFu
ZCB0aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGlzIHNldApAQCAt
MzY0LDYgKzQ2Myw3IEBAIFVfREVQUkVDQVRFRCBpbnQzMl90IFVfRVhQT1JUMgogdWNvbF9nZXRD
b250cmFjdGlvbnMoIGNvbnN0IFVDb2xsYXRvciAqY29sbCwKICAgICAgICAgICAgICAgICAgIFVT
ZXQgKmNvbnRzLAogICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKKyNlbmRp
ZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAKIC8qKgogICogR2V0IGEgc2V0IGNvbnRh
aW5pbmcgdGhlIGV4cGFuc2lvbnMgZGVmaW5lZCBieSB0aGUgY29sbGF0b3IuIFRoZSBzZXQgaW5j
bHVkZXMKQEAgLTQzNSw2ICs1MzUsMzMgQEAgdWNvbF9zdHJjb2xsKCAgICBjb25zdCAgICBVQ29s
bGF0b3IgICAgKmNvbGwsCiAgICAgICAgIGNvbnN0ICAgIFVDaGFyICAgICAgICAqdGFyZ2V0LAog
ICAgICAgICBpbnQzMl90ICAgICAgICAgICAgdGFyZ2V0TGVuZ3RoKTsKIAorLyoqIAorKiBDb21w
YXJlIHR3byBzdHJpbmdzIGluIFVURi04LiAKKyogVGhlIHN0cmluZ3Mgd2lsbCBiZSBjb21wYXJl
ZCB1c2luZyB0aGUgb3B0aW9ucyBhbHJlYWR5IHNwZWNpZmllZC4gCisqIE5vdGU6IFdoZW4gaW5w
dXQgc3RyaW5nIGNvbnRhaW5zIG1hbGZvcm1lZCBhIFVURi04IGJ5dGUgc2VxdWVuY2UsIAorKiB0
aGlzIGZ1bmN0aW9uIHRyZWF0cyB0aGVzZSBieXRlcyBhcyBSRVBMQUNFTUVOVCBDSEFSQUNURVIg
KFUrRkZGRCkuCisqIEBwYXJhbSBjb2xsIFRoZSBVQ29sbGF0b3IgY29udGFpbmluZyB0aGUgY29t
cGFyaXNvbiBydWxlcy4gCisqIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBVVEYtOCBzdHJpbmcu
IAorKiBAcGFyYW0gc291cmNlTGVuZ3RoIFRoZSBsZW5ndGggb2Ygc291cmNlLCBvciAtMSBpZiBu
dWxsLXRlcm1pbmF0ZWQuIAorKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgVVRGLTggc3RyaW5n
LiAKKyogQHBhcmFtIHRhcmdldExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRhcmdldCwgb3IgLTEgaWYg
bnVsbC10ZXJtaW5hdGVkLiAKKyogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9y
Q29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMgCisqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBjb21w
YXJpbmcgdGhlIHN0cmluZ3M7IG9uZSBvZiBVQ09MX0VRVUFMLCAKKyogVUNPTF9HUkVBVEVSLCBV
Q09MX0xFU1MgCisqIEBzZWUgdWNvbF9ncmVhdGVyIAorKiBAc2VlIHVjb2xfZ3JlYXRlck9yRXF1
YWwgCisqIEBzZWUgdWNvbF9lcXVhbCAKKyogQHN0YWJsZSBJQ1UgNTAgCisqLyAKK1VfU1RBQkxF
IFVDb2xsYXRpb25SZXN1bHQgVV9FWFBPUlQyCit1Y29sX3N0cmNvbGxVVEY4KAorICAgICAgICBj
b25zdCBVQ29sbGF0b3IgKmNvbGwsCisgICAgICAgIGNvbnN0IGNoYXIgICAgICAqc291cmNlLAor
ICAgICAgICBpbnQzMl90ICAgICAgICAgc291cmNlTGVuZ3RoLAorICAgICAgICBjb25zdCBjaGFy
ICAgICAgKnRhcmdldCwKKyAgICAgICAgaW50MzJfdCAgICAgICAgIHRhcmdldExlbmd0aCwKKyAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOworCiAvKioKICAqIERldGVybWluZSBpZiBv
bmUgc3RyaW5nIGlzIGdyZWF0ZXIgdGhhbiBhbm90aGVyLgogICogVGhpcyBmdW5jdGlvbiBpcyBl
cXVpdmFsZW50IHRvIHtAbGluayAjdWNvbF9zdHJjb2xsIH0gPT0gVUNPTF9HUkVBVEVSCkBAIC01
MzYsMzcgKzY2Myw5MCBAQCB1Y29sX3NldFN0cmVuZ3RoKFVDb2xsYXRvciAqY29sbCwKICAgICAg
ICAgICAgICAgICAgVUNvbGxhdGlvblN0cmVuZ3RoIHN0cmVuZ3RoKTsKIAogLyoqCi0gKiBHZXQg
dGhlIGN1cnJlbnQgcmVvcmRlcmluZyBvZiBzY3JpcHRzIChpZiBvbmUgaGFzIGJlZW4gc2V0KS4K
KyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlcmluZyBjb2RlcyBmb3IgdGhpcyBjb2xsYXRvci4KKyAq
IFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIGEgY29tYmluYXRpb24gb2YgVVNjcmlwdCBjb2Rl
cyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuCiAgKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxh
dG9yIHRvIHF1ZXJ5LgogICogQHBhcmFtIGRlc3QgVGhlIGFycmF5IHRvIGZpbGwgd2l0aCB0aGUg
c2NyaXB0IG9yZGVyaW5nLgotICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgbGVuZ3RoIG9mIGRl
c3QuIElmIGl0IGlzIDAsIHRoZW4gZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdp
bGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBh
bnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgotICogQHBhcmFtIHBFcnJv
ckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hp
Y2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4K
LSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgb2YgdGhlIHNjcmlwdCBvcmRlcmlu
Zy4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIGxlbmd0aCBvZiBkZXN0LiBJZiBpdCBpcyAw
LCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiAKKyAqIHdpbGwgb25seSBy
ZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhl
IHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVz
dCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBu
b3QgaW5kaWNhdGUgYSAKKyAqIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICog
QHJldHVybiBUaGUgbnVtYmVyIG9mIHJlb3JkZXJpbmcgY29kZXMgd3JpdHRlbiB0byB0aGUgZGVz
dCBhcnJheS4KICAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKLSAqIEBpbnRlcm5hbCAKKyAq
IEBzZWUgdWNvbF9nZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2Rl
CisgKiBAc2VlIFVDb2xSZW9yZGVyQ29kZQorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8KLVVfSU5U
RVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKIHVj
b2xfZ2V0UmVvcmRlckNvZGVzKGNvbnN0IFVDb2xsYXRvciogY29sbCwKICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCogZGVzdCwKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwotCi0v
KioKLSAqIFNldCB0aGUgb3JkZXJpbmcgb2Ygc2NyaXB0cyBmb3IgdGhpcyBjb2xsYXRvci4KKy8q
KiAKKyAqIFNldHMgdGhlIHJlb3JkZXJpbmcgY29kZXMgZm9yIHRoaXMgY29sbGF0b3IuCisgKiBD
b2xsYXRpb24gcmVvcmRlcmluZyBhbGxvd3Mgc2NyaXB0cyBhbmQgc29tZSBvdGhlciBkZWZpbmVk
IGJsb2NrcyBvZiBjaGFyYWN0ZXJzIAorICogdG8gYmUgbW92ZWQgcmVsYXRpdmUgdG8gZWFjaCBv
dGhlciBhcyBhIGJsb2NrLiBUaGlzIHJlb3JkZXJpbmcgaXMgZG9uZSBvbiB0b3Agb2YgCisgKiB0
aGUgRFVDRVQvQ0xEUiBzdGFuZGFyZCBjb2xsYXRpb24gb3JkZXIuIFJlb3JkZXJpbmcgY2FuIHNw
ZWNpZnkgZ3JvdXBzIHRvIGJlIHBsYWNlZCAKKyAqIGF0IHRoZSBzdGFydCBhbmQvb3IgdGhlIGVu
ZCBvZiB0aGUgY29sbGF0aW9uIG9yZGVyLiBUaGVzZSBncm91cHMgYXJlIHNwZWNpZmllZCB1c2lu
ZworICogVVNjcmlwdCBjb2RlcyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuCisgKiA8cD5C
eSBkZWZhdWx0LCByZW9yZGVyaW5nIGNvZGVzIHNwZWNpZmllZCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBvcmRlciBhcmUgcGxhY2VkIGluIHRoZSAKKyAqIG9yZGVyIGdpdmVuIGFmdGVyIGEgZ3JvdXAg
b2YgInNwZWNpYWwiIG5vbi1zY3JpcHQgYmxvY2tzLiBUaGVzZSBzcGVjaWFsIGdyb3VwcyBvZiBj
aGFyYWN0ZXJzIAorICogYXJlIHNwYWNlLCBwdW5jdHVhdGlvbiwgc3ltYm9sLCBjdXJyZW5jeSwg
YW5kIGRpZ2l0LiBUaGVzZSBzcGVjaWFsIGdyb3VwcyBhcmUgcmVwcmVzZW50ZWQgd2l0aAorICog
VUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuIFNjcmlwdCBncm91cHMgY2FuIGJlIGludGVybWluZ2xl
ZCB3aXRoIAorICogdGhlc2Ugc3BlY2lhbCBub24tc2NyaXB0IGJsb2NrcyBpZiB0aG9zZSBzcGVj
aWFsIGJsb2NrcyBhcmUgZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gdGhlIHJlb3JkZXJpbmcuCisg
KiA8cD5UaGUgc3BlY2lhbCBjb2RlIE9USEVSUyBzdGFuZHMgZm9yIGFueSBzY3JpcHQgdGhhdCBp
cyBub3QgZXhwbGljaXRseSAKKyAqIG1lbnRpb25lZCBpbiB0aGUgbGlzdCBvZiByZW9yZGVyaW5n
IGNvZGVzIGdpdmVuLiBBbnl0aGluZyB0aGF0IGlzIGFmdGVyIE9USEVSUworICogd2lsbCBnbyBh
dCB0aGUgdmVyeSBlbmQgb2YgdGhlIHJlb3JkZXJpbmcgaW4gdGhlIG9yZGVyIGdpdmVuLgorICog
PHA+VGhlIHNwZWNpYWwgcmVvcmRlciBjb2RlIERFRkFVTFQgd2lsbCByZXNldCB0aGUgcmVvcmRl
cmluZyBmb3IgdGhpcyBjb2xsYXRvcgorICogdG8gdGhlIGRlZmF1bHQgZm9yIHRoaXMgY29sbGF0
b3IuIFRoZSBkZWZhdWx0IHJlb3JkZXJpbmcgbWF5IGJlIHRoZSBEVUNFVC9DTERSIG9yZGVyIG9y
IG1heSBiZSBhIHJlb3JkZXJpbmcgdGhhdAorICogd2FzIHNwZWNpZmllZCB3aGVuIHRoaXMgY29s
bGF0b3Igd2FzIGNyZWF0ZWQgZnJvbSByZXNvdXJjZSBkYXRhIG9yIGZyb20gcnVsZXMuIFRoZSAK
KyAqIERFRkFVTFQgY29kZSA8Yj5tdXN0PC9iPiBiZSB0aGUgc29sZSBjb2RlIHN1cHBsaWVkIHdo
ZW4gaXQgdXNlZC4gSWYgbm90CisgKiB0aGF0IHdpbGwgcmVzdWx0IGluIGFuIFVfSUxMRUdBTF9B
UkdVTUVOVF9FUlJPUiBiZWluZyBzZXQuCisgKiA8cD5UaGUgc3BlY2lhbCByZW9yZGVyIGNvZGUg
Tk9ORSB3aWxsIHJlbW92ZSBhbnkgcmVvcmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIFRo
ZSByZXN1bHQgb2Ygc2V0dGluZyBubyByZW9yZGVyaW5nIHdpbGwgYmUgdG8gaGF2ZSB0aGUgRFVD
RVQvQ0xEUiBvcmRlcmluZyB1c2VkLiBUaGUgCisgKiBOT05FIGNvZGUgPGI+bXVzdDwvYj4gYmUg
dGhlIHNvbGUgY29kZSBzdXBwbGllZCB3aGVuIGl0IHVzZWQuCiAgKiBAcGFyYW0gY29sbCBUaGUg
VUNvbGxhdG9yIHRvIHNldC4KLSAqIEBwYXJhbSByZW9yZGVyQ29kZXMgQW4gYXJyYXkgb2Ygc2Ny
aXB0IGNvZGVzIGluIHRoZSBuZXcgb3JkZXIuCisgKiBAcGFyYW0gcmVvcmRlckNvZGVzIEFuIGFy
cmF5IG9mIHNjcmlwdCBjb2RlcyBpbiB0aGUgbmV3IG9yZGVyLiBUaGlzIGNhbiBiZSBOVUxMIGlm
IHRoZSAKKyAqIGxlbmd0aCBpcyBhbHNvIHNldCB0byAwLiBBbiBlbXB0eSBhcnJheSB3aWxsIGNs
ZWFyIGFueSByZW9yZGVyaW5nIGNvZGVzIG9uIHRoZSBjb2xsYXRvci4KICAqIEBwYXJhbSByZW9y
ZGVyQ29kZXNMZW5ndGggVGhlIGxlbmd0aCBvZiByZW9yZGVyQ29kZXMuCi0gKiBAcGFyYW0gcEVy
cm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLCB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYQorICogZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCiAgKiBAc2VlIHVjb2xfZ2V0UmVvcmRlckNvZGVzCi0gKiBA
aW50ZXJuYWwgCi0gKi8KLVVfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgCisgKiBAc2VlIHVjb2xf
Z2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcworICogQHNlZSBVU2NyaXB0Q29kZQorICogQHNlZSBV
Q29sUmVvcmRlckNvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAorICovIAorVV9TVEFCTEUgdm9pZCBV
X0VYUE9SVDIgCiB1Y29sX3NldFJlb3JkZXJDb2RlcyhVQ29sbGF0b3IqIGNvbGwsCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGludDMyX3QqIHJlb3JkZXJDb2RlcywKICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCByZW9yZGVyQ29kZXNMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOwogCiAvKioKKyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlciBj
b2RlcyB0aGF0IGFyZSBncm91cGVkIHdpdGggdGhlIGdpdmVuIHJlb3JkZXIgY29kZS4gU29tZSBy
ZW9yZGVyCisgKiBjb2RlcyB3aWxsIGJlIGdyb3VwZWQgYW5kIG11c3QgcmVvcmRlciB0b2dldGhl
ci4KKyAqIEBwYXJhbSByZW9yZGVyQ29kZSBUaGUgcmVvcmRlciBjb2RlIHRvIGRldGVybWluZSBl
cXVpdmFsZW5jZSBmb3IuCisgKiBAcGFyYW0gZGVzdCBUaGUgYXJyYXkgdG8gZmlsbCB3aXRoIHRo
ZSBzY3JpcHQgb3JkZXJpbmcuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBsZW5ndGggb2Yg
ZGVzdC4gSWYgaXQgaXMgMCwgdGhlbiBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24K
KyAqIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgCisgKiBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5j
dGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJlb3JkZXJpbmcgY29kZXMgd3Jp
dHRlbiB0byB0aGUgZGVzdCBhcnJheS4KKyAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKKyAq
IEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAqIEBzZWUg
VUNvbFJlb3JkZXJDb2RlCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLworVV9TVEFCTEUgaW50MzJf
dCBVX0VYUE9SVDIgCit1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMoaW50MzJfdCByZW9y
ZGVyQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCogZGVzdCwKKyAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKICAqIEdldCB0aGUgZGlzcGxheSBuYW1lIGZvciBh
IFVDb2xsYXRvci4KICAqIFRoZSBkaXNwbGF5IG5hbWUgaXMgc3VpdGFibGUgZm9yIHByZXNlbnRh
dGlvbiB0byBhIHVzZXIuCiAgKiBAcGFyYW0gb2JqTG9jIFRoZSBsb2NhbGUgb2YgdGhlIGNvbGxh
dG9yIGluIHF1ZXN0aW9uLgpAQCAtNzA1LDExICs4ODUsMTEgQEAgdWNvbF9nZXRGdW5jdGlvbmFs
RXF1aXZhbGVudChjaGFyKiByZXN1bHQsIGludDMyX3QgcmVzdWx0Q2FwYWNpdHksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVCb29sKiBpc0F2YWlsYWJsZSwgVUVycm9yQ29kZSogc3Rh
dHVzKTsKIAogLyoqCi0gKiBHZXQgdGhlIGNvbGxhdGlvbiBydWxlcyBmcm9tIGEgVUNvbGxhdG9y
LgorICogR2V0IHRoZSBjb2xsYXRpb24gdGFpbG9yaW5nIHJ1bGVzIGZyb20gYSBVQ29sbGF0b3Iu
CiAgKiBUaGUgcnVsZXMgd2lsbCBmb2xsb3cgdGhlIHJ1bGUgc3ludGF4LgogICogQHBhcmFtIGNv
bGwgVGhlIFVDb2xsYXRvciB0byBxdWVyeS4KICAqIEBwYXJhbSBsZW5ndGggCi0gKiBAcmV0dXJu
IFRoZSBjb2xsYXRpb24gcnVsZXMuCisgKiBAcmV0dXJuIFRoZSBjb2xsYXRpb24gdGFpbG9yaW5n
IHJ1bGVzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIFVfU1RBQkxFIGNvbnN0IFVDaGFyKiBV
X0VYUE9SVDIgCkBAIC04MDIsMTAgKzk4MiwxMCBAQCB1Y29sX2dldFNvcnRLZXkoY29uc3QgICAg
VUNvbGxhdG9yICAgICpjb2xsLAogICogIHRvIHByZXNlcnZlIHN0YXRlIGFycmF5IGJldHdlZW4g
Y2FsbHMgYW5kIHRvIHByb3ZpZGUKICAqICB0aGUgc2FtZSB0eXBlIG9mIFVDaGFySXRlcmF0b3Ig
c2V0IHdpdGggdGhlIHNhbWUgc3RyaW5nLgogICogIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIgcHJv
dmlkZWQgbXVzdCBiZSBiaWcgZW5vdWdoIHRvIHN0b3JlCi0gKiAgdGhlIG51bWJlciBvZiByZXF1
ZXN0ZWQgYnl0ZXMuIEdlbmVyYXRlZCBzb3J0a2V5IGlzIG5vdCAKLSAqICBjb21wYXRpYmxlIHdp
dGggc29ydGtleXMgZ2VuZXJhdGVkIHVzaW5nIHVjb2xfZ2V0U29ydEtleQotICogIEFQSSwgc2lu
Y2Ugd2UgZG9uJ3QgZG8gYW55IGNvbXByZXNzaW9uLiBJZiB1bmNvbXByZXNzZWQKLSAqICBzb3J0
a2V5cyBhcmUgcmVxdWlyZWQsIHRoaXMgQVBJIGNhbiBiZSB1c2VkLgorICogIHRoZSBudW1iZXIg
b2YgcmVxdWVzdGVkIGJ5dGVzLgorICoKKyAqICBUaGUgZ2VuZXJhdGVkIHNvcnQga2V5IG1heSBv
ciBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aAorICogIHNvcnQga2V5cyBnZW5lcmF0ZWQgdXNp
bmcgdWNvbF9nZXRTb3J0S2V5KCkuCiAgKiAgQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRvciBjb250
YWluaW5nIHRoZSBjb2xsYXRpb24gcnVsZXMuCiAgKiAgQHBhcmFtIGl0ZXIgVUNoYXJJdGVyYXRv
ciBjb250YWluaW5nIHRoZSBzdHJpbmcgd2UgbmVlZCAKICAqICAgICAgICAgICAgICB0aGUgc29y
dCBrZXkgdG8gYmUgY2FsY3VsYXRlZCBmb3IuCkBAIC05MDksMjYgKzEwODksNDAgQEAgdWNvbF9n
ZXRWZXJzaW9uKGNvbnN0IFVDb2xsYXRvciogY29sbCwgVVZlcnNpb25JbmZvIGluZm8pOwogVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVjb2xfZ2V0VUNBVmVyc2lvbihjb25zdCBVQ29sbGF0b3Iq
IGNvbGwsIFVWZXJzaW9uSW5mbyBpbmZvKTsKIAotLyoqIAotICogTWVyZ2UgdHdvIHNvcnQga2V5
cy4gVGhlIGxldmVscyBhcmUgbWVyZ2VkIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBjb3VudGVy
cGFydHMKKy8qKgorICogTWVyZ2VzIHR3byBzb3J0IGtleXMuIFRoZSBsZXZlbHMgYXJlIG1lcmdl
ZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgY291bnRlcnBhcnRzCiAgKiAocHJpbWFyaWVzIHdp
dGggcHJpbWFyaWVzLCBzZWNvbmRhcmllcyB3aXRoIHNlY29uZGFyaWVzIGV0Yy4pLiBCZXR3ZWVu
IHRoZSB2YWx1ZXMKICAqIGZyb20gdGhlIHNhbWUgbGV2ZWwgYSBzZXBhcmF0b3IgaXMgaW5zZXJ0
ZWQuCi0gKiBleGFtcGxlICh1bmNvbXByZXNzZWQpOiAKLSAqIDE5MUIxRCAwMSAwNTA1MDUgMDEg
OTEwNTA1IDAwIGFuZCAxRjIxMjMgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMAorICoKKyAqIFRoaXMg
aXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwgZm9yIGNvbWJpbmluZyBzb3J0IGtleXMgZnJvbSBmaXJz
dCBhbmQgbGFzdCBuYW1lcworICogdG8gc29ydCBzdWNoIHBhaXJzLgorICogSXQgaXMgcG9zc2li
bGUgdG8gbWVyZ2UgbXVsdGlwbGUgc29ydCBrZXlzIGJ5IGNvbnNlY3V0aXZlbHkgbWVyZ2luZwor
ICogYW5vdGhlciBvbmUgd2l0aCB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdC4KKyAqCisgKiBUaGUg
bGVuZ3RoIG9mIHRoZSBtZXJnZSByZXN1bHQgaXMgdGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiB0
aGUgaW5wdXQgc29ydCBrZXlzLgorICoKKyAqIEV4YW1wbGUgKHVuY29tcHJlc3NlZCk6CisgKiA8
cHJlPjE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwCisgKiAxRjIxMjMgMDEgMDUwNTA1IDAx
IDkxMDUwNSAwMDwvcHJlPgogICogd2lsbCBiZSBtZXJnZWQgYXMgCi0gKiAxOTFCMUQgMDIgMUYy
MTIzMDEgMDUwNTA1IDAyIDA1MDUwNSAwMSA5MTA1MDUgMDIgOTEwNTA1IDAwCi0gKiBUaGlzIGFs
bG93cyBmb3IgY29uY2F0ZW5hdGluZyBvZiBmaXJzdCBhbmQgbGFzdCBuYW1lcyBmb3Igc29ydGlu
ZywgYW1vbmcgb3RoZXIgdGhpbmdzLgotICogSWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyBu
b3QgYmlnIGVub3VnaCwgdGhlIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KLSAqIElmIGFueSBvZiBz
b3VyY2UgbGVuZ3RocyBhcmUgemVybyBvciBhbnkgb2Ygc291cmNlIHBvaW50ZXJzIGFyZSBOVUxM
L3VuZGVmaW5lZCwgCi0gKiByZXN1bHQgaXMgb2Ygc2l6ZSB6ZXJvLgotICogQHBhcmFtIHNyYzEg
cG9pbnRlciB0byB0aGUgZmlyc3Qgc29ydGtleQotICogQHBhcmFtIHNyYzFMZW5ndGggbGVuZ3Ro
IG9mIHRoZSBmaXJzdCBzb3J0a2V5Ci0gKiBAcGFyYW0gc3JjMiBwb2ludGVyIHRvIHRoZSBzZWNv
bmQgc29ydGtleQotICogQHBhcmFtIHNyYzJMZW5ndGggbGVuZ3RoIG9mIHRoZSBzZWNvbmQgc29y
dGtleQotICogQHBhcmFtIGRlc3QgYnVmZmVyIHRvIGhvbGQgdGhlIHJlc3VsdAotICogQHBhcmFt
IGRlc3RDYXBhY2l0eSBzaXplIG9mIHRoZSBidWZmZXIgZm9yIHRoZSByZXN1bHQKLSAqIEByZXR1
cm4gc2l6ZSBvZiB0aGUgcmVzdWx0LiBJZiB0aGUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggc2l6ZSBp
cyBhbHdheXMKLSAqICAgICAgICAgc3JjMUxlbmd0aCtzcmMyTGVuZ3RoLTEKKyAqIDxwcmU+MTkx
QjFEIDAyIDFGMjEyMyAwMSAwNTA1MDUgMDIgMDUwNTA1IDAxIDkxMDUwNSAwMiA5MTA1MDUgMDA8
L3ByZT4KKyAqCisgKiBJZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIGlzIG5vdCBiaWcgZW5vdWdo
LCB0aGVuIGl0cyBjb250ZW50cyBhcmUgdW5kZWZpbmVkLgorICogSWYgYW55IG9mIHNvdXJjZSBs
ZW5ndGhzIGFyZSB6ZXJvIG9yIGFueSBvZiB0aGUgc291cmNlIHBvaW50ZXJzIGFyZSBOVUxML3Vu
ZGVmaW5lZCwKKyAqIHRoZSByZXN1bHQgaXMgb2Ygc2l6ZSB6ZXJvLgorICoKKyAqIEBwYXJhbSBz
cmMxIHRoZSBmaXJzdCBzb3J0IGtleQorICogQHBhcmFtIHNyYzFMZW5ndGggdGhlIGxlbmd0aCBv
ZiB0aGUgZmlyc3Qgc29ydCBrZXksIGluY2x1ZGluZyB0aGUgemVybyBieXRlIGF0IHRoZSBlbmQ7
CisgKiAgICAgICAgY2FuIGJlIC0xIGlmIHRoZSBmdW5jdGlvbiBpcyB0byBmaW5kIHRoZSBsZW5n
dGgKKyAqIEBwYXJhbSBzcmMyIHRoZSBzZWNvbmQgc29ydCBrZXkKKyAqIEBwYXJhbSBzcmMyTGVu
Z3RoIHRoZSBsZW5ndGggb2YgdGhlIHNlY29uZCBzb3J0IGtleSwgaW5jbHVkaW5nIHRoZSB6ZXJv
IGJ5dGUgYXQgdGhlIGVuZDsKKyAqICAgICAgICBjYW4gYmUgLTEgaWYgdGhlIGZ1bmN0aW9uIGlz
IHRvIGZpbmQgdGhlIGxlbmd0aAorICogQHBhcmFtIGRlc3QgdGhlIGJ1ZmZlciB3aGVyZSB0aGUg
bWVyZ2VkIHNvcnQga2V5IGlzIHdyaXR0ZW4sCisgKiAgICAgICAgY2FuIGJlIE5VTEwgaWYgZGVz
dENhcGFjaXR5PT0wCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IHRoZSBudW1iZXIgb2YgYnl0ZXMg
aW4gdGhlIGRlc3QgYnVmZmVyCisgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIG1lcmdlZCBz
b3J0IGtleSwgc3JjMUxlbmd0aCtzcmMyTGVuZ3RoOworICogICAgICAgICBjYW4gYmUgbGFyZ2Vy
IHRoYW4gZGVzdENhcGFjaXR5LCBvciAwIGlmIGFuIGVycm9yIG9jY3VycyAob25seSBmb3IgaWxs
ZWdhbCBhcmd1bWVudHMpLAorICogICAgICAgICBpbiB3aGljaCBjYXNlcyB0aGUgY29udGVudHMg
b2YgZGVzdCBpcyB1bmRlZmluZWQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBVX1NUQUJMRSBp
bnQzMl90IFVfRVhQT1JUMiAKQEAgLTEwMTgsMTIgKzEyMTIsMTMgQEAgdWNvbF9yZXN0b3JlVmFy
aWFibGVUb3AoVUNvbGxhdG9yICpjb2xsLCBjb25zdCB1aW50MzJfdCB2YXJUb3AsIFVFcnJvckNv
ZGUgKnN0YXQKIC8qKgogICogVGhyZWFkIHNhZmUgY2xvbmluZyBvcGVyYXRpb24uIFRoZSByZXN1
bHQgaXMgYSBjbG9uZSBvZiBhIGdpdmVuIGNvbGxhdG9yLgogICogQHBhcmFtIGNvbGwgY29sbGF0
b3IgdG8gYmUgY2xvbmVkCi0gKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3Bh
Y2UgZm9yIHRoZSBuZXcgY2xvbmUuIAorICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNh
dGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4KKyAqIHVz
ZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiAKICAqIElmIE5VTEwgbmV3IG1l
bW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4gCiAgKiAgSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91
Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCi0gKiAgQ2xpZW50cyBjYW4gdXNlIHRo
ZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVSU0laRS4gCi0gKiAgVGhpcyB3aWxsIHByb2JhYmx5IGJl
IGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxsb2NhdGlvbnMuCi0gKiBAcGFyYW0gcEJ1ZmZlclNp
emUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4gCisgKiAgQ2xpZW50cyBjYW4g
dXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVSU0laRS4KKyAqIEBwYXJhbSBwQnVmZmVyU2l6
ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwgb3Ig
MS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLiAKICAq
ICBJZiAqcEJ1ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9u
aW5nIHdpbGwgCiAgKiAgYmUgcmV0dXJuZWQgKCdwcmUtZmxpZ2h0aW5nJykKICAqICBJZiAqcEJ1
ZmZlclNpemUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLCAKQEAg
LTEwNDMsMjUgKzEyMzgsMzQgQEAgdWNvbF9zYWZlQ2xvbmUoY29uc3QgVUNvbGxhdG9yICpjb2xs
LAogICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICpwQnVmZmVyU2l6ZSwKICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAotLyoqIGRlZmF1bHQgbWVtb3J5IHNp
emUgZm9yIHRoZSBuZXcgY2xvbmUuIEl0IG5lZWRzIHRvIGJlIHRoaXMgbGFyZ2UgZm9yIG9zLzQw
MCBsYXJnZSBwb2ludGVycyAKLSAqIEBzdGFibGUgSUNVIDIuMAorI2lmbmRlZiBVX0hJREVfREVQ
UkVDQVRFRF9BUEkKKworLyoqIGRlZmF1bHQgbWVtb3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUu
CisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERvIG5vdCByZWx5IG9uIHVjb2xfc2FmZUNsb25lKCkg
Y2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBidWZmZXIuCiAgKi8KLSNkZWZpbmUgVV9DT0xfU0FG
RUNMT05FX0JVRkZFUlNJWkUgNTEyCisjZGVmaW5lIFVfQ09MX1NBRkVDTE9ORV9CVUZGRVJTSVpF
IDEKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIFJldHVy
bnMgY3VycmVudCBydWxlcy4gRGVsdGEgZGVmaW5lcyB3aGV0aGVyIGZ1bGwgcnVsZXMgYXJlIHJl
dHVybmVkIG9yIGp1c3QgdGhlIHRhaWxvcmluZy4gCiAgKiBSZXR1cm5zIG51bWJlciBvZiBVQ2hh
cnMgbmVlZGVkIHRvIHN0b3JlIHJ1bGVzLiBJZiBidWZmZXIgaXMgTlVMTCBvciBidWZmZXJMZW4g
aXMgbm90IGVub3VnaCAKICAqIHRvIHN0b3JlIHJ1bGVzLCB3aWxsIHN0b3JlIHVwIHRvIGF2YWls
YWJsZSBzcGFjZS4KKyAqCisgKiB1Y29sX2dldFJ1bGVzKCkgc2hvdWxkIG5vcm1hbGx5IGJlIHVz
ZWQgaW5zdGVhZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9jb2xs
YXRpb24vY3VzdG9taXphdGlvbiNUT0MtQnVpbGRpbmctb24tRXhpc3RpbmctTG9jYWxlcwogICog
QHBhcmFtIGNvbGwgY29sbGF0b3IgdG8gZ2V0IHRoZSBydWxlcyBmcm9tCiAgKiBAcGFyYW0gZGVs
dGEgb25lIG9mIFVDT0xfVEFJTE9SSU5HX09OTFksIFVDT0xfRlVMTF9SVUxFUy4gCiAgKiBAcGFy
YW0gYnVmZmVyIGJ1ZmZlciB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBOVUxMLCB5b3UnbGwg
Z2V0IG5vIHJ1bGVzLgotICogQHBhcmFtIGJ1ZmZlckxlbiBsZW5naHQgb2YgYnVmZmVyIHRvIHN0
b3JlIHJ1bGVzIGluLiBJZiBsZXNzIHRoZW4gbmVlZGVkIHlvdSdsbCBnZXQgb25seSB0aGUgcGFy
dCB0aGF0IGZpdHMgaW4uCisgKiBAcGFyYW0gYnVmZmVyTGVuIGxlbmd0aCBvZiBidWZmZXIgdG8g
c3RvcmUgcnVsZXMgaW4uIElmIGxlc3MgdGhhbiBuZWVkZWQgeW91J2xsIGdldCBvbmx5IHRoZSBw
YXJ0IHRoYXQgZml0cyBpbi4KICAqIEByZXR1cm4gY3VycmVudCBydWxlcwogICogQHN0YWJsZSBJ
Q1UgMi4wCisgKiBAc2VlIFVDT0xfRlVMTF9SVUxFUwogICovCiBVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMiAKIHVjb2xfZ2V0UnVsZXNFeChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVDb2xSdWxl
T3B0aW9uIGRlbHRhLCBVQ2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckxlbik7CiAKKyNpZm5k
ZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAvKioKICAqIGdldHMgdGhlIGxvY2FsZSBuYW1lIG9m
IHRoZSBjb2xsYXRvci4gSWYgdGhlIGNvbGxhdG9yCiAgKiBpcyBpbnN0YW50aWF0ZWQgZnJvbSB0
aGUgcnVsZXMsIHRoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zCkBAIC0xMDc4LDcgKzEyODIsNyBA
QCB1Y29sX2dldFJ1bGVzRXgoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVQ29sUnVsZU9wdGlvbiBk
ZWx0YSwgVUNoYXIgKmJ1ZmZlciwgaW50MwogICovCiBVX0RFUFJFQ0FURUQgY29uc3QgY2hhciAq
IFVfRVhQT1JUMgogdWNvbF9nZXRMb2NhbGUoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVTG9jRGF0
YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKLQorI2VuZGlmICAvKiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAgKiBnZXRzIHRoZSBsb2NhbGUgbmFtZSBvZiB0
aGUgY29sbGF0b3IuIElmIHRoZSBjb2xsYXRvcgpAQCAtMTExMCw2ICsxMzE0LDcgQEAgdWNvbF9n
ZXRMb2NhbGVCeVR5cGUoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVTG9jRGF0YUxvY2FsZVR5cGUg
dHlwZSwgVUVycm9yQ29kZQogVV9TVEFCTEUgVVNldCAqIFVfRVhQT1JUMgogdWNvbF9nZXRUYWls
b3JlZFNldChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBVbml2ZXJzYWwgYXR0cmlidXRlIGdl
dHRlciB0aGF0IHJldHVybnMgVUNPTF9ERUZBVUxUIGlmIHRoZSB2YWx1ZSBpcyBkZWZhdWx0CiAg
KiBAcGFyYW0gY29sbCBjb2xsYXRvciB3aGljaCBhdHRyaWJ1dGVzIGFyZSB0byBiZSBjaGFuZ2Vk
CkBAIC0xMTgyLDYgKzEzODcsNyBAQCB1Y29sX3ByZXBhcmVTaG9ydFN0cmluZ09wZW4oIGNvbnN0
IGNoYXIgKmRlZmluaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIGZvcmNl
RGVmYXVsdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVy
cm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKiBDcmVhdGVzIGEgYmluYXJ5IGlt
YWdlIG9mIGEgY29sbGF0b3IuIFRoaXMgYmluYXJ5IGltYWdlIGNhbiBiZSBzdG9yZWQgYW5kIAog
ICogIGxhdGVyIHVzZWQgdG8gaW5zdGFudGlhdGUgYSBjb2xsYXRvciB1c2luZyB1Y29sX29wZW5C
aW5hcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y29sZWl0ci5o
IGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNvbGVpdHIuaAppbmRleCA0MTljYjlmN2Rl
NjY5MzcxMWRiYzA5MTg1ZWU2MmQ4NmI5Yzk0MzAxLi5jZjczMGY5NWI1MWIxNjg0ZDJhNDllNTYz
NjgzOTZjODYzOTcxZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91
Y29sZWl0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjb2xlaXRyLmgKQEAg
LTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAo
QykgMjAwMS0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJp
Z2h0IChDKSAyMDAxLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICoKQEAgLTI3LDEzICsyNywxNSBAQAogICovCiAjZGVmaW5lIFVDT0xfTlVM
TE9SREVSICAgICAgICAoKGludDMyX3QpMHhGRkZGRkZGRikKIAotLyoqICAKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQorLyoqCiAgKiBUaGlzIGluZGljYXRlcyBhbiBlcnJvciBoYXMgb2Nj
dXJlZCBkdXJpbmcgcHJvY2Vzc2luZyBvciB0aGVyZSBhcmUgbm8gbW9yZSBDRXMgCiAgKiB0byBi
ZSByZXR1cm5lZC4KICAqCiAgKiBAaW50ZXJuYWwKICAqLwogI2RlZmluZSBVQ09MX1BST0NFU1NF
RF9OVUxMT1JERVIgICAgICAgICgoaW50NjRfdClVX0lOVDY0X01BWCkKKyNlbmRpZiAgLyogVV9I
SURFX0lOVEVSTkFMX0FQSSAqLwogCiAjaW5jbHVkZSAidW5pY29kZS91Y29sLmgiCiAKQEAgLTE1
Myw2ICsxNTUsNyBAQCB1Y29sX2Nsb3NlRWxlbWVudHMoVUNvbGxhdGlvbkVsZW1lbnRzICplbGVt
cyk7CiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiAKIHVjb2xfcmVzZXQoVUNvbGxhdGlvbkVsZW1l
bnRzICplbGVtcyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBTZXQg
dGhlIGNvbGxhdGlvbiBlbGVtZW50cyB0byB1c2UgaW1wbGljaXQgb3JkZXJpbmcgZm9yIEhhbgog
ICogZXZlbiBpZiB0aGV5J3ZlIGJlZW4gdGFpbG9yZWQuIFRoaXMgd2lsbCBhbHNvIGZvcmNlIEhh
bmd1bApAQCAtMTY2LDYgKzE2OSw3IEBAIHVjb2xfcmVzZXQoVUNvbGxhdGlvbkVsZW1lbnRzICpl
bGVtcyk7CiAgKi8KIFVfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIKIHVjb2xfZm9yY2VIYW5JbXBs
aWNpdChVQ29sbGF0aW9uRWxlbWVudHMgKmVsZW1zLCBVRXJyb3JDb2RlICpzdGF0dXMpOworI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogR2V0IHRoZSBvcmRlcmlu
ZyBwcmlvcml0eSBvZiB0aGUgbmV4dCBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgdGV4dC4KQEAg
LTE5OCw2ICsyMDIsNyBAQCB1Y29sX25leHQoVUNvbGxhdGlvbkVsZW1lbnRzICplbGVtcywgVUVy
cm9yQ29kZSAqc3RhdHVzKTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAogdWNvbF9wcmV2
aW91cyhVQ29sbGF0aW9uRWxlbWVudHMgKmVsZW1zLCBVRXJyb3JDb2RlICpzdGF0dXMpOwogCisj
aWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgogICogR2V0IHRoZSBwcm9jZXNzZWQgb3Jk
ZXJpbmcgcHJpb3JpdHkgb2YgdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHRleHQu
CiAgKiBBIHNpbmdsZSBjaGFyYWN0ZXIgbWF5IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBjb2xsYXRp
b24gZWxlbWVudC4KQEAgLTIzNiw2ICsyNDEsNyBAQCB1Y29sX25leHRQcm9jZXNzZWQoVUNvbGxh
dGlvbkVsZW1lbnRzICplbGVtcywgaW50MzJfdCAqaXhMb3csIGludDMyX3QgKml4SGlnaCwgVQog
ICovCiBVX0lOVEVSTkFMIGludDY0X3QgVV9FWFBPUlQyCiB1Y29sX3ByZXZpb3VzUHJvY2Vzc2Vk
KFVDb2xsYXRpb25FbGVtZW50cyAqZWxlbXMsIGludDMyX3QgKml4TG93LCBpbnQzMl90ICppeEhp
Z2gsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkg
Ki8KIAogLyoqCiAgKiBHZXQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNpb24gc2Vx
dWVuY2VzIHRoYXQgZW5kIHdpdGggdGhlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdWNvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNvbmZpZy5o
CmluZGV4IDdkMmQyNmU5NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJmYThlNzdi
MGYxYTM1MjIwNzZmYzBhNjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ljdS91bmljb2RlL3Vjb25maWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29k
ZS91Y29uZmlnLmgKQEAgLTEsNiArMSw2IEBACiAvKiAgCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29w
eXJpZ2h0IChDKSAyMDAyLTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogKiAgIGZpbGUgbmFtZTogIHVjb25maWcuaApAQCAtMTgsOSArMTgsMTcgQEAK
IAogLyohCiAgKiBcZmlsZQotICogXGJyaWVmIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFydHMg
b2YgSUNVIGxpYnJhcnkgY29kZSBtb2R1bGVzLgorICogXGJyaWVmIFVzZXItY29uZmlndXJhYmxl
IHNldHRpbmdzCiAgKgotICogQWxsb3dzIHRvIGJ1aWxkIHBhcnRpYWwsIHNtYWxsZXIgbGlicmFy
aWVzIGZvciBzcGVjaWFsIHB1cnBvc2VzLgorICogTWlzY2VsbGFuZW91cyBzd2l0Y2hlczoKKyAq
CisgKiBBIG51bWJlciBvZiBtYWNyb3MgYWZmZWN0IGEgdmFyaWV0eSBvZiBtaW5vciBhc3BlY3Rz
IG9mIElDVS4KKyAqIE1vc3Qgb2YgdGhlbSB1c2VkIHRvIGJlIGRlZmluZWQgZWxzZXdoZXJlIChl
LmcuLCBpbiB1dHlwZXMuaCBvciBwbGF0Zm9ybS5oKQorICogYW5kIG1vdmVkIGhlcmUgdG8gbWFr
ZSB0aGVtIGVhc2llciB0byBmaW5kLgorICoKKyAqIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFy
dHMgb2YgSUNVIGxpYnJhcnkgY29kZSBtb2R1bGVzOgorICoKKyAqIENoYW5naW5nIHRoZXNlIG1h
Y3JvcyBhbGxvd3MgYnVpbGRpbmcgcGFydGlhbCwgc21hbGxlciBsaWJyYXJpZXMgZm9yIHNwZWNp
YWwgcHVycG9zZXMuCiAgKiBCeSBkZWZhdWx0LCBhbGwgbW9kdWxlcyBhcmUgYnVpbHQuCiAgKiBU
aGUgc3dpdGNoZXMgYXJlIGZhaXJseSBjb2Fyc2UsIGNvbnRyb2xsaW5nIGxhcmdlIG1vZHVsZXMu
CiAgKiBCYXNpYyBzZXJ2aWNlcyBjYW5ub3QgYmUgdHVybmVkIG9mZi4KQEAgLTM4LDE1ICs0Niwx
NTMgQEAKIC8qKgogICogSWYgdGhpcyBzd2l0Y2ggaXMgZGVmaW5lZCwgSUNVIHdpbGwgYXR0ZW1w
dCB0byBsb2FkIGEgaGVhZGVyIGZpbGUgbmFtZWQgInVjb25maWdfbG9jYWwuaCIKICAqIHByaW9y
IHRvIGRldGVybWluaW5nIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHVjb25maWcgdmFyaWFibGVzLgot
ICogCisgKgogICogQGludGVybmFsIElDVSA0LjAKLSAqIAogICovCiAjaWYgZGVmaW5lZChVQ09O
RklHX1VTRV9MT0NBTCkKICNpbmNsdWRlICJ1Y29uZmlnX2xvY2FsLmgiCiAjZW5kaWYKIAogLyoq
CisgKiBcZGVmIFVfREVCVUcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRlIGRlYnVn
Z2luZyBjb2RlLgorICogQXV0b21hdGljYWxseSBzZXQgb24gV2luZG93cywgYnV0IG1vc3QgY29t
cGlsZXJzIGRvIG5vdCBoYXZlCisgKiByZWxhdGVkIHByZWRlZmluZWQgbWFjcm9zLgorICogQGlu
dGVybmFsCisgKi8KKyNpZmRlZiBVX0RFQlVHCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgZGVmaW5lZChfREVCVUcpCisgICAgLyoKKyAgICAgKiBfREVCVUcgaXMg
ZGVmaW5lZCBieSBWaXN1YWwgU3R1ZGlvIGRlYnVnIGNvbXBpbGF0aW9uLgorICAgICAqIERvICpu
b3QqIHRlc3QgZm9yIGl0cyBOREVCVUcgbWFjcm86IEl0IGlzIGFuIG9ydGhvZ29uYWwgbWFjcm8K
KyAgICAgKiB3aGljaCBkaXNhYmxlcyBhc3NlcnQoKS4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9E
RUJVRyAxCisjIGVsc2UKKyMgICBkZWZpbmUgVV9ERUJVRyAwCisjZW5kaWYKKworLyoqCisgKiBE
ZXRlcm1pbmVzIHdoZXRlciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmllcy4gCisg
KiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAorI2RlZmluZSBV
Q0xOX05PX0FVVE9fQ0xFQU5VUCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRElTQUJMRV9S
RU5BTUlORworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Igbm90
LgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCisjZGVmaW5l
IFVfRElTQUJMRV9SRU5BTUlORyAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfTk9fREVGQVVM
VF9JTkNMVURFX1VURl9IRUFERVJTCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdXR5cGVzLmggaW5j
bHVkZXMgdXRmLmgsIHV0ZjguaCwgdXRmMTYuaCBhbmQgdXRmX29sZC5oLgorICogdXR5cGVzLmgg
aW5jbHVkZXMgdGhvc2UgaGVhZGVycyBpZiB0aGlzIG1hY3JvIGlzIGRlZmluZWQgdG8gMC4KKyAq
IE90aGVyd2lzZSwgZWFjaCB0aG9zZSBoZWFkZXJzIG11c3QgYmUgaW5jbHVkZWQgZXhwbGljaXRs
eSB3aGVuIHVzaW5nIG9uZSBvZiB0aGVpciBtYWNyb3MuCisgKiBEZWZhdWx0cyB0byAwIGZvciBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5LCBleGNlcHQgaW5zaWRlIElDVS4KKyAqIEBzdGFibGUgSUNV
IDQ5CisgKi8KKyNpZmRlZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUworICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9DT01CSU5FRF9J
TVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVm
aW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IFwKKyAgICAgIGRlZmluZWQoVV9JT19JTVBM
RU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5l
ZChVX0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVfVE9PTFVU
SUxfSU1QTEVNRU5UQVRJT04pCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9I
RUFERVJTIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFE
RVJTIDAKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgor
ICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLgorICogSUNV
IGlzIG5vcm1hbGx5IGJ1aWx0IHN1Y2ggdGhhdCBhbGwgb2YgaXRzIEMrKyBjbGFzc2VzLCB2aWEg
dGhlaXIgVU1lbW9yeSBiYXNlLAorICogb3ZlcnJpZGUgb3BlcmF0b3JzIG5ldyBhbmQgZGVsZXRl
IHRvIHVzZSBpdHMgaW50ZXJuYWwsIGN1c3RvbWl6YWJsZSwKKyAqIG5vbi1leGNlcHRpb24tdGhy
b3dpbmcgbWVtb3J5IGFsbG9jYXRpb24gZnVuY3Rpb25zLiAoRGVmYXVsdCB2YWx1ZSAxIGZvciB0
aGlzIG1hY3JvLikKKyAqCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gdGhl
IGFwcGxpY2F0aW9uIGFuZCBpdHMgbGlicmFyaWVzIHVzZSBtdWx0aXBsZSBoZWFwcy4KKyAqIEZv
ciBleGFtcGxlLCBvbiBXaW5kb3dzLCB0aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2Vk
IGJ5CisgKiBhcHBsaWNhdGlvbnMgdGhhdCBzdGF0aWNhbGx5IGxpbmsgdGhlIEMgUnVudGltZSBs
aWJyYXJ5LgorICoKKyAqIEBzdGFibGUgSUNVIDIuMgorICovCisjaWZuZGVmIFVfT1ZFUlJJREVf
Q1hYX0FMTE9DQVRJT04KKyNkZWZpbmUgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAxCisjZW5k
aWYKKworLyoqCisgKiBcZGVmIFVfRU5BQkxFX1RSQUNJTkcKKyAqIERldGVybWluZXMgd2hldGhl
ciB0byBlbmFibGUgdHJhY2luZy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxF
X1RSQUNJTkcKKyNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAwCisjZW5kaWYKKworLyoqCisgKiBc
ZGVmIFVfRU5BQkxFX0RZTE9BRAorICogV2hldGhlciB0byBlbmFibGUgRHluYW1pYyBsb2FkaW5n
IGluIElDVS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX0RZTE9BRAorI2Rl
ZmluZSBVX0VOQUJMRV9EWUxPQUQgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0NIRUNLX0RZ
TE9BRAorICogV2hldGhlciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmls
aXR5LgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9DSEVDS19EWUxPQUQKKyNkZWZpbmUg
VV9DSEVDS19EWUxPQUQgMQorI2VuZGlmCisKKworLyoqCisgKiBcZGVmIFVfREVGQVVMVF9TSE9X
X0RSQUZUCisgKiBEbyB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBBUElzIGJ5
IGRlZmF1bHQ/CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0RFRkFVTFRfU0hPV19EUkFG
VAorI2RlZmluZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAxCisjZW5kaWYKKworLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLworLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5hbWluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LworCisvKioKKyAqIFxkZWYgVV9IQVZFX0xJQl9TVUZGSVgKKyAqIDEgaWYgYSBjdXN0b20gbGli
cmFyeSBzdWZmaXggaXMgc2V0LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfTElC
X1NVRkZJWAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmlu
ZWQoVV9MSUJfU1VGRklYX0NfTkFNRSkKKyMgICBkZWZpbmUgVV9IQVZFX0xJQl9TVUZGSVggMQor
I2VuZGlmCisKKy8qKgorICogXGRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORworICogRGVm
aW5lcyB0aGUgbGlicmFyeSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0aCBDIHN5bnRheC4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAgICAvKiBV
c2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfTElCX1NVRkZJWF9D
X05BTUUpCisjICAgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HICNVX0xJQl9TVUZG
SVhfQ19OQU1FCisjZWxzZQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAi
IgorI2VuZGlmCisKKy8qIGNvbW1vbi9pMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgogICogXGRlZiBVQ09O
RklHX09OTFlfQ09MTEFUSU9OCiAgKiBUaGlzIHN3aXRjaCB0dXJucyBvZmYgbW9kdWxlcyB0aGF0
IGFyZSBub3QgbmVlZGVkIGZvciBjb2xsYXRpb24uCiAgKgpAQCAtMTQ2LDYgKzI5Miw5IEBACiAj
ICAgZGVmaW5lIFVDT05GSUdfTk9fTk9STUFMSVpBVElPTiAwCiAjZWxpZiBVQ09ORklHX05PX05P
Uk1BTElaQVRJT04KICAgICAvKiBjb21tb24gbGlicmFyeSAqLworICAgIC8qIElDVSA1MCBDSksg
ZGljdGlvbmFyeSBCcmVha0l0ZXJhdG9yIHVzZXMgbm9ybWFsaXphdGlvbiAqLworIyAgIGRlZmlu
ZSBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAxCisgICAgLyogSUROQSAoVVRTICM0NikgaXMg
aW1wbGVtZW50ZWQgdmlhIG5vcm1hbGl6YXRpb24gKi8KICMgICBkZWZpbmUgVUNPTkZJR19OT19J
RE5BIDEKIAogICAgIC8qIGkxOG4gbGlicmFyeSAqLwpAQCAtMTc2LDYgKzMyNSwxNyBAQAogIyAg
IGRlZmluZSBVQ09ORklHX05PX0lETkEgMAogI2VuZGlmCiAKKy8qKgorICogXGRlZiBVQ09ORklH
X01TR1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorICogRGV0ZXJtaW5lcyB0aGUgZGVmYXVs
dCBVTWVzc2FnZVBhdHRlcm5BcG9zdHJvcGhlTW9kZS4KKyAqIFNlZSB0aGUgZG9jdW1lbnRhdGlv
biBmb3IgdGhhdCBlbnVtLgorICoKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCisjaWZuZGVmIFVD
T05GSUdfTVNHUEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFCisjICAgZGVmaW5lIFVDT05GSUdf
TVNHUEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFIFVNU0dQQVRfQVBPU19ET1VCTEVfT1BUSU9O
QUwKKyNlbmRpZgorCiAvKiBpMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTIyOCw0ICsz
ODgsMjUgQEAKICMgICBkZWZpbmUgVUNPTkZJR19OT19TRVJWSUNFIDEKICNlbmRpZgogCisvKioK
KyAqIFxkZWYgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQKKyAqIFRoaXMgc3dpdGNoIHR1cm5z
IG9uIHRoZSAicGFyc2UgYWxsIGlucHV0IiBhdHRyaWJ1dGUuIEJpbmFyeSBpbmNvbXBhdGlibGUu
CisgKgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5Q
VVQKKyMgICBkZWZpbmUgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQgMQorI2VuZGlmCisKKwor
LyoqCisgKiBcZGVmIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorICogVGhpcyBzd2l0Y2gg
dHVybnMgb24gb3RoZXIgZm9ybWF0dGluZyBmYXN0cGF0aHMuIEJpbmFyeSBpbmNvbXBhdGlibGUg
aW4gb2JqZWN0IERlY2ltYWxGb3JtYXQgYW5kIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKgorICog
QGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5CisjICAg
ZGVmaW5lIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OSAxCisjZW5kaWYKKwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y3NkZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5oCmluZGV4IGRjNDkyZWUyMjllMDE4M2E2MzVkOWI5
MzY0N2FmOTFiN2E5YjJmZTUuLmQzYTI5N2JlMWUxZWRhMTM5MmE3NzcwMDBhNTk5YzE1ZGJjNGQw
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCi0gKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEwLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICAgZmlsZSBuYW1lOiAg
dWNzZGV0LmgKQEAgLTMyMSwxMiArMzIxLDIxIEBAIHVjc2RldF9nZXRVQ2hhcnMoY29uc3QgVUNo
YXJzZXRNYXRjaCAqdWNzbSwKICAgKiAgVGhlIHJldHVybmVkIFVFbnVtZXJhdGlvbiBwcm92aWRl
cyBhY2Nlc3MgdG8gdGhlIG5hbWVzIG9mCiAgICogIHRoZSBjaGFyc2V0cy4KICAgKgorICAqICA8
cD4KICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBDaGFyc2V0IGRldGVjdG9yIHRoYXQgaXMgcGFzc2Vk
IGluIGRvZXMgbm90CiAgICogIGFmZmVjdCB0aGUgcmVzdWx0IG9mIHRoaXMgZnVuY3Rpb24sIGJ1
dCByZXF1aXJpbmcgYSB2YWxpZCwgb3BlbgogICAqICBjaGFyc2V0IGRldGVjdG9yIGFzIGEgcGFy
YW1ldGVyIGluc3VyZXMgdGhhdCB0aGUgY2hhcnNldCBkZXRlY3Rpb24KICAgKiAgc2VydmljZSBo
YXMgYmVlbiBzYWZlbHkgaW5pdGlhbGl6ZWQgYW5kIHRoYXQgdGhlIHJlcXVpcmVkIGRldGVjdGlv
bgogICAqICBkYXRhIGlzIGF2YWlsYWJsZS4KICAgKgorICAqICA8cD4KKyAgKiAgPGI+Tm90ZTo8
L2I+IE11bHRpcGxlIGRpZmZlcmVudCBjaGFyc2V0IGVuY29kaW5ncyBpbiBhIHNhbWUgZmFtaWx5
IG1heSB1c2UKKyAgKiAgYSBzaW5nbGUgc2hhcmVkIG5hbWUgaW4gdGhpcyBpbXBsZW1lbnRhdGlv
bi4gRm9yIGV4YW1wbGUsIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgKiAgYW4gYXJyYXkgaW5jbHVk
aW5nICJJU08tODg1OS0xIiAoSVNPIExhdGluIDEpLCBidXQgbm90IGluY2x1ZGluZyAid2luZG93
cy0xMjUyIgorICAqICAoV2luZG93cyBMYXRpbiAxKS4gSG93ZXZlciwgYWN0dWFsIGRldGVjdGlv
biByZXN1bHQgY291bGQgYmUgIndpbmRvd3MtMTI1MiIKKyAgKiAgd2hlbiB0aGUgaW5wdXQgZGF0
YSBtYXRjaGVzIExhdGluIDEgY29kZSBwb2ludHMgd2l0aCBhbnkgcG9pbnRzIG9ubHkgYXZhaWxh
YmxlCisgICogIGluICJ3aW5kb3dzLTEyNTIiLgorICAqCiAgICogIEBwYXJhbSB1Y3NkIGEgQ2hh
cnNldCBkZXRlY3Rvci4KICAgKiAgQHBhcmFtIHN0YXR1cyAgQW55IGVycm9yIGNvbmRpdGlvbnMg
YXJlIHJlcG9ydGVkIGJhY2sgaW4gdGhpcyB2YXJpYWJsZS4KICAgKiAgQHJldHVybiBhbiBpdGVy
YXRvciBwcm92aWRpbmcgYWNjZXNzIHRvIHRoZSBkZXRlY3RhYmxlIGNoYXJzZXQgbmFtZXMuCkBA
IC0zMzUsNyArMzQ0LDYgQEAgdWNzZGV0X2dldFVDaGFycyhjb25zdCBVQ2hhcnNldE1hdGNoICp1
Y3NtLAogVV9TVEFCTEUgIFVFbnVtZXJhdGlvbiAqIFVfRVhQT1JUMgogdWNzZGV0X2dldEFsbERl
dGVjdGFibGVDaGFyc2V0cyhjb25zdCBVQ2hhcnNldERldGVjdG9yICp1Y3NkLCAgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKIAotCiAvKioKICAgKiAgVGVzdCB3aGV0aGVyIGlucHV0IGZpbHRlcmluZyBp
cyBlbmFibGVkIGZvciB0aGlzIGNoYXJzZXQgZGV0ZWN0b3IuCiAgICogIElucHV0IGZpbHRlcmlu
ZyByZW1vdmVzIHRleHQgdGhhdCBhcHBlYXJzIHRvIGJlIEhUTUwgb3IgeG1sCkBAIC0zNDYsNiAr
MzU0LDcgQEAgdWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cyhjb25zdCBVQ2hhcnNldERl
dGVjdG9yICp1Y3NkLCAgVUVycm9yQ29kZSAqc3RhdHUKICAgKiAgQHJldHVybiBUUlVFIGlmIGZp
bHRlcmluZyBpcyBlbmFibGVkLgogICAqICBAc3RhYmxlIElDVSAzLjYKICAgKi8KKwogVV9TVEFC
TEUgIFVCb29sIFVfRVhQT1JUMgogdWNzZGV0X2lzSW5wdXRGaWx0ZXJFbmFibGVkKGNvbnN0IFVD
aGFyc2V0RGV0ZWN0b3IgKnVjc2QpOwogCkBAIC0zNjQsNiArMzczLDQwIEBAIHVjc2RldF9pc0lu
cHV0RmlsdGVyRW5hYmxlZChjb25zdCBVQ2hhcnNldERldGVjdG9yICp1Y3NkKTsKIFVfU1RBQkxF
ICBVQm9vbCBVX0VYUE9SVDIKIHVjc2RldF9lbmFibGVJbnB1dEZpbHRlcihVQ2hhcnNldERldGVj
dG9yICp1Y3NkLCBVQm9vbCBmaWx0ZXIpOwogCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkK
Ky8qKgorICAqICBHZXQgYW4gaXRlcmF0b3Igb3ZlciB0aGUgc2V0IG9mIGRldGVjdGFibGUgY2hh
cnNldHMgLQorICAqICBvdmVyIHRoZSBjaGFyc2V0cyB0aGF0IGFyZSBlbmFibGVkIGJ5IHRoZSBz
cGVjaWZpZWQgY2hhcnNldCBkZXRlY3Rvci4KKyAgKgorICAqICBUaGUgcmV0dXJuZWQgVUVudW1l
cmF0aW9uIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgbmFtZXMgb2YKKyAgKiAgdGhlIGNoYXJzZXRz
LgorICAqCisgICogIEBwYXJhbSB1Y3NkIGEgQ2hhcnNldCBkZXRlY3Rvci4KKyAgKiAgQHBhcmFt
IHN0YXR1cyAgQW55IGVycm9yIGNvbmRpdGlvbnMgYXJlIHJlcG9ydGVkIGJhY2sgaW4gdGhpcyB2
YXJpYWJsZS4KKyAgKiAgQHJldHVybiBhbiBpdGVyYXRvciBwcm92aWRpbmcgYWNjZXNzIHRvIHRo
ZSBkZXRlY3RhYmxlIGNoYXJzZXQgbmFtZXMgYnkKKyAgKiAgdGhlIHNwZWNpZmllZCBjaGFyc2V0
IGRldGVjdG9yLgorICAqICBAaW50ZXJuYWwKKyAgKi8KK1VfSU5URVJOQUwgVUVudW1lcmF0aW9u
ICogVV9FWFBPUlQyCit1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzKGNvbnN0IFVDaGFyc2V0
RGV0ZWN0b3IgKnVjc2QsICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAgKiBFbmFibGUg
b3IgZGlzYWJsZSBpbmRpdmlkdWFsIGNoYXJzZXQgZW5jb2RpbmcuCisgICogQSBuYW1lIG9mIGNo
YXJzZXQgZW5jb2RpbmcgbXVzdCBiZSBpbmNsdWRlZCBpbiB0aGUgbmFtZXMgcmV0dXJuZWQgYnkK
KyAgKiB7QGxpbmsgI2dldEFsbERldGVjdGFibGVDaGFyc2V0cygpfS4KKyAgKgorICAqIEBwYXJh
bSB1Y3NkIGEgQ2hhcnNldCBkZXRlY3Rvci4KKyAgKiBAcGFyYW0gZW5jb2RpbmcgZW5jb2Rpbmcg
dGhlIG5hbWUgb2YgY2hhcnNldCBlbmNvZGluZy4KKyAgKiBAcGFyYW0gZW5hYmxlZCA8Y29kZT5U
UlVFPC9jb2RlPiB0byBlbmFibGUsIG9yIDxjb2RlPkZBTFNFPC9jb2RlPiB0byBkaXNhYmxlIHRo
ZQorICAqICAgY2hhcnNldCBlbmNvZGluZy4KKyAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIHRo
ZSByZXR1cm4gc3RhdHVzLiBXaGVuIHRoZSBuYW1lIG9mIGNoYXJzZXQgZW5jb2RpbmcKKyAgKiAg
IGlzIG5vdCBzdXBwb3J0ZWQsIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiBpcyBzZXQuCisgICog
QGludGVybmFsCisgICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyCit1Y3NkZXRfc2V0RGV0
ZWN0YWJsZUNoYXJzZXQoVUNoYXJzZXREZXRlY3RvciAqdWNzZCwgY29uc3QgY2hhciAqZW5jb2Rp
bmcsIFVCb29sIGVuYWJsZWQsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElE
RV9JTlRFUk5BTF9BUEkgKi8KKwogI2VuZGlmCiAjZW5kaWYgICAvKiBfX1VDU0RFVF9IICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VlbnVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pY3UvdW5pY29kZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2MDhkZjhi
ODlmZDA3NjhkMTlmNWM2ODguLjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZlMjJjNTEy
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VlbnVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWVudW0uaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTAsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAx
MywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpA
QCAtMTY0LDExICsxNjQsNDMgQEAgdWVudW1fcmVzZXQoVUVudW1lcmF0aW9uKiBlbiwgVUVycm9y
Q29kZSogc3RhdHVzKTsKICAqIEBwYXJhbSBhZG9wdGVkIHRoZSBDKysgU3RyaW5nRW51bWVyYXRp
b24gdG8gYmUgd3JhcHBlZCBpbiBhIFVFbnVtZXJhdGlvbi4KICAqIEBwYXJhbSBlYyB0aGUgZXJy
b3IgY29kZS4KICAqIEByZXR1cm4gYSBVRW51bWVyYXRpb24gd3JhcHBpbmcgdGhlIGFkb3B0ZWQg
U3RyaW5nRW51bWVyYXRpb24uCi0gKiBAZHJhZnQgSUNVIDQuMgorICogQHN0YWJsZSBJQ1UgNC4y
CiAgKi8KLVVfQ0FQSSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgotdWVudW1fb3BlbkZyb21TdHJp
bmdFbnVtZXJhdGlvbihVX05BTUVTUEFDRV9RVUFMSUZJRVIgU3RyaW5nRW51bWVyYXRpb24qIGFk
b3B0ZWQsIFVFcnJvckNvZGUqIGVjKTsKK1VfU1RBQkxFIFVFbnVtZXJhdGlvbiogVV9FWFBPUlQy
Cit1ZW51bV9vcGVuRnJvbVN0cmluZ0VudW1lcmF0aW9uKGljdTo6U3RyaW5nRW51bWVyYXRpb24q
IGFkb3B0ZWQsIFVFcnJvckNvZGUqIGVjKTsKIAogI2VuZGlmCiAKKy8qKgorICogR2l2ZW4gYW4g
YXJyYXkgb2YgY29uc3QgVUNoYXIqIHN0cmluZ3MsIHJldHVybiBhIFVFbnVtZXJhdGlvbi4gIFN0
cmluZyBwb2ludGVycyBmcm9tIDAuLmNvdW50LTEgbXVzdCBub3QgYmUgbnVsbC4KKyAqIERvIG5v
dCBmcmVlIG9yIG1vZGlmeSBlaXRoZXIgdGhlIHN0cmluZyBhcnJheSBvciB0aGUgY2hhcmFjdGVy
cyBpdCBwb2ludHMgdG8gdW50aWwgdGhpcyBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkIHdpdGgg
dWVudW1fY2xvc2UuCisgKiBcc25pcHBldCB0ZXN0L2NpbnRsdHN0L3VlbnVtdHN0LmMgdWVudW1f
b3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uCisgKiBAcGFyYW0gc3RyaW5ncyBhcnJheSBvZiBj
b25zdCBVQ2hhciogc3RyaW5ncyAoZWFjaCBudWxsIHRlcm1pbmF0ZWQpLiBBbGwgc3RvcmFnZSBp
cyBvd25lZCBieSB0aGUgY2FsbGVyLgorICogQHBhcmFtIGNvdW50IGxlbmd0aCBvZiB0aGUgYXJy
YXkKKyAqIEBwYXJhbSBlYyBlcnJvciBjb2RlCisgKiBAcmV0dXJuIHRoZSBuZXcgVUVudW1lcmF0
aW9uIG9iamVjdC4gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHVlbnVtX2Nsb3Nl
IHRvIGZyZWUgbWVtb3J5LgorICogQHNlZSB1ZW51bV9jbG9zZQorICogQHN0YWJsZSBJQ1UgNTAK
KyAqLworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIKK3VlbnVtX29wZW5VQ2hhclN0
cmluZ3NFbnVtZXJhdGlvbihjb25zdCBVQ2hhciogY29uc3Qgc3RyaW5nc1tdLCBpbnQzMl90IGNv
dW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogZWMpOwor
CisvKiBOb3RlOiAgbmV4dCBmdW5jdGlvbiBpcyBub3QgaGlkZGVuIGFzIGRyYWZ0LCBhcyBpdCBp
cyB1c2VkIGludGVybmFsbHkgKGl0IHdhcyBmb3JtZXJseSBhbiBpbnRlcm5hbCBmdW5jdGlvbiku
ICovCisKKy8qKgorICogR2l2ZW4gYW4gYXJyYXkgb2YgY29uc3QgY2hhciogc3RyaW5ncyAoaW52
YXJpYW50IGNoYXJzIG9ubHkpLCByZXR1cm4gYSBVRW51bWVyYXRpb24uICBTdHJpbmcgcG9pbnRl
cnMgZnJvbSAwLi5jb3VudC0xIG11c3Qgbm90IGJlIG51bGwuCisgKiBEbyBub3QgZnJlZSBvciBt
b2RpZnkgZWl0aGVyIHRoZSBzdHJpbmcgYXJyYXkgb3IgdGhlIGNoYXJhY3RlcnMgaXQgcG9pbnRz
IHRvIHVudGlsIHRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCB3aXRoIHVlbnVtX2Nsb3Nl
LgorICogXHNuaXBwZXQgdGVzdC9jaW50bHRzdC91ZW51bXRzdC5jIHVlbnVtX29wZW5DaGFyU3Ry
aW5nc0VudW1lcmF0aW9uCisgKiBAcGFyYW0gc3RyaW5ncyBhcnJheSBvZiBjaGFyKiBzdHJpbmdz
IChlYWNoIG51bGwgdGVybWluYXRlZCkuICBBbGwgc3RvcmFnZSBpcyBvd25lZCBieSB0aGUgY2Fs
bGVyLgorICogQHBhcmFtIGNvdW50IGxlbmd0aCBvZiB0aGUgYXJyYXkKKyAqIEBwYXJhbSBlYyBl
cnJvciBjb2RlCisgKiBAcmV0dXJuIHRoZSBuZXcgVUVudW1lcmF0aW9uIG9iamVjdC4gQ2FsbGVy
IGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHVlbnVtX2Nsb3NlIHRvIGZyZWUgbWVtb3J5Cisg
KiBAc2VlIHVlbnVtX2Nsb3NlCisgKiBAc3RhYmxlIElDVSA1MAorICovCitVX1NUQUJMRSBVRW51
bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRpb24oY29u
c3QgY2hhciogY29uc3Qgc3RyaW5nc1tdLCBpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogZWMpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VpZG5hLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91aWRuYS5oCmluZGV4IDA0YjQzOWQ5NzBmNDU4MjRhYjlmZThjN2VmNDc3MTA2MzM0
ZWFkMWQuLjJlZmIxMzBmOTRlNDM5OGE5ZTVhYzI2YTdhZGM3MTM1MzMyMjdkMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VpZG5hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvdWlkbmEuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogICoKLSAqICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTAsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTQy
LDEyICs0MiwxNCBAQAogZW51bSB7CiAgICAgLyoqCiAgICAgICogRGVmYXVsdCBvcHRpb25zIHZh
bHVlOiBOb25lIG9mIHRoZSBvdGhlciBvcHRpb25zIGFyZSBzZXQuCisgICAgICogRm9yIHVzZSBp
biBzdGF0aWMgd29ya2VyIGFuZCBmYWN0b3J5IG1ldGhvZHMuCiAgICAgICogQHN0YWJsZSBJQ1Ug
Mi42CiAgICAgICovCiAgICAgVUlETkFfREVGQVVMVD0wLAogICAgIC8qKgogICAgICAqIE9wdGlv
biB0byBhbGxvdyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIGRvbWFpbiBuYW1lcyBhbmQgbGFi
ZWxzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIFVUUzQ2IGltcGxlbWVu
dGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9yeSBtZXRo
b2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIFVUUzQ2IGltcGxl
bWVudGF0aW9uLgogICAgICAqIChVVFMgIzQ2IGRpc2FsbG93cyB1bmFzc2lnbmVkIGNvZGUgcG9p
bnRzLikKICAgICAgKiBAc3RhYmxlIElDVSAyLjYKICAgICAgKi8KQEAgLTU2LDQ3ICs1OCw2MiBA
QCBlbnVtIHsKICAgICAgKiBPcHRpb24gdG8gY2hlY2sgd2hldGhlciB0aGUgaW5wdXQgY29uZm9y
bXMgdG8gdGhlIFNURDMgQVNDSUkgcnVsZXMsCiAgICAgICogZm9yIGV4YW1wbGUgdGhlIHJlc3Ry
aWN0aW9uIG9mIGxhYmVscyB0byBMREggY2hhcmFjdGVycwogICAgICAqIChBU0NJSSBMZXR0ZXJz
LCBEaWdpdHMgYW5kIEh5cGhlbi1NaW51cykuCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29y
a2VyIGFuZCBmYWN0b3J5IG1ldGhvZHMuCiAgICAgICogQHN0YWJsZSBJQ1UgMi42CiAgICAgICov
CiAgICAgVUlETkFfVVNFX1NURDNfUlVMRVM9MiwKICAgICAvKioKICAgICAgKiBJRE5BIG9wdGlv
biB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9ybXMgdG8gdGhlIEJpRGkgcnVs
ZXMuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSUROQTIwMDMgaW1wbGVt
ZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29ya2VyIGFuZCBmYWN0b3J5IG1l
dGhvZHMuCisgICAgICogPHA+VGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSUROQTIwMDMg
aW1wbGVtZW50YXRpb24uCiAgICAgICogKElETkEyMDAzIGFsd2F5cyBwZXJmb3JtcyBhIEJpRGkg
Y2hlY2suKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAg
ICAgICovCiAgICAgVUlETkFfQ0hFQ0tfQklEST00LAogICAgIC8qKgogICAgICAqIElETkEgb3B0
aW9uIHRvIGNoZWNrIGZvciB3aGV0aGVyIHRoZSBpbnB1dCBjb25mb3JtcyB0byB0aGUgQ09OVEVY
VEogcnVsZXMuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSUROQTIwMDMg
aW1wbGVtZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29ya2VyIGFuZCBmYWN0
b3J5IG1ldGhvZHMuCisgICAgICogPHA+VGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSURO
QTIwMDMgaW1wbGVtZW50YXRpb24uCiAgICAgICogKFRoZSBDT05URVhUSiBjaGVjayBpcyBuZXcg
aW4gSUROQTIwMDguKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1Ug
NC42CiAgICAgICovCiAgICAgVUlETkFfQ0hFQ0tfQ09OVEVYVEo9OCwKICAgICAvKioKICAgICAg
KiBJRE5BIG9wdGlvbiBmb3Igbm9udHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcgaW4gVG9BU0NJSSgp
LgotICAgICAqIEJ5IGRlZmF1bHQsIFRvQVNDSUkoKSB1c2VzIHRyYW5zaXRpb25hbCBwcm9jZXNz
aW5nLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElETkEyMDAzIGltcGxl
bWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9yeSBt
ZXRob2RzLgorICAgICAqIDxwPkJ5IGRlZmF1bHQsIFRvQVNDSUkoKSB1c2VzIHRyYW5zaXRpb25h
bCBwcm9jZXNzaW5nLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElE
TkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9y
IGNvbXBhdGliaWxpdHkgb2YgbmV3ZXIgSUROQSBpbXBsZW1lbnRhdGlvbnMgd2l0aCBJRE5BMjAw
My4pCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAg
Ki8KICAgICBVSUROQV9OT05UUkFOU0lUSU9OQUxfVE9fQVNDSUk9MHgxMCwKICAgICAvKioKICAg
ICAgKiBJRE5BIG9wdGlvbiBmb3Igbm9udHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcgaW4gVG9Vbmlj
b2RlKCkuCi0gICAgICogQnkgZGVmYXVsdCwgVG9Vbmljb2RlKCkgdXNlcyB0cmFuc2l0aW9uYWwg
cHJvY2Vzc2luZy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBJRE5BMjAw
MyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIgYW5kIGZh
Y3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5CeSBkZWZhdWx0LCBUb1VuaWNvZGUoKSB1c2VzIHRy
YW5zaXRpb25hbCBwcm9jZXNzaW5nLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQg
YnkgdGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGlzIGlzIG9ubHkgcmVs
ZXZhbnQgZm9yIGNvbXBhdGliaWxpdHkgb2YgbmV3ZXIgSUROQSBpbXBsZW1lbnRhdGlvbnMgd2l0
aCBJRE5BMjAwMy4pCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0
LjYKICAgICAgKi8KLSAgICBVSUROQV9OT05UUkFOU0lUSU9OQUxfVE9fVU5JQ09ERT0weDIwCisg
ICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX1VOSUNPREU9MHgyMCwKKyAgICAvKioKKyAgICAg
KiBJRE5BIG9wdGlvbiB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9ybXMgdG8g
dGhlIENPTlRFWFRPIHJ1bGVzLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQg
ZmFjdG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhl
IElETkEyMDAzIGltcGxlbWVudGF0aW9uLgorICAgICAqIChUaGUgQ09OVEVYVE8gY2hlY2sgaXMg
bmV3IGluIElETkEyMDA4LikKKyAgICAgKiA8cD5UaGlzIGlzIGZvciB1c2UgYnkgcmVnaXN0cmll
cyBmb3IgSUROQTIwMDggY29uZm9ybWFuY2UuCisgICAgICogVVRTICM0NiBkb2VzIG5vdCByZXF1
aXJlIHRoZSBDT05URVhUTyBjaGVjay4KKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLwor
ICAgIFVJRE5BX0NIRUNLX0NPTlRFWFRPPTB4NDAKIH07CiAKIC8qKgogICogT3BhcXVlIEMgc2Vy
dmljZSBvYmplY3QgdHlwZSBmb3IgdGhlIG5ldyBJRE5BIEFQSS4KLSAqIEBkcmFmdCBJQ1UgNC42
CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwogc3RydWN0IFVJRE5BOwotdHlwZWRlZiBzdHJ1Y3Qg
VUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVJRE5BLiBAZHJhZnQgSUNV
IDQuNiAqLwordHlwZWRlZiBzdHJ1Y3QgVUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRlZiBmb3Ig
c3RydWN0IFVJRE5BLiBAc3RhYmxlIElDVSA0LjYgKi8KIAogLyoqCiAgKiBSZXR1cm5zIGEgVUlE
TkEgaW5zdGFuY2Ugd2hpY2ggaW1wbGVtZW50cyBVVFMgIzQ2LgpAQCAtMTEzLDE3ICsxMzAsMTcg
QEAgdHlwZWRlZiBzdHJ1Y3QgVUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0
IFVJRE5BLiBAZHJhZnQgSUNVIDQuNiAqLwogICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVs
eS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAogICogICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxz
LikKICAqIEByZXR1cm4gdGhlIFVUUyAjNDYgVUlETkEgaW5zdGFuY2UsIGlmIHN1Y2Nlc3NmdWwK
LSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBVSURO
QSAqIFVfRVhQT1JUMgorVV9TVEFCTEUgVUlETkEgKiBVX0VYUE9SVDIKIHVpZG5hX29wZW5VVFM0
Nih1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoqCiAgKiBD
bG9zZXMgYSBVSUROQSBpbnN0YW5jZS4KICAqIEBwYXJhbSBpZG5hIFVJRE5BIGluc3RhbmNlIHRv
IGJlIGNsb3NlZAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1V
X0RSQUZUIHZvaWQgVV9FWFBPUlQyCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgogdWlkbmFfY2xv
c2UoVUlETkEgKmlkbmEpOwogCiAjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKQEAgLTEzNyw3ICsx
NTQsNyBAQCBVX05BTUVTUEFDRV9CRUdJTgogICoKICAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQog
ICogQHNlZSBMb2NhbFBvaW50ZXIKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0
LjYKICAqLwogVV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUlETkFQb2ludGVyLCBV
SUROQSwgdWlkbmFfY2xvc2UpOwogCkBAIC0xNTMsMzIgKzE3MCwzMSBAQCBVX05BTUVTUEFDRV9F
TkQKICAqIGludDMyX3QgbGVuZ3RoID0gdWlkbmFfbmFtZVRvQVNDSUkoLi4uLCAmaW5mbywgJmVy
cm9yQ29kZSk7CiAgKiBpZihVX1NVQ0NFU1MoZXJyb3JDb2RlKSAmJiBpbmZvLmVycm9ycyE9MCkg
eyAuLi4gfQogICogXGVuZGNvZGUKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0
LjYKICAqLwotc3RydWN0IFVJRE5BSW5mbyB7Ci0gICAgLyoqIHNpemVvZihVSUROQUluZm8pIEBk
cmFmdCBJQ1UgNC42ICovCit0eXBlZGVmIHN0cnVjdCBVSUROQUluZm8geworICAgIC8qKiBzaXpl
b2YoVUlETkFJbmZvKSBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBpbnQxNl90IHNpemU7CiAgICAg
LyoqCiAgICAgICogU2V0IHRvIFRSVUUgaWYgdHJhbnNpdGlvbmFsIGFuZCBub250cmFuc2l0aW9u
YWwgcHJvY2Vzc2luZyBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLgogICAgICAqIEZvciBkZXRh
aWxzIHNlZSBDKysgSUROQUluZm86OmlzVHJhbnNpdGlvbmFsRGlmZmVyZW50KCkuCi0gICAgICog
QGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVQm9v
bCBpc1RyYW5zaXRpb25hbERpZmZlcmVudDsKICAgICBVQm9vbCByZXNlcnZlZEIzOyAgLyoqPCBS
ZXNlcnZlZCBmaWVsZCwgZG8gbm90IHVzZS4gQGludGVybmFsICovCiAgICAgLyoqCiAgICAgICog
Qml0IHNldCBpbmRpY2F0aW5nIElETkEgcHJvY2Vzc2luZyBlcnJvcnMuIDAgaWYgbm8gZXJyb3Jz
LgogICAgICAqIFNlZSBVSUROQV9FUlJPUl8uLi4gY29uc3RhbnRzLgotICAgICAqIEBkcmFmdCBJ
Q1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgdWludDMyX3QgZXJy
b3JzOwogICAgIGludDMyX3QgcmVzZXJ2ZWRJMjsgIC8qKjwgUmVzZXJ2ZWQgZmllbGQsIGRvIG5v
dCB1c2UuIEBpbnRlcm5hbCAqLwogICAgIGludDMyX3QgcmVzZXJ2ZWRJMzsgIC8qKjwgUmVzZXJ2
ZWQgZmllbGQsIGRvIG5vdCB1c2UuIEBpbnRlcm5hbCAqLwotfTsKLXR5cGVkZWYgc3RydWN0IFVJ
RE5BSW5mbyBVSUROQUluZm87Cit9IFVJRE5BSW5mbzsKIAogLyoqCiAgKiBTdGF0aWMgaW5pdGlh
bGl6ZXIgZm9yIGEgVUlETkFJbmZvIHN0cnVjdC4KLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3Rh
YmxlIElDVSA0LjYKICAqLwogI2RlZmluZSBVSUROQV9JTkZPX0lOSVRJQUxJWkVSIHsgXAogICAg
IChpbnQxNl90KXNpemVvZihVSUROQUluZm8pLCBcCkBAIC0yMDYsOSArMjIyLDkgQEAgdHlwZWRl
ZiBzdHJ1Y3QgVUlETkFJbmZvIFVJRE5BSW5mbzsKICAqICAgICAgICAgICAgICAgICAgaW1tZWRp
YXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0
YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJ
Q1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JU
MgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX2xhYmVsVG9BU0NJSShjb25zdCBV
SUROQSAqaWRuYSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbGFiZWwsIGludDMy
X3QgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFj
aXR5LApAQCAtMjMzLDkgKzI0OSw5IEBAIHVpZG5hX2xhYmVsVG9BU0NJSShjb25zdCBVSUROQSAq
aWRuYSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxV
UkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24g
Y2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3Rp
bmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0
LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VY
UE9SVDIKIHVpZG5hX2xhYmVsVG9Vbmljb2RlKGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxhYmVsLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAg
ICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LApAQCAtMjYyLDkgKzI3
OCw5IEBAIHVpZG5hX2xhYmVsVG9Vbmljb2RlKGNvbnN0IFVJRE5BICppZG5hLAogICogICAgICAg
ICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBv
ciB1c2Ugd2l0aAogICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBV
c2VyIEd1aWRlIGZvciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRpb24gc3RyaW5nIGxl
bmd0aAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1VX0RSQUZU
IGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWlkbmFfbmFt
ZVRvQVNDSUkoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hh
ciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwg
aW50MzJfdCBjYXBhY2l0eSwKQEAgLTI4OSw5ICszMDUsOSBAQCB1aWRuYV9uYW1lVG9BU0NJSShj
b25zdCBVSUROQSAqaWRuYSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNr
IGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAg
ICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBA
cmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBA
c3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUg
aW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX25hbWVUb1VuaWNvZGUoY29uc3QgVUlETkEgKmlkbmEs
CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpuYW1lLCBpbnQzMl90IGxlbmd0aCwK
ICAgICAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0z
MTQsOSArMzMwLDkgQEAgdWlkbmFfbmFtZVRvVW5pY29kZShjb25zdCBVSUROQSAqaWRuYSwKICAq
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcu
IChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0
cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwot
VV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVp
ZG5hX2xhYmVsVG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqbGFiZWwsIGludDMyX3QgbGVuZ3RoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTMzNyw5ICszNTMs
OSBAQCB1aWRuYV9sYWJlbFRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAqICAgICAg
ICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQg
b3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUg
VXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBs
ZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFG
VCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX2xh
YmVsVG9Vbmljb2RlVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpsYWJlbCwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTM2MCw5ICszNzYsOSBA
QCB1aWRuYV9sYWJlbFRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiAgKiAgICAgICAg
ICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9y
IHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVz
ZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVu
Z3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQg
aW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9uYW1l
VG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpuYW1lLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTM4Myw5ICszOTksOSBAQCB1aWRuYV9u
YW1lVG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICogICAgICAgICAgICAgICAgICBp
bW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAog
ICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZv
ciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRpb24gc3RyaW5nIGxlbmd0aAotICogQGRy
YWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1VX0RSQUZUIGludDMyX3QgVV9F
WFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWlkbmFfbmFtZVRvVW5pY29kZVVU
RjgoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpuYW1lLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRl
c3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zOTksNTggKzQxNSw1OCBAQCB1aWRuYV9uYW1lVG9V
bmljb2RlVVRGOChjb25zdCBVSUROQSAqaWRuYSwKIGVudW0gewogICAgIC8qKgogICAgICAqIEEg
bm9uLWZpbmFsIGRvbWFpbiBuYW1lIGxhYmVsIChvciB0aGUgd2hvbGUgZG9tYWluIG5hbWUpIGlz
IGVtcHR5LgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAg
ICAgICovCiAgICAgVUlETkFfRVJST1JfRU1QVFlfTEFCRUw9MSwKICAgICAvKioKICAgICAgKiBB
IGRvbWFpbiBuYW1lIGxhYmVsIGlzIGxvbmdlciB0aGFuIDYzIGJ5dGVzLgogICAgICAqIChTZWUg
U1REMTMvUkZDMTAzNCAzLjEuIE5hbWUgc3BhY2Ugc3BlY2lmaWNhdGlvbnMgYW5kIHRlcm1pbm9s
b2d5LikKICAgICAgKiBUaGlzIGlzIG9ubHkgY2hlY2tlZCBpbiBUb0FTQ0lJIG9wZXJhdGlvbnMs
IGFuZCBvbmx5IGlmIHRoZSBvdXRwdXQgbGFiZWwgaXMgYWxsLUFTQ0lJLgotICAgICAqIEBkcmFm
dCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJS
T1JfTEFCRUxfVE9PX0xPTkc9MiwKICAgICAvKioKICAgICAgKiBBIGRvbWFpbiBuYW1lIGlzIGxv
bmdlciB0aGFuIDI1NSBieXRlcyBpbiBpdHMgc3RvcmFnZSBmb3JtLgogICAgICAqIChTZWUgU1RE
MTMvUkZDMTAzNCAzLjEuIE5hbWUgc3BhY2Ugc3BlY2lmaWNhdGlvbnMgYW5kIHRlcm1pbm9sb2d5
LikKICAgICAgKiBUaGlzIGlzIG9ubHkgY2hlY2tlZCBpbiBUb0FTQ0lJIG9wZXJhdGlvbnMsIGFu
ZCBvbmx5IGlmIHRoZSBvdXRwdXQgZG9tYWluIG5hbWUgaXMgYWxsLUFTQ0lJLgotICAgICAqIEBk
cmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFf
RVJST1JfRE9NQUlOX05BTUVfVE9PX0xPTkc9NCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIHN0
YXJ0cyB3aXRoIGEgaHlwaGVuLW1pbnVzICgnLScpLgotICAgICAqIEBkcmFmdCBJQ1UgNC42Cisg
ICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfTEVBRElOR19I
WVBIRU49OCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIGVuZHMgd2l0aCBhIGh5cGhlbi1taW51
cyAoJy0nKS4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgog
ICAgICAqLwogICAgIFVJRE5BX0VSUk9SX1RSQUlMSU5HX0hZUEhFTj0weDEwLAogICAgIC8qKgog
ICAgICAqIEEgbGFiZWwgY29udGFpbnMgaHlwaGVuLW1pbnVzICgnLScpIGluIHRoZSB0aGlyZCBh
bmQgZm91cnRoIHBvc2l0aW9ucy4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFi
bGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX0hZUEhFTl8zXzQ9MHgyMCwKICAg
ICAvKioKICAgICAgKiBBIGxhYmVsIHN0YXJ0cyB3aXRoIGEgY29tYmluaW5nIG1hcmsuCi0gICAg
ICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAgICBV
SUROQV9FUlJPUl9MRUFESU5HX0NPTUJJTklOR19NQVJLPTB4NDAsCiAgICAgLyoqCiAgICAgICog
QSBsYWJlbCBvciBkb21haW4gbmFtZSBjb250YWlucyBkaXNhbGxvd2VkIGNoYXJhY3RlcnMuCi0g
ICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAg
ICBVSUROQV9FUlJPUl9ESVNBTExPV0VEPTB4ODAsCiAgICAgLyoqCiAgICAgICogQSBsYWJlbCBz
dGFydHMgd2l0aCAieG4tLSIgYnV0IGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgUHVueWNvZGUuCiAg
ICAgICogVGhhdCBpcywgYW4geG4tLSBsYWJlbCBmYWlsZWQgUHVueWNvZGUgZGVjb2RpbmcuCi0g
ICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAg
ICBVSUROQV9FUlJPUl9QVU5ZQ09ERT0weDEwMCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIGNv
bnRhaW5zIGEgZG90PWZ1bGwgc3RvcC4KICAgICAgKiBUaGlzIGNhbiBvY2N1ciBpbiBhbiBpbnB1
dCBzdHJpbmcgZm9yIGEgc2luZ2xlLWxhYmVsIGZ1bmN0aW9uLgotICAgICAqIEBkcmFmdCBJQ1Ug
NC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfTEFC
RUxfSEFTX0RPVD0weDIwMCwKICAgICAvKioKQEAgLTQ1OSwxOSArNDc1LDMyIEBAIGVudW0gewog
ICAgICAqIHN0cmluZyBoYWQgc2V2ZXJlIHZhbGlkYXRpb24gZXJyb3JzLiBGb3IgZXhhbXBsZSwK
ICAgICAgKiBpdCBtaWdodCBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFsbG93ZWQg
aW4gQUNFIGxhYmVscywKICAgICAgKiBvciBpdCBtaWdodCBub3QgYmUgbm9ybWFsaXplZC4KLSAg
ICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAg
IFVJRE5BX0VSUk9SX0lOVkFMSURfQUNFX0xBQkVMPTB4NDAwLAogICAgIC8qKgogICAgICAqIEEg
bGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBCaURpIHJlcXVpcmVtZW50cyAoZm9yIHJpZ2h0
LXRvLWxlZnQgY2hhcmFjdGVycykuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3Rh
YmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9CSURJPTB4ODAwLAogICAgIC8q
KgogICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBDT05URVhUSiByZXF1aXJl
bWVudHMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKKyAg
ICAgKi8KKyAgICBVSUROQV9FUlJPUl9DT05URVhUSj0weDEwMDAsCisgICAgLyoqCisgICAgICog
QSBsYWJlbCBkb2VzIG5vdCBtZWV0IHRoZSBJRE5BIENPTlRFWFRPIHJlcXVpcmVtZW50cyBmb3Ig
cHVuY3R1YXRpb24gY2hhcmFjdGVycy4KKyAgICAgKiBTb21lIHB1bmN0dWF0aW9uIGNoYXJhY3Rl
cnMgIldvdWxkIG90aGVyd2lzZSBoYXZlIGJlZW4gRElTQUxMT1dFRCIKKyAgICAgKiBidXQgYXJl
IGFsbG93ZWQgaW4gY2VydGFpbiBjb250ZXh0cy4gKFJGQyA1ODkyKQorICAgICAqIEBzdGFibGUg
SUNVIDQ5CisgICAgICovCisgICAgVUlETkFfRVJST1JfQ09OVEVYVE9fUFVOQ1RVQVRJT049MHgy
MDAwLAorICAgIC8qKgorICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBDT05U
RVhUTyByZXF1aXJlbWVudHMgZm9yIGRpZ2l0cy4KKyAgICAgKiBBcmFiaWMtSW5kaWMgRGlnaXRz
IChVKzA2NngpIG11c3Qgbm90IGJlIG1peGVkIHdpdGggRXh0ZW5kZWQgQXJhYmljLUluZGljIERp
Z2l0cyAoVSswNkZ4KS4KKyAgICAgKiBAc3RhYmxlIElDVSA0OQogICAgICAqLwotICAgIFVJRE5B
X0VSUk9SX0NPTlRFWFRKPTB4MTAwMAorICAgIFVJRE5BX0VSUk9SX0NPTlRFWFRPX0RJR0lUUz0w
eDQwMDAKIH07CiAKIC8qIElETkEyMDAzIEFQSSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pY3UvdW5pY29kZS91aXRlci5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
dWl0ZXIuaAppbmRleCBiNDY5ZTI0ZTYxNjUzZDdlNmQwYmU4YzhmYTY3ZmYyNjUxYjUxZmEzLi4w
Y2RiOGZmYmU1YzgxNTRhYzlkOTA4ZjYwNWIwZWIxNmVhNWJiMTk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91aXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3VpdGVyLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LDIwMDkgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDExIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTY3Myw3ICs2NzMsNyBA
QCB1aXRlcl9zZXRVVEY4KFVDaGFySXRlcmF0b3IgKml0ZXIsIGNvbnN0IGNoYXIgKnMsIGludDMy
X3QgbGVuZ3RoKTsKICAqIEBzdGFibGUgSUNVIDIuMQogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQ
T1JUMgotdWl0ZXJfc2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRvciAqaXRlciwgVV9O
QU1FU1BBQ0VfUVVBTElGSUVSIENoYXJhY3Rlckl0ZXJhdG9yICpjaGFySXRlcik7Cit1aXRlcl9z
ZXRDaGFyYWN0ZXJJdGVyYXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBpY3U6OkNoYXJhY3Rlckl0
ZXJhdG9yICpjaGFySXRlcik7CiAKIC8qKgogICogU2V0IHVwIGEgVUNoYXJJdGVyYXRvciB0byBp
dGVyYXRlIG92ZXIgYSBDKysgUmVwbGFjZWFibGUuCkBAIC02OTgsNyArNjk4LDcgQEAgdWl0ZXJf
c2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRvciAqaXRlciwgVV9OQU1FU1BBQ0VfUVVB
TElGSUVSIENoYXJhY3RlckkKICAqIEBzdGFibGUgSUNVIDIuMQogICovCiBVX1NUQUJMRSB2b2lk
IFVfRVhQT1JUMgotdWl0ZXJfc2V0UmVwbGFjZWFibGUoVUNoYXJJdGVyYXRvciAqaXRlciwgY29u
c3QgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFJlcGxhY2VhYmxlICpyZXApOwordWl0ZXJfc2V0UmVw
bGFjZWFibGUoVUNoYXJJdGVyYXRvciAqaXRlciwgY29uc3QgaWN1OjpSZXBsYWNlYWJsZSAqcmVw
KTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vs
b2MuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vsb2MuaAppbmRleCA5NTc1OGMzYTM0
YzBmZWY2MGYxNGI0YzU2ZjFkMjVlYTRjYWY5ODA3Li4yOGFiOTAyYjUyMjI5M2IzMzIwZTllOWQw
N2VhZGYxMzkxNjU4YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91
bG9jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWxvYy5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0yODksNyAr
Mjg5LDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJ0AnIHNlcGFyYXRpbmcg
a2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIHN0cmluZy4KICAgKiBAc2VlIFVMT0NfS0VZV09SRF9T
RVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQuNgorICAqIEBzdGFibGUgSUNVIDQuNgogICAqLwog
I2RlZmluZSBVTE9DX0tFWVdPUkRfU0VQQVJBVE9SX1VOSUNPREUgMHg0MAogCkBAIC0zMDIsNyAr
MzAyLDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJz0nIGZvciBhc3NpZ25p
bmcgdmFsdWUgdG8gYSBrZXl3b3JkLgogICAqIEBzZWUgVUxPQ19LRVlXT1JEX0FTU0lHTgotICAq
IEBkcmFmdCBJQ1UgNC42IAorICAqIEBzdGFibGUgSUNVIDQuNiAKICAgKi8KICNkZWZpbmUgVUxP
Q19LRVlXT1JEX0FTU0lHTl9VTklDT0RFIDB4M0QKIApAQCAtMzE1LDcgKzMxNSw3IEBACiAvKioK
ICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc7JyBzZXBhcmF0aW5nIGtleXdvcmRzCiAgICog
QHNlZSBVTE9DX0tFWVdPUkRfSVRFTV9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQuNgorICAq
IEBzdGFibGUgSUNVIDQuNgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfSVRFTV9TRVBBUkFU
T1JfVU5JQ09ERSAweDNCCiAKQEAgLTM1Myw3ICszNTMsNyBAQCB0eXBlZGVmIGVudW0gewogICBV
TE9DX0RBVEFfTE9DQUxFX1RZUEVfTElNSVQgPSAzCiB9IFVMb2NEYXRhTG9jYWxlVHlwZSA7CiAK
LQorI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBHZXRzIElDVSdzIGRlZmF1bHQg
bG9jYWxlLiAgCiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIGlzIGEgc25hcHNob3QgaW4gdGltZSwg
YW5kIHdpbGwgcmVtYWluIHZhbGlkCkBAIC0zODgsNiArMzg4LDcgQEAgdWxvY19nZXREZWZhdWx0
KHZvaWQpOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVsb2Nfc2V0RGVmYXVsdChjb25zdCBj
aGFyKiBsb2NhbGVJRCwKICAgICAgICAgVUVycm9yQ29kZSogICAgICAgc3RhdHVzKTsKKyNlbmRp
ZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KIAogLyoqCiAgKiBHZXRzIHRoZSBsYW5ndWFnZSBj
b2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KQEAgLTc1Miw3ICs3NTMsOSBAQCBVX1NUQUJM
RSBpbnQzMl90IFVfRVhQT1JUMiB1bG9jX2NvdW50QXZhaWxhYmxlKHZvaWQpOwogCiAvKioKICAq
Ci0gKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQg
aW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZh
aWxhYmxlIDItbGV0dGVyIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOSwKKyAqIHBs
dXMgYWRkaXRpb25hbCAzLWxldHRlciBjb2RlcyBkZXRlcm1pbmVkIHRvIGJlIHVzZWZ1bCBmb3Ig
bG9jYWxlIGdlbmVyYXRpb24gYXMKKyAqIGRlZmluZWQgYnkgVW5pY29kZSBDTERSLiBUaGlzIGlz
IGEgcG9pbnRlcgogICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIu
ICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCiAgKiBieSBJQ1UtLSBkbyBub3QgZGVs
ZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCiAg
KiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCkBAIC03OTcsMTIgKzgwMCwxNSBAQCB1
bG9jX2dldFBhcmVudChjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKIAogCiAvKioKLSAqIEdldHMg
dGhlIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgKiBHZXRzIHRoZSBmdWxs
IG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBsaWtlIHVsb2NfZ2V0TmFtZSgpLAorICog
YnV0IHdpdGhvdXQga2V5d29yZHMuCisgKgogICogTm90ZTogVGhpcyBoYXMgdGhlIGVmZmVjdCBv
ZiAnY2Fub25pY2FsaXppbmcnIHRoZSBzdHJpbmcgdG8KICAqIGEgY2VydGFpbiBleHRlbnQuIFVw
cGVyIGFuZCBsb3dlciBjYXNlIGFyZSBzZXQgYXMgbmVlZGVkLAogICogYW5kIGlmIHRoZSBjb21w
b25lbnRzIHdlcmUgaW4gJ1BPU0lYJyBmb3JtYXQgdGhleSBhcmUgY2hhbmdlZCB0bwogICogSUNV
IGZvcm1hdC4gIEl0IGRvZXMgTk9UIG1hcCBhbGlhc2VkIG5hbWVzIGluIGFueSB3YXkuCiAgKiBT
ZWUgdGhlIHRvcCBvZiB0aGlzIGhlYWRlciBmaWxlLgorICoKICAqIFRoaXMgQVBJIHN0cmlwcyBv
ZmYgdGhlIGtleXdvcmQgcGFydCwgc28gImRlX0RFXEBjb2xsYXRpb249cGhvbmVib29rIiAKICAq
IHdpbGwgYmVjb21lICJkZV9ERSIuIAogICogVGhpcyBBUEkgc3VwcG9ydHMgcHJlZmxpZ2h0aW5n
LgpAQCAtODUzLDEzICs4NTksMTYgQEAgdWxvY19nZXRLZXl3b3JkVmFsdWUoY29uc3QgY2hhciog
bG9jYWxlSUQsCiAKIAogLyoqCi0gKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQga2V5
d29yZC4KKyAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBrZXl3
b3JkLgorICoKKyAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSB1bG9jX2dldEJhc2VO
YW1lKCkuCisgKgogICogTk9URTogVW5saWtlIGFsbW9zdCBldmVyeSBvdGhlciBJQ1UgZnVuY3Rp
b24gd2hpY2ggdGFrZXMgYQogICogYnVmZmVyLCB0aGlzIGZ1bmN0aW9uIHdpbGwgTk9UIHRydW5j
YXRlIHRoZSBvdXRwdXQgdGV4dC4gSWYgYQogICogQlVGRkVSX09WRVJGTE9XX0VSUk9SIGlzIHJl
Y2VpdmVkLCBpdCBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbAogICogYnVmZmVyIGlzIHVudG91Y2hl
ZC4gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgaW5jb3JyZWN0IG9yIHBvc3NpYmx5CiAgKiBldmVu
IG1hbGZvcm1lZCBsb2NhbGVzIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGFuZCB1c2VkLgotICogCisg
KgogICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBD
YXNlIGluc2Vuc2l0aXZlLgogICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1ZSBvZiB0aGUga2V5
d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCiAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4g
dGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYgCkBAIC0xMDY1
LDcgKzEwNzQsNyBAQCB1bG9jX21pbmltaXplU3VidGFncyhjb25zdCBjaGFyKiAgICBsb2NhbGVJ
RCwKICAgICAgICAgIGludDMyX3QgbWluaW1pemVkTG9jYWxlSURDYXBhY2l0eSwKICAgICAgICAg
IFVFcnJvckNvZGUqIGVycik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJucyBhIGxvY2FsZSBJRCBm
b3IgdGhlIHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcgc3RyaW5nLgogICogSWYgdGhlIHNw
ZWNpZmllZCBsYW5ndWFnZSB0YWcgY29udGFpbnMgYW55IGlsbC1mb3JtZWQgc3VidGFncywKICAq
IHRoZSBmaXJzdCBzdWNoIHN1YnRhZyBhbmQgYWxsIGZvbGxvd2luZyBzdWJ0YWdzIGFyZSBpZ25v
cmVkLgpAQCAtMTA4MSwyMSArMTA5MCwyMSBAQCB1bG9jX21pbmltaXplU3VidGFncyhjb25zdCBj
aGFyKiAgICBsb2NhbGVJRCwKICAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIG91dHB1dCBidWZmZXIg
cmVjZWl2aW5nIGEgbG9jYWxlIElEIGZvciB0aGUKICAqICAgICAgICAgICAgICAgICAgc3BlY2lm
aWVkIEJDUDQ3IGxhbmd1YWdlIHRhZy4KICAqIEBwYXJhbSBsb2NhbGVJRENhcGFjaXR5ICB0aGUg
c2l6ZSBvZiB0aGUgbG9jYWxlIElEIG91dHB1dCBidWZmZXIuCi0gKiBAcGFyYW0gcGFyc2VkTGVu
Z3RoICBpZiBub3QgTlVMTCwgc3VjY3Nlc3NmdWxseSBwYXJzZWQgbGVuZ3RoCisgKiBAcGFyYW0g
cGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBsZW5ndGgKICAq
ICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgaW5wdXQgbGFuZ3VhZ2UgdGFnIGlzIHNldC4K
ICAqIEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYgcmVjZWl2aW5nIHRoZSBs
b2NhbGQgSUQKICAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgogICogQHJldHVybiAgICAgICAg
ICB0aGUgbGVuZ3RoIG9mIHRoZSBsb2NhbGUgSUQuCi0gKiBAZHJhZnQgSUNVIDQuMgorICogQHN0
YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGlu
dDMyX3QgVV9FWFBPUlQyCiB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxhbmd0YWcs
CiAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGxvY2FsZUlELAogICAgICAgICAgICAgICAgICAg
ICBpbnQzMl90IGxvY2FsZUlEQ2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qq
IHBhcnNlZExlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogZXJyKTsKIAot
LyoqIAorLyoqCiAgKiBSZXR1cm5zIGEgd2VsbC1mb3JtZWQgbGFuZ3VhZ2UgdGFnIGZvciB0aGlz
IGxvY2FsZSBJRC4gCiAgKiA8cD4gCiAgKiA8Yj5Ob3RlPC9iPjogV2hlbiA8Y29kZT5zdHJpY3Q8
L2NvZGU+IGlzIEZBTFNFLCBhbnkgbG9jYWxlCkBAIC0xMTA0LDcgKzExMTMsNyBAQCB1bG9jX2Zv
ckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxhbmd0YWcsCiAgKiBUUlVFLCB0aGlzIGZ1bmN0aW9u
IHNldHMgVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SIHRvIHRoZQogICogPGNvZGU+ZXJyPC9jb2Rl
PiBpZiBhbnkgbG9jYWxlIGZpZWxkcyBkbyBub3Qgc2F0aXNmeSB0aGUKICAqIEJDUDQ3IHN5bnRh
eCByZXF1aXJlbWVudC4KLSAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlucHV0IGxjb2FsZSBJRAor
ICogQHBhcmFtIGxvY2FsZUlEICB0aGUgaW5wdXQgbG9jYWxlIElECiAgKiBAcGFyYW0gbGFuZ3Rh
ZyAgIHRoZSBvdXRwdXQgYnVmZmVyIHJlY2VpdmluZyBCQ1A0NyBsYW5ndWFnZQogICogICAgICAg
ICAgICAgICAgICB0YWcgZm9yIHRoZSBsb2NhbGUgSUQuCiAgKiBAcGFyYW0gbGFuZ3RhZ0NhcGFj
aXR5ICAgdGhlIHNpemUgb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZwpAQCAtMTExNCw5ICsxMTIz
LDkgQEAgdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5ndGFnLAogICogQHBhcmFt
IGVyciAgICAgICBlcnJvciBpbmZvcm1hdGlvbiBpZiByZWNlaXZpbmcgdGhlIGxhbmd1YWdlCiAg
KiAgICAgICAgICAgICAgICAgIHRhZyBmYWlsZWQuCiAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBs
ZW5ndGggb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZy4KLSAqIEBkcmFmdCBJQ1UgNC4yCisgKiBA
c3RhYmxlIElDVSA0LjIKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUg
aW50MzJfdCBVX0VYUE9SVDIKIHVsb2NfdG9MYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsb2NhbGVJ
RCwKICAgICAgICAgICAgICAgICAgICBjaGFyKiBsYW5ndGFnLAogICAgICAgICAgICAgICAgICAg
IGludDMyX3QgbGFuZ3RhZ0NhcGFjaXR5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdW1hY2hpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VtYWNoaW5l
LmgKaW5kZXggYWJiZGNiNzlmMTY1YTM2OWFjNzhkZWUxNzM0ODA0MmJjNjFjMmE5Ni4uZDExMDJm
NDkzNjUyN2M5MmIxM2JjYWY4NGM4YWVkY2E2ZTdmZjc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5p
Y29kZS91bWFjaGluZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDEsMTYgKzQxLDcgQEAKIC8q
IHdoaWNoIGFyZSBjb250YWluZWQgaW4gdGhlIHBsYXRmb3JtLXNwZWNpZmljIGZpbGUgcGxhdGZv
cm0uaCAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiBkZWZpbmVk
KFVfUEFMTU9TKQotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHBhbG1vcy5oIgotI2VsaWYgIWRlZmlu
ZWQoX19NSU5HVzMyX18pICYmIChkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwg
ZGVmaW5lZChXSU42NCkgfHwgZGVmaW5lZChfV0lONjQpKQotI2lmZGVmIENZR1dJTk1TVkMKLSMg
ICBpbmNsdWRlICJ1bmljb2RlL3BsYXRmb3JtLmgiCi0jZW5kaWYKLSMgICBpbmNsdWRlICJ1bmlj
b2RlL3B3aW4zMi5oIgotI2Vsc2UKLSMgICBpbmNsdWRlICJ1bmljb2RlL3B0eXBlcy5oIiAvKiBw
bGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCi0jZW5kaWYKKyNpbmNsdWRlICJ1
bmljb2RlL3B0eXBlcy5oIiAvKiBwbGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICov
CiAKIC8qCiAgKiBBTlNJIEMgaGVhZGVyczoKQEAgLTU5LDE5ICs1MCw2IEBACiAjaW5jbHVkZSA8
c3RkZGVmLmg+CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogWFBfQ1BMVVNQTFVTIGlzIGEg
Y3Jvc3MtcGxhdGZvcm0gc3ltYm9sIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIHdoZW4gICAgICov
Ci0vKiB1c2luZyBDKysuICBJdCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBjb21waWxpbmcg
dW5kZXIgQy4gICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZkZWYg
X19jcGx1c3BsdXMKLSMgICBpZm5kZWYgWFBfQ1BMVVNQTFVTCi0jICAgICAgIGRlZmluZSBYUF9D
UExVU1BMVVMKLSMgICBlbmRpZgotI2Vsc2UKLSMgICB1bmRlZiBYUF9DUExVU1BMVVMKLSNlbmRp
ZgotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEZvciBDIHdyYXBwZXJzLCB3ZSB1c2UgdGhl
IHN5bWJvbCBVX1NUQUJMRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiBU
aGlzIHdvcmtzIHByb3Blcmx5IGlmIHRoZSBpbmNsdWRlciBpcyBDIG9yIEMrKy4gICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KIC8qIEZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgICBVX1NUQUJMRSBy
ZXR1cm4tdHlwZSBVX0VYUE9SVDIgZnVuY3Rpb24tbmFtZSgpLi4uICovCkBAIC05NSw3ICs3Myw3
IEBACiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZk
ZWYgX19jcGx1c3BsdXMKICMgICBkZWZpbmUgVV9DRlVOQyBleHRlcm4gIkMiCiAjICAgZGVmaW5l
IFVfQ0RFQ0xfQkVHSU4gZXh0ZXJuICJDIiB7CiAjICAgZGVmaW5lIFVfQ0RFQ0xfRU5EICAgfQpA
QCAtMTA1LDIzICs4MywyNiBAQAogIyAgIGRlZmluZSBVX0NERUNMX0VORAogI2VuZGlmCiAKKyNp
Zm5kZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogLyoqCiAgKiBcZGVmIFVfQVRUUklCVVRFX0RF
UFJFQ0FURUQKICAqICBUaGlzIGlzIHVzZWQgZm9yIEdDQyBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAg
KiBAaW50ZXJuYWwKICAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDMg
fHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMikpCisjaWYgVV9HQ0NfTUFK
T1JfTUlOT1IgPj0gMzAyCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVEIF9fYXR0
cmlidXRlX18gKChkZXByZWNhdGVkKSkKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9ERVBSRUNB
VEVECiAgKiBUaGlzIGlzIHVzZWQgZm9yIFZpc3VhbCBDKysgc3BlY2lmaWMgYXR0cmlidXRlcyAK
ICAqIEBpbnRlcm5hbAogICovCi0jZWxpZiBkZWZpbmVkKFVfV0lORE9XUykgJiYgZGVmaW5lZChf
TVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAm
JiAoX01TQ19WRVIgPj0gMTQwMCkKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQg
X19kZWNsc3BlYyhkZXByZWNhdGVkKQogI2Vsc2UKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RF
UFJFQ0FURUQKICNlbmRpZgorI2VuZGlmCisKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVjbGFyZSBh
IGZ1bmN0aW9uIGFzIGEgcHVibGljIElDVSBDIEFQSSBAc3RhYmxlIElDVSAyLjAqLwogI2RlZmlu
ZSBVX0NBUEkgVV9DRlVOQyBVX0VYUE9SVAogLyoqIFRoaXMgaXMgdXNlZCB0byBkZWNsYXJlIGEg
ZnVuY3Rpb24gYXMgYSBzdGFibGUgcHVibGljIElDVSBDIEFQSSovCkBAIC0yMzQsMjcgKzIxNSw2
IEBAIHR5cGVkZWYgaW50OF90IFVCb29sOwogCiAvKiB3Y2hhcl90LXJlbGF0ZWQgZGVmaW5pdGlv
bnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotLyoq
Ci0gKiBcZGVmIFVfSEFWRV9XQ0hBUl9ICi0gKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4g
aXMgYXZhaWxhYmxlICgxKSBvciBub3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgotICoKLSAq
IEBzdGFibGUgSUNVIDIuMAotICovCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9ICi0jICAgZGVmaW5l
IFVfSEFWRV9XQ0hBUl9IIDEKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJf
VAotICogVV9TSVpFT0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpICgwIG1lYW5zIGl0IGlzIG5v
dCBkZWZpbmVkIG9yIGF1dG9jb25mIGNvdWxkIG5vdCBzZXQgaXQpCi0gKgotICogQHN0YWJsZSBJ
Q1UgMi4wCi0gKi8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0wCi0jICAgdW5kZWYgVV9TSVpFT0Zf
V0NIQVJfVAotIyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDQKLSNlbmRpZgotCiAvKgogICog
XGRlZiBVX1dDSEFSX0lTX1VURjE2CiAgKiBEZWZpbmVkIGlmIHdjaGFyX3QgdXNlcyBVVEYtMTYu
CkBAIC0yNzUsMTQgKzIzNSwxNiBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICMgICAgICAgICAg
IGRlZmluZSAgVV9XQ0hBUl9JU19VVEYzMgogIyAgICAgICBlbmRpZgogIyAgIGVsaWYgZGVmaW5l
ZCBfX1VDUzJfXwotIyAgICAgICBpZiAoX19PUzM5MF9fIHx8IF9fT1M0MDBfXykgJiYgKFVfU0la
RU9GX1dDSEFSX1Q9PTIpCisjICAgICAgIGlmIChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYg
VV9QTEFURk9STSA8PSBVX1BGX09TNDAwKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikKICMgICAg
ICAgICAgIGRlZmluZSBVX1dDSEFSX0lTX1VURjE2CiAjICAgICAgIGVuZGlmCi0jICAgZWxpZiBk
ZWZpbmVkIF9fVUNTNF9fCisjICAgZWxpZiBkZWZpbmVkKF9fVUNTNF9fKSB8fCAoVV9QTEFURk9S
TSA9PSBVX1BGX09TNDAwICYmIGRlZmluZWQoX19VVEYzMl9fKSkKICMgICAgICAgaWYgKFVfU0la
RU9GX1dDSEFSX1Q9PTQpCiAjICAgICAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgogIyAg
ICAgICBlbmRpZgotIyAgIGVsaWYgZGVmaW5lZChVX1dJTkRPV1MpCisjICAgZWxpZiBVX1BMQVRG
T1JNX0lTX0RBUldJTl9CQVNFRCB8fCAoVV9TSVpFT0ZfV0NIQVJfVD09NCAmJiBVX1BMQVRGT1JN
X0lTX0xJTlVYX0JBU0VEKQorIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgorIyAgIGVs
aWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCiAjICAgICAgIGRlZmluZSBVX1dDSEFSX0lTX1VU
RjE2CiAjICAgZW5kaWYKICNlbmRpZgpAQCAtMjk0LDI0ICsyNTYsMjQgQEAgdHlwZWRlZiBpbnQ4
X3QgVUJvb2w7CiAKIC8qKgogICogXHZhciBVQ2hhcgotICogRGVmaW5lIFVDaGFyIHRvIGJlIHdj
aGFyX3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJlIHVuc2ln
bmVkLgotICogSWYgd2NoYXJfdCBpcyBub3QgMTYgYml0cyB3aWRlLCB0aGVuIGRlZmluZSBVQ2hh
ciB0byBiZSB1aW50MTZfdCBvciBjaGFyMTZfdCBiZWNhdXNlIEdDQyA+PTQuNAotICogY2FuIGhh
bmRsZSBVVEYxNiBzdHJpbmcgbGl0ZXJhbHMuCisgKiBEZWZpbmUgVUNoYXIgdG8gYmUgVUNIQVJf
VFlQRSwgaWYgdGhhdCBpcyAjZGVmaW5lZCAoZm9yIGV4YW1wbGUsIHRvIGNoYXIxNl90KSwKKyAq
IG9yIHdjaGFyX3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJl
IHVuc2lnbmVkLgorICogSWYgbmVpdGhlciBpcyBhdmFpbGFibGUsIHRoZW4gZGVmaW5lIFVDaGFy
IHRvIGJlIHVpbnQxNl90LgorICoKICAqIFRoaXMgbWFrZXMgdGhlIGRlZmluaXRpb24gb2YgVUNo
YXIgcGxhdGZvcm0tZGVwZW5kZW50CiAgKiBidXQgYWxsb3dzIGRpcmVjdCBzdHJpbmcgdHlwZSBj
b21wYXRpYmlsaXR5IHdpdGggcGxhdGZvcm1zIHdpdGgKICAqIDE2LWJpdCB3Y2hhcl90IHR5cGVz
LgogICoKLSAqIEBkcmFmdCBJQ1UgNC40CisgKiBAc3RhYmxlIElDVSA0LjQKICAqLwotCi0vKiBE
ZWZpbmUgVUNoYXIgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHdjaGFyX3QgaWYgcG9zc2libGUuICov
Ci0jaWYgVV9TSVpFT0ZfV0NIQVJfVD09MgorI2lmIGRlZmluZWQoVUNIQVJfVFlQRSkKKyAgICB0
eXBlZGVmIFVDSEFSX1RZUEUgVUNoYXI7CisvKiBOb3QgI2VsaWYgVV9IQVZFX0NIQVIxNl9UIC0t
IGJlY2F1c2UgdGhhdCBpcyB0eXBlLWluY29tcGF0aWJsZSB3aXRoIHByZS1DKysxMSBjYWxsZXJz
CisgICAgdHlwZWRlZiBjaGFyMTZfdCBVQ2hhcjsgICovCisjZWxpZiBVX1NJWkVPRl9XQ0hBUl9U
PT0yCiAgICAgdHlwZWRlZiB3Y2hhcl90IFVDaGFyOwotI2VsaWYgVV9HTlVDX1VURjE2X1NUUklO
RwotI2lmIGRlZmluZWQgX0dDQ18KLSAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBjaGFyMTZf
dDsKLSNlbmRpZgotICAgIHR5cGVkZWYgY2hhcjE2X3QgVUNoYXI7CisjZWxpZiBkZWZpbmVkKF9f
Q0hBUjE2X1RZUEVfXykKKyAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBVQ2hhcjsKICNlbHNl
CiAgICAgdHlwZWRlZiB1aW50MTZfdCBVQ2hhcjsKICNlbmRpZgpAQCAtMzM1LDM5ICsyOTcsMjUg
QEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAgKi8KIHR5cGVkZWYgaW50MzJfdCBVQ2hhcjMyOwog
Ci0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qIFVfSU5MSU5FIGFuZCBVX0FMSUdOX0NPREUgICBT
ZXQgZGVmYXVsdCB2YWx1ZXMgaWYgdGhlc2UgYXJlIG5vdCBhbHJlYWR5ICAqLwotLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQuICBEZWZpbml0aW9ucyBub3JtYWxseSBhcmUg
aW4gICAgICAgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0uaCBv
ciB0aGUgY29ycmVzcG9uZGluZyBmaWxlIGZvciAgICAgKi8KLS8qICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGUgT1MgaW4gdXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSovCi0KLSNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQot
CiAvKioKLSAqIFxkZWYgVV9BTElHTl9DT0RFCi0gKiBUaGlzIGlzIHVzZWQgdG8gYWxpZ24gY29k
ZSBmcmFnbWVudHMgdG8gYSBzcGVjaWZpYyBieXRlIGJvdW5kYXJ5LgotICogVGhpcyBpcyB1c2Vm
dWwgZm9yIGdldHRpbmcgY29uc2lzdGVudCBwZXJmb3JtYW5jZSB0ZXN0IHJlc3VsdHMuCi0gKiBA
aW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSMgICBkZWZpbmUgVV9BTElHTl9D
T0RFKG4pCi0jZW5kaWYKLQotI2VuZGlmIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KLQotLyoq
Ci0gKiBcZGVmIFVfSU5MSU5FCi0gKiBUaGlzIGlzIHVzZWQgdG8gcmVxdWVzdCBpbmxpbmluZyBv
ZiBhIGZ1bmN0aW9uLCBvbiBwbGF0Zm9ybXMgYW5kIGxhbmd1YWdlcyB3aGljaCBzdXBwb3J0IGl0
LgorICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElz
IHRoYXQKKyAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4K
KyAqIEl0IGlzIG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEw
ZmZmZi4KKyAqIAorICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4g
YSBuZXcgQVBJCisgKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgorICoKKyAq
IElDVSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Ut
c3BlY2lmaWMgImRvbmUiCisgKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCisgKiBUaG9zZSBtYXkg
bmVlZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KKyAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250
ZW50cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCisgKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFz
TmV4dCgpIG9yIFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgorICoKKyAqIEByZXR1cm4gLTEKKyAq
IEBzZWUgVUNoYXIzMgorICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSAKLSNpZm5kZWYgVV9JTkxJ
TkUKLSMgICBpZmRlZiBYUF9DUExVU1BMVVMKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIGlubGlu
ZQotIyAgIGVsc2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FCi0jICAgZW5kaWYKLSNlbmRpZgor
I2RlZmluZSBVX1NFTlRJTkVMICgtMSkKIAogI2luY2x1ZGUgInVuaWNvZGUvdXJlbmFtZS5oIgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91bmlzdHIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0ci5oCmluZGV4IDI0ZDAzNTFmYjU0NDRjYTc1MTY0
ZWM4NWYzODJhZmUxNGQ4MzY5MTkuLmM2ZThiNDQ2NmFkMTNhMjM5ZTc2Mjc3N2FjZGExY2ZlMzY3
YjI2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0ci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0ci5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEzLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAidW5pY29kZS9zdGRfc3RyaW5nLmgiCiAjaW5jbHVkZSAidW5pY29kZS9zdHJp
bmdwaWVjZS5oIgogI2luY2x1ZGUgInVuaWNvZGUvYnl0ZXN0cmVhbS5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWNhc2VtYXAuaCIKIAogc3RydWN0IFVDb252ZXJ0ZXI7ICAgICAgICAgIC8vIHVuaWNv
ZGUvdWNudi5oCiBjbGFzcyAgU3RyaW5nVGhyZWFkVGVzdDsKQEAgLTUzLDExICs1NCwzMSBAQCBV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdV9zdHJsZW4oY29uc3QgVUNoYXIgKnMpOwogI2Vu
ZGlmCiAKKy8qKgorICogXGRlZiBVX1NUUklOR19DQVNFX01BUFBFUl9ERUZJTkVECisgKiBAaW50
ZXJuYWwKKyAqLworI2lmbmRlZiBVX1NUUklOR19DQVNFX01BUFBFUl9ERUZJTkVECisjZGVmaW5l
IFVfU1RSSU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKworLyoqCisgKiBJbnRlcm5hbCBzdHJpbmcg
Y2FzZSBtYXBwaW5nIGZ1bmN0aW9uIHR5cGUuCisgKiBAaW50ZXJuYWwKKyAqLwordHlwZWRlZiBp
bnQzMl90IFVfQ0FMTENPTlYKK1VTdHJpbmdDYXNlTWFwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20s
CisgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisg
ICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKwogVV9O
QU1FU1BBQ0VfQkVHSU4KIAorY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUv
YnJraXRlci5oCiBjbGFzcyBMb2NhbGU7ICAgICAgICAgICAgICAgLy8gdW5pY29kZS9sb2NpZC5o
CiBjbGFzcyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKLWNsYXNzIEJyZWFrSXRlcmF0b3I7ICAg
ICAgICAvLyB1bmljb2RlL2Jya2l0ZXIuaAorY2xhc3MgVW5pY29kZVN0cmluZ0FwcGVuZGFibGU7
ICAvLyB1bmljb2RlL2FwcGVuZGFibGUuaAogCiAvKiBUaGUgPGlvc3RyZWFtPiBpbmNsdWRlIGhh
cyBiZWVuIG1vdmVkIHRvIHVuaWNvZGUvdXN0cmVhbS5oICovCiAKQEAgLTcxLDcgKzkyLDcgQEAg
Y2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5oCiAgKgogICog
QHN0YWJsZSBJQ1UgMy4yCiAgKi8KLSNkZWZpbmUgVVNfSU5WIFVfTkFNRVNQQUNFX1FVQUxJRklF
UiBVbmljb2RlU3RyaW5nOjprSW52YXJpYW50CisjZGVmaW5lIFVTX0lOViBpY3U6OlVuaWNvZGVT
dHJpbmc6OmtJbnZhcmlhbnQKIAogLyoqCiAgKiBVbmljb2RlIFN0cmluZyBsaXRlcmFscyBpbiBD
KysuCkBAIC05MSwxMyArMTEyLDEzIEBAIGNsYXNzIEJyZWFrSXRlcmF0b3I7ICAgICAgICAvLyB1
bmljb2RlL2Jya2l0ZXIuaAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZiBkZWZpbmVkKFVf
REVDTEFSRV9VVEYxNikKLSMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVf
TkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKVVf
REVDTEFSRV9VVEYxNihjcyksIF9sZW5ndGgpCisjICAgZGVmaW5lIFVOSUNPREVfU1RSSU5HKGNz
LCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVDaGFyICopVV9ERUNM
QVJFX1VURjE2KGNzKSwgX2xlbmd0aCkKICNlbGlmIFVfU0laRU9GX1dDSEFSX1Q9PVVfU0laRU9G
X1VDSEFSICYmIChVX0NIQVJTRVRfRkFNSUxZPT1VX0FTQ0lJX0ZBTUlMWSB8fCAoVV9TSVpFT0Zf
VUNIQVIgPT0gMiAmJiBkZWZpbmVkKFVfV0NIQVJfSVNfVVRGMTYpKSkKLSMgICBkZWZpbmUgVU5J
Q09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3Ry
aW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKUwgIyMgY3MsIF9sZW5ndGgpCisjICAgZGVmaW5lIFVO
SUNPREVfU1RSSU5HKGNzLCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0
IFVDaGFyICopTCAjIyBjcywgX2xlbmd0aCkKICNlbGlmIFVfU0laRU9GX1VDSEFSPT0xICYmIFVf
Q0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0jICAgZGVmaW5lIFVOSUNPREVfU1RSSU5H
KGNzLCBfbGVuZ3RoKSBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyhUUlVFLCAo
Y29uc3QgVUNoYXIgKiljcywgX2xlbmd0aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3Ms
IF9sZW5ndGgpIGljdTo6VW5pY29kZVN0cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKiljcywgX2xl
bmd0aCkKICNlbHNlCi0jICAgZGVmaW5lIFVOSUNPREVfU1RSSU5HKGNzLCBfbGVuZ3RoKSBVX05B
TUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyhjcywgX2xlbmd0aCwgVVNfSU5WKQorIyAg
IGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgaWN1OjpVbmljb2RlU3RyaW5nKGNz
LCBfbGVuZ3RoLCBVU19JTlYpCiAjZW5kaWYKIAogLyoqCkBAIC0xMTYsNiArMTM3LDQzIEBAIGNs
YXNzIEJyZWFrSXRlcmF0b3I7ICAgICAgICAvLyB1bmljb2RlL2Jya2l0ZXIuaAogI2RlZmluZSBV
TklDT0RFX1NUUklOR19TSU1QTEUoY3MpIFVOSUNPREVfU1RSSU5HKGNzLCAtMSkKIAogLyoqCisg
KiBcZGVmIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQKKyAqIFRoaXMgY2FuIGJlIGRlZmluZWQg
dG8gYmUgZW1wdHkgb3IgImV4cGxpY2l0Ii4KKyAqIElmIGV4cGxpY2l0LCB0aGVuIHRoZSBVbmlj
b2RlU3RyaW5nKFVDaGFyKSBhbmQgVW5pY29kZVN0cmluZyhVQ2hhcjMyKQorICogY29uc3RydWN0
b3JzIGFyZSBtYXJrZWQgYXMgZXhwbGljaXQsIHByZXZlbnRpbmcgdGhlaXIgaW5hZHZlcnRlbnQg
dXNlLgorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworI2lmbmRlZiBVTklTVFJfRlJPTV9DSEFSX0VY
UExJQ0lUCisjIGlmIGRlZmluZWQoVV9DT01CSU5FRF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5l
ZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJ
T04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikKKyAgICAvLyBBdXRvLSJleHBsaWNp
dCIgaW4gSUNVIGxpYnJhcnkgY29kZS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fQ0hBUl9FWFBM
SUNJVCBleHBsaWNpdAorIyBlbHNlCisgICAgLy8gRW1wdHkgYnkgZGVmYXVsdCBmb3Igc291cmNl
IGNvZGUgY29tcGF0aWJpbGl0eS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJ
VAorIyBlbmRpZgorI2VuZGlmCisKKy8qKgorICogXGRlZiBVTklTVFJfRlJPTV9TVFJJTkdfRVhQ
TElDSVQKKyAqIFRoaXMgY2FuIGJlIGRlZmluZWQgdG8gYmUgZW1wdHkgb3IgImV4cGxpY2l0Ii4K
KyAqIElmIGV4cGxpY2l0LCB0aGVuIHRoZSBVbmljb2RlU3RyaW5nKGNvbnN0IGNoYXIgKikgYW5k
IFVuaWNvZGVTdHJpbmcoY29uc3QgVUNoYXIgKikKKyAqIGNvbnN0cnVjdG9ycyBhcmUgbWFya2Vk
IGFzIGV4cGxpY2l0LCBwcmV2ZW50aW5nIHRoZWlyIGluYWR2ZXJ0ZW50IHVzZS4KKyAqCisgKiBJ
biBwYXJ0aWN1bGFyLCB0aGlzIGhlbHBzIHByZXZlbnQgYWNjaWRlbnRhbGx5IGRlcGVuZGluZyBv
biBJQ1UgY29udmVyc2lvbiBjb2RlCisgKiBieSBwYXNzaW5nIGEgc3RyaW5nIGxpdGVyYWwgaW50
byBhbiBBUEkgd2l0aCBhIGNvbnN0IFVuaWNvZGVTdHJpbmcgJiBwYXJhbWV0ZXIuCisgKiBAc3Rh
YmxlIElDVSA0OQorICovCisjaWZuZGVmIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVAorIyBp
ZiBkZWZpbmVkKFVfQ09NQklORURfSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9DT01NT05f
SU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZp
bmVkKFVfSU9fSU1QTEVNRU5UQVRJT04pCisgICAgLy8gQXV0by0iZXhwbGljaXQiIGluIElDVSBs
aWJyYXJ5IGNvZGUuCisjICAgZGVmaW5lIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVCBleHBs
aWNpdAorIyBlbHNlCisgICAgLy8gRW1wdHkgYnkgZGVmYXVsdCBmb3Igc291cmNlIGNvZGUgY29t
cGF0aWJpbGl0eS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUCisjIGVu
ZGlmCisjZW5kaWYKKworLyoqCiAgKiBVbmljb2RlU3RyaW5nIGlzIGEgc3RyaW5nIGNsYXNzIHRo
YXQgc3RvcmVzIFVuaWNvZGUgY2hhcmFjdGVycyBkaXJlY3RseSBhbmQgcHJvdmlkZXMKICAqIHNp
bWlsYXIgZnVuY3Rpb25hbGl0eSBhcyB0aGUgSmF2YSBTdHJpbmcgYW5kIFN0cmluZ0J1ZmZlciBj
bGFzc2VzLgogICogSXQgaXMgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYWJzdHJh
Y3QgY2xhc3MgUmVwbGFjZWFibGUgKGZvciB0cmFuc2xpdGVyYXRpb24pLgpAQCAtMjgwLDcgKzMz
OCw4IEBAIHB1YmxpYzoKICAgLyoqCiAgICAqIENvbXBhcmUgdGhlIGNoYXJhY3RlcnMgYml0d2lz
ZSBpbiB0aGUgcmFuZ2UKICAgICogWzxUVD5zdGFydDwvVFQ+LCA8VFQ+c3RhcnQgKyBsZW5ndGg8
L1RUPikgd2l0aCB0aGUgY2hhcmFjdGVycwotICAgKiBpbiA8VFQ+dGV4dDwvVFQ+CisgICAqIGlu
IHRoZSA8Yj5lbnRpcmUgc3RyaW5nPC9iPiA8VFQ+dGV4dDwvVFQ+LgorICAgKiAoVGhlIHBhcmFt
ZXRlcnMgInN0YXJ0IiBhbmQgImxlbmd0aCIgYXJlIG5vdCBhcHBsaWVkIHRvIHRoZSBvdGhlciB0
ZXh0ICJ0ZXh0Ii4pCiAgICAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSBj
b21wYXJlIG9wZXJhdGlvbiBiZWdpbnMKICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbnVtYmVyIG9m
IGNoYXJhY3RlcnMgb2YgdGV4dCB0byBjb21wYXJlLgogICAgKiBAcGFyYW0gdGV4dCB0aGUgb3Ro
ZXIgdGV4dCB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoaXMgc3RyaW5nLgpAQCAtMTI0Miw3ICsx
MzAxLDcgQEAgcHVibGljOgogICAgKiAgICAgICAgIG9yIDB4ZmZmZiBpZiB0aGUgb2Zmc2V0IGlz
IG5vdCB2YWxpZCBmb3IgdGhpcyBzdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwot
ICBpbmxpbmUgVUNoYXIzMiBjaGFyMzJBdChpbnQzMl90IG9mZnNldCkgY29uc3Q7CisgIFVDaGFy
MzIgY2hhcjMyQXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OwogCiAgIC8qKgogICAgKiBBZGp1c3Qg
YSByYW5kb20tYWNjZXNzIG9mZnNldCBzbyB0aGF0CkBAIC0xMjU5LDcgKzEzMTgsNyBAQCBwdWJs
aWM6CiAgICAqIEBzZWUgVTE2X1NFVF9DUF9TVEFSVAogICAgKiBAc3RhYmxlIElDVSAyLjAKICAg
ICovCi0gIGlubGluZSBpbnQzMl90IGdldENoYXIzMlN0YXJ0KGludDMyX3Qgb2Zmc2V0KSBjb25z
dDsKKyAgaW50MzJfdCBnZXRDaGFyMzJTdGFydChpbnQzMl90IG9mZnNldCkgY29uc3Q7CiAKICAg
LyoqCiAgICAqIEFkanVzdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zmc2V0IHNvIHRoYXQKQEAgLTEyNzcs
NyArMTMzNiw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBVMTZfU0VUX0NQX0xJTUlUCiAgICAqIEBz
dGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIGludDMyX3QgZ2V0Q2hhcjMyTGltaXQoaW50
MzJfdCBvZmZzZXQpIGNvbnN0OworICBpbnQzMl90IGdldENoYXIzMkxpbWl0KGludDMyX3Qgb2Zm
c2V0KSBjb25zdDsKIAogICAvKioKICAgICogTW92ZSB0aGUgY29kZSB1bml0IGluZGV4IGFsb25n
IHRoZSBzdHJpbmcgYnkgZGVsdGEgY29kZSBwb2ludHMuCkBAIC0xNzM1LDcgKzE3OTQsNyBAQCBw
dWJsaWM6CiAgICAqIEZvciBhIGJvZ3VzIHN0cmluZywgZ2V0QnVmZmVyKCkgYW5kIGdldFRlcm1p
bmF0ZWRCdWZmZXIoKSByZXR1cm4gTlVMTCwgYW5kCiAgICAqIGxlbmd0aCgpIHJldHVybnMgMC4K
ICAgICoKLSAgICogQHJldHVybiBUUlVFIGlmIHRoZSBzdHJpbmcgaXMgdmFsaWQsIEZBTFNFIG90
aGVyd2lzZQorICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBpcyBib2d1cy9pbnZhbGlk
LCBGQUxTRSBvdGhlcndpc2UKICAgICogQHNlZSBzZXRUb0JvZ3VzKCkKICAgICogQHN0YWJsZSBJ
Q1UgMi4wCiAgICAqLwpAQCAtMTc2MiwxNiArMTgyMSwxOCBAQCBwdWJsaWM6CiAgICAqIFJlcGxh
Y2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBVbmljb2RlU3RyaW5nCiAgICAqIHdpdGggdGhlIGNo
YXJhY3RlcnMgZnJvbSA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KICAgICoKLSAgICogVGhpcyBmdW5j
dGlvbiB3b3JrcyB0aGUgc2FtZSBmb3IgYWxsIHN0cmluZ3MgZXhjZXB0IGZvciBvbmVzIHRoYXQK
LSAgICogYXJlIHJlYWRvbmx5IGFsaWFzZXMuCisgICAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhl
IHNhbWUgYXMgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IKKyAgICogZm9yIGFsbCBzdHJpbmdzIGV4
Y2VwdCBmb3Igb25lcyB0aGF0IGFyZSByZWFkb25seSBhbGlhc2VzLgorICAgKgogICAgKiBTdGFy
dGluZyB3aXRoIElDVSAyLjQsIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGFuZCB0aGUgY29weSBj
b25zdHJ1Y3RvcgogICAgKiBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgYW5kIGNvcHkgdGhlIGJ1ZmZl
ciBjb250ZW50cyBldmVuIGZvciByZWFkb25seSBhbGlhc2VzLgogICAgKiBUaGlzIGZ1bmN0aW9u
IGltcGxlbWVudHMgdGhlIG9sZCwgbW9yZSBlZmZpY2llbnQgYnV0IGxlc3Mgc2FmZSBiZWhhdmlv
cgogICAgKiBvZiBtYWtpbmcgdGhpcyBzdHJpbmcgYWxzbyBhIHJlYWRvbmx5IGFsaWFzIHRvIHRo
ZSBzYW1lIGJ1ZmZlci4KKyAgICoKICAgICogVGhlIGZhc3RDb3B5RnJvbSBmdW5jdGlvbiBtdXN0
IGJlIHVzZWQgb25seSBpZiBpdCBpcyBrbm93biB0aGF0IHRoZSBsaWZldGltZSBvZgotICAgKiB0
aGlzIFVuaWNvZGVTdHJpbmcgaXMgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgbGlmZXRpbWUgb2Yg
dGhlIGFsaWFzZWQgYnVmZmVyCisgICAqIHRoaXMgVW5pY29kZVN0cmluZyBkb2VzIG5vdCBleGNl
ZWQgdGhlIGxpZmV0aW1lIG9mIHRoZSBhbGlhc2VkIGJ1ZmZlcgogICAgKiBpbmNsdWRpbmcgaXRz
IGNvbnRlbnRzLCBmb3IgZXhhbXBsZSBmb3Igc3RyaW5ncyBmcm9tIHJlc291cmNlIGJ1bmRsZXMK
LSAgICogb3IgYWxpYXNlcyB0byBzdHJpbmcgY29udGVudHMuCisgICAqIG9yIGFsaWFzZXMgdG8g
c3RyaW5nIGNvbnN0YW50cy4KICAgICoKICAgICogQHBhcmFtIHNyYyBUaGUgdGV4dCBjb250YWlu
aW5nIHRoZSBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UuCiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2Ug
dG8gdGhpcwpAQCAtMTg3Nyw3ICsxOTM4LDEwIEBAIHB1YmxpYzoKICAgICogV2hlbiB0aGUgc3Ry
aW5nIGlzIG1vZGlmaWVkLCB0aGVuIHRoZSBidWZmZXIgaXMgZmlyc3QgY29waWVkIGludG8KICAg
ICogbmV3bHkgYWxsb2NhdGVkIG1lbW9yeS4KICAgICogVGhlIGFsaWFzZWQgYnVmZmVyIGlzIG5l
dmVyIG1vZGlmaWVkLgotICAgKiBJbiBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIgVW5pY29kZVN0
cmluZywgdGhlIHRleHQgd2lsbCBiZSBhbGlhc2VkIGFnYWluLAorICAgKgorICAgKiBJbiBhbiBh
c3NpZ25tZW50IHRvIGFub3RoZXIgVW5pY29kZVN0cmluZywgd2hlbiB1c2luZyB0aGUgY29weSBj
b25zdHJ1Y3RvcgorICAgKiBvciB0aGUgYXNzaWdubWVudCBvcGVyYXRvciwgdGhlIHRleHQgd2ls
bCBiZSBjb3BpZWQuCisgICAqIFdoZW4gdXNpbmcgZmFzdENvcHlGcm9tKCksIHRoZSB0ZXh0IHdp
bGwgYmUgYWxpYXNlZCBhZ2FpbiwKICAgICogc28gdGhhdCBib3RoIHN0cmluZ3MgdGhlbiBhbGlh
cyB0aGUgc2FtZSByZWFkb25seS10ZXh0LgogICAgKgogICAgKiBAcGFyYW0gaXNUZXJtaW5hdGVk
IHNwZWNpZmllcyBpZiA8Y29kZT50ZXh0PC9jb2RlPiBpcyA8Y29kZT5OVUw8L2NvZGU+LXRlcm1p
bmF0ZWQuCkBAIC0xOTkxLDggKzIwNTUsNyBAQCBwdWJsaWM6CiAKICAgLyoqCiAgICAqIEFwcGVu
ZCBvcGVyYXRvci4gQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9UVD4gdG8g
dGhlCi0gICAqIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGF0IG9mZnNldCA8VFQ+c3RhcnQ8L1RUPi4g
PFRUPnNyY1RleHQ8L1RUPiBpcwotICAgKiBub3QgbW9kaWZpZWQuCisgICAqIFVuaWNvZGVTdHJp
bmcgb2JqZWN0LiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5vdCBtb2RpZmllZC4KICAgICogQHBhcmFt
IHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCiAgICAqIEByZXR1cm4g
YSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxlIElDVSAyLjAKQEAgLTIwMTgsOCArMjA4
MSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGludDMyX3Qgc3JjTGVuZ3RoKTsKIAogICAvKioK
LSAgICogQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9UVD4gdG8gdGhlIFVu
aWNvZGVTdHJpbmcgb2JqZWN0IGF0Ci0gICAqIG9mZnNldCA8VFQ+c3RhcnQ8L1RUPi4gPFRUPnNy
Y1RleHQ8L1RUPiBpcyBub3QgbW9kaWZpZWQuCisgICAqIEFwcGVuZCB0aGUgY2hhcmFjdGVycyBp
biA8VFQ+c3JjVGV4dDwvVFQ+IHRvIHRoZSBVbmljb2RlU3RyaW5nIG9iamVjdC4KKyAgICogPFRU
PnNyY1RleHQ8L1RUPiBpcyBub3QgbW9kaWZpZWQuCiAgICAqIEBwYXJhbSBzcmNUZXh0IHRoZSBz
b3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycwogICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRv
IHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCkBAIC0yMDM1LDcgKzIwOTgsNyBAQCBwdWJsaWM6
CiAgICAqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPFRUPnNyY0NoYXJzPC9UVD4g
d2hlcmUgbmV3IGNoYXJhY3RlcnMKICAgICogd2lsbCBiZSBvYnRhaW5lZAogICAgKiBAcGFyYW0g
c3JjTGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiA8VFQ+c3JjQ2hhcnM8L1RUPiBp
bgotICAgKiB0aGUgYXBwZW5kIHN0cmluZworICAgKiAgICAgICAgICAgICAgICAgIHRoZSBhcHBl
bmQgc3RyaW5nOyBjYW4gYmUgLTEgaWYgPFRUPnNyY0NoYXJzPC9UVD4gaXMgTlVMLXRlcm1pbmF0
ZWQKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCiAgICAqIEBzdGFibGUgSUNVIDIu
MAogICAgKi8KQEAgLTIwNDcsNyArMjExMCw4IEBAIHB1YmxpYzoKICAgICogQXBwZW5kIHRoZSBj
aGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+IHRvIHRoZSBVbmljb2RlU3RyaW5nIG9iamVj
dAogICAgKiBhdCBvZmZzZXQgPFRUPnN0YXJ0PC9UVD4uIDxUVD5zcmNDaGFyczwvVFQ+IGlzIG5v
dCBtb2RpZmllZC4KICAgICogQHBhcmFtIHNyY0NoYXJzIHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcg
Y2hhcmFjdGVycwotICAgKiBAcGFyYW0gc3JjTGVuZ3RoIHRoZSBudW1iZXIgb2YgVW5pY29kZSBj
aGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+CisgICAqIEBwYXJhbSBzcmNMZW5ndGggdGhl
IG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gPFRUPnNyY0NoYXJzPC9UVD47CisgICAq
ICAgICAgICAgICAgICAgICAgY2FuIGJlIC0xIGlmIDxUVD5zcmNDaGFyczwvVFQ+IGlzIE5VTC10
ZXJtaW5hdGVkCiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxl
IElDVSAyLjAKICAgICovCkBAIC0yMDY4LDcgKzIxMzIsNyBAQCBwdWJsaWM6CiAgICAqIEByZXR1
cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIGlu
bGluZSBVbmljb2RlU3RyaW5nJiBhcHBlbmQoVUNoYXIzMiBzcmNDaGFyKTsKKyAgVW5pY29kZVN0
cmluZyYgYXBwZW5kKFVDaGFyMzIgc3JjQ2hhcik7CiAKIAogICAvKiBJbnNlcnQgb3BlcmF0aW9u
cyAqLwpAQCAtMjI2Myw5ICsyMzI3LDcgQEAgcHVibGljOgogICAgKiBAcmV0dXJuIGEgcmVmZXJl
bmNlIHRvIHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwotICBpbmxpbmUgVW5pY29k
ZVN0cmluZyYgcmVwbGFjZShpbnQzMl90IHN0YXJ0LAotICAgICAgICAgICAgIGludDMyX3QgbGVu
Z3RoLAotICAgICAgICAgICAgIFVDaGFyMzIgc3JjQ2hhcik7CisgIFVuaWNvZGVTdHJpbmcmIHJl
cGxhY2UoaW50MzJfdCBzdGFydCwgaW50MzJfdCBsZW5ndGgsIFVDaGFyMzIgc3JjQ2hhcik7CiAK
ICAgLyoqCiAgICAqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8VFQ+c3Rh
cnQ8L1RUPiwgPFRUPmxpbWl0PC9UVD4pCkBAIC0yNjMxLDEwICsyNjkzLDEyIEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgIC8qKgotICAgKiBDYXNlLWZvbGQgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBz
dHJpbmcuCisgICAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJpbmcuCisg
ICAqCiAgICAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250
ZXh0LXNlbnNpdGl2ZSwKICAgICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhlciB0
byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCi0gICAqIGFuZCBkb3Rs
ZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ0knIGluIENhc2VGb2xkaW5nLnR4dC4KKyAgICog
YW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0
LgorICAgKgogICAgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRo
ZSBvcmlnaW5hbC4KICAgICoKICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIFVfRk9MRF9DQVNF
X0RFRkFVTFQgb3IgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKQEAgLTI3NzksNyArMjg0
Myw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBnZXRCdWZmZXIoKQogICAgKiBAc3RhYmxlIElDVSAy
LjIKICAgICovCi0gIGlubGluZSBjb25zdCBVQ2hhciAqZ2V0VGVybWluYXRlZEJ1ZmZlcigpOwor
ICBjb25zdCBVQ2hhciAqZ2V0VGVybWluYXRlZEJ1ZmZlcigpOwogCiAgIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAvLyBDb25zdHJ1Y3RvcnMKQEAgLTI3ODgs
NyArMjg1Miw3IEBAIHB1YmxpYzoKICAgLyoqIENvbnN0cnVjdCBhbiBlbXB0eSBVbmljb2RlU3Ry
aW5nLgogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmcoKTsKKyAg
aW5saW5lIFVuaWNvZGVTdHJpbmcoKTsKIAogICAvKioKICAgICogQ29uc3RydWN0IGEgVW5pY29k
ZVN0cmluZyB3aXRoIGNhcGFjaXR5IHRvIGhvbGQgPFRUPmNhcGFjaXR5PC9UVD4gVUNoYXJzCkBA
IC0yODA1LDI1ICsyODY5LDM3IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogU2luZ2xlIFVDaGFy
IChjb2RlIHVuaXQpIGNvbnN0cnVjdG9yLgorICAgKgorICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0
byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAgKiA8Y29kZT4tRFVOSVNU
Ul9GUk9NX0NIQVJfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxl
ciBjb21tYW5kIGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNoIHRoZSBjaGFyYWN0ZXIg
dG8gcGxhY2UgaW4gdGhlIFVuaWNvZGVTdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAq
LwotICBVbmljb2RlU3RyaW5nKFVDaGFyIGNoKTsKKyAgVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJ
VCBVbmljb2RlU3RyaW5nKFVDaGFyIGNoKTsKIAogICAvKioKICAgICogU2luZ2xlIFVDaGFyMzIg
KGNvZGUgcG9pbnQpIGNvbnN0cnVjdG9yLgorICAgKgorICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0
byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAgKiA8Y29kZT4tRFVOSVNU
Ul9GUk9NX0NIQVJfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxl
ciBjb21tYW5kIGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNoIHRoZSBjaGFyYWN0ZXIg
dG8gcGxhY2UgaW4gdGhlIFVuaWNvZGVTdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAq
LwotICBVbmljb2RlU3RyaW5nKFVDaGFyMzIgY2gpOworICBVTklTVFJfRlJPTV9DSEFSX0VYUExJ
Q0lUIFVuaWNvZGVTdHJpbmcoVUNoYXIzMiBjaCk7CiAKICAgLyoqCiAgICAqIFVDaGFyKiBjb25z
dHJ1Y3Rvci4KKyAgICoKKyAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gbWFyayB0aGlzIGNvbnN0
cnVjdG9yICJleHBsaWNpdCIgYnkKKyAgICogPGNvZGU+LURVTklTVFJfRlJPTV9TVFJJTkdfRVhQ
TElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxlciBjb21tYW5kIGxpbmUg
b3Igc2ltaWxhci4KICAgICogQHBhcmFtIHRleHQgVGhlIGNoYXJhY3RlcnMgdG8gcGxhY2UgaW4g
dGhlIFVuaWNvZGVTdHJpbmcuICA8VFQ+dGV4dDwvVFQ+CiAgICAqIG11c3QgYmUgTlVMTCAoVSsw
MDAwKSB0ZXJtaW5hdGVkLgogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVT
dHJpbmcoY29uc3QgVUNoYXIgKnRleHQpOworICBVTklTVFJfRlJPTV9TVFJJTkdfRVhQTElDSVQg
VW5pY29kZVN0cmluZyhjb25zdCBVQ2hhciAqdGV4dCk7CiAKICAgLyoqCiAgICAqIFVDaGFyKiBj
b25zdHJ1Y3Rvci4KQEAgLTI4NDMsNyArMjkxOSwxMCBAQCBwdWJsaWM6CiAgICAqIFdoZW4gdGhl
IHN0cmluZyBpcyBtb2RpZmllZCwgdGhlbiB0aGUgYnVmZmVyIGlzIGZpcnN0IGNvcGllZCBpbnRv
CiAgICAqIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuCiAgICAqIFRoZSBhbGlhc2VkIGJ1ZmZlciBp
cyBuZXZlciBtb2RpZmllZC4KLSAgICogSW4gYW4gYXNzaWdubWVudCB0byBhbm90aGVyIFVuaWNv
ZGVTdHJpbmcsIHRoZSB0ZXh0IHdpbGwgYmUgYWxpYXNlZCBhZ2FpbiwKKyAgICoKKyAgICogSW4g
YW4gYXNzaWdubWVudCB0byBhbm90aGVyIFVuaWNvZGVTdHJpbmcsIHdoZW4gdXNpbmcgdGhlIGNv
cHkgY29uc3RydWN0b3IKKyAgICogb3IgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IsIHRoZSB0ZXh0
IHdpbGwgYmUgY29waWVkLgorICAgKiBXaGVuIHVzaW5nIGZhc3RDb3B5RnJvbSgpLCB0aGUgdGV4
dCB3aWxsIGJlIGFsaWFzZWQgYWdhaW4sCiAgICAqIHNvIHRoYXQgYm90aCBzdHJpbmdzIHRoZW4g
YWxpYXMgdGhlIHNhbWUgcmVhZG9ubHktdGV4dC4KICAgICoKICAgICogQHBhcmFtIGlzVGVybWlu
YXRlZCBzcGVjaWZpZXMgaWYgPGNvZGU+dGV4dDwvY29kZT4gaXMgPGNvZGU+TlVMPC9jb2RlPi10
ZXJtaW5hdGVkLgpAQCAtMjg4MiwxNCArMjk2MSwyOSBAQCBwdWJsaWM6CiAKICAgLyoqCiAgICAq
IGNoYXIqIGNvbnN0cnVjdG9yLgorICAgKiBVc2VzIHRoZSBkZWZhdWx0IGNvbnZlcnRlciAoYW5k
IHRodXMgZGVwZW5kcyBvbiB0aGUgSUNVIGNvbnZlcnNpb24gY29kZSkKKyAgICogdW5sZXNzIFVf
Q0hBUlNFVF9JU19VVEY4IGlzIHNldCB0byAxLgorICAgKgorICAgKiBGb3IgQVNDSUkgKHJlYWxs
eSAiaW52YXJpYW50IGNoYXJhY3RlciIpIHN0cmluZ3MgaXQgaXMgbW9yZSBlZmZpY2llbnQgdG8g
dXNlCisgICAqIHRoZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgVVNfSU5WIChmb3IgaXRzIGVu
dW0gRUludmFyaWFudCkuCisgICAqIEZvciBBU0NJSSAoaW52YXJpYW50LWNoYXJhY3Rlcikgc3Ry
aW5nIGxpdGVyYWxzLCBzZWUgVU5JQ09ERV9TVFJJTkcgYW5kCisgICAqIFVOSUNPREVfU1RSSU5H
X1NJTVBMRS4KKyAgICoKKyAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gbWFyayB0aGlzIGNvbnN0
cnVjdG9yICJleHBsaWNpdCIgYnkKKyAgICogPGNvZGU+LURVTklTVFJfRlJPTV9TVFJJTkdfRVhQ
TElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxlciBjb21tYW5kIGxpbmUg
b3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNvZGVwYWdlRGF0YSBhbiBhcnJheSBvZiBieXRlcywg
bnVsbC10ZXJtaW5hdGVkLAogICAgKiAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBwbGF0Zm9y
bSdzIGRlZmF1bHQgY29kZXBhZ2UuCiAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKiBAc2VlIFVO
SUNPREVfU1RSSU5HCisgICAqIEBzZWUgVU5JQ09ERV9TVFJJTkdfU0lNUExFCiAgICAqLwotICBV
bmljb2RlU3RyaW5nKGNvbnN0IGNoYXIgKmNvZGVwYWdlRGF0YSk7CisgIFVOSVNUUl9GUk9NX1NU
UklOR19FWFBMSUNJVCBVbmljb2RlU3RyaW5nKGNvbnN0IGNoYXIgKmNvZGVwYWdlRGF0YSk7CiAK
ICAgLyoqCiAgICAqIGNoYXIqIGNvbnN0cnVjdG9yLgorICAgKiBVc2VzIHRoZSBkZWZhdWx0IGNv
bnZlcnRlciAoYW5kIHRodXMgZGVwZW5kcyBvbiB0aGUgSUNVIGNvbnZlcnNpb24gY29kZSkKKyAg
ICogdW5sZXNzIFVfQ0hBUlNFVF9JU19VVEY4IGlzIHNldCB0byAxLgogICAgKiBAcGFyYW0gY29k
ZXBhZ2VEYXRhIGFuIGFycmF5IG9mIGJ5dGVzIGluIHRoZSBwbGF0Zm9ybSdzIGRlZmF1bHQgY29k
ZXBhZ2UuCiAgICAqIEBwYXJhbSBkYXRhTGVuZ3RoIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gPFRU
PmNvZGVwYWdlRGF0YTwvVFQ+LgogICAgKiBAc3RhYmxlIElDVSAyLjAKQEAgLTMxMTEsNyArMzIw
NSw3IEBAIHB1YmxpYzoKICAgICogY2hhcmFjdGVyLiAgU2VlIHVuZXNjYXBlKCkgZm9yIGEgbGlz
dGluZyBvZiB0aGUgcmVjb2duaXplZCBlc2NhcGUKICAgICogc2VxdWVuY2VzLiAgVGhlIGNoYXJh
Y3RlciBhdCBvZmZzZXQtMSBpcyBhc3N1bWVkICh3aXRob3V0CiAgICAqIGNoZWNraW5nKSB0byBi
ZSBhIGJhY2tzbGFzaC4gIElmIHRoZSBlc2NhcGUgc2VxdWVuY2UgaXMKLSAgICogaWxsLWZvcm1l
ZCwgb3IgdGhlIG9mZnNldCBpcyBvdXQgb2YgcmFuZ2UsIChVQ2hhcjMyKTB4RkZGRkZGRkYgaXMK
KyAgICogaWxsLWZvcm1lZCwgb3IgdGhlIG9mZnNldCBpcyBvdXQgb2YgcmFuZ2UsIFVfU0VOVElO
RUw9LTEgaXMKICAgICogcmV0dXJuZWQuCiAgICAqCiAgICAqIEBwYXJhbSBvZmZzZXQgYW4gaW5w
dXQgb3V0cHV0IHBhcmFtZXRlci4gIE9uIGlucHV0LCBpdCBpcyB0aGUKQEAgLTMxMTksNyArMzIx
Myw3IEBAIHB1YmxpYzoKICAgICogYWZ0ZXIgdGhlIGluaXRpYWwgYmFja3NsYXNoLiAgT24gb3V0
cHV0LCBpdCBpcyBhZHZhbmNlZCBhZnRlciB0aGUKICAgICogbGFzdCBjaGFyYWN0ZXIgcGFyc2Vk
LiAgT24gZXJyb3IsIGl0IGlzIG5vdCBhZHZhbmNlZCBhdCBhbGwuCiAgICAqIEByZXR1cm4gdGhl
IGNoYXJhY3RlciByZXByZXNlbnRlZCBieSB0aGUgZXNjYXBlIHNlcXVlbmNlIGF0Ci0gICAqIG9m
ZnNldCwgb3IgKFVDaGFyMzIpMHhGRkZGRkZGRiBvbiBlcnJvci4KKyAgICogb2Zmc2V0LCBvciBV
X1NFTlRJTkVMPS0xIG9uIGVycm9yLgogICAgKiBAc2VlIFVuaWNvZGVTdHJpbmcjdW5lc2NhcGUo
KQogICAgKiBAc2VlIHVfdW5lc2NhcGUoKQogICAgKiBAc2VlIHVfdW5lc2NhcGVBdCgpCkBAIC0z
MTc4LDYgKzMyNzIsMTEgQEAgcHJpdmF0ZToKICAgdG9VVEY4KGludDMyX3Qgc3RhcnQsIGludDMy
X3QgbGVuLAogICAgICAgICAgY2hhciAqdGFyZ2V0LCBpbnQzMl90IGNhcGFjaXR5KSBjb25zdDsK
IAorICAvKioKKyAgICogSW50ZXJuYWwgc3RyaW5nIGNvbnRlbnRzIGNvbXBhcmlzb24sIGNhbGxl
ZCBieSBvcGVyYXRvcj09LgorICAgKiBSZXF1aXJlczogdGhpcyAmIHRleHQgbm90IGJvZ3VzIGFu
ZCBoYXZlIHNhbWUgbGVuZ3Rocy4KKyAgICovCisgIFVCb29sIGRvRXF1YWxzKGNvbnN0IFVuaWNv
ZGVTdHJpbmcgJnRleHQsIGludDMyX3QgbGVuKSBjb25zdDsKIAogICBpbmxpbmUgaW50OF90CiAg
IGRvQ29tcGFyZShpbnQzMl90IHN0YXJ0LApAQCAtMzM1NCwxMiArMzQ1MywxMyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKipwQnVmZmVyVG9EZWxldGUg
PSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIGZvcmNlQ2xvbmUgPSBGQUxT
RSk7CiAKLSAgLy8gY29tbW9uIGZ1bmN0aW9uIGZvciBjYXNlIG1hcHBpbmdzCisgIC8qKgorICAg
KiBDb21tb24gZnVuY3Rpb24gZm9yIFVuaWNvZGVTdHJpbmcgY2FzZSBtYXBwaW5ncy4KKyAgICog
VGhlIHN0cmluZ0Nhc2VNYXBwZXIgaGFzIHRoZSBzYW1lIHR5cGUgVVN0cmluZ0Nhc2VNYXBwZXIK
KyAgICogYXMgaW4gdXN0cl9pbXAuaCBmb3IgdXN0cmNhc2VfbWFwKCkuCisgICAqLwogICBVbmlj
b2RlU3RyaW5nICYKLSAgY2FzZU1hcChCcmVha0l0ZXJhdG9yICp0aXRsZUl0ZXIsCi0gICAgICAg
ICAgY29uc3QgY2hhciAqbG9jYWxlLAotICAgICAgICAgIHVpbnQzMl90IG9wdGlvbnMsCi0gICAg
ICAgICAgaW50MzJfdCB0b1doaWNoQ2FzZSk7CisgIGNhc2VNYXAoY29uc3QgVUNhc2VNYXAgKmNz
bSwgVVN0cmluZ0Nhc2VNYXBwZXIgKnN0cmluZ0Nhc2VNYXBwZXIpOwogCiAgIC8vIHJlZiBjb3Vu
dGluZwogICB2b2lkIGFkZFJlZih2b2lkKTsKQEAgLTMzNjgsMTAgKzM0NjgsOSBAQCBwcml2YXRl
OgogCiAgIC8vIGNvbnN0YW50cwogICBlbnVtIHsKLSAgICAvLyBTZXQgdGhlIHN0YWNrIGJ1ZmZl
ciBzaXplIHNvIHRoYXQgc2l6ZW9mKFVuaWNvZGVTdHJpbmcpIGlzIGEgbXVsdGlwbGUgb2Ygc2l6
ZW9mKHBvaW50ZXIpOgotICAgIC8vIDMyLWJpdCBwb2ludGVyczogNCsxKzErMTMqMiA9IDMyIGJ5
dGVzCi0gICAgLy8gNjQtYml0IHBvaW50ZXJzOiA4KzErMSsxNSoyID0gNDAgYnl0ZXMKLSAgICBV
U19TVEFDS0JVRl9TSVpFPSBzaXplb2Yodm9pZCAqKT09NCA/IDEzIDogMTUsIC8vIFNpemUgb2Yg
c3RhY2sgYnVmZmVyIGZvciBzbWFsbCBzdHJpbmdzCisgICAgLy8gU2V0IHRoZSBzdGFjayBidWZm
ZXIgc2l6ZSBzbyB0aGF0IHNpemVvZihVbmljb2RlU3RyaW5nKSBpcywKKyAgICAvLyBuYXR1cmFs
bHkgKHdpdGhvdXQgcGFkZGluZyksIGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKHBvaW50ZXIpLgorICAg
IFVTX1NUQUNLQlVGX1NJWkU9IHNpemVvZih2b2lkICopPT00ID8gMTMgOiAxNSwgLy8gU2l6ZSBv
ZiBzdGFjayBidWZmZXIgZm9yIHNob3J0IHN0cmluZ3MKICAgICBrSW52YWxpZFVDaGFyPTB4ZmZm
ZiwgLy8gaW52YWxpZCBVQ2hhciBpbmRleAogICAgIGtHcm93U2l6ZT0xMjgsIC8vIGdyb3cgc2l6
ZSBmb3IgdGhpcyBidWZmZXIKICAgICBrSW52YWxpZEhhc2hDb2RlPTAsIC8vIGludmFsaWQgaGFz
aCBjb2RlCkBAIC0zMzc5LDcgKzM0NzgsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gYml0IGZsYWcg
dmFsdWVzIGZvciBmRmxhZ3MKICAgICBrSXNCb2d1cz0xLCAgICAgICAgIC8vIHRoaXMgc3RyaW5n
IGlzIGJvZ3VzLCBpLmUuLCBub3QgdmFsaWQgb3IgTlVMTAotICAgIGtVc2luZ1N0YWNrQnVmZmVy
PTIsLy8gZkFycmF5PT1mU3RhY2tCdWZmZXIKKyAgICBrVXNpbmdTdGFja0J1ZmZlcj0yLC8vIHVz
aW5nIGZVbmlvbi5mU3RhY2tCdWZmZXIgaW5zdGVhZCBvZiBmVW5pb24uZkZpZWxkcwogICAgIGtS
ZWZDb3VudGVkPTQsICAgICAgLy8gdGhlcmUgaXMgYSByZWZDb3VudCBmaWVsZCBiZWZvcmUgdGhl
IGNoYXJhY3RlcnMgaW4gZkFycmF5CiAgICAga0J1ZmZlcklzUmVhZG9ubHk9OCwvLyBkbyBub3Qg
d3JpdGUgdG8gdGhpcyBidWZmZXIKICAgICBrT3BlbkdldEJ1ZmZlcj0xNiwgIC8vIGdldEJ1ZmZl
cihtaW5DYXBhY2l0eSkgd2FzIGNhbGxlZCAoaXMgIm9wZW4iKSwKQEAgLTMzOTMsNiArMzQ5Miw3
IEBAIHByaXZhdGU6CiAgIH07CiAKICAgZnJpZW5kIGNsYXNzIFN0cmluZ1RocmVhZFRlc3Q7Cisg
IGZyaWVuZCBjbGFzcyBVbmljb2RlU3RyaW5nQXBwZW5kYWJsZTsKIAogICB1bmlvbiBTdGFja0J1
ZmZlck9yRmllbGRzOyAgICAgICAgLy8gZm9yd2FyZCBkZWNsYXJhdGlvbiBuZWNlc3NhcnkgYmVm
b3JlIGZyaWVuZCBkZWNsYXJhdGlvbgogICBmcmllbmQgdW5pb24gU3RhY2tCdWZmZXJPckZpZWxk
czsgLy8gbWFrZSBVU19TVEFDS0JVRl9TSVpFIHZpc2libGUgaW5zaWRlIGZVbmlvbgpAQCAtMzQw
MywyNSArMzUwMyw0OCBAQCBwcml2YXRlOgogICAgKiBOb3RlIHRoYXQgVW5pY29kZVN0cmluZyBo
YXMgdmlydHVhbCBmdW5jdGlvbnMsCiAgICAqIHRoZXJlZm9yZSB0aGVyZSBpcyBhbiBpbXBsaWNp
dCB2dGFibGUgcG9pbnRlcgogICAgKiBhcyB0aGUgZmlyc3QgcmVhbCBmaWVsZC4KLSAgICogVGhl
IGZpZWxkcyBzaG91bGQgYmUgYWxpZ25lZCBzdWNoIHRoYXQgbm8gcGFkZGluZyBpcwotICAgKiBu
ZWNlc3NhcnksIG1vc3RseSBieSBoYXZpbmcgbGFyZ2VyIHR5cGVzIGZpcnN0LgorICAgKiBUaGUg
ZmllbGRzIHNob3VsZCBiZSBhbGlnbmVkIHN1Y2ggdGhhdCBubyBwYWRkaW5nIGlzIG5lY2Vzc2Fy
eS4KICAgICogT24gMzItYml0IG1hY2hpbmVzLCB0aGUgc2l6ZSBzaG91bGQgYmUgMzIgYnl0ZXMs
CiAgICAqIG9uIDY0LWJpdCBtYWNoaW5lcyAoOC1ieXRlIHBvaW50ZXJzKSwgaXQgc2hvdWxkIGJl
IDQwIGJ5dGVzLgorICAgKgorICAgKiBXZSB1c2UgYSBoYWNrIHRvIGFjaGlldmUgdGhpcy4KKyAg
ICoKKyAgICogV2l0aCBhdCBsZWFzdCBzb21lIGNvbXBpbGVycywgZWFjaCBvZiB0aGUgZm9sbG93
aW5nIGlzIGZvcmNlZCB0bworICAgKiBhIG11bHRpcGxlIG9mIHNpemVvZihwb2ludGVyKSBbdGhl
IGxhcmdlc3QgZmllbGQgYmFzZSB1bml0IGhlcmUgaXMgYSBkYXRhIHBvaW50ZXJdLAorICAgKiBy
b3VuZGVkIHVwIHdpdGggYWRkaXRpb25hbCBwYWRkaW5nIGlmIHRoZSBmaWVsZHMgZG8gbm90IGFs
cmVhZHkgZml0IHRoYXQgcmVxdWlyZW1lbnQ6CisgICAqIC0gc2l6ZW9mKGNsYXNzIFVuaWNvZGVT
dHJpbmcpCisgICAqIC0gb2Zmc2V0b2YoVW5pY29kZVN0cmluZywgZlVuaW9uKQorICAgKiAtIHNp
emVvZihmVW5pb24pCisgICAqIC0gc2l6ZW9mKGZGaWVsZHMpCisgICAqCisgICAqIEluIG9yZGVy
IHRvIGF2b2lkIHBhZGRpbmcsIHdlIG1ha2Ugc2l6ZW9mKGZTdGFja0J1ZmZlcik9MTYgKD04IFVD
aGFycykKKyAgICogd2hpY2ggaXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc2l6ZW9mKGZGaWVsZHMp
IG9uIDMyLWJpdCBhbmQgNjQtYml0IG1hY2hpbmVzLgorICAgKiAoUGFkZGluZyBhdCB0aGUgZW5k
IG9mIGZGaWVsZHMgaXMgb2s6CisgICAqIEFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gcGFkZGluZyBh
ZnRlciBmU3RhY2tCdWZmZXIsIGl0IGlzIG5vdCB3YXN0ZWQgc3BhY2UuKQorICAgKgorICAgKiBX
ZSBmdXJ0aGVyIGFzc3VtZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdCByZW9yZGVyIHRoZSBm
aWVsZHMsCisgICAqIHNvIHRoYXQgZlJlc3RPZlN0YWNrQnVmZmVyICh3aGljaCBob2xkcyBhIGZl
dyBtb3JlIFVDaGFycykgaW1tZWRpYXRlbHkgZm9sbG93cyBhZnRlciBmVW5pb24sCisgICAqIHdp
dGggYXQgbW9zdCBzb21lIHBhZGRpbmcgKGJ1dCBubyBvdGhlciBmaWVsZCkgaW4gYmV0d2Vlbi4K
KyAgICogKFBhZGRpbmcgdGhlcmUgd291bGQgYmUgd2FzdGVkIHNwYWNlLCBidXQgZnVuY3Rpb25h
bGx5IGhhcm1sZXNzLikKKyAgICoKKyAgICogV2UgdXNlIGEgZmV3IG1vcmUgc2l6ZW9mKHBvaW50
ZXIpJ3MgY2h1bmtzIG9mIHNwYWNlIHdpdGgKKyAgICogZlJlc3RPZlN0YWNrQnVmZmVyLCBmU2hv
cnRMZW5ndGggYW5kIGZGbGFncywKKyAgICogdG8gZ2V0IHVwIGV4YWN0bHkgdG8gdGhlIGludGVu
ZGVkIHNpemVvZihVbmljb2RlU3RyaW5nKS4KICAgICovCiAgIC8vIChpbXBsaWNpdCkgKnZ0YWJs
ZTsKLSAgaW50OF90ICAgIGZTaG9ydExlbmd0aDsgICAvLyAwLi4xMjc6IGxlbmd0aCAgPDA6IHJl
YWwgbGVuZ3RoIGlzIGluIGZVbmlvbi5mRmllbGRzLmZMZW5ndGgKLSAgdWludDhfdCAgIGZGbGFn
czsgICAgICAgICAvLyBiaXQgZmxhZ3M6IHNlZSBjb25zdGFudHMgYWJvdmUKICAgdW5pb24gU3Rh
Y2tCdWZmZXJPckZpZWxkcyB7CiAgICAgLy8gZlN0YWNrQnVmZmVyIGlzIHVzZWQgaWZmIChmRmxh
Z3Mma1VzaW5nU3RhY2tCdWZmZXIpCiAgICAgLy8gZWxzZSBmRmllbGRzIGlzIHVzZWQKLSAgICBV
Q2hhciAgICAgZlN0YWNrQnVmZmVyIFtVU19TVEFDS0JVRl9TSVpFXTsgLy8gYnVmZmVyIGZvciBz
bWFsbCBzdHJpbmdzCisgICAgVUNoYXIgZlN0YWNrQnVmZmVyWzhdOyAgLy8gYnVmZmVyIGZvciBz
aG9ydCBzdHJpbmdzLCB0b2dldGhlciB3aXRoIGZSZXN0T2ZTdGFja0J1ZmZlcgogICAgIHN0cnVj
dCB7Ci0gICAgICB1aW50MTZfdCAgZlBhZGRpbmc7ICAgLy8gYWxpZ24gdGhlIGZvbGxvd2luZyBm
aWVsZCBhdCA4QiAoMzJiIHBvaW50ZXJzKSBvciAxMkIgKDY0YikKLSAgICAgIGludDMyX3QgICBm
TGVuZ3RoOyAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBmQXJyYXkgaWYgPjEyNzsgZWxz
ZSB1bmRlZmluZWQKLSAgICAgIFVDaGFyICAgICAqZkFycmF5OyAgICAvLyB0aGUgVW5pY29kZSBk
YXRhIChhbGlnbmVkIGF0IDEyQiAoMzJiIHBvaW50ZXJzKSBvciAxNkIgKDY0YikpCi0gICAgICBp
bnQzMl90ICAgZkNhcGFjaXR5OyAgLy8gc2l6ZW9mIGZBcnJheQorICAgICAgVUNoYXIgICAqZkFy
cmF5OyAgICAvLyB0aGUgVW5pY29kZSBkYXRhCisgICAgICBpbnQzMl90IGZDYXBhY2l0eTsgIC8v
IGNhcGFjaXR5IG9mIGZBcnJheSAoaW4gVUNoYXJzKQorICAgICAgaW50MzJfdCBmTGVuZ3RoOyAg
ICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBmQXJyYXkgaWYgPjEyNzsgZWxzZSB1bmRlZmlu
ZWQKICAgICB9IGZGaWVsZHM7CiAgIH0gZlVuaW9uOworICBVQ2hhciBmUmVzdE9mU3RhY2tCdWZm
ZXJbVVNfU1RBQ0tCVUZfU0laRS04XTsKKyAgaW50OF90IGZTaG9ydExlbmd0aDsgIC8vIDAuLjEy
NzogbGVuZ3RoICA8MDogcmVhbCBsZW5ndGggaXMgaW4gZlVuaW9uLmZGaWVsZHMuZkxlbmd0aAor
ICB1aW50OF90IGZGbGFnczsgICAgICAgLy8gYml0IGZsYWdzOiBzZWUgY29uc3RhbnRzIGFib3Zl
CiB9OwogCiAvKioKQEAgLTM0ODEsNiArMzYwNCwxNiBAQCBVbmljb2RlU3RyaW5nOjpnZXRBcnJh
eVN0YXJ0KCkgY29uc3QKIHsgcmV0dXJuIChmRmxhZ3Mma1VzaW5nU3RhY2tCdWZmZXIpID8gZlVu
aW9uLmZTdGFja0J1ZmZlciA6IGZVbmlvbi5mRmllbGRzLmZBcnJheTsgfQogCiAvLz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIERlZmF1bHQgY29uc3RydWN0b3IK
Ky8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitpbmxpbmUKK1Vu
aWNvZGVTdHJpbmc6OlVuaWNvZGVTdHJpbmcoKQorICA6IGZTaG9ydExlbmd0aCgwKSwKKyAgICBm
RmxhZ3Moa1Nob3J0U3RyaW5nKQore30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBSZWFkLW9ubHkgaW1wbGVtZW50YXRpb24gbWV0aG9kcwogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBpbmxpbmUgaW50MzJfdApAQCAt
MzU0NywxMCArMzY4MCw3IEBAIFVuaWNvZGVTdHJpbmc6Om9wZXJhdG9yPT0gKGNvbnN0IFVuaWNv
ZGVTdHJpbmcmIHRleHQpIGNvbnN0CiAgICAgcmV0dXJuIHRleHQuaXNCb2d1cygpOwogICB9IGVs
c2UgewogICAgIGludDMyX3QgbGVuID0gbGVuZ3RoKCksIHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0
aCgpOwotICAgIHJldHVybgotICAgICAgIXRleHQuaXNCb2d1cygpICYmCi0gICAgICBsZW4gPT0g
dGV4dExlbmd0aCAmJgotICAgICAgZG9Db21wYXJlKDAsIGxlbiwgdGV4dCwgMCwgdGV4dExlbmd0
aCkgPT0gMDsKKyAgICByZXR1cm4gIXRleHQuaXNCb2d1cygpICYmIGxlbiA9PSB0ZXh0TGVuZ3Ro
ICYmIGRvRXF1YWxzKHRleHQsIGxlbik7CiAgIH0KIH0KIApAQCAtMzkzMiwxNSArNDA2MiwyMCBA
QCBVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHNyY1RleHQs
CiB7IHJldHVybiBkb0NvbXBhcmUoMCwgc3JjTGVuZ3RoLCBzcmNUZXh0LCBzcmNTdGFydCwgc3Jj
TGVuZ3RoKSA9PSAwOyB9CiAKIGlubGluZSBVQm9vbAotVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0
aChjb25zdCBVQ2hhciAqc3JjQ2hhcnMsCi0gICAgICAgICAgICAgIGludDMyX3Qgc3JjTGVuZ3Ro
KSBjb25zdAoteyByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwgc3JjQ2hhcnMsIDAsIHNy
Y0xlbmd0aCkgPT0gMDsgfQorVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0aChjb25zdCBVQ2hhciAq
c3JjQ2hhcnMsIGludDMyX3Qgc3JjTGVuZ3RoKSBjb25zdCB7CisgIGlmKHNyY0xlbmd0aCA8IDAp
IHsKKyAgICBzcmNMZW5ndGggPSB1X3N0cmxlbihzcmNDaGFycyk7CisgIH0KKyAgcmV0dXJuIGRv
Q29tcGFyZSgwLCBzcmNMZW5ndGgsIHNyY0NoYXJzLCAwLCBzcmNMZW5ndGgpID09IDA7Cit9CiAK
IGlubGluZSBVQm9vbAotVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0aChjb25zdCBVQ2hhciAqc3Jj
Q2hhcnMsCi0gICAgICAgICAgICAgIGludDMyX3Qgc3JjU3RhcnQsCi0gICAgICAgICAgICAgIGlu
dDMyX3Qgc3JjTGVuZ3RoKSBjb25zdAoteyByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwg
c3JjQ2hhcnMsIHNyY1N0YXJ0LCBzcmNMZW5ndGgpID09IDA7fQorVW5pY29kZVN0cmluZzo6c3Rh
cnRzV2l0aChjb25zdCBVQ2hhciAqc3JjQ2hhcnMsIGludDMyX3Qgc3JjU3RhcnQsIGludDMyX3Qg
c3JjTGVuZ3RoKSBjb25zdCB7CisgIGlmKHNyY0xlbmd0aCA8IDApIHsKKyAgICBzcmNMZW5ndGgg
PSB1X3N0cmxlbihzcmNDaGFycyk7CisgIH0KKyAgcmV0dXJuIGRvQ29tcGFyZSgwLCBzcmNMZW5n
dGgsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGVuZ3RoKSA9PSAwOworfQogCiBpbmxpbmUgVUJv
b2wKIFVuaWNvZGVTdHJpbmc6OmVuZHNXaXRoKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRleHQpIGNv
bnN0CkBAIC00MDE2LDE3ICs0MTUxLDYgQEAgVW5pY29kZVN0cmluZzo6cmVwbGFjZShpbnQzMl90
IHN0YXJ0LAogeyByZXR1cm4gZG9SZXBsYWNlKHN0YXJ0LCBfbGVuZ3RoLCAmc3JjQ2hhciwgMCwg
MSk7IH0KIAogaW5saW5lIFVuaWNvZGVTdHJpbmcmCi1Vbmljb2RlU3RyaW5nOjpyZXBsYWNlKGlu
dDMyX3Qgc3RhcnQsCi0gICAgICAgICAgICAgICBpbnQzMl90IF9sZW5ndGgsCi0gICAgICAgICAg
ICAgICBVQ2hhcjMyIHNyY0NoYXIpIHsKLSAgVUNoYXIgYnVmZmVyW1UxNl9NQVhfTEVOR1RIXTsK
LSAgaW50MzJfdCBjb3VudCA9IDA7Ci0gIFVCb29sIGlzRXJyb3IgPSBGQUxTRTsKLSAgVTE2X0FQ
UEVORChidWZmZXIsIGNvdW50LCBVMTZfTUFYX0xFTkdUSCwgc3JjQ2hhciwgaXNFcnJvcik7Ci0g
IHJldHVybiBkb1JlcGxhY2Uoc3RhcnQsIF9sZW5ndGgsIGJ1ZmZlciwgMCwgY291bnQpOwotfQot
Ci1pbmxpbmUgVW5pY29kZVN0cmluZyYKIFVuaWNvZGVTdHJpbmc6OnJlcGxhY2VCZXR3ZWVuKGlu
dDMyX3Qgc3RhcnQsCiAgICAgICAgICAgICAgICAgICBpbnQzMl90IGxpbWl0LAogICAgICAgICAg
ICAgICAgICAgY29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCkKQEAgLTQwODYsOSArNDIxMCw5
IEBAIFVuaWNvZGVTdHJpbmc6OmV4dHJhY3QoaW50MzJfdCBzdGFydCwKIAogewogICAvLyBUaGlz
IGRzdFNpemUgdmFsdWUgd2lsbCBiZSBjaGVja2VkIGV4cGxpY2l0bHkKLSAgLy8gUmVtb3ZlZCAj
aWYgZGVmaW5lZChfX0dOVUNfXykgcGVyIElDVSBkZWZlY3QgaHR0cDovL2J1Z3MuaWN1LXByb2pl
Y3Qub3JnL3RyYWMvdGlja2V0LzgxOTcKICAgcmV0dXJuIGV4dHJhY3Qoc3RhcnQsIF9sZW5ndGgs
IGRzdCwgZHN0IT0wID8gMHhmZmZmZmZmZiA6IDAsIGNvZGVwYWdlKTsKIH0KKwogI2VuZGlmCiAK
IGlubGluZSB2b2lkCkBAIC00MTI0LDQzICs0MjQ4LDYgQEAgaW5saW5lIFVDaGFyCiBVbmljb2Rl
U3RyaW5nOjpvcGVyYXRvcltdIChpbnQzMl90IG9mZnNldCkgY29uc3QKIHsgcmV0dXJuIGRvQ2hh
ckF0KG9mZnNldCk7IH0KIAotaW5saW5lIFVDaGFyMzIKLVVuaWNvZGVTdHJpbmc6OmNoYXIzMkF0
KGludDMyX3Qgb2Zmc2V0KSBjb25zdAotewotICBpbnQzMl90IGxlbiA9IGxlbmd0aCgpOwotICBp
ZigodWludDMyX3Qpb2Zmc2V0IDwgKHVpbnQzMl90KWxlbikgewotICAgIGNvbnN0IFVDaGFyICph
cnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAgICBVQ2hhcjMyIGM7Ci0gICAgVTE2X0dFVChhcnJh
eSwgMCwgb2Zmc2V0LCBsZW4sIGMpOwotICAgIHJldHVybiBjOwotICB9IGVsc2UgewotICAgIHJl
dHVybiBrSW52YWxpZFVDaGFyOwotICB9Ci19Ci0KLWlubGluZSBpbnQzMl90Ci1Vbmljb2RlU3Ry
aW5nOjpnZXRDaGFyMzJTdGFydChpbnQzMl90IG9mZnNldCkgY29uc3QgewotICBpZigodWludDMy
X3Qpb2Zmc2V0IDwgKHVpbnQzMl90KWxlbmd0aCgpKSB7Ci0gICAgY29uc3QgVUNoYXIgKmFycmF5
ID0gZ2V0QXJyYXlTdGFydCgpOwotICAgIFUxNl9TRVRfQ1BfU1RBUlQoYXJyYXksIDAsIG9mZnNl
dCk7Ci0gICAgcmV0dXJuIG9mZnNldDsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gMDsKLSAgfQot
fQotCi1pbmxpbmUgaW50MzJfdAotVW5pY29kZVN0cmluZzo6Z2V0Q2hhcjMyTGltaXQoaW50MzJf
dCBvZmZzZXQpIGNvbnN0IHsKLSAgaW50MzJfdCBsZW4gPSBsZW5ndGgoKTsKLSAgaWYoKHVpbnQz
Ml90KW9mZnNldCA8ICh1aW50MzJfdClsZW4pIHsKLSAgICBjb25zdCBVQ2hhciAqYXJyYXkgPSBn
ZXRBcnJheVN0YXJ0KCk7Ci0gICAgVTE2X1NFVF9DUF9MSU1JVChhcnJheSwgMCwgb2Zmc2V0LCBs
ZW4pOwotICAgIHJldHVybiBvZmZzZXQ7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGxlbjsKLSAg
fQotfQotCiBpbmxpbmUgVUJvb2wKIFVuaWNvZGVTdHJpbmc6OmlzRW1wdHkoKSBjb25zdCB7CiAg
IHJldHVybiBmU2hvcnRMZW5ndGggPT0gMDsKQEAgLTQxOTIsNDggKzQyNzksNiBAQCBVbmljb2Rl
U3RyaW5nOjpzZXRBcnJheShVQ2hhciAqYXJyYXksIGludDMyX3QgbGVuLCBpbnQzMl90IGNhcGFj
aXR5KSB7CiAgIGZVbmlvbi5mRmllbGRzLmZDYXBhY2l0eSA9IGNhcGFjaXR5OwogfQogCi1pbmxp
bmUgY29uc3QgVUNoYXIgKgotVW5pY29kZVN0cmluZzo6Z2V0VGVybWluYXRlZEJ1ZmZlcigpIHsK
LSAgaWYoIWlzV3JpdGFibGUoKSkgewotICAgIHJldHVybiAwOwotICB9IGVsc2UgewotICAgIFVD
aGFyICphcnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAgICBpbnQzMl90IGxlbiA9IGxlbmd0aCgp
OwotICAgIGlmKGxlbiA8IGdldENhcGFjaXR5KCkgJiYgKChmRmxhZ3Mma1JlZkNvdW50ZWQpID09
IDAgfHwgcmVmQ291bnQoKSA9PSAxKSkgewotICAgICAgLyoKLSAgICAgICAqIGtSZWZDb3VudGVk
OiBEbyBub3Qgd3JpdGUgdGhlIE5VTCBpZiB0aGUgYnVmZmVyIGlzIHNoYXJlZC4KLSAgICAgICAq
IFRoYXQgaXMgbW9zdGx5IHNhZmUsIGV4Y2VwdCB3aGVuIHRoZSBsZW5ndGggb2Ygb25lIGNvcHkg
d2FzIG1vZGlmaWVkCi0gICAgICAgKiB3aXRob3V0IGNvcHktb24td3JpdGUsIGUuZy4sIHZpYSB0
cnVuY2F0ZShuZXdMZW5ndGgpIG9yIHJlbW92ZSh2b2lkKS4KLSAgICAgICAqIFRoZW4gdGhlIE5V
TCB3b3VsZCBiZSB3cml0dGVuIGludG8gdGhlIG1pZGRsZSBvZiBhbm90aGVyIGNvcHkncyBzdHJp
bmcuCi0gICAgICAgKi8KLSAgICAgIGlmKCEoZkZsYWdzJmtCdWZmZXJJc1JlYWRvbmx5KSkgewot
ICAgICAgICAvKgotICAgICAgICAgKiBXZSBtdXN0IG5vdCB3cml0ZSB0byBhIHJlYWRvbmx5IGJ1
ZmZlciwgYnV0IGl0IGlzIGtub3duIHRvIGJlCi0gICAgICAgICAqIE5VTC10ZXJtaW5hdGVkIGlm
IGxlbjxjYXBhY2l0eS4KLSAgICAgICAgICogQSBzaGFyZWQsIGFsbG9jYXRlZCBidWZmZXIgKHJl
ZkNvdW50KCk+MSkgbXVzdCBub3QgaGF2ZSBpdHMgY29udGVudHMKLSAgICAgICAgICogbW9kaWZp
ZWQsIGJ1dCB0aGUgTlVMIGF0IFtsZW5dIGlzIGJleW9uZCB0aGUgc3RyaW5nIGNvbnRlbnRzLAot
ICAgICAgICAgKiBhbmQgbXVsdGlwbGUgc3RyaW5nIG9iamVjdHMgYW5kIHRocmVhZHMgd3JpdGlu
ZyB0aGUgc2FtZSBOVUwgaW50byB0aGUKLSAgICAgICAgICogc2FtZSBsb2NhdGlvbiBpcyBoYXJt
bGVzcy4KLSAgICAgICAgICogSW4gYWxsIG90aGVyIGNhc2VzLCB0aGUgYnVmZmVyIGlzIGZ1bGx5
IHdyaXRhYmxlIGFuZCBpdCBpcyBhbnl3YXkgc2FmZQotICAgICAgICAgKiB0byB3cml0ZSB0aGUg
TlVMLgotICAgICAgICAgKgotICAgICAgICAgKiBOb3RlOiBBbiBlYXJsaWVyIHZlcnNpb24gb2Yg
dGhpcyBjb2RlIHRlc3RlZCB3aGV0aGVyIHRoZXJlIGlzIGEgTlVMCi0gICAgICAgICAqIGF0IFts
ZW5dIGFscmVhZHksIGJ1dCwgd2hpbGUgc2FmZSwgaXQgZ2VuZXJhdGVkIGxvdHMgb2Ygd2Fybmlu
Z3MgZnJvbQotICAgICAgICAgKiB0b29scyBsaWtlIHZhbGdyaW5kIGFuZCBQdXJpZnkuCi0gICAg
ICAgICAqLwotICAgICAgICBhcnJheVtsZW5dID0gMDsKLSAgICAgIH0KLSAgICAgIHJldHVybiBh
cnJheTsKLSAgICB9IGVsc2UgaWYoY2xvbmVBcnJheUlmTmVlZGVkKGxlbisxKSkgewotICAgICAg
YXJyYXkgPSBnZXRBcnJheVN0YXJ0KCk7Ci0gICAgICBhcnJheVtsZW5dID0gMDsKLSAgICAgIHJl
dHVybiBhcnJheTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICB9Ci19
Ci0KIGlubGluZSBVbmljb2RlU3RyaW5nJgogVW5pY29kZVN0cmluZzo6b3BlcmF0b3I9IChVQ2hh
ciBjaCkKIHsgcmV0dXJuIGRvUmVwbGFjZSgwLCBsZW5ndGgoKSwgJmNoLCAwLCAxKTsgfQpAQCAt
NDI2Myw4ICs0MzA4LDcgQEAgVW5pY29kZVN0cmluZzo6c2V0VG8oY29uc3QgVW5pY29kZVN0cmlu
ZyYgc3JjVGV4dCwKIGlubGluZSBVbmljb2RlU3RyaW5nJgogVW5pY29kZVN0cmluZzo6c2V0VG8o
Y29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCkKIHsKLSAgdW5Cb2d1cygpOwotICByZXR1cm4g
ZG9SZXBsYWNlKDAsIGxlbmd0aCgpLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgpKTsKKyAg
cmV0dXJuIGNvcHlGcm9tKHNyY1RleHQpOwogfQogCiBpbmxpbmUgVW5pY29kZVN0cmluZyYKQEAg
LTQzMTUsMTUgKzQzNTksNiBAQCBVbmljb2RlU3RyaW5nOjphcHBlbmQoVUNoYXIgc3JjQ2hhcikK
IHsgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwgMCwgJnNyY0NoYXIsIDAsIDEpOyB9CiAKIGlu
bGluZSBVbmljb2RlU3RyaW5nJgotVW5pY29kZVN0cmluZzo6YXBwZW5kKFVDaGFyMzIgc3JjQ2hh
cikgewotICBVQ2hhciBidWZmZXJbVTE2X01BWF9MRU5HVEhdOwotICBpbnQzMl90IF9sZW5ndGgg
PSAwOwotICBVQm9vbCBpc0Vycm9yID0gRkFMU0U7Ci0gIFUxNl9BUFBFTkQoYnVmZmVyLCBfbGVu
Z3RoLCBVMTZfTUFYX0xFTkdUSCwgc3JjQ2hhciwgaXNFcnJvcik7Ci0gIHJldHVybiBkb1JlcGxh
Y2UobGVuZ3RoKCksIDAsIGJ1ZmZlciwgMCwgX2xlbmd0aCk7Ci19Ci0KLWlubGluZSBVbmljb2Rl
U3RyaW5nJgogVW5pY29kZVN0cmluZzo6b3BlcmF0b3IrPSAoVUNoYXIgY2gpCiB7IHJldHVybiBk
b1JlcGxhY2UobGVuZ3RoKCksIDAsICZjaCwgMCwgMSk7IH0KIApAQCAtNDM3Niw5ICs0NDExLDcg
QEAgaW5saW5lIFVuaWNvZGVTdHJpbmcmCiBVbmljb2RlU3RyaW5nOjpyZW1vdmUoKQogewogICAv
LyByZW1vdmUoKSBvZiBhIGJvZ3VzIHN0cmluZyBtYWtlcyB0aGUgc3RyaW5nIGVtcHR5IGFuZCBu
b24tYm9ndXMKLSAgLy8gd2UgYWxzbyB1bi1hbGlhcyBhIHJlYWQtb25seSBhbGlhcyB0byBkZWFs
IHdpdGggTlVMLXRlcm1pbmF0aW9uCi0gIC8vIGlzc3VlcyB3aXRoIGdldFRlcm1pbmF0ZWRCdWZm
ZXIoKQotICBpZihmRmxhZ3MgJiAoa0lzQm9ndXN8a0J1ZmZlcklzUmVhZG9ubHkpKSB7CisgIGlm
KGlzQm9ndXMoKSkgewogICAgIHNldFRvRW1wdHkoKTsKICAgfSBlbHNlIHsKICAgICBmU2hvcnRM
ZW5ndGggPSAwOwpAQCAtNDQxNyw5ICs0NDUwLDYgQEAgVW5pY29kZVN0cmluZzo6dHJ1bmNhdGUo
aW50MzJfdCB0YXJnZXRMZW5ndGgpCiAgICAgcmV0dXJuIEZBTFNFOwogICB9IGVsc2UgaWYoKHVp
bnQzMl90KXRhcmdldExlbmd0aCA8ICh1aW50MzJfdClsZW5ndGgoKSkgewogICAgIHNldExlbmd0
aCh0YXJnZXRMZW5ndGgpOwotICAgIGlmKGZGbGFncyZrQnVmZmVySXNSZWFkb25seSkgewotICAg
ICAgZlVuaW9uLmZGaWVsZHMuZkNhcGFjaXR5ID0gdGFyZ2V0TGVuZ3RoOyAgLy8gbm90IE5VTC10
ZXJtaW5hdGVkIGFueSBtb3JlCi0gICAgfQogICAgIHJldHVybiBUUlVFOwogICB9IGVsc2Ugewog
ICAgIHJldHVybiBGQUxTRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2Rl
L3Vub3JtMi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW5vcm0yLmgKaW5kZXggYTUy
MmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5ZGI0YTJhMmYxYy4uNzE1MmZjMTA5NDY2ZDA3YzUw
YmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3Vu
aWNvZGUvdW5vcm0yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW5vcm0yLmgK
QEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHly
aWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
ICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKQEAgLTExOSw2ICsxMTksNzYgQEAgdHlwZWRlZiBzdHJ1Y3Qg
VU5vcm1hbGl6ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3QgVU5v
cm1hbGl6ZXIKICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAKIC8qKgorICogUmV0dXJu
cyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkMgbm9ybWFsaXphdGlvbi4K
KyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfQ09NUE9T
RSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5z
dGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJ
Q1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAg
cGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucwor
ICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9u
IG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmlu
Zy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3Rl
ZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9T
VEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZDSW5zdGFu
Y2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVOb3JtYWxp
emVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMg
dW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfREVDT01QT1NFLCBwRXJyb3JD
b2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBpbnN0YW5jZS4gRG8g
bm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJkIElDVSBlcnJvciBj
b2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBV
X1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAgICAg
ICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9y
IHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVz
ZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVzdGVkIE5vcm1hbGl6
ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBjb25z
dCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORkRJbnN0YW5jZShVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3Rh
bmNlIGZvciBVbmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dl
dEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUpLgorICog
UmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3QgZGVsZXRl
IGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUuIEl0cyBp
bnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygp
IHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAg
aW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgK
KyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBm
b3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIsIGlmIHN1
Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVOb3JtYWxp
emVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0YW5jZShVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNlIGZvciBV
bmljb2RlIE5GS0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNl
KE5VTEwsICJuZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5z
IGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZh
bHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwg
b3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlh
dGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRh
aWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1
bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICog
VV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUg
TkZLQ19DYXNlZm9sZCBub3JtYWxpemF0aW9uLgorICogU2FtZSBhcyB1bm9ybTJfZ2V0SW5zdGFu
Y2UoTlVMTCwgIm5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1
cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0
IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVz
dCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1l
ZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICog
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBk
ZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vz
c2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIy
ICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UoVUVycm9yQ29kZSAq
cEVycm9yQ29kZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSB3
aGljaCB1c2VzIHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAgKiAocGFja2FnZU5hbWUvbmFtZSBz
aW1pbGFyIHRvIHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJlc19vcGVuKCkvUmVzb3VyY2VCdW5k
bGUpCiAgKiBhbmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21wb3NlcyB0ZXh0IGFjY29yZGluZyB0
byB0aGUgc3BlY2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMwLDExIEBAIHVub3JtMl9hcHBlbmQo
Y29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMu
IEVxdWl2YWxlbnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJpbmcoYykpCi0gKiBvbiBhIFVOT1JN
Ml9ERUNPTVBPU0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBidXQgbXVjaCBmYXN0ZXIuCisgKiBH
ZXRzIHRoZSBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4KKyAqIFJvdWdobHkgZXF1aXZhbGVu
dCB0byBub3JtYWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2YgYworICogb24gYSBVTk9STTJfREVD
T01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11Y2ggZmFzdGVyLCBhbmQgZXhjZXB0
IHRoYXQgdGhpcyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIGFuZCBkb2Vz
IG5vdCB3cml0ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5vdCBoYXZlIGEgZGVjb21wb3NpdGlv
biBtYXBwaW5nIGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgogICogVGhpcyBmdW5jdGlvbiBpcyBp
bmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgogICogQHBhcmFtIG5v
cm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFtIGMgY29kZSBwb2ludApAQCAtMjcz
LDE0ICszNDYsNzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBVTm9ybWFsaXplcjIgKm5vcm0yLAog
ICogICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBv
biBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWlu
aW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiB0aGUgbm9uLW5l
Z2F0aXZlIGxlbmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25lOyBvdGhl
cndpc2UgYSBuZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNV
IDQuNgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgogdW5vcm0yX2dldERlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3Jt
MiwKICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRp
b24sIGludDMyX3QgY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSByYXcgZGVjb21wb3NpdGlvbiBtYXBw
aW5nIG9mIGMuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB1bm9ybTJfZ2V0RGVjb21w
b3NpdGlvbigpIGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQorICogcmF3IGRlY29tcG9zaXRpb24g
bWFwcGluZyBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEudHh0IG9yCisgKiAoZm9yIGN1c3Rv
bSBkYXRhKSBpbiB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNzZWQgYnkgdGhlIGdlbm5vcm0yIHRv
b2wuCisgKiBCeSBjb250cmFzdCwgdW5vcm0yX2dldERlY29tcG9zaXRpb24oKSByZXR1cm5zIHRo
ZSBwcm9jZXNzZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBvc2VkIHZlcnNpb24gb2YgdGhpcyBt
YXBwaW5nLgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GS0MgTm9ybWFsaXplcjIg
aW5zdGFuY2UsCisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbigpIHJldHVybnMgdGhlIFVu
aWNvZGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJvcGVydHkuCisgKgorICogV2hlbiB1
c2VkIG9uIGEgc3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogaXQgcmV0dXJu
cyB0aGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYgdGhlIERlY29tcG9zaXRpb25fVHlw
ZSAoZHQpIGlzIENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRoaXMgY2FzZSwgdGhlIHJlc3VsdCBj
b250YWlucyBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50cyAoPTEuLjQgVUNoYXJzKS4KKyAq
CisgKiBUaGlzIGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9mIHRoZSBtb2RlIG9mIHRoZSBVTm9y
bWFsaXplcjIuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisgKiBAcGFy
YW0gYyBjb2RlIHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiBTdHJpbmcgYnVmZmVyIHdo
aWNoIHdpbGwgYmUgc2V0IHRvIGMncworICogICAgICAgICAgICAgICAgICAgICAgcmF3IGRlY29t
cG9zaXRpb24gbWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgorICogQHBhcmFtIGNhcGFjaXR5IG51
bWJlciBvZiBVQ2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBkZWNvbXBvc2l0aW9uCisgKiBA
cGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVl
IG11c3QKKyAqICAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9y
IGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgIGltbWVkaWF0
ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRh
aWxzLikKKyAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIHJhdyBkZWNv
bXBvc2l0aW9uLCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSBhIG5lZ2F0aXZlIHZhbHVlCisg
KiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordW5vcm0y
X2dldFJhd0RlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24sIGludDMy
X3QgY2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lzZSBjb21wb3NpdGlvbiBvZiBhICYg
YiBhbmQgcmV0dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJlIGlzIG9uZS4KKyAqCisgKiBSZXR1
cm5zIGEgY29tcG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlmIGMgaGFzIGEgdHdvLXdheSBtYXBw
aW5nIHRvIGErYi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFsaXphdGlvbiwgdGhpcyBt
ZWFucyB0aGF0CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIHRvIGErYgorICog
YW5kIGMgZG9lcyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24gcHJvcGVy
dHkuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0
aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQor
ICogQHBhcmFtIGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVyKSBjb2RlIHBvaW50LgorICogQHBh
cmFtIGIgQW5vdGhlciBjb2RlIHBvaW50LgorICogQHJldHVybiBUaGUgbm9uLW5lZ2F0aXZlIGNv
bXBvc2l0ZSBjb2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVnYXRpdmUg
dmFsdWUuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBVQ2hhcjMyIFVfRVhQT1JU
MgordW5vcm0yX2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsIFVDaGFyMzIg
YSwgVUNoYXIzMiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgYy4K
KyAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMAorICogYnV0IGFsbCBzdGFu
ZGFyZCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmljb2RlIENhbm9uaWNhbF9Db21iaW5p
bmdfQ2xhc3MgdmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisg
KiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMncyBjb21iaW5pbmcgY2xhc3MKKyAq
IEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4X3QgVV9FWFBPUlQyCit1bm9ybTJf
Z2V0Q29tYmluaW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwgVUNoYXIzMiBjKTsK
KworLyoqCiAgKiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6ZWQuCiAgKiBJbnRlcm5h
bGx5LCBpbiBjYXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygpIG1ldGhvZCB3b3VsZCByZXR1cm4g
Im1heWJlIgogICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUgZm9yIHRoZSB0d28gQ09NUE9TRSBt
b2RlcykgdGhpcyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2Rl
L3VvYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VvYmplY3QuaAppbmRleCAy
N2Q0Yzg0ZGE1YjY3OGUyZGY0OGFlNDNiNjgyYWI1NDkwOTI4MzUwLi41NGNlYWNlNjI2ZDczNWNi
YWM2ZDgzNWJmNmFiYTM0ODMzYTlmNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91b2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW9iamVj
dC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENv
cHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksNTAgKzE5LDExIEBACiAKICNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgogCi1VX05BTUVTUEFDRV9CRUdJTgotCiAvKioKICAqIFxmaWxlCiAg
KiBcYnJpZWYgQysrIEFQSTogQ29tbW9uIElDVSBiYXNlIGNsYXNzIFVPYmplY3QuCiAgKi8KIAot
LyoqICBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIC0gRGVmaW5lIHRoaXMgdG8gb3ZlcnJpZGUg
b3BlcmF0b3IgbmV3IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRl
IGluIFVNZW1vcnkuIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgSUNVLgotICoKLSAqICAgICAgICAg
RW5hYmxpbmcgZm9yY2VzIGFsbCBhbGxvY2F0aW9uIG9mIElDVSBvYmplY3QgdHlwZXMgdG8gdXNl
IElDVSdzCi0gKiAgICAgICAgIG1lbW9yeSBhbGxvY2F0aW9uLiBPbiBXaW5kb3dzLCB0aGlzIGFs
bG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5Ci0gKiAgICAgICAgIGFwcGxpY2F0aW9ucyB0
aGF0IHN0YXRpY2FsbHkgbGluayB0aGUgQyBSdW50aW1lIGxpYnJhcnksIG1lYW5pbmcgdGhhdAot
ICogICAgICAgICB0aGUgYXBwIGFuZCBJQ1Ugd2lsbCBiZSB1c2luZyBkaWZmZXJlbnQgaGVhcHMu
Ci0gKgotICogQHN0YWJsZSBJQ1UgMi4yCi0gKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmluZSBVX09WRVJSSURF
X0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotCi0vKiogCi0gKiBcZGVmIFVfSEFWRV9QTEFDRU1F
TlRfTkVXCi0gKiAgRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBwbGFjZW1lbnQgbmV3IGFuZAot
ICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpbiBVTWVtb3J5IGZvciBTVEwuCi0g
KgotICogQHN0YWJsZSBJQ1UgMi42Ci0gKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9O
RVcgMQotI2VuZGlmCi0KLQotLyoqIAotICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVX
IAotICogRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBNRkMgZGVidWcKLSAqIHZlcnNpb24gb2Yg
dGhlIG9wZXJhdG9yIG5ldy4KLSAqCi0gKiBAc3RhYmxlIElDVSAzLjQKLSAqLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAotI2lmbmRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXCi0j
ZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAotI2VuZGlmCi0KIC8qKgogICogQHsK
ICAqIFxkZWYgVV9OT19USFJPVwpAQCAtNzUsMTQgKzM2LDYyIEBAIFVfTkFNRVNQQUNFX0JFR0lO
CiAgKiAgICAgICAgIGNvbnN0cnVjdG9yIGlzIHN0aWxsIGNhbGxlZCwgYW5kIGlmIHRoZSBjb25z
dHJ1Y3RvciByZWZlcmVuY2VzIG1lbWJlciAKICAqICAgICAgICAgZGF0YSwgKHdoaWNoIGl0IHR5
cGljYWxseSBkb2VzKSwgdGhlIHJlc3VsdCBpcyBhIHNlZ21lbnRhdGlvbiB2aW9sYXRpb24uCiAg
KgotICogQGRyYWZ0IElDVSA0LjIKLSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor
ICogQHN0YWJsZSBJQ1UgNC4yCisgKi8KICNpZm5kZWYgVV9OT19USFJPVwogI2RlZmluZSBVX05P
X1RIUk9XIHRocm93KCkKICNlbmRpZgogCiAvKiogQH0gKi8KIAorLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLworLyogVUNsYXNzSUQtYmFzZWQgUlRUSSAqLworLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwor
CisvKioKKyAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xhc3NlcyB3aXRob3V0IHVz
aW5nIHRoZSBjb21waWxlcidzIFJUVEkuCisgKiBUaGlzIHdhcyB1c2VkIGJlZm9yZSBDKysgY29t
cGlsZXJzIGNvbnNpc3RlbnRseSBzdXBwb3J0ZWQgUlRUSS4KKyAqIElDVSA0LjYgcmVxdWlyZXMg
Y29tcGlsZXIgUlRUSSB0byBiZSB0dXJuZWQgb24uCisgKgorICogRWFjaCBjbGFzcyBoaWVyYXJj
aHkgd2hpY2ggbmVlZHMKKyAqIHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgpIG9yIG9w
ZXJhdG9yPT0oKSBkZWZpbmVzIHR3byBtZXRob2RzLAorICogZGVzY3JpYmVkIGluIGRldGFpbCBi
ZWxvdy4gIFVDbGFzc0lEIHZhbHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKKyAqIG9wZXJhdG9y
PT0oKS4gTm90aGluZyBlbHNlIHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KKyAqCisgKiBccGFy
CisgKiBJbiBjbGFzcyBoaWVyYXJjaGllcyB0aGF0IGltcGxlbWVudCAicG9vciBtYW4ncyBSVFRJ
IiwKKyAqIGVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBnZXREeW5hbWljQ2xhc3NJ
RCgpIGluIHRoZSBzYW1lIHdheToKKyAqCisgKiBcY29kZQorICogICAgICBjbGFzcyBEZXJpdmVk
IHsKKyAqICAgICAgcHVibGljOgorICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCgpIGNvbnN0CisgKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6OmdldFN0
YXRpY0NsYXNzSUQoKTsgfQorICogICAgICB9CisgKiBcZW5kY29kZQorICoKKyAqIEVhY2ggY29u
Y3JldGUgY2xhc3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwgd2hpY2gg
YWxsb3dzCisgKiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KKyAqCisgKiBc
Y29kZQorICogICAgICBjbGFzcyBEZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICogICAgICAg
ICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisgKiAgICAg
IHByaXZhdGU6CisgKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7CisgKiAgICAgIH0K
KyAqCisgKiAgICAgIC8vIEluIERlcml2ZWQuY3BwOgorICogICAgICBVQ2xhc3NJRCBEZXJpdmVk
OjpnZXRTdGF0aWNDbGFzc0lEKCkKKyAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQpJkRlcml2
ZWQ6OmZnQ2xhc3NJRDsgfQorICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9IDA7IC8v
IFZhbHVlIGlzIGlycmVsZXZhbnQKKyAqIFxlbmRjb2RlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LwordHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwogLyoqCiAg
KiBVTWVtb3J5IGlzIHRoZSBjb21tb24gSUNVIGJhc2UgY2xhc3MuCiAgKiBBbGwgb3RoZXIgSUNV
IEMrKyBjbGFzc2VzIGFyZSBkZXJpdmVkIGZyb20gVU1lbW9yeSAoc3RhcnRpbmcgd2l0aCBJQ1Ug
Mi40KS4KQEAgLTE5NiwxMCArMjA1LDcgQEAgcHVibGljOgogICogYW5kIGFsbCBvdGhlciBwdWJs
aWMgSUNVIEMrKyBjbGFzc2VzCiAgKiBhcmUgZGVyaXZlZCBmcm9tIFVPYmplY3QgKHN0YXJ0aW5n
IHdpdGggSUNVIDIuMikuCiAgKgotICogVU9iamVjdCBjb250YWlucyBjb21tb24gdmlydHVhbCBm
dW5jdGlvbnMgbGlrZSBmb3IgSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBJdCBkb2VzIG5v
dCBjb250YWluIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwotICog
bGlrZSBnZXREeW5hbWljQ2xhc3NJRCB0byBhbGxvdyBkZXJpdmVkIGNsYXNzZXMgc3VjaCBhcyBG
b3JtYXQKLSAqIHRvIGRlY2xhcmUgdGhlc2UgYXMgcHVyZSB2aXJ0dWFsLgorICogVU9iamVjdCBj
b250YWlucyBjb21tb24gdmlydHVhbCBmdW5jdGlvbnMsIGluIHBhcnRpY3VsYXIgYSB2aXJ0dWFs
IGRlc3RydWN0b3IuCiAgKgogICogVGhlIGNsb25lKCkgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJs
ZSBpbiBVT2JqZWN0IGJlY2F1c2UgaXQgaXMgbm90CiAgKiBpbXBsZW1lbnRlZCBieSBhbGwgSUNV
IGNsYXNzZXMuCkBAIC0yMjMsMjEgKzIyOSwyMyBAQCBwdWJsaWM6CiAKICAgICAvKioKICAgICAg
KiBJQ1U0QyAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0
dWFsIElDVSBjbGFzcy4KKyAgICAgKiBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiByZXR1
cm5zIGEgZHVtbXkgdmFsdWUuCisgICAgICoKKyAgICAgKiBVc2UgY29tcGlsZXIgUlRUSSByYXRo
ZXIgdGhhbiBJQ1UncyAicG9vciBtYW4ncyBSVFRJIi4KKyAgICAgKiBTaW5jZSBJQ1UgNC42LCBu
ZXcgSUNVIEMrKyBjbGFzcyBoaWVyYXJjaGllcyBkbyBub3QgaW1wbGVtZW50ICJwb29yIG1hbidz
IFJUVEkiLgogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4yCiAgICAgICovCi0gICAgdmly
dHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICAv
LyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcHJvdGVjdGVkIHRvIHByZXZlbnQgaW5zdGFu
dGlhdGlvbiBhbmQKICAgICAvLyBkaXJlY3QgdXNlIG9mIFVPYmplY3QgaXRzZWxmCiAKICAgICAv
LyBkZWZhdWx0IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIFVPYmpl
Y3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAgICAvLyBpbmxpbmUgVU9i
amVjdCgpIHt9CiAKICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91
dCBiZWNhdXNlIFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAg
ICAvLyBpbmxpbmUgVU9iamVjdChjb25zdCBVT2JqZWN0ICZvdGhlcikge30KIAogI2lmIDAKQEAg
LTI3MiwyMSArMjgwLDkgQEAgcHJvdGVjdGVkOgogICAgICAqIGhlcmUgd291bGQgYmUgdG8gZGVj
bGFyZSBhbmQgZW1wdHktaW1wbGVtZW50IGEgcHJvdGVjdGVkIG9yIHB1YmxpYyBvbmUuCiAgICAg
VU9iamVjdCAmVU9iamVjdDo6b3BlcmF0b3I9KGNvbnN0IFVPYmplY3QgJik7CiAgICAgICovCi0K
LS8vIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBmb3IgUlRUSSB0aGF0IHN1cHBvcnQgc3VidHlwaW5n
LiBbYWxhbl0KLS8vIAotLy8gIHB1YmxpYzoKLS8vICAgICAvKioKLS8vICAgICAgKiBAaW50ZXJu
YWwKLS8vICAgICAgKi8KLS8vICAgICBzdGF0aWMgVUNsYXNzSUQgZ2V0U3RhdGljQ2xhc3NJRCgp
OwotLy8gCi0vLyAgICAgLyoqCi0vLyAgICAgICogQGludGVybmFsCi0vLyAgICAgICovCi0vLyAg
ICAgVUJvb2wgaW5zdGFuY2VPZihVQ2xhc3NJRCB0eXBlKSBjb25zdDsKIH07CiAKKyNpZm5kZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBUaGlzIGlzIGEgc2ltcGxlIG1hY3JvIHRvIGFk
ZCBJQ1UgUlRUSSB0byBhbiBJQ1Ugb2JqZWN0IGltcGxlbWVudGF0aW9uLgogICogVGhpcyBkb2Vz
IG5vdCBnbyBpbnRvIHRoZSBoZWFkZXIuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiAqLmNw
cCBmaWxlcy4KQEAgLTMxNywzNSArMzEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4g
KFVDbGFzc0lEKSZjbGFzc0lEOyBcCiAgICAgfQogCi0vKioKLSAqIFRoaXMgaXMgYSBzaW1wbGUg
bWFjcm8gdG8gZXhwcmVzcyB0aGF0IGEgY2xhc3MgYW5kIGl0cyBzdWJjbGFzc2VzIGRvIG5vdCBv
ZmZlcgotICogSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBCZWdpbm5pbmcgd2l0aCBJQ1Ug
NC42LCBJQ1UgcmVxdWlyZXMgQysrIGNvbXBpbGVyIFJUVEkuCi0gKiBUaGlzIGRvZXMgbm90IGdv
IGludG8gdGhlIGhlYWRlci4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGluICouY3BwIGZpbGVz
LgotICogVXNlIHRoaXMgd2l0aCBhIHByaXZhdGUgZ2V0RHluYW1pY0NsYXNzSUQoKSBpbiBhbiBp
bW1lZGlhdGUgc3ViY2xhc3Mgb2YgVU9iamVjdC4KLSAqCi0gKiBAcGFyYW0gbXlDbGFzcyBUaGUg
bmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBuZWVkcyBSVFRJIGRlZmluZWQuCi0gKiBAaW50ZXJuYWwK
LSAqLwotI2RlZmluZSBVT0JKRUNUX0RFRklORV9OT19SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xh
c3MpIFwKLSAgICBVQ2xhc3NJRCBteUNsYXNzOjpnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0IHsg
cmV0dXJuIE5VTEw7IH0KLQotLy8gLyoqCi0vLyAgKiBUaGlzIG1hY3JvIGFkZHMgSUNVIFJUVEkg
dG8gYW4gSUNVIGNvbmNyZXRlIGNsYXNzIGltcGxlbWVudGF0aW9uLgotLy8gICogVGhpcyBtYWNy
byBzaG91bGQgYmUgaW52b2tlZCBpbiAqLmNwcCBmaWxlcy4gIFRoZSBjb3JyZXNwb25kaW5nCi0v
LyAgKiBoZWFkZXIgc2hvdWxkIGRlY2xhcmUgZ2V0RHluYW1pY0NsYXNzSUQgYW5kIGdldFN0YXRp
Y0NsYXNzSUQuCi0vLyAgKgotLy8gICogQHBhcmFtIG15Q2xhc3MgVGhlIG5hbWUgb2YgdGhlIGNs
YXNzIHRoYXQgbmVlZHMgUlRUSSBkZWZpbmVkLgotLy8gICogQHBhcmFtIG15UGFyZW50IFRoZSBu
YW1lIG9mIHRoZSBteUNsYXNzJ3MgcGFyZW50LgotLy8gICogQGludGVybmFsCi0vLyAgKi8KLS8q
I2RlZmluZSBVT0JKRUNUX0RFRklORV9SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xhc3MsIG15UGFy
ZW50KSBcCi0gICAgVU9CSkVDVF9ERUZJTkVfQUJTVFJBQ1RfUlRUSV9JTVBMRU1FTlRBVElPTiht
eUNsYXNzLCBteVBhcmVudCkgXAotICAgIFVDbGFzc0lEIG15Q2xhc3M6OmdldER5bmFtaWNDbGFz
c0lEKCkgY29uc3QgeyBcCi0gICAgICAgIHJldHVybiBteUNsYXNzOjpnZXRTdGF0aWNDbGFzc0lE
KCk7IFwKLSAgICB9Ci0qLwotCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAog
VV9OQU1FU1BBQ0VfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2Rl
L3VyZW5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VyZW5hbWUuaAppbmRleCA0
NjhiZGJkMGY0NjkyNGRjMmVlOTMzNzQwOGU4NjcyYTJlODY3YTQ5Li42YjFmNDkwOTg3NTA2OWI0
ZDlmZWVmZGQ3NDgzZjVhMDNmYzUwNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXJlbmFt
ZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5
cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAqCkBAIC05LDcgKzksNyBAQAogKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQogKiAgIGluZGVudGF0aW9uOjQKICoKLSogICBDcmVhdGVkIGJ5OiBQZXJsIHNj
cmlwdCB3cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5zdGVpbgorKiAgIENyZWF0ZWQgYnk6IFBlcmwg
c2NyaXB0IHRvb2xzL2dlbnJlbi5wbCB3cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5zdGVpbgogKgog
KiAgQ29udGFpbnMgZGF0YSBmb3IgcmVuYW1pbmcgSUNVIGV4cG9ydHMuCiAqICBHZXRzIGluY2x1
ZGVkIGJ5IHVtYWNoaW5lLmgKQEAgLTIxLDkgKzIxLDEzIEBACiAjaWZuZGVmIFVSRU5BTUVfSAog
I2RlZmluZSBVUkVOQU1FX0gKIAotLyogVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBk
aXNhYmxlIHJlbmFtaW5nIG9uIHBsYXRmb3JtcwotICAgdGhhdCBkbyBub3QgdXNlIEF1dG9jb25m
LiAqLwotLyogI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMSAqLworLyogVV9ESVNBQkxFX1JF
TkFNSU5HIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBmb2xsb3dpbmcgd2F5czoKKyAqICAgLSB3aGVu
IHJ1bm5pbmcgY29uZmlndXJlLCBlLmcuCisgKiAgICAgICAgcnVuQ29uZmlndXJlSUNVIExpbnV4
IC0tZGlzYWJsZS1yZW5hbWluZworICogICAtIGJ5IGNoYW5naW5nIHRoZSBkZWZhdWx0IHNldHRp
bmcgb2YgVV9ESVNBQkxFX1JFTkFNSU5HIGluIHVjb25maWcuaAorICovCisKKyNpbmNsdWRlICJ1
bmljb2RlL3Vjb25maWcuaCIKIAogI2lmICFVX0RJU0FCTEVfUkVOQU1JTkcKIApAQCAtMzEsNiAr
MzUsNyBAQAogICAgdGhlIHBsYXRmb3JtIGEgY2hhbmNlIHRvIGRlZmluZSBpdCBmaXJzdC4KICAg
IE5vcm1hbGx5IChpZiB1dHlwZXMuaCBvciB1bWFjaGluZS5oIHdhcyBpbmNsdWRlZCBmaXJzdCkg
dGhpcyB3aWxsIG5vdCBiZSBuZWNlc3NhcnkgYXMgaXQgd2lsbCBhbHJlYWR5IGJlIGRlZmluZWQu
CiAgKi8KKwogI2lmbmRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICNpbmNsdWRlICJ1bmlj
b2RlL3VtYWNoaW5lLmgiCiAjZW5kaWYKQEAgLTQ4LDE0ICs1Myw5IEBACiAKIC8qIEMgZXhwb3J0
cyByZW5hbWluZyBkYXRhICovCiAKLSNkZWZpbmUgREVDUE9XRVJTIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShERUNQT1dFUlMpCi0jZGVmaW5lIERFQ1NUSUNLWVRBQiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoREVDU1RJQ0tZVEFCKQotI2RlZmluZSBMTm5uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMTm5uKQogI2RlZmluZSBUX0NTdHJpbmdfaW50NjRUb1N0cmluZyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoVF9DU3RyaW5nX2ludDY0VG9TdHJpbmcpCiAjZGVmaW5lIFRfQ1N0cmluZ19p
bnRlZ2VyVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19pbnRlZ2Vy
VG9TdHJpbmcpCi0jZGVmaW5lIFRfQ1N0cmluZ19zdHJpY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShUX0NTdHJpbmdfc3RyaWNtcCkKICNkZWZpbmUgVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdlcikKLSNk
ZWZpbmUgVF9DU3RyaW5nX3N0cm5pY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NTdHJp
bmdfc3RybmljbXApCiAjZGVmaW5lIFRfQ1N0cmluZ190b0xvd2VyQ2FzZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoVF9DU3RyaW5nX3RvTG93ZXJDYXNlKQogI2RlZmluZSBUX0NTdHJpbmdfdG9V
cHBlckNhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ190b1VwcGVyQ2FzZSkK
ICNkZWZpbmUgVUNOVl9GUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShVQ05WX0ZST01fVV9DQUxMQkFDS19FU0NBUEUpCkBAIC03NSw2ICs3NSw3IEBACiAjZGVm
aW5lIF9BU0NJSURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9BU0NJSURhdGEpCiAjZGVm
aW5lIF9Cb2N1MURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9Cb2N1MURhdGEpCiAjZGVm
aW5lIF9DRVNVOERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9DRVNVOERhdGEpCisjZGVm
aW5lIF9Db21wb3VuZFRleHREYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfQ29tcG91bmRU
ZXh0RGF0YSkKICNkZWZpbmUgX0haRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0haRGF0
YSkKICNkZWZpbmUgX0lNQVBEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfSU1BUERhdGEp
CiAjZGVmaW5lIF9JU0NJSURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9JU0NJSURhdGEp
CkBAIC0xMDIsMjEgKzEwMyw4IEBACiAjZGVmaW5lIF9VVEYzMkxFRGF0YSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoX1VURjMyTEVEYXRhKQogI2RlZmluZSBfVVRGN0RhdGEgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKF9VVEY3RGF0YSkKICNkZWZpbmUgX1VURjhEYXRhIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShfVVRGOERhdGEpCi0jZGVmaW5lIGJtc19jbG9zZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoYm1zX2Nsb3NlKQotI2RlZmluZSBibXNfZW1wdHkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGJtc19lbXB0eSkKLSNkZWZpbmUgYm1zX2dldERhdGEgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGJtc19nZXREYXRhKQotI2RlZmluZSBibXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoYm1zX29wZW4pCi0jZGVmaW5lIGJtc19zZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKGJtc19zZWFyY2gpCi0jZGVmaW5lIGJtc19zZXRUYXJnZXRTdHJpbmcgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKGJtc19zZXRUYXJnZXRTdHJpbmcpCi0jZGVmaW5lIGJ1aWxkV1NDb25mdXNh
YmxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYnVpbGRXU0NvbmZ1c2FibGVEYXRhKQog
I2RlZmluZSBjbWVtb3J5X2NsZWFudXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGNtZW1vcnlf
Y2xlYW51cCkKICNkZWZpbmUgY21lbW9yeV9pblVzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Y21lbW9yeV9pblVzZSkKLSNkZWZpbmUgZDJ1dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KGQydXRhYmxlKQotI2RlZmluZSBkZWxldGVDRUxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KGRlbGV0ZUNFTGlzdCkKLSNkZWZpbmUgZGVsZXRlQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKGRlbGV0ZUNoYXJzKQotI2RlZmluZSBkZWxldGVDb2xsRGF0YUNhY2hlRW50cnkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNvbGxEYXRhQ2FjaGVFbnRyeSkKLSNkZWZpbmUgZGVs
ZXRlU3RyaW5nTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlU3RyaW5nTGlzdCkK
LSNkZWZpbmUgZGVsZXRlVW5pY29kZVN0cmluZ0tleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
ZGVsZXRlVW5pY29kZVN0cmluZ0tleSkKICNkZWZpbmUgaXpydWxlX2Nsb25lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShpenJ1bGVfY2xvbmUpCiAjZGVmaW5lIGl6cnVsZV9jbG9zZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Nsb3NlKQogI2RlZmluZSBpenJ1bGVfZXF1YWxzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVfZXF1YWxzKQpAQCAtMjEyLDggKzIwMCw2IEBA
CiAjZGVmaW5lIHJlc19sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShyZXNfbG9hZCkKICNk
ZWZpbmUgcmVzX3JlYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc19yZWFkKQogI2RlZmlu
ZSByZXNfdW5sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShyZXNfdW5sb2FkKQotI2RlZmlu
ZSB0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJhdG9yKQotI2RlZmluZSB0cmllZGljdF9zd2Fw
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh0cmllZGljdF9zd2FwKQogI2RlZmluZSB1X1VDaGFy
c1RvQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfVUNoYXJzVG9DaGFycykKICNkZWZp
bmUgdV9hdXN0cmNweSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9hdXN0cmNweSkKICNkZWZp
bmUgdV9hdXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfYXVzdHJuY3B5KQpAQCAt
MjM5LDYgKzIyNSw3IEBACiAjZGVmaW5lIHVfZmVvZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9mZW9mKQogI2RlZmluZSB1X2ZmbHVzaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZmx1
c2gpCiAjZGVmaW5lIHVfZmdldENvbnZlcnRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9m
Z2V0Q29udmVydGVyKQorI2RlZmluZSB1X2ZnZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfZmdldE51bWJlckZvcm1hdCkKICNkZWZpbmUgdV9mZ2V0YyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9mZ2V0YykKICNkZWZpbmUgdV9mZ2V0Y29kZXBhZ2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfZmdldGNvZGVwYWdlKQogI2RlZmluZSB1X2ZnZXRjeCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0Y3gpCkBAIC0yNjcsNiArMjU0LDcgQEAKICNkZWZpbmUg
dV9mc2V0dHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnNldHRyYW5z
bGl0ZXJhdG9yKQogI2RlZmluZSB1X2ZzdHJvcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2ZzdHJvcGVuKQogI2RlZmluZSB1X2Z1bmdldGMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
ZnVuZ2V0YykKKyNkZWZpbmUgdV9nZXRCaWRpUGFpcmVkQnJhY2tldCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXRCaWRpUGFpcmVkQnJhY2tldCkKICNkZWZpbmUgdV9nZXRDb21iaW5pbmdD
bGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRDb21iaW5pbmdDbGFzcykKICNkZWZp
bmUgdV9nZXREYXRhRGlyZWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldERhdGFE
aXJlY3RvcnkpCiAjZGVmaW5lIHVfZ2V0RGF0YVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfZ2V0RGF0YVZlcnNpb24pCkBAIC0yNzYsNiArMjY0LDcgQEAKICNkZWZpbmUgdV9nZXRJ
bnRQcm9wZXJ0eU1heFZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldEludFByb3Bl
cnR5TWF4VmFsdWUpCiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKQogI2RlZmluZSB1X2dldElu
dFByb3BlcnR5VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlW
YWx1ZSkKKyNkZWZpbmUgdV9nZXRNYWluUHJvcGVydGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9nZXRNYWluUHJvcGVydGllcykKICNkZWZpbmUgdV9nZXROdW1lcmljVmFsdWUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0TnVtZXJpY1ZhbHVlKQogI2RlZmluZSB1X2dldFByb3Bl
cnR5RW51bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRQcm9wZXJ0eUVudW0pCiAjZGVm
aW5lIHVfZ2V0UHJvcGVydHlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFByb3Bl
cnR5TmFtZSkKQEAgLTI4NCw5ICsyNzMsOSBAQAogI2RlZmluZSB1X2dldFVuaWNvZGVQcm9wZXJ0
aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFVuaWNvZGVQcm9wZXJ0aWVzKQogI2Rl
ZmluZSB1X2dldFVuaWNvZGVWZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFVu
aWNvZGVWZXJzaW9uKQogI2RlZmluZSB1X2dldFZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfZ2V0VmVyc2lvbikKKyNkZWZpbmUgdV9nZXRfc3Rkb3V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2dldF9zdGRvdXQpCiAjZGVmaW5lIHVfaGFzQmluYXJ5UHJvcGVydHkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfaGFzQmluYXJ5UHJvcGVydHkpCiAjZGVmaW5lIHVfaW5pdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pbml0KQotI2RlZmluZSB1X2lzRGF0YU9sZGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzRGF0YU9sZGVyKQogI2RlZmluZSB1X2lzSURJZ25v
cmFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXNJRElnbm9yYWJsZSkKICNkZWZpbmUg
dV9pc0lEUGFydCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0lEUGFydCkKICNkZWZpbmUg
dV9pc0lEU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXNJRFN0YXJ0KQpAQCAtMzE4
LDcgKzMwNyw2IEBACiAjZGVmaW5lIHVfaXN0aXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9pc3RpdGxlKQogI2RlZmluZSB1X2lzdXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
aXN1cHBlcikKICNkZWZpbmUgdV9pc3hkaWdpdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9p
c3hkaWdpdCkKLSNkZWZpbmUgdV9sZW5ndGhPZklkZW50aWNhbExldmVsUnVuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2xlbmd0aE9mSWRlbnRpY2FsTGV2ZWxSdW4pCiAjZGVmaW5lIHVfbG9j
YnVuZF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2Nsb3NlKQogI2Rl
ZmluZSB1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1X2xvY2J1bmRfaW5pdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2luaXQpCkBAIC0zMzQsNyArMzIyLDkgQEAKICNk
ZWZpbmUgdV9tZW1zZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbWVtc2V0KQogI2RlZmlu
ZSB1X3BhcnNlTWVzc2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wYXJzZU1lc3NhZ2Up
CiAjZGVmaW5lIHVfcGFyc2VNZXNzYWdlV2l0aEVycm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X3BhcnNlTWVzc2FnZVdpdGhFcnJvcikKKyNkZWZpbmUgdV9wcmludGYgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVfcHJpbnRmKQogI2RlZmluZSB1X3ByaW50Zl9wYXJzZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9wcmludGZfcGFyc2UpCisjZGVmaW5lIHVfcHJpbnRmX3UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmX3UpCiAjZGVmaW5lIHVfcmVsZWFzZURlZmF1bHRD
b252ZXJ0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcmVsZWFzZURlZmF1bHRDb252ZXJ0
ZXIpCiAjZGVmaW5lIHVfc2NhbmZfcGFyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfc2Nh
bmZfcGFyc2UpCiAjZGVmaW5lIHVfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X3NldEF0b21pY0luY0RlY0Z1bmN0aW9ucykKQEAgLTQ0Niw3ICs0MzYs
MTAgQEAKICNkZWZpbmUgdWJpZGlfZ2V0TWF4VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHViaWRpX2dldE1heFZhbHVlKQogI2RlZmluZSB1YmlkaV9nZXRNZW1vcnkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHViaWRpX2dldE1lbW9yeSkKICNkZWZpbmUgdWJpZGlfZ2V0TWlycm9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNaXJyb3IpCisjZGVmaW5lIHViaWRpX2dl
dFBhaXJlZEJyYWNrZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhaXJlZEJy
YWNrZXQpCisjZGVmaW5lIHViaWRpX2dldFBhaXJlZEJyYWNrZXRUeXBlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1YmlkaV9nZXRQYWlyZWRCcmFja2V0VHlwZSkKICNkZWZpbmUgdWJpZGlfZ2V0
UGFyYUxldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhTGV2ZWwpCisj
ZGVmaW5lIHViaWRpX2dldFBhcmFMZXZlbEF0SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHViaWRpX2dldFBhcmFMZXZlbEF0SW5kZXgpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFncmFwaCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFyYWdyYXBoKQogI2RlZmluZSB1Ymlk
aV9nZXRQYXJhZ3JhcGhCeUluZGV4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQ
YXJhZ3JhcGhCeUluZGV4KQogI2RlZmluZSB1YmlkaV9nZXRQcm9jZXNzZWRMZW5ndGggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFByb2Nlc3NlZExlbmd0aCkKQEAgLTQ3MSw2ICs0
NjQsNyBAQAogI2RlZmluZSB1YmlkaV9yZW9yZGVyTG9naWNhbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWJpZGlfcmVvcmRlckxvZ2ljYWwpCiAjZGVmaW5lIHViaWRpX3Jlb3JkZXJWaXN1YWwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3Jlb3JkZXJWaXN1YWwpCiAjZGVmaW5lIHVi
aWRpX3NldENsYXNzQ2FsbGJhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldENs
YXNzQ2FsbGJhY2spCisjZGVmaW5lIHViaWRpX3NldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHViaWRpX3NldENvbnRleHQpCiAjZGVmaW5lIHViaWRpX3NldEludmVyc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldEludmVyc2UpCiAjZGVmaW5lIHViaWRpX3NldExp
bmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldExpbmUpCiAjZGVmaW5lIHViaWRp
X3NldFBhcmEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldFBhcmEpCkBAIC00OTUs
NiArNDg5LDcgQEAKICNkZWZpbmUgdWJya19vcGVuUnVsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVicmtfb3BlblJ1bGVzKQogI2RlZmluZSB1YnJrX3ByZWNlZGluZyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWJya19wcmVjZWRpbmcpCiAjZGVmaW5lIHVicmtfcHJldmlvdXMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcHJldmlvdXMpCisjZGVmaW5lIHVicmtfcmVmcmVzaFVU
ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3JlZnJlc2hVVGV4dCkKICNkZWZpbmUg
dWJya19zYWZlQ2xvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfc2FmZUNsb25lKQog
I2RlZmluZSB1YnJrX3NldFRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfc2V0VGV4
dCkKICNkZWZpbmUgdWJya19zZXRVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19z
ZXRVVGV4dCkKQEAgLTUxMyw2ICs1MDgsNyBAQAogI2RlZmluZSB1Y2FsX2dldERTVFNhdmluZ3Mg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RFNUU2F2aW5ncykKICNkZWZpbmUgdWNh
bF9nZXREYXlPZldlZWtUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERheU9m
V2Vla1R5cGUpCiAjZGVmaW5lIHVjYWxfZ2V0RGVmYXVsdFRpbWVab25lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FsX2dldERlZmF1bHRUaW1lWm9uZSkKKyNkZWZpbmUgdWNhbF9nZXRGaWVs
ZERpZmZlcmVuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RmllbGREaWZmZXJl
bmNlKQogI2RlZmluZSB1Y2FsX2dldEdyZWdvcmlhbkNoYW5nZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNhbF9nZXRHcmVnb3JpYW5DaGFuZ2UpCiAjZGVmaW5lIHVjYWxfZ2V0S2V5d29yZFZh
bHVlc0ZvckxvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRLZXl3b3JkVmFs
dWVzRm9yTG9jYWxlKQogI2RlZmluZSB1Y2FsX2dldExpbWl0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2dldExpbWl0KQpAQCAtNTIxLDEzICs1MTcsMTggQEAKICNkZWZpbmUgdWNhbF9n
ZXROb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0Tm93KQogI2RlZmluZSB1Y2Fs
X2dldFRaRGF0YVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VFpEYXRh
VmVyc2lvbikKICNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lRGlzcGxheU5hbWUpCisjZGVmaW5lIHVjYWxf
Z2V0VGltZVpvbmVJRCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZUlE
KQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lSURGb3JXaW5kb3dzSUQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVJREZvcldpbmRvd3NJRCkKKyNkZWZpbmUgdWNhbF9n
ZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dl
dFRpbWVab25lVHJhbnNpdGlvbkRhdGUpCiAjZGVmaW5lIHVjYWxfZ2V0VHlwZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUeXBlKQogI2RlZmluZSB1Y2FsX2dldFdlZWtlbmRUcmFu
c2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFdlZWtlbmRUcmFuc2l0aW9u
KQorI2RlZmluZSB1Y2FsX2dldFdpbmRvd3NUaW1lWm9uZUlEIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2dldFdpbmRvd3NUaW1lWm9uZUlEKQogI2RlZmluZSB1Y2FsX2luRGF5bGlnaHRU
aW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2luRGF5bGlnaHRUaW1lKQogI2RlZmlu
ZSB1Y2FsX2lzU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2lzU2V0KQogI2RlZmlu
ZSB1Y2FsX2lzV2Vla2VuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9pc1dlZWtlbmQp
CiAjZGVmaW5lIHVjYWxfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuKQog
I2RlZmluZSB1Y2FsX29wZW5Db3VudHJ5VGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y2FsX29wZW5Db3VudHJ5VGltZVpvbmVzKQorI2RlZmluZSB1Y2FsX29wZW5UaW1lWm9uZUlE
RW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfb3BlblRpbWVab25lSURF
bnVtZXJhdGlvbikKICNkZWZpbmUgdWNhbF9vcGVuVGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y2FsX29wZW5UaW1lWm9uZXMpCiAjZGVmaW5lIHVjYWxfcm9sbCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9yb2xsKQogI2RlZmluZSB1Y2FsX3NldCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhbF9zZXQpCkBAIC01NjAsNiArNTYxLDggQEAKICNkZWZpbmUgdWNhc2Vt
YXBfZ2V0QnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0
QnJlYWtJdGVyYXRvcikKICNkZWZpbmUgdWNhc2VtYXBfZ2V0TG9jYWxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRMb2NhbGUpCiAjZGVmaW5lIHVjYXNlbWFwX2dldE9wdGlv
bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX2dldE9wdGlvbnMpCisjZGVmaW5l
IHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUpCisjZGVmaW5lIHVjYXNlbWFwX21hcFVURjggVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX21hcFVURjgpCiAjZGVmaW5lIHVjYXNlbWFw
X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX29wZW4pCiAjZGVmaW5lIHVj
YXNlbWFwX3NldEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFw
X3NldEJyZWFrSXRlcmF0b3IpCiAjZGVmaW5lIHVjYXNlbWFwX3NldExvY2FsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfc2V0TG9jYWxlKQpAQCAtNTY5LDExICs1NzIsNiBAQAog
I2RlZmluZSB1Y2FzZW1hcF91dGY4VG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNh
c2VtYXBfdXRmOFRvTG93ZXIpCiAjZGVmaW5lIHVjYXNlbWFwX3V0ZjhUb1RpdGxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF91dGY4VG9UaXRsZSkKICNkZWZpbmUgdWNhc2VtYXBf
dXRmOFRvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3V0ZjhUb1VwcGVy
KQotI2RlZmluZSB1Y2RfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9jbG9zZSkK
LSNkZWZpbmUgdWNkX2ZsdXNoQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9mbHVz
aENhY2hlKQotI2RlZmluZSB1Y2RfZnJlZUNhY2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2RfZnJlZUNhY2hlKQotI2RlZmluZSB1Y2RfZ2V0Q29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjZF9nZXRDb2xsYXRvcikKLSNkZWZpbmUgdWNkX29wZW4gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjZF9vcGVuKQogI2RlZmluZSB1Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0cyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNoYXJfYWRkUHJvcGVydHlTdGFydHMpCiAjZGVmaW5lIHVj
aGFyX3N3YXBOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNoYXJfc3dhcE5hbWVzKQog
I2RlZmluZSB1Y2xuX2NsZWFudXBPbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbG5fY2xl
YW51cE9uZSkKQEAgLTY1Niw2ICs2NTQsNyBAQAogI2RlZmluZSB1Y252X2lvX3N0cmlwQVNDSUlG
b3JDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2lvX3N0cmlwQVNDSUlGb3JD
b21wYXJlKQogI2RlZmluZSB1Y252X2lvX3N0cmlwRUJDRElDRm9yQ29tcGFyZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNudl9pb19zdHJpcEVCQ0RJQ0ZvckNvbXBhcmUpCiAjZGVmaW5lIHVj
bnZfaXNBbWJpZ3VvdXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaXNBbWJpZ3VvdXMp
CisjZGVmaW5lIHVjbnZfaXNGaXhlZFdpZHRoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252
X2lzRml4ZWRXaWR0aCkKICNkZWZpbmUgdWNudl9sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y252X2xvYWQpCiAjZGVmaW5lIHVjbnZfbG9hZFNoYXJlZERhdGEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjbnZfbG9hZFNoYXJlZERhdGEpCiAjZGVmaW5lIHVjbnZfb3BlbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNudl9vcGVuKQpAQCAtNjk3LDcgKzY5Niw2IEBACiAjZGVmaW5l
IHVjb2xfY2FsY1NvcnRLZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2FsY1NvcnRL
ZXkpCiAjZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXlTaW1wbGVUZXJ0aWFyeSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9jYWxjU29ydEtleVNpbXBsZVRlcnRpYXJ5KQogI2RlZmluZSB1Y29s
X2Nsb25lQmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb25lQmluYXJ5KQot
I2RlZmluZSB1Y29sX2Nsb25lUnVsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
Y2xvbmVSdWxlRGF0YSkKICNkZWZpbmUgdWNvbF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9jbG9zZSkKICNkZWZpbmUgdWNvbF9jbG9zZUVsZW1lbnRzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y29sX2Nsb3NlRWxlbWVudHMpCiAjZGVmaW5lIHVjb2xfY291bnRBdmFpbGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY291bnRBdmFpbGFibGUpCkBAIC03MTQs
OSArNzEyLDExIEBACiAjZGVmaW5lIHVjb2xfZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y29sX2dldEF2YWlsYWJsZSkKICNkZWZpbmUgdWNvbF9nZXRCb3VuZCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRCb3VuZCkKICNkZWZpbmUgdWNvbF9nZXRDRVN0cmVu
Z3RoRGlmZmVyZW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDRVN0cmVuZ3Ro
RGlmZmVyZW5jZSkKKyNkZWZpbmUgdWNvbF9nZXRDb2xsYXRpb25LZXkgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjb2xfZ2V0Q29sbGF0aW9uS2V5KQogI2RlZmluZSB1Y29sX2dldENvbnRyYWN0
aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnMpCiAjZGVm
aW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25zQW5kRXhwYW5zaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnNBbmRFeHBhbnNpb25zKQogI2RlZmluZSB1Y29sX2dl
dERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldERpc3BsYXlOYW1l
KQorI2RlZmluZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcykKICNkZWZpbmUgdWNvbF9n
ZXRGaXJzdENFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEZpcnN0Q0UpCiAjZGVm
aW5lIHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQpCiAjZGVmaW5lIHVjb2xfZ2V0S2V5d29yZFZh
bHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRLZXl3b3JkVmFsdWVzKQpAQCAt
NzM1LDggKzczNSw2IEBACiAjZGVmaW5lIHVjb2xfZ2V0UnVsZXNFeCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9nZXRSdWxlc0V4KQogI2RlZmluZSB1Y29sX2dldFNob3J0RGVmaW5pdGlv
blN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTaG9ydERlZmluaXRpb25T
dHJpbmcpCiAjZGVmaW5lIHVjb2xfZ2V0U29ydEtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRTb3J0S2V5KQotI2RlZmluZSB1Y29sX2dldFNvcnRLZXlTaXplIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXlTaXplKQotI2RlZmluZSB1Y29sX2dldFNvcnRL
ZXlXaXRoQWxsb2NhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5
V2l0aEFsbG9jYXRpb24pCiAjZGVmaW5lIHVjb2xfZ2V0U3RyZW5ndGggVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjb2xfZ2V0U3RyZW5ndGgpCiAjZGVmaW5lIHVjb2xfZ2V0VGFpbG9yZWRTZXQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0VGFpbG9yZWRTZXQpCiAjZGVmaW5lIHVj
b2xfZ2V0VUNBVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRVQ0FWZXJz
aW9uKQpAQCAtNzg4LDYgKzc4Niw3IEBACiAjZGVmaW5lIHVjb2xfc2V0VmFyaWFibGVUb3AgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc2V0VmFyaWFibGVUb3ApCiAjZGVmaW5lIHVjb2xf
c3RyY29sbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zdHJjb2xsKQogI2RlZmluZSB1
Y29sX3N0cmNvbGxJdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGxJdGVy
KQorI2RlZmluZSB1Y29sX3N0cmNvbGxVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29s
X3N0cmNvbGxVVEY4KQogI2RlZmluZSB1Y29sX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfc3dhcCkKICNkZWZpbmUgdWNvbF9zd2FwQmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y29sX3N3YXBCaW5hcnkpCiAjZGVmaW5lIHVjb2xfc3dhcEludmVyc2VVQ0EgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcEludmVyc2VVQ0EpCkBAIC04MDUsMTIgKzgwNCwx
NCBAQAogI2RlZmluZSB1Y3NkZXRfZW5hYmxlSW5wdXRGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjc2RldF9lbmFibGVJbnB1dEZpbHRlcikKICNkZWZpbmUgdWNzZGV0X2dldEFsbERl
dGVjdGFibGVDaGFyc2V0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2dldEFsbERl
dGVjdGFibGVDaGFyc2V0cykKICNkZWZpbmUgdWNzZGV0X2dldENvbmZpZGVuY2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRDb25maWRlbmNlKQorI2RlZmluZSB1Y3NkZXRfZ2V0
RGV0ZWN0YWJsZUNoYXJzZXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0RGV0
ZWN0YWJsZUNoYXJzZXRzKQogI2RlZmluZSB1Y3NkZXRfZ2V0TGFuZ3VhZ2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjc2RldF9nZXRMYW5ndWFnZSkKICNkZWZpbmUgdWNzZGV0X2dldE5hbWUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXROYW1lKQogI2RlZmluZSB1Y3NkZXRf
Z2V0VUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0VUNoYXJzKQogI2Rl
ZmluZSB1Y3NkZXRfaXNJbnB1dEZpbHRlckVuYWJsZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjc2RldF9pc0lucHV0RmlsdGVyRW5hYmxlZCkKICNkZWZpbmUgdWNzZGV0X29wZW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9vcGVuKQogI2RlZmluZSB1Y3NkZXRfc2V0RGVjbGFy
ZWRFbmNvZGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldERlY2xhcmVkRW5j
b2RpbmcpCisjZGVmaW5lIHVjc2RldF9zZXREZXRlY3RhYmxlQ2hhcnNldCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNzZGV0X3NldERldGVjdGFibGVDaGFyc2V0KQogI2RlZmluZSB1Y3NkZXRf
c2V0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldFRleHQpCiAjZGVmaW5l
IHVjdXJyX2NvdW50Q3VycmVuY2llcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfY291
bnRDdXJyZW5jaWVzKQogI2RlZmluZSB1Y3Vycl9mb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjdXJyX2ZvckxvY2FsZSkKQEAgLTgxOCw4ICs4MTksMTAgQEAKICNkZWZpbmUgdWN1
cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vy
cl9nZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMpCiAjZGVmaW5lIHVjdXJyX2dldEtleXdvcmRWYWx1
ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldEtleXdvcmRWYWx1
ZXNGb3JMb2NhbGUpCiAjZGVmaW5lIHVjdXJyX2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjdXJyX2dldE5hbWUpCisjZGVmaW5lIHVjdXJyX2dldE51bWVyaWNDb2RlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXROdW1lcmljQ29kZSkKICNkZWZpbmUgdWN1cnJfZ2V0
UGx1cmFsTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0UGx1cmFsTmFtZSkK
ICNkZWZpbmUgdWN1cnJfZ2V0Um91bmRpbmdJbmNyZW1lbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjdXJyX2dldFJvdW5kaW5nSW5jcmVtZW50KQorI2RlZmluZSB1Y3Vycl9pc0F2YWlsYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfaXNBdmFpbGFibGUpCiAjZGVmaW5lIHVj
dXJyX29wZW5JU09DdXJyZW5jaWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9vcGVu
SVNPQ3VycmVuY2llcykKICNkZWZpbmUgdWN1cnJfcmVnaXN0ZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjdXJyX3JlZ2lzdGVyKQogI2RlZmluZSB1Y3Vycl91bnJlZ2lzdGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl91bnJlZ2lzdGVyKQpAQCAtODMzLDYgKzgzNiw3IEBACiAj
ZGVmaW5lIHVkYXRfZ2V0MkRpZ2l0WWVhclN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZGF0X2dldDJEaWdpdFllYXJTdGFydCkKICNkZWZpbmUgdWRhdF9nZXRBdmFpbGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1ZGF0X2dldENh
bGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldENhbGVuZGFyKQorI2RlZmlu
ZSB1ZGF0X2dldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0Q29udGV4
dCkKICNkZWZpbmUgdWRhdF9nZXRMb2NhbGVCeVR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVkYXRfZ2V0TG9jYWxlQnlUeXBlKQogI2RlZmluZSB1ZGF0X2dldE51bWJlckZvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRf
Z2V0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRTeW1ib2xzKQpAQCAt
ODQwLDggKzg0NCwxMCBAQAogI2RlZmluZSB1ZGF0X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkYXRfb3BlbikKICNkZWZpbmUgdWRhdF9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWRhdF9wYXJzZSkKICNkZWZpbmUgdWRhdF9wYXJzZUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZGF0X3BhcnNlQ2FsZW5kYXIpCisjZGVmaW5lIHVkYXRfcmVnaXN0ZXJPcGVu
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfcmVnaXN0ZXJPcGVuZXIpCiAjZGVmaW5l
IHVkYXRfc2V0MkRpZ2l0WWVhclN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3Nl
dDJEaWdpdFllYXJTdGFydCkKICNkZWZpbmUgdWRhdF9zZXRDYWxlbmRhciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdF9zZXRDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9zZXRDb250ZXh0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldENvbnRleHQpCiAjZGVmaW5lIHVkYXRfc2V0
TGVuaWVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRMZW5pZW50KQogI2RlZmlu
ZSB1ZGF0X3NldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRO
dW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRfc2V0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdF9zZXRTeW1ib2xzKQpAQCAtODQ5LDYgKzg1NSw3IEBACiAjZGVmaW5lIHVkYXRf
dG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVybikKICNkZWZp
bmUgdWRhdF90b1BhdHRlcm5SZWxhdGl2ZURhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRlKQogI2RlZmluZSB1ZGF0X3RvUGF0dGVyblJlbGF0aXZl
VGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF90b1BhdHRlcm5SZWxhdGl2ZVRpbWUp
CisjZGVmaW5lIHVkYXRfdW5yZWdpc3Rlck9wZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWRhdF91bnJlZ2lzdGVyT3BlbmVyKQogI2RlZmluZSB1ZGF0YV9jaGVja0NvbW1vbkRhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2NoZWNrQ29tbW9uRGF0YSkKICNkZWZpbmUgdWRh
dGFfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2Nsb3NlKQogI2RlZmluZSB1
ZGF0YV9jbG9zZVN3YXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2Nsb3NlU3dh
cHBlcikKQEAgLTg5MiwxMiArODk5LDE3IEBACiAjZGVmaW5lIHVkYXRwZ19zZXRBcHBlbmRJdGVt
TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdHBnX3NldEFwcGVuZEl0ZW1OYW1lKQog
I2RlZmluZSB1ZGF0cGdfc2V0RGF0ZVRpbWVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVkYXRwZ19zZXREYXRlVGltZUZvcm1hdCkKICNkZWZpbmUgdWRhdHBnX3NldERlY2ltYWwgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19zZXREZWNpbWFsKQorI2RlZmluZSB1ZGljdF9z
d2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGljdF9zd2FwKQorI2RlZmluZSB1ZHRpdHZm
bXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkdGl0dmZtdF9jbG9zZSkKKyNkZWZp
bmUgdWR0aXR2Zm10X2Zvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X2Zv
cm1hdCkKKyNkZWZpbmUgdWR0aXR2Zm10X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
dGl0dmZtdF9vcGVuKQogI2RlZmluZSB1ZW51bV9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWVudW1fY2xvc2UpCiAjZGVmaW5lIHVlbnVtX2NvdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZW51bV9jb3VudCkKICNkZWZpbmUgdWVudW1fbmV4dCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWVudW1fbmV4dCkKICNkZWZpbmUgdWVudW1fbmV4dERlZmF1bHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVlbnVtX25leHREZWZhdWx0KQogI2RlZmluZSB1ZW51bV9vcGVuQ2hhclN0
cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3BlbkNoYXJT
dHJpbmdzRW51bWVyYXRpb24pCiAjZGVmaW5lIHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRp
b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRp
b24pCisjZGVmaW5lIHVlbnVtX29wZW5VQ2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWVudW1fb3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uKQogI2RlZmlu
ZSB1ZW51bV9yZXNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fcmVzZXQpCiAjZGVm
aW5lIHVlbnVtX3VuZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91bmV4dCkKICNk
ZWZpbmUgdWVudW1fdW5leHREZWZhdWx0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91
bmV4dERlZmF1bHQpCkBAIC05MDgsMzQgKzkyMCw0OSBAQAogI2RlZmluZSB1ZmlsZV9nZXRjaCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZpbGVfZ2V0Y2gpCiAjZGVmaW5lIHVmaWxlX2dldGNo
MzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmaWxlX2dldGNoMzIpCiAjZGVmaW5lIHVmbXRf
NjR0b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfNjR0b3UpCisjZGVmaW5lIHVmbXRf
Y2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfY2xvc2UpCiAjZGVmaW5lIHVmbXRf
ZGVmYXVsdENQVG9Vbmljb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2RlZmF1bHRD
UFRvVW5pY29kZSkKICNkZWZpbmUgdWZtdF9kaWdpdHZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Zm10X2RpZ2l0dmFsdWUpCisjZGVmaW5lIHVmbXRfZ2V0QXJyYXlJdGVtQnlJbmRleCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4KQorI2RlZmlu
ZSB1Zm10X2dldEFycmF5TGVuZ3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldEFy
cmF5TGVuZ3RoKQorI2RlZmluZSB1Zm10X2dldERhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVmbXRfZ2V0RGF0ZSkKKyNkZWZpbmUgdWZtdF9nZXREZWNOdW1DaGFycyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWZtdF9nZXREZWNOdW1DaGFycykKKyNkZWZpbmUgdWZtdF9nZXREb3VibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RG91YmxlKQorI2RlZmluZSB1Zm10X2dl
dEludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldEludDY0KQorI2RlZmluZSB1
Zm10X2dldExvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0TG9uZykKKyNkZWZp
bmUgdWZtdF9nZXRPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0T2JqZWN0
KQorI2RlZmluZSB1Zm10X2dldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0
VHlwZSkKKyNkZWZpbmUgdWZtdF9nZXRVQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVm
bXRfZ2V0VUNoYXJzKQorI2RlZmluZSB1Zm10X2lzTnVtZXJpYyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWZtdF9pc051bWVyaWMpCiAjZGVmaW5lIHVmbXRfaXNkaWdpdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWZtdF9pc2RpZ2l0KQorI2RlZmluZSB1Zm10X29wZW4gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVmbXRfb3BlbikKICNkZWZpbmUgdWZtdF9wdG91IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Zm10X3B0b3UpCiAjZGVmaW5lIHVmbXRfdXRvNjQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVmbXRfdXRvNjQpCiAjZGVmaW5lIHVmbXRfdXRvcCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWZtdF91dG9wKQorI2RlZmluZSB1Z2VuZGVyX2dldEluc3RhbmNlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Z2VuZGVyX2dldEluc3RhbmNlKQorI2RlZmluZSB1Z2VuZGVyX2dl
dExpc3RHZW5kZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVnZW5kZXJfZ2V0TGlzdEdlbmRl
cikKICNkZWZpbmUgdWhhc2hfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Ns
b3NlKQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5nKQogI2Rl
ZmluZSB1aGFzaF9jb21wYXJlQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Nv
bXBhcmVDaGFycykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUlDaGFycyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWhhc2hfY29tcGFyZUlDaGFycykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUxvbmcg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVMb25nKQorI2RlZmluZSB1aGFz
aF9jb21wYXJlU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJl
U2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9jb21wYXJlVUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1aGFzaF9jb21wYXJlVUNoYXJzKQogI2RlZmluZSB1aGFzaF9jb21wYXJlVW5pY29k
ZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZVVuaWNvZGVTdHJp
bmcpCiAjZGVmaW5lIHVoYXNoX2NvdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9j
b3VudCkKICNkZWZpbmUgdWhhc2hfZGVsZXRlSGFzaHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1aGFzaF9kZWxldGVIYXNodGFibGUpCi0jZGVmaW5lIHVoYXNoX2RlbGV0ZVVPYmplY3Qg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVVPYmplY3QpCi0jZGVmaW5lIHVo
YXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Rl
bGV0ZVVuaWNvZGVTdHJpbmcpCisjZGVmaW5lIHVoYXNoX2RlbGV0ZVNjcmlwdFNldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9l
cXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2VxdWFscykKKyNkZWZpbmUgdWhh
c2hfZXF1YWxzU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9lcXVhbHNT
Y3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2ZpbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2ZpbmQpCi0jZGVmaW5lIHVoYXNoX2ZyZWVCbG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWhhc2hfZnJlZUJsb2NrKQogI2RlZmluZSB1aGFzaF9nZXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2dldCkKICNkZWZpbmUgdWhhc2hfZ2V0aSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWhhc2hfZ2V0aSkKICNkZWZpbmUgdWhhc2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmlu
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmlu
ZykKICNkZWZpbmUgdWhhc2hfaGFzaENoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFz
aF9oYXNoQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2hhc2hJQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2hhc2hJQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2hhc2hMb25nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoTG9uZykKKyNkZWZpbmUgdWhhc2hfaGFzaFNjcmlw
dFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFNjcmlwdFNldCkKICNkZWZp
bmUgdWhhc2hfaGFzaFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVD
aGFycykKLSNkZWZpbmUgdWhhc2hfaGFzaFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2hhc2hVQ2hhcnNOKQogI2RlZmluZSB1aGFzaF9oYXNoVW5pY29kZVN0cmluZyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVo
YXNoX2lnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2lnZXQpCiAjZGVmaW5lIHVo
YXNoX2lnZXRpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9pZ2V0aSkKQEAgLTk4NSw2
ICsxMDEyLDcgQEAKICNkZWZpbmUgdWl0ZXJfc2V0VVRGMTZCRSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWl0ZXJfc2V0VVRGMTZCRSkKICNkZWZpbmUgdWl0ZXJfc2V0VVRGOCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGOCkKICNkZWZpbmUgdWxkbl9jbG9zZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWxkbl9jbG9zZSkKKyNkZWZpbmUgdWxkbl9nZXRDb250ZXh0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldENvbnRleHQpCiAjZGVmaW5lIHVsZG5fZ2V0
RGlhbGVjdEhhbmRsaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldERpYWxlY3RI
YW5kbGluZykKICNkZWZpbmUgdWxkbl9nZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVsZG5fZ2V0TG9jYWxlKQogI2RlZmluZSB1bGRuX2tleURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bGRuX2tleURpc3BsYXlOYW1lKQpAQCAtOTkyLDYgKzEwMjAsNyBAQAog
I2RlZmluZSB1bGRuX2xhbmd1YWdlRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVsZG5fbGFuZ3VhZ2VEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9sb2NhbGVEaXNwbGF5TmFt
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9sb2NhbGVEaXNwbGF5TmFtZSkKICNkZWZp
bmUgdWxkbl9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX29wZW4pCisjZGVmaW5l
IHVsZG5fb3BlbkZvckNvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fb3BlbkZv
ckNvbnRleHQpCiAjZGVmaW5lIHVsZG5fcmVnaW9uRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVsZG5fcmVnaW9uRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fc2NyaXB0Q29k
ZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX3NjcmlwdENvZGVEaXNw
bGF5TmFtZSkKICNkZWZpbmUgdWxkbl9zY3JpcHREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWxkbl9zY3JpcHREaXNwbGF5TmFtZSkKQEAgLTEwMjgsNiArMTA1Nyw3IEBACiAj
ZGVmaW5lIHVsb2NfZ2V0RGlzcGxheUxhbmd1YWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bG9jX2dldERpc3BsYXlMYW5ndWFnZSkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5TmFtZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxvY19n
ZXREaXNwbGF5U2NyaXB0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlT
Y3JpcHQpCisjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheVNjcmlwdEluQ29udGV4dCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5U2NyaXB0SW5Db250ZXh0KQogI2RlZmluZSB1
bG9jX2dldERpc3BsYXlWYXJpYW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERp
c3BsYXlWYXJpYW50KQogI2RlZmluZSB1bG9jX2dldElTTzNDb3VudHJ5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bG9jX2dldElTTzNDb3VudHJ5KQogI2RlZmluZSB1bG9jX2dldElTTzNMYW5n
dWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRJU08zTGFuZ3VhZ2UpCkBAIC0x
MDc1LDE4ICsxMTA1LDIxIEBACiAjZGVmaW5lIHVtc2dfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bXNnX3RvUGF0dGVybikKICNkZWZpbmUgdW1zZ192Zm9ybWF0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bXNnX3Zmb3JtYXQpCiAjZGVmaW5lIHVtc2dfdnBhcnNlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3ZwYXJzZSkKLSNkZWZpbmUgdW10eF9hdG9taWNfZGVj
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2F0b21pY19kZWMpCi0jZGVmaW5lIHVtdHhf
YXRvbWljX2luYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9hdG9taWNfaW5jKQotI2Rl
ZmluZSB1bXR4X2NsZWFudXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfY2xlYW51cCkK
LSNkZWZpbmUgdW10eF9kZXN0cm95IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2Rlc3Ry
b3kpCi0jZGVmaW5lIHVtdHhfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9pbml0
KQogI2RlZmluZSB1bXR4X2xvY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfbG9jaykK
ICNkZWZpbmUgdW10eF91bmxvY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfdW5sb2Nr
KQogI2RlZmluZSB1bmlzZXRfZ2V0VW5pY29kZTMySW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVuaXNldF9nZXRVbmljb2RlMzJJbnN0YW5jZSkKICNkZWZpbmUgdW5vcm0yX2FwcGVu
ZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2FwcGVuZCkKICNkZWZpbmUgdW5vcm0y
X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfY2xvc2UpCisjZGVmaW5lIHVu
b3JtMl9jb21wb3NlUGFpciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2NvbXBvc2VQ
YWlyKQorI2RlZmluZSB1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtMl9nZXRDb21iaW5pbmdDbGFzcykKICNkZWZpbmUgdW5vcm0yX2dldERlY29t
cG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXREZWNvbXBvc2l0aW9u
KQogI2RlZmluZSB1bm9ybTJfZ2V0SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVu
b3JtMl9nZXRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GQ0luc3RhbmNlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZDSW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9n
ZXRORkRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GREluc3Rh
bmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktDQ2FzZWZvbGRJbnN0YW5jZSkKKyNkZWZpbmUgdW5v
cm0yX2dldE5GS0NJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5G
S0NJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0RJbnN0YW5jZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW5vcm0yX2dldE5GS0RJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldFJh
d0RlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRSYXdEZWNv
bXBvc2l0aW9uKQogI2RlZmluZSB1bm9ybTJfaGFzQm91bmRhcnlBZnRlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5QWZ0ZXIpCiAjZGVmaW5lIHVub3JtMl9oYXNC
b3VuZGFyeUJlZm9yZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5
QmVmb3JlKQogI2RlZmluZSB1bm9ybTJfaXNJbmVydCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW5vcm0yX2lzSW5lcnQpCkBAIC0xMTAwLDcgKzExMzMsNyBAQAogI2RlZmluZSB1bm9ybV9jbG9z
ZUl0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2Nsb3NlSXRlcikKICNkZWZpbmUg
dW5vcm1fY29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1fY29tcGFyZSkKICNk
ZWZpbmUgdW5vcm1fY29uY2F0ZW5hdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2Nv
bmNhdGVuYXRlKQotI2RlZmluZSB1bm9ybV9nZXRGQ0RUcmllSW5kZXggVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVub3JtX2dldEZDRFRyaWVJbmRleCkKKyNkZWZpbmUgdW5vcm1fZ2V0RkNEMTYg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldEZDRDE2KQogI2RlZmluZSB1bm9ybV9n
ZXRRdWlja0NoZWNrIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRRdWlja0NoZWNr
KQogI2RlZmluZSB1bm9ybV9pc05vcm1hbGl6ZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVu
b3JtX2lzTm9ybWFsaXplZCkKICNkZWZpbmUgdW5vcm1faXNOb3JtYWxpemVkV2l0aE9wdGlvbnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2lzTm9ybWFsaXplZFdpdGhPcHRpb25zKQpA
QCAtMTEyMCw2ICsxMTUzLDcgQEAKICNkZWZpbmUgdW51bV9mb3JtYXREb3VibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0RG91YmxlKQogI2RlZmluZSB1bnVtX2Zvcm1hdERv
dWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdERvdWJsZUN1
cnJlbmN5KQogI2RlZmluZSB1bnVtX2Zvcm1hdEludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bnVtX2Zvcm1hdEludDY0KQorI2RlZmluZSB1bnVtX2Zvcm1hdFVGb3JtYXR0YWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9mb3JtYXRVRm9ybWF0dGFibGUpCiAjZGVmaW5lIHVu
dW1fZ2V0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2dldEF0dHJpYnV0
ZSkKICNkZWZpbmUgdW51bV9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVu
dW1fZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1bnVtX2dldERvdWJsZUF0dHJpYnV0ZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW51bV9nZXREb3VibGVBdHRyaWJ1dGUpCkBAIC0xMTMyLDExICsx
MTY2LDI0IEBACiAjZGVmaW5lIHVudW1fcGFyc2VEb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVudW1fcGFyc2VEb3VibGUpCiAjZGVmaW5lIHVudW1fcGFyc2VEb3VibGVDdXJyZW5jeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZURvdWJsZUN1cnJlbmN5KQogI2RlZmlu
ZSB1bnVtX3BhcnNlSW50NjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VJbnQ2
NCkKKyNkZWZpbmUgdW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGUpCiAjZGVmaW5lIHVudW1fc2V0QXR0cmlidXRl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3NldEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51
bV9zZXREb3VibGVBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0RG91
YmxlQXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3NldFN5bWJvbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW51bV9zZXRTeW1ib2wpCiAjZGVmaW5lIHVudW1fc2V0VGV4dEF0dHJpYnV0ZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRUZXh0QXR0cmlidXRlKQogI2RlZmluZSB1bnVt
X3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV90b1BhdHRlcm4pCisjZGVm
aW5lIHVudW1zeXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfY2xvc2Up
CisjZGVmaW5lIHVudW1zeXNfZ2V0RGVzY3JpcHRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVudW1zeXNfZ2V0RGVzY3JpcHRpb24pCisjZGVmaW5lIHVudW1zeXNfZ2V0TmFtZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19nZXROYW1lKQorI2RlZmluZSB1bnVtc3lzX2dldFJh
ZGl4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX2dldFJhZGl4KQorI2RlZmluZSB1
bnVtc3lzX2lzQWxnb3JpdGhtaWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfaXNB
bGdvcml0aG1pYykKKyNkZWZpbmUgdW51bXN5c19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bnVtc3lzX29wZW4pCisjZGVmaW5lIHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW5BdmFpbGFibGVOYW1lcykKKyNkZWZpbmUg
dW51bXN5c19vcGVuQnlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW5C
eU5hbWUpCisjZGVmaW5lIHVwbHJ1bGVzX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cGxydWxlc19jbG9zZSkKKyNkZWZpbmUgdXBscnVsZXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBscnVsZXNfb3BlbikKKyNkZWZpbmUgdXBscnVsZXNfb3BlbkZvclR5cGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX29wZW5Gb3JUeXBlKQorI2RlZmluZSB1cGxydWxl
c19zZWxlY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX3NlbGVjdCkKICNkZWZp
bmUgdXBsdWdfY2xvc2VMaWJyYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19jbG9z
ZUxpYnJhcnkpCiAjZGVmaW5lIHVwbHVnX2ZpbmRMaWJyYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cGx1Z19maW5kTGlicmFyeSkKICNkZWZpbmUgdXBsdWdfZ2V0Q29uZmlndXJhdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfZ2V0Q29uZmlndXJhdGlvbikKQEAgLTExNjAs
MTIgKzEyMDcsMTIgQEAKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z0xldmVsIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTGV2ZWwpCiAjZGVmaW5lIHVwbHVnX3NldFBsdWdOYW1l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTmFtZSkKICNkZWZpbmUgdXBs
dWdfc2V0UGx1Z05vVW5sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVn
Tm9VbmxvYWQpCi0jZGVmaW5lIHVwbmFtZV9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cG5hbWVfc3dhcCkKICNkZWZpbmUgdXByb3BzX2dldFNvdXJjZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXByb3BzX2dldFNvdXJjZSkKICNkZWZpbmUgdXByb3BzdmVjX2FkZFByb3BlcnR5U3Rh
cnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMp
CiAjZGVmaW5lIHVwcnZfYWVzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Fl
c3RybmNweSkKICNkZWZpbmUgdXBydl9hc2NpaUZyb21FYmNkaWMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVwcnZfYXNjaWlGcm9tRWJjZGljKQogI2RlZmluZSB1cHJ2X2FzY2lpdG9sb3dlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9hc2NpaXRvbG93ZXIpCisjZGVmaW5lIHVwcnZf
Y2FsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NhbGxvYykKICNkZWZpbmUgdXBy
dl9jZWlsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NlaWwpCiAjZGVmaW5lIHVwcnZf
Y250dGFiX2FkZENvbnRyYWN0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NudHRh
Yl9hZGRDb250cmFjdGlvbikKICNkZWZpbmUgdXBydl9jbnR0YWJfY2hhbmdlQ29udHJhY3Rpb24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY250dGFiX2NoYW5nZUNvbnRyYWN0aW9uKQpA
QCAtMTIwMiw3ICsxMjQ5LDYgQEAKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U2V0U3RhdHVzRnJv
bVN0cmluZ1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRT
dGF0dXNGcm9tU3RyaW5nUXVpZXQpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c1F1
aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNRdWll
dCkKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U3RhdHVzVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFN0YXR1c1RvU3RyaW5nKQotI2RlZmluZSB1cHJ2X2Rl
Y0NvbnRleHRUZXN0RW5kaWFuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRl
eHRUZXN0RW5kaWFuKQogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRUZXN0U2F2ZWRTdGF0dXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RTYXZlZFN0YXR1cykKICNk
ZWZpbmUgdXBydl9kZWNDb250ZXh0VGVzdFN0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9kZWNDb250ZXh0VGVzdFN0YXR1cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0WmVyb1N0
YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0WmVyb1N0YXR1cykK
QEAgLTEyNjgsMTIgKzEzMTQsMTQgQEAKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJWZXJzaW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclZlcnNpb24pCiAjZGVmaW5lIHVw
cnZfZGVjTnVtYmVyWG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclhv
cikKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJaZXJvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2RlY051bWJlclplcm8pCisjZGVmaW5lIHVwcnZfZGVsZXRlVU9iamVjdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9kZWxldGVVT2JqZWN0KQogI2RlZmluZSB1cHJ2X2RlbGV0ZV9j
b2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWxldGVfY29sbEl0ZXJh
dGUpCiAjZGVmaW5lIHVwcnZfZGxfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
ZGxfY2xvc2UpCiAjZGVmaW5lIHVwcnZfZGxfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9kbF9vcGVuKQotI2RlZmluZSB1cHJ2X2RsX3N5bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBydl9kbF9zeW0pCisjZGVmaW5lIHVwcnZfZGxzeW1fZnVuYyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9kbHN5bV9mdW5jKQogI2RlZmluZSB1cHJ2X2Vhc3RybmNweSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYXN0cm5jcHkpCiAjZGVmaW5lIHVwcnZfZWJjZGljRnJv
bUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ViY2RpY0Zyb21Bc2NpaSkKKyNk
ZWZpbmUgdXBydl9lYmNkaWNUb0xvd2VyY2FzZUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2ViY2RpY1RvTG93ZXJjYXNlQXNjaWkpCiAjZGVmaW5lIHVwcnZfZWJjZGljdG9sb3dl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYmNkaWN0b2xvd2VyKQogI2RlZmluZSB1
cHJ2X2ZhYnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZmFicykKICNkZWZpbmUgdXBy
dl9mbG9vciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9mbG9vcikKQEAgLTEyOTUsMTMg
KzEzNDMsMTMgQEAKICNkZWZpbmUgdXBydl9pbml0X2NvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X2luaXRfY29sbEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfaW5pdF9wY2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaW5pdF9wY2UpCiAjZGVmaW5lIHVwcnZfaW50
MzJDb21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ludDMyQ29tcGFyYXRv
cikKKyNkZWZpbmUgdXBydl9pc0FTQ0lJTGV0dGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2lzQVNDSUlMZXR0ZXIpCiAjZGVmaW5lIHVwcnZfaXNJbmZpbml0ZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9pc0luZmluaXRlKQogI2RlZmluZSB1cHJ2X2lzSW52YXJpYW50U3Ry
aW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzSW52YXJpYW50U3RyaW5nKQogI2Rl
ZmluZSB1cHJ2X2lzSW52YXJpYW50VVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9pc0ludmFyaWFudFVTdHJpbmcpCiAjZGVmaW5lIHVwcnZfaXNOYU4gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfaXNOYU4pCiAjZGVmaW5lIHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzTmVnYXRpdmVJbmZpbml0eSkKICNkZWZpbmUg
dXBydl9pc1Bvc2l0aXZlSW5maW5pdHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNQ
b3NpdGl2ZUluZmluaXR5KQotI2RlZmluZSB1cHJ2X2lzUnVsZVdoaXRlU3BhY2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfaXNSdWxlV2hpdGVTcGFjZSkKICNkZWZpbmUgdXBydl9pdG91
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2l0b3UpCiAjZGVmaW5lIHVwcnZfbG9nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2xvZykKICNkZWZpbmUgdXBydl9tYWxsb2MgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWFsbG9jKQpAQCAtMTMxMiw3ICsxMzYwLDYgQEAK
ICNkZWZpbmUgdXBydl9taW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWluKQogI2Rl
ZmluZSB1cHJ2X21vZGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbW9kZikKICNkZWZp
bmUgdXBydl9uZXdfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbmV3
X2NvbGxJdGVyYXRlKQotI2RlZmluZSB1cHJ2X29wZW5SdWxlV2hpdGVTcGFjZVNldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9vcGVuUnVsZVdoaXRlU3BhY2VTZXQpCiAjZGVmaW5lIHVw
cnZfcGFyc2VDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wYXJzZUN1cnJl
bmN5KQogI2RlZmluZSB1cHJ2X3BhdGhJc0Fic29sdXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X3BhdGhJc0Fic29sdXRlKQogI2RlZmluZSB1cHJ2X3BvdyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9wb3cpCkBAIC0xMzIwLDkgKzEzNjcsMTIgQEAKICNkZWZpbmUgdXBydl9y
ZWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3JlYWxsb2MpCiAjZGVmaW5lIHVw
cnZfcm91bmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcm91bmQpCiAjZGVmaW5lIHVw
cnZfc29ydEFycmF5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3NvcnRBcnJheSkKKyNk
ZWZpbmUgdXBydl9zdGFibGVCaW5hcnlTZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfc3RhYmxlQmluYXJ5U2VhcmNoKQogI2RlZmluZSB1cHJ2X3N0ckNvbXBhcmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyQ29tcGFyZSkKICNkZWZpbmUgdXBydl9zdHJkdXAgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyZHVwKQorI2RlZmluZSB1cHJ2X3N0cmljbXAg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyaWNtcCkKICNkZWZpbmUgdXBydl9zdHJu
ZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0cm5kdXApCisjZGVmaW5lIHVwcnZf
c3RybmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RybmljbXApCiAjZGVmaW5l
IHVwcnZfc3ludGF4RXJyb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3ludGF4RXJy
b3IpCiAjZGVmaW5lIHVwcnZfdGltZXpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
dGltZXpvbmUpCiAjZGVmaW5lIHVwcnZfdG91cHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl90b3VwcGVyKQpAQCAtMTM4Niw2ICsxNDM2LDcgQEAKICNkZWZpbmUgdXJlZ2V4X29wZW5V
VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X29wZW5VVGV4dCkKICNkZWZpbmUg
dXJlZ2V4X3BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9wYXR0ZXJuKQog
I2RlZmluZSB1cmVnZXhfcGF0dGVyblVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVn
ZXhfcGF0dGVyblVUZXh0KQorI2RlZmluZSB1cmVnZXhfcmVmcmVzaFVUZXh0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVmcmVzaFVUZXh0KQogI2RlZmluZSB1cmVnZXhfcmVnaW9u
RW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVnaW9uRW5kKQogI2RlZmluZSB1
cmVnZXhfcmVnaW9uRW5kNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25F
bmQ2NCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvblN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cmVnZXhfcmVnaW9uU3RhcnQpCkBAIC0xNDE0LDYgKzE0NjUsMTkgQEAKICNkZWZpbmUgdXJl
Z2V4X3VzZUFuY2hvcmluZ0JvdW5kcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3Vz
ZUFuY2hvcmluZ0JvdW5kcykKICNkZWZpbmUgdXJlZ2V4X3VzZVRyYW5zcGFyZW50Qm91bmRzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXNlVHJhbnNwYXJlbnRCb3VuZHMpCiAjZGVm
aW5lIHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFyQXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFyQXQpCisjZGVmaW5lIHVyZWdpb25fYXJlRXF1YWwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fYXJlRXF1YWwpCisjZGVmaW5lIHVyZWdp
b25fY29udGFpbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fY29udGFpbnMpCisj
ZGVmaW5lIHVyZWdpb25fZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVn
aW9uX2dldEF2YWlsYWJsZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluZWRSZWdpb25zIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnMpCisjZGVm
aW5lIHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9uc09mVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXJlZ2lvbl9nZXRDb250YWluZWRSZWdpb25zT2ZUeXBlKQorI2RlZmluZSB1cmVnaW9u
X2dldENvbnRhaW5pbmdSZWdpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0
Q29udGFpbmluZ1JlZ2lvbikKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluaW5nUmVnaW9uT2ZU
eXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb25P
ZlR5cGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0TnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdpb25fZ2V0TnVtZXJpY0NvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UHJlZmVy
cmVkVmFsdWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFByZWZlcnJlZFZh
bHVlcykKKyNkZWZpbmUgdXJlZ2lvbl9nZXRSZWdpb25Db2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnaW9uX2dldFJlZ2lvbkNvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJv
bUNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0UmVnaW9uRnJvbUNvZGUp
CisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJvbU51bWVyaWNDb2RlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkZyb21OdW1lcmljQ29kZSkKKyNkZWZpbmUgdXJl
Z2lvbl9nZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFR5cGUpCiAj
ZGVmaW5lIHVyZXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY2xvc2UpCiAj
ZGVmaW5lIHVyZXNfY29weVJlc2IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY29weVJl
c2IpCiAjZGVmaW5lIHVyZXNfY291bnRBcnJheUl0ZW1zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cmVzX2NvdW50QXJyYXlJdGVtcykKQEAgLTE0NTcsMTMgKzE1MjEsMTkgQEAKICNkZWZpbmUg
dXJlc19vcGVuVSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19vcGVuVSkKICNkZWZpbmUg
dXJlc19yZXNldEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX3Jlc2V0SXRl
cmF0b3IpCiAjZGVmaW5lIHVyZXNfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19z
d2FwKQorI2RlZmluZSB1c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzKQogI2RlZmluZSB1c2NyaXB0
X2Nsb3NlUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2Nsb3NlUnVuKQogI2Rl
ZmluZSB1c2NyaXB0X2dldENvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0
Q29kZSkKICNkZWZpbmUgdXNjcmlwdF9nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c2NyaXB0X2dldE5hbWUpCisjZGVmaW5lIHVzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNhbXBsZVN0cmluZykKKyNkZWZpbmUgdXNjcmlw
dF9nZXRTYW1wbGVVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0
X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2NyaXB0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNjcmlwdCkKICNkZWZpbmUgdXNjcmlwdF9n
ZXRTY3JpcHRFeHRlbnNpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNj
cmlwdEV4dGVuc2lvbnMpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2hvcnROYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNob3J0TmFtZSkKKyNkZWZpbmUgdXNjcmlwdF9nZXRV
c2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRVc2FnZSkKICNkZWZpbmUg
dXNjcmlwdF9oYXNTY3JpcHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfaGFzU2Ny
aXB0KQorI2RlZmluZSB1c2NyaXB0X2lzQ2FzZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
Y3JpcHRfaXNDYXNlZCkKKyNkZWZpbmUgdXNjcmlwdF9pc1JpZ2h0VG9MZWZ0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lzUmlnaHRUb0xlZnQpCiAjZGVmaW5lIHVzY3JpcHRfbmV4
dFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9uZXh0UnVuKQogI2RlZmluZSB1
c2NyaXB0X29wZW5SdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfb3BlblJ1bikK
ICNkZWZpbmUgdXNjcmlwdF9yZXNldFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlw
dF9yZXNldFJ1bikKQEAgLTE1NjcsNiArMTYzNywxMSBAQAogI2RlZmluZSB1c3Bvb2ZfZ2V0QWxs
b3dlZExvY2FsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRBbGxvd2VkTG9j
YWxlcykKICNkZWZpbmUgdXNwb29mX2dldEFsbG93ZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0QWxsb3dlZFVuaWNvZGVTZXQpCiAjZGVmaW5lIHVzcG9vZl9n
ZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRDaGVja3MpCisjZGVm
aW5lIHVzcG9vZl9nZXRJbmNsdXNpb25TZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9v
Zl9nZXRJbmNsdXNpb25TZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRJbmNsdXNpb25Vbmljb2RlU2V0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0SW5jbHVzaW9uVW5pY29kZVNldCkK
KyNkZWZpbmUgdXNwb29mX2dldFJlY29tbWVuZGVkU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZWNvbW1lbmRl
ZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRSZWNvbW1lbmRl
ZFVuaWNvZGVTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZXN0cmljdGlvbkxldmVsIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0UmVzdHJpY3Rpb25MZXZlbCkKICNkZWZpbmUgdXNw
b29mX2dldFNrZWxldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0
b24pCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvblVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzcG9vZl9nZXRTa2VsZXRvblVURjgpCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvblVu
aWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVu
aWNvZGVTdHJpbmcpCkBAIC0xNTc4LDIzICsxNjUzLDI1IEBACiAjZGVmaW5lIHVzcG9vZl9zZXRB
bGxvd2VkTG9jYWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3NldEFsbG93ZWRM
b2NhbGVzKQogI2RlZmluZSB1c3Bvb2Zfc2V0QWxsb3dlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRBbGxvd2VkVW5pY29kZVNldCkKICNkZWZpbmUgdXNwb29m
X3NldENoZWNrcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3NldENoZWNrcykKKyNk
ZWZpbmUgdXNwb29mX3NldFJlc3RyaWN0aW9uTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzcG9vZl9zZXRSZXN0cmljdGlvbkxldmVsKQogI2RlZmluZSB1c3Bvb2Zfc3dhcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3N3YXApCiAjZGVmaW5lIHVzcHJlcF9jbG9zZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX2Nsb3NlKQogI2RlZmluZSB1c3ByZXBfb3BlbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX29wZW4pCiAjZGVmaW5lIHVzcHJlcF9vcGVu
QnlUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3ByZXBfb3BlbkJ5VHlwZSkKICNkZWZp
bmUgdXNwcmVwX3ByZXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9wcmVwYXJl
KQogI2RlZmluZSB1c3ByZXBfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX3N3
YXApCi0jZGVmaW5lIHVzdHJfZm9sZENhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJf
Zm9sZENhc2UpCi0jZGVmaW5lIHVzdHJfdG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXN0cl90b0xvd2VyKQotI2RlZmluZSB1c3RyX3RvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzdHJfdG9UaXRsZSkKLSNkZWZpbmUgdXN0cl90b1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3RyX3RvVXBwZXIpCi0jZGVmaW5lIHV0ZXh0X2Nhc2VDb21wYXJlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jYXNlQ29tcGFyZSkKLSNkZWZpbmUgdXRleHRfY2FzZUNv
bXBhcmVOYXRpdmVMaW1pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2FzZUNvbXBh
cmVOYXRpdmVMaW1pdCkKKyNkZWZpbmUgdXN0cl9oYXNoQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3RyX2hhc2hDaGFyc04pCisjZGVmaW5lIHVzdHJfaGFzaElDaGFyc04gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFzaElDaGFyc04pCisjZGVmaW5lIHVzdHJfaGFzaFVD
aGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFzaFVDaGFyc04pCisjZGVmaW5l
IHVzdHJjYXNlX2ludGVybmFsRm9sZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2Vf
aW50ZXJuYWxGb2xkKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5hbFRvTG93ZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsVG9Mb3dlcikKKyNkZWZpbmUgdXN0cmNh
c2VfaW50ZXJuYWxUb1RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRl
cm5hbFRvVGl0bGUpCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9VcHBlciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJuYWxUb1VwcGVyKQorI2RlZmluZSB1c3RyY2Fz
ZV9tYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX21hcCkKKyNkZWZpbmUgdXN0
cmNhc2Vfc2V0VGVtcENhc2VNYXBMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJj
YXNlX3NldFRlbXBDYXNlTWFwTG9jYWxlKQogI2RlZmluZSB1dGV4dF9jaGFyMzJBdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2hhcjMyQXQpCiAjZGVmaW5lIHV0ZXh0X2Nsb25lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jbG9uZSkKICNkZWZpbmUgdXRleHRfY2xvc2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2Nsb3NlKQotI2RlZmluZSB1dGV4dF9jb21w
YXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jb21wYXJlKQotI2RlZmluZSB1dGV4
dF9jb21wYXJlTmF0aXZlTGltaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvbXBh
cmVOYXRpdmVMaW1pdCkKICNkZWZpbmUgdXRleHRfY29weSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXRleHRfY29weSkKICNkZWZpbmUgdXRleHRfY3VycmVudDMyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1dGV4dF9jdXJyZW50MzIpCiAjZGVmaW5lIHV0ZXh0X2VxdWFscyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXRleHRfZXF1YWxzKQpAQCAtMTc0Myw0OTkgKzE4MjAsNiBAQAogI2Rl
ZmluZSB6dHJhbnNfc2V0VGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5zX3NldFRp
bWUpCiAjZGVmaW5lIHp0cmFuc19zZXRUbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5z
X3NldFRvKQogCi0KLS8qIEMrKyBjbGFzcyBuYW1lcyByZW5hbWluZyBkZWZpbmVzICovCi0KLSNp
ZmRlZiBYUF9DUExVU1BMVVMKLSNpZiAhVV9IQVZFX05BTUVTUEFDRQotCi0jZGVmaW5lIEFic29s
dXRlVmFsdWVTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFic29sdXRlVmFs
dWVTdWJzdGl0dXRpb24pCi0jZGVmaW5lIEFsdGVybmF0ZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbHRlcm5hdGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNk
ZWZpbmUgQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFuY2hvclRhYmxlKQot
I2RlZmluZSBBbmRDb25zdHJhaW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbmRDb25zdHJh
aW50KQotI2RlZmluZSBBbm51YWxUaW1lWm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEFubnVhbFRpbWVab25lUnVsZSkKLSNkZWZpbmUgQW55VHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEFueVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBBcmFiaWNPcGVuVHlw
ZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJhYmljT3BlblR5cGVMYXlv
dXRFbmdpbmUpCi0jZGVmaW5lIEFyYWJpY1NoYXBpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEFyYWJpY1NoYXBpbmcpCi0jZGVmaW5lIEFyZ0V4dHJhY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQXJnRXh0cmFjdG9yKQotI2RlZmluZSBCTVBTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEJNUFNldCkKLSNkZWZpbmUgQmFja3dhcmRVVHJpZTJTdHJpbmdJdGVyYXRvciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQmFja3dhcmRVVHJpZTJTdHJpbmdJdGVyYXRvcikKLSNkZWZpbmUg
QmFkQ2hhcmFjdGVyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhZENoYXJhY3RlclRh
YmxlKQotI2RlZmluZSBCYXNpY0NhbGVuZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQmFzaWNDYWxlbmRhckZhY3RvcnkpCi0jZGVmaW5lIEJhc2ljVGltZVpvbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEJhc2ljVGltZVpvbmUpCi0jZGVmaW5lIEJpbmFyeVNlYXJjaExvb2t1
cFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCaW5hcnlTZWFyY2hMb29rdXBUYWJsZSkK
LSNkZWZpbmUgQm95ZXJNb29yZVNlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQm95ZXJN
b29yZVNlYXJjaCkKLSNkZWZpbmUgQnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgQnJlYWtUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQnJlYWtUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgQnVkZGhpc3RDYWxl
bmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVkZGhpc3RDYWxlbmRhcikKLSNkZWZpbmUg
QnVpbGRDb21wYWN0VHJpZUhvcml6b250YWxOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShC
dWlsZENvbXBhY3RUcmllSG9yaXpvbnRhbE5vZGUpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVO
b2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBhY3RUcmllTm9kZSkKLSNkZWZp
bmUgQnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9kZSkKLSNkZWZpbmUgQnVpbGRlclNjcmlwdFNldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRlclNjcmlwdFNldCkKLSNkZWZpbmUgQnl0ZVNp
bmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ5dGVTaW5rKQotI2RlZmluZSBDRUJ1ZmZlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VCdWZmZXIpCi0jZGVmaW5lIENFQ2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENFQ2FsZW5kYXIpCi0jZGVmaW5lIENFTGlzdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ0VMaXN0KQotI2RlZmluZSBDRVRvU3RyaW5nc01hcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ0VUb1N0cmluZ3NNYXApCi0jZGVmaW5lIENGYWN0b3J5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDRmFjdG9yeSkKLSNkZWZpbmUgQ2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENhbGVuZGFyKQotI2RlZmluZSBDYWxlbmRhckFzdHJvbm9tZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyQXN0cm9ub21lcikKLSNkZWZpbmUgQ2FsZW5k
YXJDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FsZW5kYXJDYWNoZSkKLSNkZWZpbmUg
Q2FsZW5kYXJEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckRhdGEpCi0jZGVm
aW5lIENhbGVuZGFyU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FsZW5kYXJTZXJ2
aWNlKQotI2RlZmluZSBDYW5vbkl0ZXJEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5v
bkl0ZXJEYXRhKQotI2RlZmluZSBDYW5vbkl0ZXJEYXRhU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRhU2luZ2xldG9uKQotI2RlZmluZSBDYW5vbk1hcmtGaWx0
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uTWFya0ZpbHRlcikKLSNkZWZpbmUgQ2Fu
b25TaGFwaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vblNoYXBpbmcpCi0jZGVmaW5l
IENhbm9uaWNhbEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbmljYWxJdGVy
YXRvcikKLSNkZWZpbmUgQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDYXNlTWFwVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1
YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5p
bmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBDaGFpbmlu
Z0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNk
ZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQz
U3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25T
dWJ0YWJsZSkKLSNkZWZpbmUgQ2hhclN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
clN0cmluZykKLSNkZWZpbmUgQ2hhclN1YnN0aXR1dGlvbkZpbHRlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhclN1YnN0aXR1dGlvbkZpbHRlcikKLSNkZWZpbmUgQ2hhcmFjdGVySXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBD
aGFyYWN0ZXJOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyYWN0ZXJOb2RlKQotI2Rl
ZmluZSBDaGFyc2V0RGV0ZWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXREZXRl
Y3RvcikKLSNkZWZpbmUgQ2hhcnNldE1hdGNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0TWF0Y2gpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfMjAyMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJDTiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJDTikKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nXzIwMjJKUCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJK
UCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJLUiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcnNldFJlY29nXzIwMjJLUikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMSkKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfMV9kYSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
MV9kYSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9kZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9kZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
MV9lbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9lbikKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfMV9lcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9mciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9mcikKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfMV9pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfMV9pdCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9ubCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9ubCkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfMV9ubyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9u
bykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9wdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfMV9wdCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9z
diBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9zdikKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzg4NTlfMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nXzg4NTlfMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9jcyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9jcykKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfMl9odSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9o
dSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfMl9wbCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9y
byBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9ybykKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzg4NTlfNSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nXzg4NTlfNSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNV9ydSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNV9ydSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfNiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNikKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNl9hciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfNl9hcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNykKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfN19lbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
N19lbCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfOCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV84X0lfaGUpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ184ODU5XzhfaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ184ODU5XzhfaGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzkpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z184ODU5XzlfdHIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5Xzlf
dHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBfYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBf
YXJfbHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX2x0
cikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyMF9hcl9ydGwgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXJfcnRsKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
SUJNNDI0X2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0X2hl
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX2x0ciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9sdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19J
Qk00MjRfaGVfcnRsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0
X2hlX3J0bCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0tPSThfUiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nX0tPSThfUikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURjggVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEY4KQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfVVRGXzE2X0JFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRG
XzE2X0JFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzE2X0xFIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzE2X0xFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRG
XzMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0JFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0
UmVjb2dfVVRGXzMyX0JFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0xFIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyX0xFKQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfVW5pY29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VuaWNv
ZGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19iaWc1IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGFyc2V0UmVjb2dfYmlnNSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1YyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1YykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19q
cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1Y19qcCkKLSNkZWZpbmUg
Q2hhcnNldFJlY29nX2V1Y19rciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
X2V1Y19rcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2diXzE4MDMwIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfZ2JfMTgwMzApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19tYmNz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfbWJjcykKLSNkZWZpbmUgQ2hh
cnNldFJlY29nX3NiY3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19zYmNz
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfc2ppcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nX3NqaXMpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ193aW5kb3dzXzEyNTYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ193aW5kb3dzXzEyNTYpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ25pemVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2duaXplcikKLSNkZWZpbmUgQ2hlY2tlZEFycmF5Qnl0
ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoZWNrZWRBcnJheUJ5dGVTaW5rKQotI2Rl
ZmluZSBDaGluZXNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoaW5lc2VDYWxl
bmRhcikKLSNkZWZpbmUgQ2hvaWNlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaG9p
Y2VGb3JtYXQpCi0jZGVmaW5lIENsYXNzRGVmRm9ybWF0MVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDbGFzc0RlZkZvcm1hdDFUYWJsZSkKLSNkZWZpbmUgQ2xhc3NEZWZGb3JtYXQyVGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENsYXNzRGVmRm9ybWF0MlRhYmxlKQotI2RlZmlu
ZSBDbGFzc0RlZmluaXRpb25UYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZp
bml0aW9uVGFibGUpCi0jZGVmaW5lIENsb2NrTWF0aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2xvY2tNYXRoKQotI2RlZmluZSBDb2xsRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29s
bERhdGEpCi0jZGVmaW5lIENvbGxEYXRhQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENv
bGxEYXRhQ2FjaGUpCi0jZGVmaW5lIENvbGxEYXRhQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ29sbERhdGFDYWNoZUVudHJ5KQotI2RlZmluZSBDb2xsYXRpb25FbGVtZW50SXRl
cmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcikK
LSNkZWZpbmUgQ29sbGF0aW9uS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsYXRpb25L
ZXkpCi0jZGVmaW5lIENvbGxhdGlvbkxvY2FsZUxpc3RFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ29sbGF0aW9uTG9jYWxlTGlzdEVudW1lcmF0aW9uKQotI2RlZmluZSBDb2xs
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0b3IpCi0jZGVmaW5lIENvbGxhdG9y
RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0b3JGYWN0b3J5KQotI2RlZmlu
ZSBDb21wYWN0VHJpZURpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBhY3RU
cmllRGljdGlvbmFyeSkKLSNkZWZpbmUgQ29tcGFjdFRyaWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRyaWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgQ29tcG9zZU5v
cm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb21wb3NlTm9ybWFsaXplcjIpCi0j
ZGVmaW5lIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENv
bXBvdW5kVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIENvbmZ1c2FibGVkYXRhQnVpbGRlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29uZnVzYWJsZWRhdGFCdWlsZGVyKQotI2RlZmluZSBDb250
ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkJhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJz
dGl0dXRpb25CYXNlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0
MVN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1
YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRh
YmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ29w
dGljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvcHRpY0NhbGVuZGFyKQotI2Rl
ZmluZSBDb3ZlcmFnZUZvcm1hdDFUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJh
Z2VGb3JtYXQxVGFibGUpCi0jZGVmaW5lIENvdmVyYWdlRm9ybWF0MlRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZvcm1hdDJUYWJsZSkKLSNkZWZpbmUgQ292ZXJhZ2VUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VUYWJsZSkKLSNkZWZpbmUgQ3VycmVu
Y3lBbW91bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5QW1vdW50KQotI2RlZmlu
ZSBDdXJyZW5jeUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lGb3JtYXQp
Ci0jZGVmaW5lIEN1cnJlbmN5UGx1cmFsSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3Vy
cmVuY3lQbHVyYWxJbmZvKQotI2RlZmluZSBDdXJyZW5jeVVuaXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEN1cnJlbmN5VW5pdCkKLSNkZWZpbmUgQ3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSkKLSNkZWZp
bmUgRFRSZWR1bmRhbnRFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRFRSZWR1
bmRhbnRFbnVtZXJhdGlvbikKLSNkZWZpbmUgRFRTa2VsZXRvbkVudW1lcmF0aW9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShEVFNrZWxldG9uRW51bWVyYXRpb24pCi0jZGVmaW5lIERhdGVGb3Jt
YXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVGb3JtYXQpCi0jZGVmaW5lIERhdGVGb3Jt
YXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlRm9ybWF0U3ltYm9scykKLSNk
ZWZpbmUgRGF0ZUludGVydmFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWwp
Ci0jZGVmaW5lIERhdGVJbnRlcnZhbEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0
ZUludGVydmFsRm9ybWF0KQotI2RlZmluZSBEYXRlSW50ZXJ2YWxJbmZvIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxJbmZvKQotI2RlZmluZSBEYXRlVGltZU1hdGNoZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lTWF0Y2hlcikKLSNkZWZpbmUgRGF0ZVRpbWVQ
YXR0ZXJuR2VuZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZVBhdHRlcm5H
ZW5lcmF0b3IpCi0jZGVmaW5lIERhdGVUaW1lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RGF0ZVRpbWVSdWxlKQotI2RlZmluZSBEZWNpbWFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShEZWNpbWFsRm9ybWF0KQotI2RlZmluZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1hbEZvcm1hdFN5bWJvbHMpCi0jZGVmaW5lIERlY29tcG9z
ZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWNvbXBvc2VOb3JtYWxpemVy
MikKLSNkZWZpbmUgRGVmYXVsdENhbGVuZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRGVmYXVsdENhbGVuZGFyRmFjdG9yeSkKLSNkZWZpbmUgRGVmYXVsdENoYXJNYXBwZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERlZmF1bHRDaGFyTWFwcGVyKQotI2RlZmluZSBEZXZpY2VU
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGV2aWNlVGFibGUpCi0jZGVmaW5lIERpY3Rp
b25hcnlCcmVha0VuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGljdGlvbmFyeUJyZWFr
RW5naW5lKQotI2RlZmluZSBEaWdpdExpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERpZ2l0
TGlzdCkKLSNkZWZpbmUgRGlzdGFuY2VJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEaXN0
YW5jZUluZm8pCi0jZGVmaW5lIEVudW1Ub09mZnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RW51bVRvT2Zmc2V0KQotI2RlZmluZSBFcnJvckNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEVycm9yQ29kZSkKLSNkZWZpbmUgRXNjYXBlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEVzY2FwZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBFdGhpb3BpY0NhbGVuZGFy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFdGhpb3BpY0NhbGVuZGFyKQotI2RlZmluZSBFdmVu
dExpc3RlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFdmVudExpc3RlbmVyKQotI2RlZmlu
ZSBFeHRlbnNpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXh0ZW5zaW9uU3Vi
dGFibGUpCi0jZGVmaW5lIEZDRE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShG
Q0ROb3JtYWxpemVyMikKLSNkZWZpbmUgRkNEVHJpZVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRkNEVHJpZVNpbmdsZXRvbikKLSNkZWZpbmUgRmVhdHVyZUxpc3RUYWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoRmVhdHVyZUxpc3RUYWJsZSkKLSNkZWZpbmUgRmllbGRQb3Np
dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbikKLSNkZWZpbmUgRmll
bGRQb3NpdGlvbkhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25I
YW5kbGVyKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEZpZWxkUG9zaXRpb25JdGVyYXRvcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkl0ZXJh
dG9ySGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbkl0ZXJhdG9y
SGFuZGxlcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbk9ubHlIYW5kbGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uT25seUhhbmRsZXIpCi0jZGVmaW5lIEZpbHRlcmVkTm9y
bWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpbHRlcmVkTm9ybWFsaXplcjIpCi0j
ZGVmaW5lIEZvbnRSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb250UnVucykKLSNkZWZp
bmUgRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQpCi0jZGVmaW5lIEZvcm1h
dDFBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0MUFuY2hvclRhYmxl
KQotI2RlZmluZSBGb3JtYXQyQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZv
cm1hdDJBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0M0FuY2hvclRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShGb3JtYXQzQW5jaG9yVGFibGUpCi0jZGVmaW5lIEZvcm1hdE5hbWVFbnVt
ZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0TmFtZUVudW1lcmF0aW9uKQot
I2RlZmluZSBGb3JtYXRQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdFBhcnNl
cikKLSNkZWZpbmUgRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdHRh
YmxlKQotI2RlZmluZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgRm9yd2FyZFVUcmllMlN0
cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3J3YXJkVVRyaWUyU3RyaW5n
SXRlcmF0b3IpCi0jZGVmaW5lIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgRnVuY3Rp
b25SZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRnVuY3Rpb25SZXBsYWNlcikKLSNk
ZWZpbmUgR0RFRk1hcmtGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdERUZNYXJrRmls
dGVyKQotI2RlZmluZSBHWExheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR1hM
YXlvdXRFbmdpbmUpCi0jZGVmaW5lIEdseXBoRGVmaW5pdGlvblRhYmxlSGVhZGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShHbHlwaERlZmluaXRpb25UYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5
cGhJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhJdGVyYXRvcikKLSNkZWZp
bmUgR2x5cGhMb29rdXBUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhM
b29rdXBUYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhQb3NpdGlvbkFkanVzdG1lbnRzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uQWRqdXN0bWVudHMpCi0jZGVmaW5lIEds
eXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEds
eXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIEdseXBoUG9zaXRpb25pbmdU
YWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlvbmluZ1RhYmxl
SGVhZGVyKQotI2RlZmluZSBHbHlwaFN1YnN0aXR1dGlvbkxvb2t1cFByb2Nlc3NvciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhTdWJzdGl0dXRpb25Mb29rdXBQcm9jZXNzb3IpCi0jZGVm
aW5lIEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFkZXIpCi0jZGVmaW5lIEdvb2RTdWZmaXhUYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR29vZFN1ZmZpeFRhYmxlKQotI2RlZmluZSBHcmVnbyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR3JlZ28pCi0jZGVmaW5lIEdyZWdvcmlhbkNhbGVuZGFy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHcmVnb3JpYW5DYWxlbmRhcikKLSNkZWZpbmUgSGFu
T3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEhhbk9wZW5UeXBl
TGF5b3V0RW5naW5lKQotI2RlZmluZSBIYW5ndWxPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoSGFuZ3VsT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEhl
YnJld0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShIZWJyZXdDYWxlbmRhcikKLSNk
ZWZpbmUgSUNVQnJlYWtJdGVyYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElD
VUJyZWFrSXRlcmF0b3JGYWN0b3J5KQotI2RlZmluZSBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQnJlYWtJdGVyYXRvclNlcnZpY2UpCi0jZGVmaW5l
IElDVUNvbGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQ29sbGF0b3JG
YWN0b3J5KQotI2RlZmluZSBJQ1VDb2xsYXRvclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElDVUNvbGxhdG9yU2VydmljZSkKLSNkZWZpbmUgSUNVRGF0YVRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShJQ1VEYXRhVGFibGUpCi0jZGVmaW5lIElDVUxhbmd1YWdlQnJlYWtGYWN0
b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNk
ZWZpbmUgSUNVTG9jYWxlU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTG9jYWxl
U2VydmljZSkKLSNkZWZpbmUgSUNVTm90aWZpZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElD
VU5vdGlmaWVyKQotI2RlZmluZSBJQ1VOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBJQ1VOdW1iZXJGb3Jt
YXRTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRTZXJ2aWNl
KQotI2RlZmluZSBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSkKLSNkZWZpbmUgSUNVU2VydmljZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoSUNVU2VydmljZSkKLSNkZWZpbmUgSUNVU2VydmljZUZhY3Rvcnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2VGYWN0b3J5KQotI2RlZmluZSBJQ1VT
ZXJ2aWNlS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VTZXJ2aWNlS2V5KQotI2RlZmlu
ZSBJQ1VfVXRpbGl0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVX1V0aWxpdHkpCi0jZGVm
aW5lIElETkEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElETkEpCi0jZGVmaW5lIEluZGlhbkNh
bGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpYW5DYWxlbmRhcikKLSNkZWZpbmUg
SW5kaWNDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY0NsYXNzVGFibGUp
Ci0jZGVmaW5lIEluZGljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEluZGljT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEluZGljUmVhcnJhbmdlbWVu
dFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNSZWFycmFuZ2VtZW50UHJv
Y2Vzc29yKQotI2RlZmluZSBJbmRpY1Jlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEluZGljUmVvcmRlcmluZykKLSNkZWZpbmUgSW5pdGlhbFRpbWVab25lUnVsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoSW5pdGlhbFRpbWVab25lUnVsZSkKLSNkZWZpbmUgSW5wdXRUZXh0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbnB1dFRleHQpCi0jZGVmaW5lIEludGVncmFsUGFydFN1
YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW50ZWdyYWxQYXJ0U3Vic3RpdHV0
aW9uKQotI2RlZmluZSBJc2xhbWljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElz
bGFtaWNDYWxlbmRhcikKLSNkZWZpbmUgSXRlcmF0ZWRDaGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShJdGVyYXRlZENoYXIpCi0jZGVmaW5lIEphcGFuZXNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEphcGFuZXNlQ2FsZW5kYXIpCi0jZGVmaW5lIEtlcm5UYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoS2VyblRhYmxlKQotI2RlZmluZSBLZXl3b3JkRW51bWVyYXRpb24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtleXdvcmRFbnVtZXJhdGlvbikKLSNkZWZpbmUgS2ht
ZXJDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShLaG1lckNsYXNzVGFibGUpCi0j
ZGVmaW5lIEtobWVyT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEtobWVyT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEtobWVyUmVvcmRlcmluZyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoS2htZXJSZW9yZGVyaW5nKQotI2RlZmluZSBMRUNoYXJNYXBw
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFQ2hhck1hcHBlcikKLSNkZWZpbmUgTEVGb250
SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFRm9udEluc3RhbmNlKQotI2RlZmlu
ZSBMRUdseXBoRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUdseXBoRmlsdGVyKQot
I2RlZmluZSBMRUdseXBoU3RvcmFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVHbHlwaFN0
b3JhZ2UpCi0jZGVmaW5lIExFSW5zZXJ0aW9uQ2FsbGJhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExFSW5zZXJ0aW9uQ2FsbGJhY2spCi0jZGVmaW5lIExFSW5zZXJ0aW9uTGlzdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNlcnRpb25MaXN0KQotI2RlZmluZSBMWFV0aWxpdGllcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTFhVdGlsaXRpZXMpCi0jZGVmaW5lIExhbmd1YWdlQnJl
YWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExhbmd1YWdlQnJlYWtFbmdpbmUpCi0j
ZGVmaW5lIExhbmd1YWdlQnJlYWtGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYW5n
dWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZpbmUgTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIExpZ2F0dXJlU3Vic3RpdHV0aW9uUHJvY2Vz
c29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMaWdhdHVyZVN1YnN0aXR1dGlvblByb2Nlc3Nv
cikKLSNkZWZpbmUgTGlnYXR1cmVTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTGlnYXR1cmVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgTG9jRGF0YVBh
cnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jRGF0YVBhcnNlcikKLSNkZWZpbmUgTG9j
YWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGUpCi0jZGVmaW5lIExvY2FsZUJhc2Vk
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVCYXNlZCkKLSNkZWZpbmUgTG9jYWxlRGlz
cGxheU5hbWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVEaXNwbGF5TmFtZXMpCi0j
ZGVmaW5lIExvY2FsZURpc3BsYXlOYW1lc0ltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExv
Y2FsZURpc3BsYXlOYW1lc0ltcGwpCi0jZGVmaW5lIExvY2FsZUtleSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTG9jYWxlS2V5KQotI2RlZmluZSBMb2NhbGVLZXlGYWN0b3J5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShMb2NhbGVLZXlGYWN0b3J5KQotI2RlZmluZSBMb2NhbGVSdW5zIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVSdW5zKQotI2RlZmluZSBMb2NhbGVVdGlsaXR5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVVdGlsaXR5KQotI2RlZmluZSBMb2NhbGl6YXRp
b25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGl6YXRpb25JbmZvKQotI2RlZmlu
ZSBMb29rdXBMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cExpc3RUYWJs
ZSkKLSNkZWZpbmUgTG9va3VwUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29r
dXBQcm9jZXNzb3IpCi0jZGVmaW5lIExvb2t1cFN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMb29rdXBTdWJ0YWJsZSkKLSNkZWZpbmUgTG9va3VwVGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExvb2t1cFRhYmxlKQotI2RlZmluZSBMb3dlcmNhc2VUcmFuc2xpdGVyYXRvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5l
IE1QcmVGaXh1cHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1QcmVGaXh1cHMpCi0jZGVmaW5l
IE1hcmtBcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya0FycmF5KQotI2RlZmluZSBN
YXJrVG9CYXNlUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFy
a1RvQmFzZVBvc2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIE1hcmtUb0xpZ2F0dXJlUG9zaXRp
b25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvTGlnYXR1cmVQb3Np
dGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBNYXJrVG9NYXJrUG9zaXRpb25pbmdTdWJ0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvTWFya1Bvc2l0aW9uaW5nU3VidGFibGUpCi0j
ZGVmaW5lIE1lYXN1cmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmUpCi0jZGVmaW5l
IE1lYXN1cmVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmVGb3JtYXQpCi0j
ZGVmaW5lIE1lYXN1cmVVbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZWFzdXJlVW5pdCkK
LSNkZWZpbmUgTWVzc2FnZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVzc2FnZUZv
cm1hdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdEFkYXB0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE1lc3NhZ2VGb3JtYXRBZGFwdGVyKQotI2RlZmluZSBNb2R1bHVzU3Vic3RpdHV0aW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb2R1bHVzU3Vic3RpdHV0aW9uKQotI2RlZmluZSBNb29u
UmlzZVNldENvb3JkRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9vblJpc2VTZXRDb29y
ZEZ1bmMpCi0jZGVmaW5lIE1vb25UaW1lQW5nbGVGdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShNb29uVGltZUFuZ2xlRnVuYykKLSNkZWZpbmUgTW9ycGhTdWJ0YWJsZUhlYWRlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhTdWJ0YWJsZUhlYWRlcikKLSNkZWZpbmUgTW9ycGhUYWJs
ZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhUYWJsZUhlYWRlcikKLSNkZWZp
bmUgTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgTXVsdGlwbGllclN1YnN0aXR1
dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTXVsdGlwbGllclN1YnN0aXR1dGlvbikKLSNk
ZWZpbmUgTXV0YWJsZVRyaWVEaWN0aW9uYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdXRh
YmxlVHJpZURpY3Rpb25hcnkpCi0jZGVmaW5lIE11dGFibGVUcmllRW51bWVyYXRpb24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE11dGFibGVUcmllRW51bWVyYXRpb24pCi0jZGVmaW5lIE5GRmFj
dG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZGYWN0b3J5KQotI2RlZmluZSBORktEQnVm
ZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORktEQnVmZmVyKQotI2RlZmluZSBORlJ1bGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5GUnVsZSkKLSNkZWZpbmUgTkZSdWxlU2V0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1bGVTZXQpCi0jZGVmaW5lIE5GU3Vic3RpdHV0aW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTkdyYW1QYXJz
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5HcmFtUGFyc2VyKQotI2RlZmluZSBOYW1lVG9F
bnVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOYW1lVG9FbnVtKQotI2RlZmluZSBOYW1lVW5p
Y29kZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOYW1lVW5pY29kZVRy
YW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb25Db250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9j
ZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vbkNvbnRleHR1YWxHbHlwaFN1YnN0aXR1
dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgTm9uQ29udGlndW91c0VudW1Ub09mZnNldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTm9uQ29udGlndW91c0VudW1Ub09mZnNldCkKLSNkZWZpbmUgTm9v
cE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb29wTm9ybWFsaXplcjIpCi0j
ZGVmaW5lIE5vcm0yQWxsTW9kZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm0yQWxsTW9k
ZXMpCi0jZGVmaW5lIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb3JtYWxpemVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyKQotI2RlZmluZSBOb3JtYWxpemVy
MiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjIpCi0jZGVmaW5lIE5vcm1hbGl6
ZXIyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJGYWN0b3J5KQot
I2RlZmluZSBOb3JtYWxpemVyMkltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6
ZXIySW1wbCkKLSNkZWZpbmUgTm9ybWFsaXplcjJXaXRoSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTm9ybWFsaXplcjJXaXRoSW1wbCkKLSNkZWZpbmUgTnVsbFN1YnN0aXR1dGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVsbFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTnVsbFRyYW5z
bGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdWxsVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVtYmVyRm9ybWF0
KQotI2RlZmluZSBOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
dW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBOdW1iZXJpbmdTeXN0ZW0gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE51bWJlcmluZ1N5c3RlbSkKLSNkZWZpbmUgTnVtZXJhdG9yU3Vic3RpdHV0
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1lcmF0b3JTdWJzdGl0dXRpb24pCi0jZGVm
aW5lIE9sc29uVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9sc29uVGltZVpvbmUp
Ci0jZGVmaW5lIE9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShP
cGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgT3BlblR5cGVVdGlsaXRpZXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE9wZW5UeXBlVXRpbGl0aWVzKQotI2RlZmluZSBPckNvbnN0cmFpbnQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9yQ29uc3RyYWludCkKLSNkZWZpbmUgUENFQnVmZmVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQQ0VCdWZmZXIpCi0jZGVmaW5lIFBhaXJQb3NpdGlv
bmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFpclBvc2l0aW9u
aW5nRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBQYWlyUG9zaXRpb25pbmdGb3JtYXQyU3VidGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJs
ZSkKLSNkZWZpbmUgUGFpclBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFBhaXJQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBQYXJhZ3JhcGhMYXlvdXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhcmFncmFwaExheW91dCkKLSNkZWZpbmUgUGFyc2VEYXRh
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJzZURhdGEpCi0jZGVmaW5lIFBhcnNlUG9zaXRp
b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhcnNlUG9zaXRpb24pCi0jZGVmaW5lIFBhdHRl
cm5NYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhdHRlcm5NYXApCi0jZGVmaW5lIFBhdHRl
cm5NYXBJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGF0dGVybk1hcEl0ZXJhdG9y
KQotI2RlZmluZSBQZXJzaWFuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBlcnNp
YW5DYWxlbmRhcikKLSNkZWZpbmUgUGx1cmFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShQbHVyYWxGb3JtYXQpCi0jZGVmaW5lIFBsdXJhbEtleXdvcmRFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsS2V5d29yZEVudW1lcmF0aW9uKQotI2RlZmluZSBQbHVy
YWxSdWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsUnVsZXMpCi0jZGVmaW5lIFBy
b3BlcnR5QWxpYXNlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUHJvcGVydHlBbGlhc2VzKQot
I2RlZmluZSBQdG5FbGVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQdG5FbGVtKQotI2RlZmlu
ZSBQdG5Ta2VsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUHRuU2tlbGV0b24pCi0jZGVm
aW5lIFF1YW50aWZpZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFF1YW50aWZpZXIpCi0jZGVm
aW5lIFJCQklEYXRhV3JhcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSURhdGFXcmFw
cGVyKQotI2RlZmluZSBSQkJJTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSU5vZGUp
Ci0jZGVmaW5lIFJCQklSdWxlQnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVJ1
bGVCdWlsZGVyKQotI2RlZmluZSBSQkJJUnVsZVNjYW5uZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJCQklSdWxlU2Nhbm5lcikKLSNkZWZpbmUgUkJCSVNldEJ1aWxkZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFJCQklTZXRCdWlsZGVyKQotI2RlZmluZSBSQkJJU3RhdGVEZXNjcmlwdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJU3RhdGVEZXNjcmlwdG9yKQotI2RlZmluZSBS
QkJJU3ltYm9sVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTeW1ib2xUYWJsZSkK
LSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxlRW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJC
QklTeW1ib2xUYWJsZUVudHJ5KQotI2RlZmluZSBSQkJJVGFibGVCdWlsZGVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSQkJJVGFibGVCdWlsZGVyKQotI2RlZmluZSBSQ0VCdWZmZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFJDRUJ1ZmZlcikKLSNkZWZpbmUgUmFuZ2VEZXNjcmlwdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSYW5nZURlc2NyaXB0b3IpCi0jZGVmaW5lIFJlZ2V4Q29t
cGlsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhDb21waWxlKQotI2RlZmluZSBSZWdl
eE1hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ2V4TWF0Y2hlcikKLSNkZWZpbmUg
UmVnZXhQYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWdleFBhdHRlcm4pCi0jZGVm
aW5lIFJlZ2V4U3RhdGljU2V0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhTdGF0aWNT
ZXRzKQotI2RlZmluZSBSZWd1bGFyRXhwcmVzc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UmVndWxhckV4cHJlc3Npb24pCi0jZGVmaW5lIFJlbGF0aXZlRGF0ZUZvcm1hdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUmVsYXRpdmVEYXRlRm9ybWF0KQotI2RlZmluZSBSZW1vdmVUcmFuc2xp
dGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVtb3ZlVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIFJlb3JkZXJpbmdCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlb3JkZXJp
bmdCdWZmZXIpCi0jZGVmaW5lIFJlcGxhY2VhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShS
ZXBsYWNlYWJsZSkKLSNkZWZpbmUgUmVwbGFjZWFibGVHbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShSZXBsYWNlYWJsZUdsdWUpCi0jZGVmaW5lIFJlc291cmNlQnVuZGxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSZXNvdXJjZUJ1bmRsZSkKLSNkZWZpbmUgUmlzZVNldENvb3JkRnVuYyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmlzZVNldENvb3JkRnVuYykKLSNkZWZpbmUgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvcikKLSNkZWZpbmUgUnVsZUJhc2VkQ29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJ1bGVCYXNlZENvbGxhdG9yKQotI2RlZmluZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZE51bWJlckZvcm1hdCkKLSNkZWZpbmUgUnVs
ZUJhc2VkVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZFRpbWVab25l
KQotI2RlZmluZSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVDaGFpbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUnVsZUNoYWluKQotI2RlZmluZSBSdWxlQ2hhcmFjdGVySXRlcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUg
UnVsZUhhbGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVIYWxmKQotI2RlZmluZSBSdWxl
UGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlUGFyc2VyKQotI2RlZmluZSBSdW5B
cnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVuQXJyYXkpCi0jZGVmaW5lIFNQVVN0cmlu
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU1BVU3RyaW5nKQotI2RlZmluZSBTUFVTdHJpbmdQ
b29sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTUFVTdHJpbmdQb29sKQotI2RlZmluZSBTYWZl
Wm9uZVN0cmluZ0Zvcm1hdFB0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2FmZVpvbmVTdHJp
bmdGb3JtYXRQdHIpCi0jZGVmaW5lIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU2FtZVZhbHVlU3Vic3RpdHV0aW9uKQotI2RlZmluZSBTY3JpcHRMaXN0VGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdExpc3RUYWJsZSkKLSNkZWZpbmUgU2Ny
aXB0UnVuSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFJ1bkl0ZXJhdG9y
KQotI2RlZmluZSBTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFNldCkK
LSNkZWZpbmUgU2NyaXB0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFRhYmxl
KQotI2RlZmluZSBTZWFyY2hJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VhcmNo
SXRlcmF0b3IpCi0jZGVmaW5lIFNlZ21lbnRBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoU2VnbWVudEFycmF5UHJvY2Vzc29yKQotI2RlZmluZSBTZWdtZW50U2luZ2xlUHJv
Y2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZWdtZW50U2luZ2xlUHJvY2Vzc29yKQot
I2RlZmluZSBTZWxlY3RGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlbGVjdEZvcm1h
dCkKLSNkZWZpbmUgU2VydmljZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
ZXJ2aWNlRW51bWVyYXRpb24pCi0jZGVmaW5lIFNlcnZpY2VMaXN0ZW5lciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU2VydmljZUxpc3RlbmVyKQotI2RlZmluZSBTaW1wbGVBcnJheVByb2Nlc3Nv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlQXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5l
IFNpbXBsZURhdGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZURhdGVGb3Jt
YXQpCi0jZGVmaW5lIFNpbXBsZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBs
ZUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFNpbXBsZUxvY2FsZUtleUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZU51bWJlckZv
cm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZU51bWJlckZvcm1hdEZh
Y3RvcnkpCi0jZGVmaW5lIFNpbXBsZVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U2ltcGxlU2luZ2xldG9uKQotI2RlZmluZSBTaW1wbGVUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoU2ltcGxlVGltZVpvbmUpCi0jZGVmaW5lIFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0
MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmluZ0Zvcm1h
dDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlKQot
I2RlZmluZSBTaW5nbGVQb3NpdGlvbmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTaW5nbGVQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25G
b3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVN1YnN0aXR1dGlv
bkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQyU3Vi
dGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlVGFi
bGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVRhYmxlUHJvY2Vzc29y
KQotI2RlZmluZSBTcG9vZkRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNwb29mRGF0YSkK
LSNkZWZpbmUgU3Bvb2ZJbXBsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTcG9vZkltcGwpCi0j
ZGVmaW5lIFN0YXRlVGFibGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0YXRl
VGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgU3RyaW5n
RW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0VudW1lcmF0aW9uKQot
I2RlZmluZSBTdHJpbmdMaXN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdMaXN0KQot
I2RlZmluZSBTdHJpbmdMb2NhbGl6YXRpb25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
dHJpbmdMb2NhbGl6YXRpb25JbmZvKQotI2RlZmluZSBTdHJpbmdNYXRjaGVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTdHJpbmdNYXRjaGVyKQotI2RlZmluZSBTdHJpbmdQYWlyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShTdHJpbmdQYWlyKQotI2RlZmluZSBTdHJpbmdQaWVjZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUGllY2UpCi0jZGVmaW5lIFN0cmluZ1JlcGxhY2VyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdSZXBsYWNlcikKLSNkZWZpbmUgU3RyaW5nU2Vh
cmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdTZWFyY2gpCi0jZGVmaW5lIFN0cmlu
Z1RvQ0VzTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdUb0NFc01hcCkKLSNkZWZp
bmUgU3R5bGVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHlsZVJ1bnMpCi0jZGVmaW5l
IFN1YnN0aXR1dGlvbkxvb2t1cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Vic3RpdHV0aW9u
TG9va3VwKQotI2RlZmluZSBTdWJ0YWJsZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoU3VidGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFN1blRpbWVBbmdsZUZ1bmMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFN1blRpbWVBbmdsZUZ1bmMpCi0jZGVmaW5lIFN5bWJvbFRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTeW1ib2xUYWJsZSkKLSNkZWZpbmUgVFpFbnVtZXJhdGlv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVFpFbnVtZXJhdGlvbikKLSNkZWZpbmUgVGFpd2Fu
Q2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRhaXdhbkNhbGVuZGFyKQotI2RlZmlu
ZSBUYXJnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRhcmdldCkKLSNkZWZpbmUgVGVybmFy
eU5vZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRlcm5hcnlOb2RlKQotI2RlZmluZSBUZXh0
VHJpZU1hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGV4dFRyaWVNYXApCi0jZGVmaW5lIFRl
eHRUcmllTWFwU2VhcmNoUmVzdWx0SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGV4
dFRyaWVNYXBTZWFyY2hSZXN1bHRIYW5kbGVyKQotI2RlZmluZSBUaGFpQnJlYWtFbmdpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlCcmVha0VuZ2luZSkKLSNkZWZpbmUgVGhhaUxheW91
dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGhhaUxheW91dEVuZ2luZSkKLSNkZWZp
bmUgVGhhaVNoYXBpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlTaGFwaW5nKQotI2Rl
ZmluZSBUaWJldGFuQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbkNs
YXNzVGFibGUpCi0jZGVmaW5lIFRpYmV0YW5PcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVGliZXRhbk9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBUaWJl
dGFuUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhblJlb3JkZXJpbmcp
Ci0jZGVmaW5lIFRpbWVBcnJheVRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VGltZUFycmF5VGltZVpvbmVSdWxlKQotI2RlZmluZSBUaW1lVW5pdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVGltZVVuaXQpCi0jZGVmaW5lIFRpbWVVbml0QW1vdW50IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUaW1lVW5pdEFtb3VudCkKLSNkZWZpbmUgVGltZVVuaXRGb3JtYXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFRpbWVVbml0Rm9ybWF0KQotI2RlZmluZSBUaW1lWm9uZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmUpCi0jZGVmaW5lIFRpbWVab25lUnVsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmVSdWxlKQotI2RlZmluZSBUaW1lWm9uZVRyYW5z
aXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lVHJhbnNpdGlvbikKLSNkZWZp
bmUgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpdGxl
Y2FzZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlKQotI2RlZmluZSBUcmFuc2xpdGVy
YXRpb25SdWxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0aW9uUnVs
ZURhdGEpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVHJhbnNsaXRl
cmF0b3JBbGlhcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JBbGlhcykK
LSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJh
bnNsaXRlcmF0b3JFbnRyeSkKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JJRFBhcnNlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JJRFBhcnNlcikKLSNkZWZpbmUgVHJhbnNs
aXRlcmF0b3JQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yUGFy
c2VyKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5KQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclNwZWMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yU3BlYykKLSNkZWZpbmUgVHJp
U3RhdGVTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyaVN0YXRlU2luZ2xldG9u
KQotI2RlZmluZSBUcmllV29yZERpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRy
aWVXb3JkRGljdGlvbmFyeSkKLSNkZWZpbmUgVHJpbW1lZEFycmF5UHJvY2Vzc29yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUcmltbWVkQXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFVDaGFyQ2hh
cmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IpCi0jZGVmaW5lIFVDb2xsYXRpb25QQ0UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVD
b2xsYXRpb25QQ0UpCi0jZGVmaW5lIFVEYXRhUGF0aEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVRGF0YVBhdGhJdGVyYXRvcikKLSNkZWZpbmUgVUxvY1J1bnMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFVMb2NSdW5zKQotI2RlZmluZSBVTWVtb3J5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVTWVtb3J5KQotI2RlZmluZSBVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShVT2JqZWN0KQotI2RlZmluZSBVU3RhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVTdGFj
aykKLSNkZWZpbmUgVVN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShV
U3RyaW5nRW51bWVyYXRpb24pCi0jZGVmaW5lIFVUUzQ2IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShVVFM0NikKLSNkZWZpbmUgVVRyaWUyU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShVVHJpZTJTaW5nbGV0b24pCi0jZGVmaW5lIFVWZWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFVWZWN0b3IpCi0jZGVmaW5lIFVWZWN0b3IzMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VVZlY3RvcjMyKQotI2RlZmluZSBVVmVjdG9yNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVW
ZWN0b3I2NCkKLSNkZWZpbmUgVW5lc2NhcGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVW5lc2NhcGVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVW5oYW5kbGVkRW5naW5l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmhhbmRsZWRFbmdpbmUpCi0jZGVmaW5lIFVuaWNv
ZGVBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5p
Y29kZUFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBVbmljb2RlRmlsdGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlRmlsdGVyKQotI2RlZmluZSBVbmljb2RlRnVu
Y3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUZ1bmN0b3IpCi0jZGVmaW5lIFVu
aWNvZGVNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlTWF0Y2hlcikKLSNk
ZWZpbmUgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVW5pY29kZVJlcGxhY2VyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlUmVwbGFjZXIpCi0jZGVmaW5lIFVuaWNvZGVTZXQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVTZXQpCi0jZGVmaW5lIFVuaWNvZGVTZXRJ
dGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVNldEl0ZXJhdG9yKQotI2Rl
ZmluZSBVbmljb2RlU2V0U3RyaW5nU3BhbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29k
ZVNldFN0cmluZ1NwYW4pCi0jZGVmaW5lIFVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFVuaWNvZGVTdHJpbmcpCi0jZGVmaW5lIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVcHBlcmNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUg
VlRaUmVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWVFpSZWFkZXIpCi0jZGVmaW5lIFZU
WldyaXRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVlRaV3JpdGVyKQotI2RlZmluZSBWVGlt
ZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZUaW1lWm9uZSkKLSNkZWZpbmUgVmFsdWVS
ZWNvcmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZhbHVlUmVjb3JkKQotI2RlZmluZSBWYWx1
ZVJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZhbHVlUnVucykKLSNkZWZpbmUgWlNGQ2Fj
aGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRkNhY2hlKQotI2RlZmluZSBaU0ZDYWNoZUVu
dHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZDYWNoZUVudHJ5KQotI2RlZmluZSBaU0ZT
dHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZTdHJpbmdQb29sKQotI2RlZmlu
ZSBaU0ZTdHJpbmdQb29sQ2h1bmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRlN0cmluZ1Bv
b2xDaHVuaykKLSNkZWZpbmUgWm9uZU1ldGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVN
ZXRhKQotI2RlZmluZSBab25lU3RyaW5nRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSha
b25lU3RyaW5nRm9ybWF0KQotI2RlZmluZSBab25lU3RyaW5nSW5mbyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoWm9uZVN0cmluZ0luZm8pCi0jZGVmaW5lIFpvbmVTdHJpbmdTZWFyY2hSZXN1bHRI
YW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3RyaW5nU2VhcmNoUmVzdWx0SGFu
ZGxlcikKLSNkZWZpbmUgWm9uZVN0cmluZ3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVT
dHJpbmdzKQotI2RlZmluZSBjb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY29s
bEl0ZXJhdGUpCi0jZGVmaW5lIGxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUobG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKQotI2RlZmluZSB1dGls
NjRfZnJvbURvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X2Zyb21Eb3VibGUp
Ci0jZGVmaW5lIHV0aWw2NF9wb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2NF9wb3cp
Ci0jZGVmaW5lIHV0aWw2NF90b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2NF90b3Up
Ci0KLSNlbmRpZgotI2VuZGlmCi0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmlj
b2RlL3VzY3JpcHQuaAppbmRleCBlZTIxYzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4
ZTQ3Li41NzI1NWM0Zjk4NDRhZmFiNTNmZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvdXNjcmlwdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCi0gKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRz
IFJlc2VydmVkLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC00NCwxODIgKzQ0LDM2OSBAQAogICog
QHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVU2NyaXB0Q29kZSB7CisgICAgLyoK
KyAgICAgKiBOb3RlOiBVU2NyaXB0Q29kZSBjb25zdGFudHMgYW5kIHRoZWlyIElTTyBzY3JpcHQg
Y29kZSBjb21tZW50cworICAgICAqIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAg
ICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVTQ1JJUFRfPFVuaWNvZGUgU2Ny
aXB0IHZhbHVlIG5hbWU+ID0gPGludGVnZXI+LCAgLyAqIDxJU08gc2NyaXB0IGNvZGU+ICogLwor
ICAgICAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0lO
VkFMSURfQ09ERSA9IC0xLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVND
UklQVF9DT01NT04gICAgICAgPSAgMCwgIC8qIFp5eXkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSU5IRVJJVEVEICAgID0gIDEsICAvKiBaaW5oICovIC8q
ICJDb2RlIGZvciBpbmhlcml0ZWQgc2NyaXB0IiwgZm9yIG5vbi1zcGFjaW5nIGNvbWJpbmluZyBt
YXJrczsgYWxzbyBRYWFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0FSQUJJQyAgICAgICA9ICAyLCAgLyogQXJhYiAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9BUk1FTklBTiAgICAgPSAgMywgIC8qIEFybW4gKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQkVOR0FMSSAgICAg
ID0gIDQsICAvKiBCZW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0JPUE9NT0ZPICAgICA9ICA1LCAgLyogQm9wbyAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DSEVST0tFRSAgICAgPSAgNiwgIC8qIENoZXIgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09QVElDICAgICAg
ID0gIDcsICAvKiBDb3B0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0NZUklMTElDICAgICA9ICA4LCAgLyogQ3lybCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ERVNFUkVUICAgICAgPSAgOSwgIC8qIERzcnQgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfREVWQU5BR0FSSSAg
ID0gMTAsICAvKiBEZXZhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0VUSElPUElDICAgICA9IDExLCAgLyogRXRoaSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HRU9SR0lBTiAgICAgPSAxMiwgIC8qIEdlb3IgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR09USElDICAgICAg
ID0gMTMsICAvKiBHb3RoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0dSRUVLICAgICAgICA9IDE0LCAgLyogR3JlayAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HVUpBUkFUSSAgICAgPSAxNSwgIC8qIEd1anIgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1VSTVVLSEkgICAg
ID0gMTYsICAvKiBHdXJ1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0hBTiAgICAgICAgICA9IDE3LCAgLyogSGFuaSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IQU5HVUwgICAgICAgPSAxOCwgIC8qIEhhbmcgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEVCUkVXICAgICAg
ID0gMTksICAvKiBIZWJyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0hJUkFHQU5BICAgICA9IDIwLCAgLyogSGlyYSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LQU5OQURBICAgICAgPSAyMSwgIC8qIEtuZGEgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0FUQUtBTkEgICAg
ID0gMjIsICAvKiBLYW5hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX0tITUVSICAgICAgICA9IDIzLCAgLyogS2htciAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9MQU8gICAgICAgICAgPSAyNCwgIC8qIExhb28gKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU4gICAgICAg
ID0gMjUsICAvKiBMYXRuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX01BTEFZQUxBTSAgICA9IDI2LCAgLyogTWx5bSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NT05HT0xJQU4gICAgPSAyNywgIC8qIE1vbmcgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTVlBTk1BUiAgICAg
ID0gMjgsICAvKiBNeW1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX09HSEFNICAgICAgICA9IDI5LCAgLyogT2dhbSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PTERfSVRBTElDICAgPSAzMCwgIC8qIEl0YWwgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT1JJWUEgICAgICAg
ID0gMzEsICAvKiBPcnlhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX1JVTklDICAgICAgICA9IDMyLCAgLyogUnVuciAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9TSU5IQUxBICAgICAgPSAzMywgIC8qIFNpbmggKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfU1lSSUFDICAgICAg
ID0gMzQsICAvKiBTeXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX1RBTUlMICAgICAgICA9IDM1LCAgLyogVGFtbCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9URUxVR1UgICAgICAgPSAzNiwgIC8qIFRlbHUgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEhBQU5BICAgICAg
ID0gMzcsICAvKiBUaGFhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBV
U0NSSVBUX1RIQUkgICAgICAgICA9IDM4LCAgLyogVGhhaSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USUJFVEFOICAgICAgPSAzOSwgIC8qIFRpYnQgKi8K
ICAgICAgIC8qKiBDYW5hZGlhbl9BYm9yaWdpbmFsIHNjcmlwdC4gQHN0YWJsZSBJQ1UgMi42ICov
CiAgICAgICBVU0NSSVBUX0NBTkFESUFOX0FCT1JJR0lOQUwgPSA0MCwgIC8qIENhbnMgKi8KICAg
ICAgIC8qKiBDYW5hZGlhbl9BYm9yaWdpbmFsIHNjcmlwdCAoYWxpYXMpLiBAc3RhYmxlIElDVSAy
LjIgKi8KICAgICAgIFVTQ1JJUFRfVUNBUyAgICAgICAgID0gVVNDUklQVF9DQU5BRElBTl9BQk9S
SUdJTkFMLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ZSSAg
ICAgICAgICAgPSA0MSwgIC8qIFlpaWkgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNv
ZGUgMy4yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RB
R0FMT0cgICAgICA9IDQyLCAgLyogVGdsZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAq
LwogICAgICAgVVNDUklQVF9IQU5VTk9PICAgICAgPSA0MywgIC8qIEhhbm8gKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQlVISUQgICAgICAgID0gNDQsICAv
KiBCdWhkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RB
R0JBTldBICAgICA9IDQ1LCAgLyogVGFnYiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0cyBpbiBV
bmljb2RlIDQgQHN0YWJsZSBJQ1UgMi42ICovCisgICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmlj
b2RlIDQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfQlJB
SUxMRSAgICAgID0gNDYsICAvKiBCcmFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICov
CiAgICAgICBVU0NSSVBUX0NZUFJJT1QgICAgICA9IDQ3LCAgLyogQ3BydCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9MSU1CVSAgICAgICAgPSA0OCwgIC8q
IExpbWIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfTElO
RUFSX0IgICAgID0gNDksICAvKiBMaW5iICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICov
CiAgICAgICBVU0NSSVBUX09TTUFOWUEgICAgICA9IDUwLCAgLyogT3NtYSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9TSEFWSUFOICAgICAgPSA1MSwgIC8q
IFNoYXcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfVEFJ
X0xFICAgICAgID0gNTIsICAvKiBUYWxlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICov
CiAgICAgICBVU0NSSVBUX1VHQVJJVElDICAgICA9IDUzLCAgLyogVWdhciAqLwogCiAgICAgICAv
KiogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4wLjEgQHN0YWJsZSBJQ1UgMy4wICovCiAg
ICAgICBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BID0gNTQsLypIcmt0ICovCiAKLSAgICAg
IC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNC4xIEBzdGFibGUgSUNVIDMuNCAqLworICAgICAg
LyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0LjEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjQgKi8KICAgICAgIFVTQ1JJUFRfQlVHSU5FU0UgICAgICA9IDU1LCAvKiBCdWdpICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0dMQUdPTElUSUMgICAgPSA1
NiwgLyogR2xhZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQ
VF9LSEFST1NIVEhJICAgID0gNTcsIC8qIEtoYXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjQgKi8KICAgICAgIFVTQ1JJUFRfU1lMT1RJX05BR1JJICA9IDU4LCAvKiBTeWxvICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX05FV19UQUlfTFVFICAgPSA1
OSwgLyogVGFsdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQ
VF9USUZJTkFHSCAgICAgID0gNjAsIC8qIFRmbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjQgKi8KICAgICAgIFVTQ1JJUFRfT0xEX1BFUlNJQU4gICA9IDYxLCAvKiBYcGVvICovCiAKLSAg
ICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgMy42ICov
CisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JBTElORVNFICAgICAgICAgICAgICAg
ICAgICAgID0gNjIsIC8qIEJhbGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfQkFUQUsgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MywgLyogQmF0ayAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9CTElTU1lNQk9M
UyAgICAgICAgICAgICAgICAgICA9IDY0LCAvKiBCbGlzICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JSQUhNSSAgICAgICAgICAgICAgICAgICAgICAgID0g
NjUsIC8qIEJyYWggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfQ0hBTSAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2NiwgLyogQ2hhbSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DSVJUSCAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDY3LCAvKiBDaXJ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX09MRF9DSFVSQ0hfU0xBVk9OSUNfQ1lSSUxMSUMgID0gNjgsIC8qIEN5
cnMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfREVNT1RJ
Q19FR1lQVElBTiAgICAgICAgICAgICAgPSA2OSwgLyogRWd5ZCAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ISUVSQVRJQ19FR1lQVElBTiAgICAgICAgICAg
ICA9IDcwLCAvKiBFZ3loICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX0VHWVBUSUFOX0hJRVJPR0xZUEhTICAgICAgICAgID0gNzEsIC8qIEVneXAgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0hVVFNVUkkgICAgICAg
ICAgICAgICAgICAgICAgPSA3MiwgLyogR2VvayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9TSU1QTElGSUVEX0hBTiAgICAgICAgICAgICAgICA9IDczLCAv
KiBIYW5zICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1RS
QURJVElPTkFMX0hBTiAgICAgICAgICAgICAgID0gNzQsIC8qIEhhbnQgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfUEFIQVdIX0hNT05HICAgICAgICAgICAg
ICAgICAgPSA3NSwgLyogSG1uZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9PTERfSFVOR0FSSUFOICAgICAgICAgICAgICAgICA9IDc2LCAvKiBIdW5nICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0hBUkFQUEFOX0lO
RFVTICAgICAgICAgICAgICAgID0gNzcsIC8qIEluZHMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfSkFWQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA3
OCwgLyogSmF2YSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9LQVlBSF9MSSAgICAgICAgICAgICAgICAgICAgICA9IDc5LCAvKiBLYWxpICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0ZSQUtUVVIgICAgICAg
ICAgICAgICAgID0gODAsIC8qIExhdGYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfTEFUSU5fR0FFTElDICAgICAgICAgICAgICAgICAgPSA4MSwgLyogTGF0
ZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9MRVBDSEEg
ICAgICAgICAgICAgICAgICAgICAgICA9IDgyLCAvKiBMZXBjICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xJTkVBUl9BICAgICAgICAgICAgICAgICAgICAg
ID0gODMsIC8qIExpbmEgKi8KICAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVT
Q1JJUFRfTUFOREFJQyAgICAgICAgICAgICAgICAgICAgICAgPSA4NCwgLyogTWFuZCAqLwogICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9NQU5EQUVBTiAgICAgICAg
ICAgICAgICAgICAgICA9IFVTQ1JJUFRfTUFOREFJQywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfTUFZQU5fSElFUk9HTFlQSFMgICAgICAgICAgICAgPSA4NSwg
LyogTWF5YSAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9N
RVJPSVRJQ19ISUVST0dMWVBIUyAgICAgICAgICA9IDg2LCAvKiBNZXJvICovCiAgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElDICAgICAgICAgICAgICAg
ICAgICAgID0gVVNDUklQVF9NRVJPSVRJQ19ISUVST0dMWVBIUywKKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTktPICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSA4NywgLyogTmtvbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVND
UklQVF9PUktIT04gICAgICAgICAgICAgICAgICAgICAgICA9IDg4LCAvKiBPcmtoICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX09MRF9QRVJNSUMgICAgICAg
ICAgICAgICAgICAgID0gODksIC8qIFBlcm0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYg
Ki8KICAgICAgIFVTQ1JJUFRfUEhBR1NfUEEgICAgICAgICAgICAgICAgICAgICAgPSA5MCwgLyog
UGhhZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9QSE9F
TklDSUFOICAgICAgICAgICAgICAgICAgICA9IDkxLCAvKiBQaG54ICovCi0gICAgICBVU0NSSVBU
X1BIT05FVElDX1BPTExBUkQgICAgICAgICAgICAgID0gOTIsIC8qIFBscmQgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA1MiAqLworICAgICAgVVNDUklQVF9NSUFPICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDkyLCAvKiBQbHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCisg
ICAgICBVU0NSSVBUX1BIT05FVElDX1BPTExBUkQgICAgICAgICAgICAgID0gVVNDUklQVF9NSUFP
LAorICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ST05HT1JPTkdP
ICAgICAgICAgICAgICAgICAgICA9IDkzLCAvKiBSb3JvICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX1NBUkFUSSAgICAgICAgICAgICAgICAgICAgICAgID0g
OTQsIC8qIFNhcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfRVNUUkFOR0VMT19TWVJJQUMgICAgICAgICAgICAgPSA5NSwgLyogU3lyZSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9XRVNURVJOX1NZUklBQyAgICAg
ICAgICAgICAgICA9IDk2LCAvKiBTeXJqICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX0VBU1RFUk5fU1lSSUFDICAgICAgICAgICAgICAgID0gOTcsIC8qIFN5
cm4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVEVOR1dB
UiAgICAgICAgICAgICAgICAgICAgICAgPSA5OCwgLyogVGVuZyAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9WQUkgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDk5LCAvKiBWYWlpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX1ZJU0lCTEVfU1BFRUNIICAgICAgICAgICAgICAgID0gMTAwLC8qIFZpc3AgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ1VORUlGT1JNICAgICAg
ICAgICAgICAgICAgICAgPSAxMDEsLyogWHN1eCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9VTldSSVRURU5fTEFOR1VBR0VTICAgICAgICAgICA9IDEwMiwv
KiBaeHh4ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1VO
S05PV04gICAgICAgICAgICAgICAgICAgICAgID0gMTAzLC8qIFp6enogKi8gLyogVW5rbm93bj0i
Q29kZSBmb3IgdW5jb2RlZCBzY3JpcHQiLCBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyAqLwog
Ci0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDMu
OCAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9DQVJJQU4gICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwNCwvKiBDYXJpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICov
CiAgICAgICBVU0NSSVBUX0pBUEFORVNFICAgICAgICAgICAgICAgICAgICAgID0gMTA1LC8qIEpw
YW4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTEFOTkEg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYsLyogTGFuYSAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MWUNJQU4gICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwNywvKiBMeWNpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBV
U0NSSVBUX0xZRElBTiAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4LC8qIEx5ZGkgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfT0xfQ0hJS0kgICAgICAg
ICAgICAgICAgICAgICAgPSAxMDksLyogT2xjayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
OCAqLwogICAgICAgVVNDUklQVF9SRUpBTkcgICAgICAgICAgICAgICAgICAgICAgICA9IDExMCwv
KiBSam5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX1NB
VVJBU0hUUkEgICAgICAgICAgICAgICAgICAgID0gMTExLC8qIFNhdXIgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU0lHTl9XUklUSU5HICAgICAgICAgICAg
ICAgICAgPSAxMTIsLyogU2dudyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAg
ICAgVVNDUklQVF9TVU5EQU5FU0UgICAgICAgICAgICAgICAgICAgICA9IDExMywvKiBTdW5kICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01PT04gICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTE0LC8qIE1vb24gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTUVJVEVJX01BWUVLICAgICAgICAgICAgICAgICAgPSAx
MTUsLyogTXRlaSAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0
IEBzdGFibGUgSUNVIDQuMCAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAx
NTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTVBF
UklBTF9BUkFNQUlDICAgICAgICAgICAgICA9IDExNiwvKiBBcm1pICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0FWRVNUQU4gICAgICAgICAgICAgICAgICAg
ICAgID0gMTE3LC8qIEF2c3QgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAg
IFVTQ1JJUFRfQ0hBS01BICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTgsLyogQ2FrbSAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LT1JFQU4gICAgICAg
ICAgICAgICAgICAgICAgICA9IDExOSwvKiBLb3JlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC4wICovCiAgICAgICBVU0NSSVBUX0tBSVRISSAgICAgICAgICAgICAgICAgICAgICAgID0gMTIw
LC8qIEt0aGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRf
TUFOSUNIQUVBTiAgICAgICAgICAgICAgICAgICAgPSAxMjEsLyogTWFuaSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBSExBVkkg
ICAgICAgICA9IDEyMiwvKiBQaGxpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAg
ICAgICBVU0NSSVBUX1BTQUxURVJfUEFITEFWSSAgICAgICAgICAgICAgID0gMTIzLC8qIFBobHAg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQk9PS19QQUhM
QVZJICAgICAgICAgICAgICAgICAgPSAxMjQsLyogUGhsdiAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBUlRISUFOICAgICAgICA9
IDEyNSwvKiBQcnRpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NS
SVBUX1NBTUFSSVRBTiAgICAgICAgICAgICAgICAgICAgID0gMTI2LC8qIFNhbXIgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfVEFJX1ZJRVQgICAgICAgICAg
ICAgICAgICAgICAgPSAxMjcsLyogVGF2dCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAq
LwogICAgICAgVVNDUklQVF9NQVRIRU1BVElDQUxfTk9UQVRJT04gICAgICAgICA9IDEyOCwvKiBa
bXRoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1NZTUJP
TFMgICAgICAgICAgICAgICAgICAgICAgID0gMTI5LC8qIFpzeW0gKi8KIAotICAgICAgLyogTmV3
IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICAgIC8q
IE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfQkFNVU0gICAgICAgICAgICAgICAgICAgICAgICAgPSAx
MzAsLyogQmFtdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAgVVNDUklQ
VF9MSVNVICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMSwvKiBMaXN1ICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX05BS0hJX0dFQkEgICAgICAgICAg
ICAgICAgICAgID0gMTMyLC8qIE5rZ2IgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8K
ICAgICAgIFVTQ1JJUFRfT0xEX1NPVVRIX0FSQUJJQU4gICAgICAgICAgICAgPSAxMzMsLyogU2Fy
YiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUg
SUNVIDQuNiAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9CQVNTQV9WQUggICAg
ICAgICAgICAgICAgICAgICA9IDEzNCwvKiBCYXNzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC42ICovCiAgICAgICBVU0NSSVBUX0RVUExPWUFOX1NIT1JUQU5EICAgICAgICAgICAgID0gMTM1
LC8qIER1cGwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRf
RUxCQVNBTiAgICAgICAgICAgICAgICAgICAgICAgPSAxMzYsLyogRWxiYSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9HUkFOVEhBICAgICAgICAgICAgICAg
ICAgICAgICA9IDEzNywvKiBHcmFuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAg
ICAgICBVU0NSSVBUX0tQRUxMRSAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LC8qIEtwZWwg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTE9NQSAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMzksLyogTG9tYSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRU5ERSAgICAgICAgICAgICAgICAgICAgICAgICA9
IDE0MCwvKiBNZW5kICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NS
SVBUX01FUk9JVElDX0NVUlNJVkUgICAgICAgICAgICAgID0gMTQxLC8qIE1lcmMgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX05PUlRIX0FSQUJJQU4g
ICAgICAgICAgICAgPSAxNDIsLyogTmFyYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAq
LwogICAgICAgVVNDUklQVF9OQUJBVEFFQU4gICAgICAgICAgICAgICAgICAgICA9IDE0MywvKiBO
YmF0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX1BBTE1Z
UkVORSAgICAgICAgICAgICAgICAgICAgID0gMTQ0LC8qIFBhbG0gKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfU0lOREhJICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxNDUsLyogU2luZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAg
VVNDUklQVF9XQVJBTkdfQ0lUSSAgICAgICAgICAgICAgICAgICA9IDE0NiwvKiBXYXJhICovCiAK
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfQUZBS0EgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxNDcsLyogQWZhayAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuOCAqLworICAgICAgVVNDUklQVF9KVVJDSEVOICAgICAgICAgICAgICAgICAgICAgICA9IDE0
OCwvKiBKdXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBU
X01STyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ5LC8qIE1yb28gKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfTlVTSFUgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNTAsLyogTnNodSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLwor
ICAgICAgVVNDUklQVF9TSEFSQURBICAgICAgICAgICAgICAgICAgICAgICA9IDE1MSwvKiBTaHJk
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1NPUkFfU09N
UEVORyAgICAgICAgICAgICAgICAgID0gMTUyLC8qIFNvcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfVEFLUkkgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxNTMsLyogVGFrciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVND
UklQVF9UQU5HVVQgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NCwvKiBUYW5nICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1dPTEVBSSAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTU1LC8qIFdvbGUgKi8KKworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5
ICovCisgICAgICBVU0NSSVBUX0FOQVRPTElBTl9ISUVST0dMWVBIUyAgICAgICAgID0gMTU2LC8q
IEhsdXcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQVF9LSE9K
S0kgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NywvKiBLaG9qICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNDkgKi8KKyAgICAgIFVTQ1JJUFRfVElSSFVUQSAgICAgICAgICAgICAgICAgICAg
ICAgPSAxNTgsLyogVGlyaCAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAg
IFVTQ1JJUFRfQ0FVQ0FTSUFOX0FMQkFOSUFOICAgICAgICAgICAgPSAxNTksLyogQWdoYiAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX01BSEFKQU5JICAgICAg
ICAgICAgICAgICAgICAgID0gMTYwLC8qIE1haGogKi8KKwogICAgICAgLyogUHJpdmF0ZSB1c2Ug
Y29kZXMgZnJvbSBRYWFhIC0gUWFieCBhcmUgbm90IHN1cHBvcnRlZCAqLwotICAgICAgVVNDUklQ
VF9DT0RFX0xJTUlUICAgID0gMTQ3CisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KKyAg
ICAgIFVTQ1JJUFRfQ09ERV9MSU1JVCAgICA9IDE2MQogfSBVU2NyaXB0Q29kZTsKIAogLyoqCkBA
IC0yNzcsOSArNDY0LDkgQEAgVV9TVEFCTEUgVVNjcmlwdENvZGUgIFVfRVhQT1JUMgogdXNjcmlw
dF9nZXRTY3JpcHQoVUNoYXIzMiBjb2RlcG9pbnQsIFVFcnJvckNvZGUgKmVycik7CiAKIC8qKgot
ICogSXMgY29kZSBwb2ludCBjIHVzZWQgaW4gc2NyaXB0IHNjPwotICogVGhhdCBpcywgZG9lcyBj
b2RlIHBvaW50IGMgaGF2ZSB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLAotICogb3IgZG8g
Y29kZSBwb2ludCBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMgaW5jbHVkZSBzY3JpcHQgY29kZSBzYz8K
KyAqIERvIHRoZSBTY3JpcHRfRXh0ZW5zaW9ucyBvZiBjb2RlIHBvaW50IGMgY29udGFpbiBzY3Jp
cHQgc2M/CisgKiBJZiBjIGRvZXMgbm90IGhhdmUgZXhwbGljaXQgU2NyaXB0X0V4dGVuc2lvbnMs
IHRoZW4gdGhpcyB0ZXN0cyB3aGV0aGVyCisgKiBjIGhhcyB0aGUgU2NyaXB0IHByb3BlcnR5IHZh
bHVlIHNjLgogICoKICAqIFNvbWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0
aXBsZSBzY3JpcHRzLgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRw
Oi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyNC8uCkBAIC0yODgsMTUgKzQ3NSwyMiBAQCB1
c2NyaXB0X2dldFNjcmlwdChVQ2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJyKTsKICAq
IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRodXMgaW4g
SUNVLgogICogQHBhcmFtIGMgY29kZSBwb2ludAogICogQHBhcmFtIHNjIHNjcmlwdCBjb2RlCi0g
KiBAcmV0dXJuIFRSVUUgaWYgU2NyaXB0KGMpPT1zYyBvciBzYyBpcyBpbiBTY3JpcHRfRXh0ZW5z
aW9ucyhjKQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEByZXR1cm4gVFJVRSBpZiBzYyBpcyBpbiBT
Y3JpcHRfRXh0ZW5zaW9ucyhjKQorICogQHN0YWJsZSBJQ1UgNDkKICAqLwotVV9EUkFGVCBVQm9v
bCBVX0VYUE9SVDIKK1VfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgogdXNjcmlwdF9oYXNTY3JpcHQo
VUNoYXIzMiBjLCBVU2NyaXB0Q29kZSBzYyk7CiAKIC8qKgogICogV3JpdGVzIGNvZGUgcG9pbnQg
YydzIFNjcmlwdF9FeHRlbnNpb25zIGFzIGEgbGlzdCBvZiBVU2NyaXB0Q29kZSB2YWx1ZXMKLSAq
IHRvIHRoZSBvdXRwdXQgc2NyaXB0cyBhcnJheS4KKyAqIHRvIHRoZSBvdXRwdXQgc2NyaXB0cyBh
cnJheSBhbmQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNjcmlwdCBjb2Rlcy4KKyAqIC0gSWYgYyBk
b2VzIGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIFNjcmlwdCBwcm9wZXJ0eSB2YWx1
ZQorICogICAobm9ybWFsbHkgQ29tbW9uIG9yIEluaGVyaXRlZCkgaXMgbm90IGluY2x1ZGVkLgor
ICogLSBJZiBjIGRvZXMgbm90IGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIG9uZSBT
Y3JpcHQgY29kZSBpcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYXJyYXkuCisgKiAtIElmIGMgaXMg
bm90IGEgdmFsaWQgY29kZSBwb2ludCwgdGhlbiB0aGUgb25lIFVTQ1JJUFRfVU5LTk9XTiBjb2Rl
IGlzIHdyaXR0ZW4uCisgKiBJbiBvdGhlciB3b3JkcywgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyAx
LAorICogdGhlbiB0aGUgb3V0cHV0IGFycmF5IGNvbnRhaW5zIGV4YWN0bHkgYydzIHNpbmdsZSBT
Y3JpcHQgY29kZS4KKyAqIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbj49MiwgdGhlbiB0aGUgb3V0
cHV0IGFycmF5IGNvbnRhaW5zIGMncyBuIFNjcmlwdF9FeHRlbnNpb25zIHNjcmlwdCBjb2Rlcy4K
ICAqCiAgKiBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2Ny
aXB0cy4KICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDovL3d3dy51
bmljb2RlLm9yZy9yZXBvcnRzL3RyMjQvLgpAQCAtMzE0LDEzICs1MDgsMTIwIEBAIHVzY3JpcHRf
aGFzU2NyaXB0KFVDaGFyMzIgYywgVVNjcmlwdENvZGUgc2MpOwogICogICAgICAgICAgICAgICAg
ICBwYXNzIHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5z
CiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkg
b24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWlu
aW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQotICogQHJldHVybiBudW1iZXIgb2Yg
c2NyaXB0IGNvZGVzIGluIGMncyBTY3JpcHRfRXh0ZW5zaW9ucywKKyAqIEByZXR1cm4gbnVtYmVy
IG9mIHNjcmlwdCBjb2RlcyBpbiBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMsIG9yIDEgZm9yIHRoZSBz
aW5nbGUgU2NyaXB0IHZhbHVlLAogICogICAgICAgICB3cml0dGVuIHRvIHNjcmlwdHMgdW5sZXNz
IFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIGluZGljYXRlcyBpbnN1ZmZpY2llbnQgY2FwYWNpdHkK
LSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZUIGludDMy
X3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdXNjcmlwdF9nZXRTY3Jp
cHRFeHRlbnNpb25zKFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2Ny
aXB0Q29kZSAqc2NyaXB0cywgaW50MzJfdCBjYXBhY2l0eSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICplcnJvckNvZGUpOworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkK
KworLyoqCisgKiBTY3JpcHQgdXNhZ2UgY29uc3RhbnRzLgorICogU2VlIFVBWCAjMzEgVW5pY29k
ZSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheC4KKyAqIGh0dHA6Ly93d3cudW5pY29kZS5v
cmcvcmVwb3J0cy90cjMxLyNUYWJsZV9DYW5kaWRhdGVfQ2hhcmFjdGVyc19mb3JfRXhjbHVzaW9u
X2Zyb21fSWRlbnRpZmllcnMKKyAqCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK3R5cGVkZWYgZW51
bSBVU2NyaXB0VXNhZ2UgeworICAgIC8qKiBOb3QgZW5jb2RlZCBpbiBVbmljb2RlLiBAZHJhZnQg
SUNVIDUxICovCisgICAgVVNDUklQVF9VU0FHRV9OT1RfRU5DT0RFRCwKKyAgICAvKiogVW5rbm93
biBzY3JpcHQgdXNhZ2UuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1VOS05P
V04sCisgICAgLyoqIENhbmRpZGF0ZSBmb3IgRXhjbHVzaW9uIGZyb20gSWRlbnRpZmllcnMuIEBk
cmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0VYQ0xVREVELAorICAgIC8qKiBMaW1p
dGVkIFVzZSBzY3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0xJTUlU
RURfVVNFLAorICAgIC8qKiBBc3BpcmF0aW9uYWwgVXNlIHNjcmlwdC4gQGRyYWZ0IElDVSA1MSAq
LworICAgIFVTQ1JJUFRfVVNBR0VfQVNQSVJBVElPTkFMLAorICAgIC8qKiBSZWNvbW1lbmRlZCBz
Y3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1JFQ09NTUVOREVECit9
IFVTY3JpcHRVc2FnZTsKKworLyoqCisgKiBXcml0ZXMgdGhlIHNjcmlwdCBzYW1wbGUgY2hhcmFj
dGVyIHN0cmluZy4KKyAqIFRoaXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9uZSBjb2Rl
IHBvaW50IGJ1dCBtaWdodCBiZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5IGlmIHRo
ZSBzY3JpcHQgaXMgbm90IGVuY29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29k
ZQorICogQHBhcmFtIGRlc3Qgb3V0cHV0IHN0cmluZyBhcnJheQorICogQHBhcmFtIGNhcGFjaXR5
IG51bWJlciBvZiBVQ2hhcnMgaW4gdGhlIGRlc3QgYXJyYXkKKyAqIEBwYXJhbSBwRXJyb3JDb2Rl
IHN0YW5kYXJkIElDVSBpbi9vdXQgZXJyb3IgY29kZSwgbXVzdCBwYXNzIFVfU1VDQ0VTUygpIG9u
IGlucHV0CisgKiBAcmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoLCBldmVuIGlmIFVfQlVGRkVSX09W
RVJGTE9XX0VSUk9SCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgaW50MzJfdCBVX0VY
UE9SVDIKK3VzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nKFVTY3JpcHRDb2RlIHNjcmlwdCwgVUNoYXIg
KmRlc3QsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYg
VV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KK2NsYXNzIFVuaWNvZGVT
dHJpbmc7CitVX05BTUVTUEFDRV9FTkQKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHQgc2Ft
cGxlIGNoYXJhY3RlciBzdHJpbmcuCisgKiBUaGlzIHN0cmluZyBub3JtYWxseSBjb25zaXN0cyBv
ZiBvbmUgY29kZSBwb2ludCBidXQgbWlnaHQgYmUgbG9uZ2VyLgorICogVGhlIHN0cmluZyBpcyBl
bXB0eSBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkLgorICoKKyAqIEBwYXJhbSBzY3JpcHQg
c2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gdGhlIHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5nCisgKiBA
ZHJhZnQgSUNVIDUxCisgKi8KK1VfQ09NTU9OX0FQSSBpY3U6OlVuaWNvZGVTdHJpbmcgVV9FWFBP
UlQyCit1c2NyaXB0X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcoVVNjcmlwdENvZGUgc2NyaXB0KTsK
KworI2VuZGlmCisKKy8qKgorICogUmV0dXJucyB0aGUgc2NyaXB0IHVzYWdlIGFjY29yZGluZyB0
byBVQVggIzMxIFVuaWNvZGUgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXguCisgKiBSZXR1
cm5zIFVTQ1JJUFRfVVNBR0VfTk9UX0VOQ09ERUQgaWYgdGhlIHNjcmlwdCBpcyBub3QgZW5jb2Rl
ZCBpbiBVbmljb2RlLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1
cm4gc2NyaXB0IHVzYWdlCisgKiBAc2VlIFVTY3JpcHRVc2FnZQorICogQGRyYWZ0IElDVSA1MQor
ICovCitVX0RSQUZUIFVTY3JpcHRVc2FnZSBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0VXNhZ2UoVVNj
cmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBp
cyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisgKiBGb3IgZXhhbXBsZSwgQXJhYiBhbmQgSGVici4K
KyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhl
IHNjcmlwdCBpcyByaWdodC10by1sZWZ0CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQg
VUJvb2wgVV9FWFBPUlQyCit1c2NyaXB0X2lzUmlnaHRUb0xlZnQoVVNjcmlwdENvZGUgc2NyaXB0
KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGluZSBicmVh
a3MgYmV0d2VlbiBsZXR0ZXJzIChleGNsdWRpbmcgaHlwaGVuYXRpb24pLgorICogU3VjaCBhIHNj
cmlwdCB0eXBpY2FsbHkgcmVxdWlyZXMgZGljdGlvbmFyeS1iYXNlZCBsaW5lIGJyZWFraW5nLgor
ICogRm9yIGV4YW1wbGUsIEhhbmkgYW5kIFRoYWkuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3Jp
cHQgY29kZQorICogQHJldHVybiBUUlVFIGlmIHRoZSBzY3JpcHQgYWxsb3dzIGxpbmUgYnJlYWtz
IGJldHdlZW4gbGV0dGVycworICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVf
RVhQT1JUMgordXNjcmlwdF9icmVha3NCZXR3ZWVuTGV0dGVycyhVU2NyaXB0Q29kZSBzY3JpcHQp
OworCisvKioKKyAqIFJldHVybnMgVFJVRSBpZiBpbiBtb2Rlcm4gKG9yIG1vc3QgcmVjZW50KSB1
c2FnZSBvZiB0aGUgc2NyaXB0IGNhc2UgZGlzdGluY3Rpb25zIGFyZSBjdXN0b21hcnkuCisgKiBG
b3IgZXhhbXBsZSwgTGF0biBhbmQgQ3lybC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBj
b2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyBjYXNlZAorICogQGRyYWZ0IElD
VSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9pc0Nhc2VkKFVTY3Jp
cHRDb2RlIHNjcmlwdCk7CisKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLwogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZWFyY2guaCBiL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZWFyY2guaAppbmRleCAyZjNkNTYzOTAyYjM5MGYw
ZTcxNDk5OWU4MzkyMTQwNTRlZjY4Nzk3Li45ZjMwNWViODcyMDQxMzhiM2RjNTE1ODRlOTY4ZWJi
M2YwNzcxOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2VhcmNo
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNlYXJjaC5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMCBJQk0g
YW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogICBDb3B5cmlnaHQgKEMpIDIwMDEt
MjAxMSBJQk0gYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
ICogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgogKiAgMDYvMjgvMjAwMSAg
IHN5bndlZSAgICAgIENyZWF0aW9uLgpAQCAtNTg2LDggKzU4Niw4IEBAIFVfU1RBQkxFIGludDMy
X3QgVV9FWFBPUlQyIHVzZWFyY2hfZmlyc3QoVVN0cmluZ1NlYXJjaCAqc3Ryc3JjaCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICpzdGF0
dXMpOwogCiAvKioKLSogUmV0dXJucyB0aGUgZmlyc3QgaW5kZXggZ3JlYXRlciB0aGFuIDx0dD5w
b3NpdGlvbjwvdHQ+IGF0IHdoaWNoIHRoZSBzdHJpbmcgCi0qIHRleHQgCisqIFJldHVybnMgdGhl
IGZpcnN0IGluZGV4IGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiA8dHQ+cG9zaXRpb248L3R0PiBhdCB3
aGljaAorKiB0aGUgc3RyaW5nIHRleHQKICogbWF0Y2hlcyB0aGUgc2VhcmNoIHBhdHRlcm4uIFRo
ZSBpdGVyYXRvciBpcyBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IAogKiBpbmRleCAoYXMg
cmV0dXJuZWQgYnkgPHR0PnVzZWFyY2hfZ2V0T2Zmc2V0PC90dD4pIGlzIHRoZSBtYXRjaCBwb3Np
dGlvbiBpZiAKICogb25lIHdhcyBmb3VuZC4KQEAgLTYzOCw3ICs2MzgsMTIgQEAgVV9TVEFCTEUg
aW50MzJfdCBVX0VYUE9SVDIgdXNlYXJjaF9sYXN0KFVTdHJpbmdTZWFyY2ggKnN0cnNyY2gsCiAq
IDxwPgogKiBTZWFyY2ggcG9zaXRpb25zIHRoYXQgbWF5IHJlbmRlciBpbmNvcnJlY3QgcmVzdWx0
cyBhcmUgaGlnaGxpZ2h0ZWQgaW4gdGhlCiAqIGhlYWRlciBjb21tZW50cy4gSWYgcG9zaXRpb24g
aXMgbGVzcyB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGV4dCByYW5nZSAKLSogZm9yIHNlYXJj
aGluZywgYW4gVV9JTkRFWF9PVVRPRkJPVU5EU19FUlJPUiB3aWxsIGJlIHJldHVybmVkCisqIGZv
ciBzZWFyY2hpbmcsIGFuIFVfSU5ERVhfT1VUT0ZCT1VORFNfRVJST1Igd2lsbCBiZSByZXR1cm5l
ZC4KKyogPHA+CisqIFdoZW4gPHR0PlVTRUFSQ0hfT1ZFUkxBUDwvdHQ+IG9wdGlvbiBpcyBvZmYs
IHRoZSBsYXN0IGluZGV4IG9mIHRoZQorKiByZXN1bHQgbWF0Y2ggaXMgYWx3YXlzIGxlc3MgdGhh
biA8dHQ+cG9zaXRpb248L3R0Pi4KKyogV2hlbiA8dHQ+VVNFUkFSQ0hfT1ZFUkxBUDwvdHQ+IGlz
IG9uLCB0aGUgcmVzdWx0IG1hdGNoIG1heSBzcGFuIGFjcm9zcworKiA8dHQ+cG9zaXRpb248L3R0
Pi4KICogQHBhcmFtIHN0cnNyY2ggc2VhcmNoIGl0ZXJhdG9yIGRhdGEgc3RydWN0CiAqIEBwYXJh
bSBwb3NpdGlvbiBpbmRleCBwb3NpdGlvbiB0aGUgc2VhcmNoIGlzIHRvIGJlZ2luIGF0CiAqIEBw
YXJhbSBzdGF0dXMgZm9yIGVycm9ycyBpZiBpdCBvY2N1cnMKQEAgLTcwNCw2ICs3MDksNyBAQCBV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiB1c2VhcmNoX3ByZXZpb3VzKFVTdHJpbmdTZWFyY2gg
KnN0cnNyY2gsCiAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgdXNlYXJjaF9yZXNldChVU3Ry
aW5nU2VhcmNoICpzdHJzcmNoKTsKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioK
ICAgKiAgU2ltcGxlIGZvcndhcmQgc2VhcmNoIGZvciB0aGUgcGF0dGVybiwgc3RhcnRpbmcgYXQg
YSBzcGVjaWZpZWQgaW5kZXgsCiAgICogICAgIGFuZCB1c2luZyB1c2luZyBhIGRlZmF1bHQgc2V0
IHNlYXJjaCBvcHRpb25zLgpAQCAtODIzLDYgKzgyOSw3IEBAIFVfSU5URVJOQUwgVUJvb2wgVV9F
WFBPUlQyIHVzZWFyY2hfc2VhcmNoQmFja3dhcmRzKFVTdHJpbmdTZWFyY2ggKnN0cnNyY2gsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
ICAgICAgICAqbWF0Y2hTdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICptYXRjaExpbWl0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAgKnN0
YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogI2VuZGlmIC8qICNp
ZiAhVUNPTkZJR19OT19DT0xMQVRJT04gICYmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAq
LwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2V0LmgKaW5kZXggNzdhYjA2MzQyZjI2ZTljNzBlMjcz
MDI0ZmE2ZWJlZjU2MmNkNTk4MS4uNDA1MTBjZDQxNjdjOGY3N2Q1MDY2MWRmZmY3ZmUwOWI5ZWY4
MDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZXQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTAsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAx
MiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpA
QCAtODksMTMgKzg5LDcgQEAgZW51bSB7CiAgICAgICogb2YgZWFjaCBleGlzdGluZyBlbGVtZW50
IGluIHRoZSBzZXQuCiAgICAgICogQHN0YWJsZSBJQ1UgMy4yCiAgICAgICovCi0gICAgVVNFVF9B
RERfQ0FTRV9NQVBQSU5HUyA9IDQsCi0gICAgCi0gICAgLyoqCi0gICAgICogRW5vdWdoIGZvciBh
bnkgc2luZ2xlLWNvZGUgcG9pbnQgc2V0Ci0gICAgICogQGludGVybmFsCi0gICAgICovCi0gICAg
VVNFVF9TRVJJQUxJWkVEX1NUQVRJQ19BUlJBWV9DQVBBQ0lUWT04CisgICAgVVNFVF9BRERfQ0FT
RV9NQVBQSU5HUyA9IDQKIH07CiAKIC8qKgpAQCAtMjA3LDYgKzIwMSwxNiBAQCB0eXBlZGVmIGVu
dW0gVVNldFNwYW5Db25kaXRpb24gewogICAgIFVTRVRfU1BBTl9DT05ESVRJT05fQ09VTlQKIH0g
VVNldFNwYW5Db25kaXRpb247CiAKK2VudW0geworICAgIC8qKgorICAgICAqIENhcGFjaXR5IG9m
IFVTZXJpYWxpemVkU2V0OjpzdGF0aWNBcnJheS4KKyAgICAgKiBFbm91Z2ggZm9yIGFueSBzaW5n
bGUtY29kZSBwb2ludCBzZXQuCisgICAgICogQWxzbyBwcm92aWRlcyBwYWRkaW5nIGZvciBuaWNl
IHNpemVvZihVU2VyaWFsaXplZFNldCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICov
CisgICAgVVNFVF9TRVJJQUxJWkVEX1NUQVRJQ19BUlJBWV9DQVBBQ0lUWT04Cit9OworCiAvKioK
ICAqIEEgc2VyaWFsaXplZCBmb3JtIG9mIGEgVW5pY29kZSBzZXQuICBMaW1pdGVkIG1hbmlwdWxh
dGlvbnMgYXJlCiAgKiBwb3NzaWJsZSBkaXJlY3RseSBvbiBhIHNlcmlhbGl6ZWQgc2V0LiAgU2Vl
IGJlbG93LgpAQCAtMjQ3LDcgKzI1MSw3IEBAIHR5cGVkZWYgc3RydWN0IFVTZXJpYWxpemVkU2V0
IHsKICAqIEBzdGFibGUgSUNVIDQuMgogICovCiBVX1NUQUJMRSBVU2V0KiBVX0VYUE9SVDIKLXVz
ZXRfb3BlbkVtcHR5KCk7Cit1c2V0X29wZW5FbXB0eSh2b2lkKTsKIAogLyoqCiAgKiBDcmVhdGVz
IGEgVVNldCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgcmFuZ2Ugb2YgY2hhcmFjdGVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNoYXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pY3UvdW5pY29kZS91c2hhcGUuaAppbmRleCA2YzM2NTVmN2ExYTYyMjQ1MzQ3NzE3MDUy
YjJiODc4YTMwZjQyYWUzLi45ZmI1YWI0ZTU0N2Y0Y2FkYzY0MzFiM2UzOWFmYzUyMjJlYTI3Mzdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2hhcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2hhcGUuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEy
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAg
LTQ2MSwxNCArNDYxLDE0IEBAIHVfc2hhcGVBcmFiaWMoY29uc3QgVUNoYXIgKnNvdXJjZSwgaW50
MzJfdCBzb3VyY2VMZW5ndGgsCiAgKiBTaGFwaW5nIE1vZGU6IE9ubHkgc2hhcGluZy4KICAqIERl
LXNoYXBpbmcgTW9kZTogTi9BLgogICogQWZmZWN0czogQWxsIFNlZW4gb3B0aW9ucwotICogQGRy
YWZ0IElDVSA0LjIKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCi0jZGVmaW5lIFNIQVBFX1RBSUxf
TkVXX1VOSUNPREUgICAgICAgIDB4ODAwMDAwMAorI2RlZmluZSBVX1NIQVBFX1RBSUxfTkVXX1VO
SUNPREUgICAgICAgIDB4ODAwMDAwMAogCiAvKioKICAqIEJpdCBtYXNrIGZvciBuZXcgVW5pY29k
ZSBUYWlsIG9wdGlvbiAKLSAqIEBkcmFmdCBJQ1UgNC4yCisgKiBAc3RhYmxlIElDVSA0LjgKICAq
LwotI2RlZmluZSBTSEFQRV9UQUlMX1RZUEVfTUFTSyAgICAgICAgICAweDgwMDAwMDAKKyNkZWZp
bmUgVV9TSEFQRV9UQUlMX1RZUEVfTUFTSyAgICAgICAgICAweDgwMDAwMDAKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmgKaW5kZXggMmVlMTZlOTljZjNjMDA3YWI3NWVj
MWY2YmQ0MWMxNWFlYWQ5Mjk1Mi4uZDJlYTMxYzY3NDdmOGYxYzFlYjAzNzBlMjg0M2MzZjY0NDk4
YjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXN0cmluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzdHJpbmcuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTAsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMiwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMjAsOSArMjAsMTQg
QEAKICNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCiAjaW5jbHVkZSAidW5pY29kZS91aXRlci5o
IgogCi0vKiogU2ltcGxlIGRlY2xhcmF0aW9uIGZvciB1X3N0clRvVGl0bGUoKSB0byBhdm9pZCBp
bmNsdWRpbmcgdW5pY29kZS91YnJrLmguIEBzdGFibGUgSUNVIDIuMSovCisvKioKKyAqIFxkZWYg
VUJSS19UWVBFREVGX1VCUkVBS19JVEVSQVRPUgorICogQGludGVybmFsIAorICovCisKICNpZm5k
ZWYgVUJSS19UWVBFREVGX1VCUkVBS19JVEVSQVRPUgogIyAgIGRlZmluZSBVQlJLX1RZUEVERUZf
VUJSRUFLX0lURVJBVE9SCisvKiogU2ltcGxlIGRlY2xhcmF0aW9uIGZvciB1X3N0clRvVGl0bGUo
KSB0byBhdm9pZCBpbmNsdWRpbmcgdW5pY29kZS91YnJrLmguIEBzdGFibGUgSUNVIDIuMSovCiAg
ICAgdHlwZWRlZiBzdHJ1Y3QgVUJyZWFrSXRlcmF0b3IgVUJyZWFrSXRlcmF0b3I7CiAjZW5kaWYK
IApAQCAtMTQ2LDggKzE1MSw4IEBAIHVfc3RyY2F0KFVDaGFyICAgICAqZHN0LAogICogSWYgPGNv
ZGU+biZsdDs9MDwvY29kZT4gdGhlbiBkc3QgaXMgbm90IG1vZGlmaWVkLgogICoKICAqIEBwYXJh
bSBkc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBz
dHJpbmcuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBh
cHBlbmQuCisgKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZh
bGlkIGlmIG48PTApLgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3Rl
cnMgdG8gYXBwZW5kOyBuby1vcCBpZiA8PTAuCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29k
ZT5kc3Q8L2NvZGU+LgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTU1MCw5ICs1NTUsOSBA
QCB1X3N0ckNhc2VDb21wYXJlKGNvbnN0IFVDaGFyICpzMSwgaW50MzJfdCBsZW5ndGgxLAogICog
Q29tcGFyZSB0d28gdXN0cmluZ3MgZm9yIGJpdHdpc2UgZXF1YWxpdHkuIAogICogQ29tcGFyZXMg
YXQgbW9zdCA8Y29kZT5uPC9jb2RlPiBjaGFyYWN0ZXJzLgogICoKLSAqIEBwYXJhbSB1Y3MxIEEg
c3RyaW5nIHRvIGNvbXBhcmUuCi0gKiBAcGFyYW0gdWNzMiBBIHN0cmluZyB0byBjb21wYXJlLgot
ICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29tcGFyZS4K
KyAqIEBwYXJhbSB1Y3MxIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBiZSBOVUxML2ludmFsaWQg
aWYgbjw9MCkuCisgKiBAcGFyYW0gdWNzMiBBIHN0cmluZyB0byBjb21wYXJlIChjYW4gYmUgTlVM
TC9pbnZhbGlkIGlmIG48PTApLgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNo
YXJhY3RlcnMgdG8gY29tcGFyZTsgYWx3YXlzIHJldHVybnMgMCBpZiBuPD0wLgogICogQHJldHVy
biAwIGlmIDxjb2RlPnMxPC9jb2RlPiBhbmQgPGNvZGU+czI8L2NvZGU+IGFyZSBiaXR3aXNlIGVx
dWFsOyBhIG5lZ2F0aXZlCiAgKiB2YWx1ZSBpZiA8Y29kZT5zMTwvY29kZT4gaXMgYml0d2lzZSBs
ZXNzIHRoYW4gPGNvZGU+czI8L2NvZGU+OyBhIHBvc2l0aXZlCiAgKiB2YWx1ZSBpZiA8Y29kZT5z
MTwvY29kZT4gaXMgYml0d2lzZSBncmVhdGVyIHRoYW4gPGNvZGU+czI8L2NvZGU+LgpAQCAtNjY3
LDggKzY3Miw4IEBAIHVfc3RyY3B5KFVDaGFyICAgICAqZHN0LAogICogaWYgdGhlIGxlbmd0aCBv
ZiA8Y29kZT5zcmM8L2NvZGU+IGlzIGxlc3MgdGhhbiA8Y29kZT5uPC9jb2RlPi4KICAqCiAgKiBA
cGFyYW0gZHN0IFRoZSBkZXN0aW5hdGlvbiBzdHJpbmcuCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3Vy
Y2Ugc3RyaW5nLgotICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMg
dG8gY29weS4KKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2lu
dmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFj
dGVycyB0byBjb3B5OyBuby1vcCBpZiA8PTAuCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29k
ZT5kc3Q8L2NvZGU+LgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTc0Miw4ICs3NDcsOCBA
QCBVX1NUQUJMRSBjaGFyKiBVX0VYUE9SVDIgdV9hdXN0cm5jcHkoY2hhciAqZHN0LAogLyoqCiAg
KiBTeW5vbnltIGZvciBtZW1jcHkoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBAcGFyYW0g
ZGVzdCBUaGUgZGVzdGluYXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3Ry
aW5nCi0gKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvcHkKKyAq
IEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgY291
bnQ8PTApCisgKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvcHk7
IG5vLW9wIGlmIDw9MAogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwvY29kZT4K
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC03NTMsOCArNzU4LDggQEAgdV9tZW1jcHkoVUNo
YXIgKmRlc3QsIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3QgY291bnQpOwogLyoqCiAgKiBTeW5v
bnltIGZvciBtZW1tb3ZlKCksIGJ1dCB3aXRoIFVDaGFycyBvbmx5LgogICogQHBhcmFtIGRlc3Qg
VGhlIGRlc3RpbmF0aW9uIHN0cmluZwotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZwot
ICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBtb3ZlCisgKiBAcGFy
YW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIGNvdW50PD0w
KQorICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBtb3ZlOyBuby1v
cCBpZiA8PTAKICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRlc3Q8L2NvZGU+CiAgKiBA
c3RhYmxlIElDVSAyLjAKICAqLwpAQCAtOTE4LDcgKzkyMyw3IEBAIHVfbWVtcmNocjMyKGNvbnN0
IFVDaGFyICpzLCBVQ2hhcjMyIGMsIGludDMyX3QgY291bnQpOwogICogICAgfQogICogPC9wcmU+
CiAgKiAKLSAqIE5vdGUgdGhhdCB0aGUgbWFjcm9zIHdpbGwgTk9UIGNvbnNpc3RlbnRseSB3b3Jr
IGlmIHRoZWlyIGFyZ3VtZW50IGlzIGFub3RoZXIgI2RlZmluZS4gCisgKiBOb3RlIHRoYXQgdGhl
IG1hY3JvcyB3aWxsIE5PVCBjb25zaXN0ZW50bHkgd29yayBpZiB0aGVpciBhcmd1bWVudCBpcyBh
bm90aGVyIDxjb2RlPiNkZWZpbmU8L2NvZGU+LiAKICAqICBUaGUgZm9sbG93aW5nIHdpbGwgbm90
IHdvcmsgb24gYWxsIHBsYXRmb3JtcywgZG9uJ3QgdXNlIGl0LgogICogCiAgKiA8cHJlPgpAQCAt
OTM0LDcgKzkzOSw3IEBAIHVfbWVtcmNocjMyKGNvbnN0IFVDaGFyICpzLCBVQ2hhcjMyIGMsIGlu
dDMyX3QgY291bnQpOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZiBkZWZpbmVkKFVfREVD
TEFSRV9VVEYxNikKLSMgICBkZWZpbmUgVV9TVFJJTkdfREVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0
YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0aCkrMV09VV9ERUNMQVJFX1VURjE2KGNzKQorIyAg
IGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFy
ICp2YXI9KGNvbnN0IFVDaGFyICopVV9ERUNMQVJFX1VURjE2KGNzKQogICAgIC8qKkBzdGFibGUg
SUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0aCkKICNl
bGlmIFVfU0laRU9GX1dDSEFSX1Q9PVVfU0laRU9GX1VDSEFSICYmIChVX0NIQVJTRVRfRkFNSUxZ
PT1VX0FTQ0lJX0ZBTUlMWSB8fCAoVV9TSVpFT0ZfVUNIQVIgPT0gMiAmJiBkZWZpbmVkKFVfV0NI
QVJfSVNfVVRGMTYpKSkKQEAgLTk0Miw3ICs5NDcsNyBAQCB1X21lbXJjaHIzMihjb25zdCBVQ2hh
ciAqcywgVUNoYXIzMiBjLCBpbnQzMl90IGNvdW50KTsKICAgICAvKipAc3RhYmxlIElDVSAyLjAg
Ki8KICMgICBkZWZpbmUgVV9TVFJJTkdfSU5JVCh2YXIsIGNzLCBsZW5ndGgpCiAjZWxpZiBVX1NJ
WkVPRl9VQ0hBUj09MSAmJiBVX0NIQVJTRVRfRkFNSUxZPT1VX0FTQ0lJX0ZBTUlMWQotIyAgIGRl
ZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZh
clsobGVuZ3RoKSsxXT17IChjb25zdCBVQ2hhciAqKWNzIH0KKyMgICBkZWZpbmUgVV9TVFJJTkdf
REVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0aCkrMV09
Y3MKICAgICAvKipAc3RhYmxlIElDVSAyLjAgKi8KICMgICBkZWZpbmUgVV9TVFJJTkdfSU5JVCh2
YXIsIGNzLCBsZW5ndGgpCiAjZWxzZQpAQCAtMTE1NCwxMCArMTE1OSwxMiBAQCB1X3N0clRvVGl0
bGUoVUNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAogI2VuZGlmCiAKIC8qKgotICog
Q2FzZS1mb2xkIHRoZSBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLgorICogQ2FzZS1mb2xkcyB0aGUg
Y2hhcmFjdGVycyBpbiBhIHN0cmluZy4KKyAqCiAgKiBDYXNlLWZvbGRpbmcgaXMgbG9jYWxlLWlu
ZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCiAgKiBidXQgdGhlcmUgaXMgYW4g
b3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5ncyBmb3IgZG90
dGVkIEkKLSAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ0knIGluIENhc2VG
b2xkaW5nLnR4dC4KKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ1QnIGlu
IENhc2VGb2xkaW5nLnR4dC4KKyAqCiAgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hv
cnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KICAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVz
dGluYXRpb24gYnVmZmVyIGFyZSBhbGxvd2VkIHRvIG92ZXJsYXAuCiAgKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3V0ZXh0LmgKaW5kZXggMDg4YTUzMjczOTdmZDZjZjg1ZWIzNDEyMDU3ZWZmNWQ5MGRl
MDEyZi4uZDQzMTkxM2QzNWIzMWU4NzcxOWMyNjQ3OWFiMjIxNWU2NGZmMzM5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91dGV4dC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEyLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yNTcsNyArMjU3
LDcgQEAgdXRleHRfb3BlblVDaGFycyhVVGV4dCAqdXQsIGNvbnN0IFVDaGFyICpzLCBpbnQ2NF90
IGxlbmd0aCwgVUVycm9yQ29kZSAqc3RhdHVzKTsKICAqIEBzdGFibGUgSUNVIDMuNAogICovCiBV
X1NUQUJMRSBVVGV4dCAqIFVfRVhQT1JUMgotdXRleHRfb3BlblVuaWNvZGVTdHJpbmcoVVRleHQg
KnV0LCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyAqcywgVUVycm9yQ29kZSAq
c3RhdHVzKTsKK3V0ZXh0X29wZW5Vbmljb2RlU3RyaW5nKFVUZXh0ICp1dCwgaWN1OjpVbmljb2Rl
U3RyaW5nICpzLCBVRXJyb3JDb2RlICpzdGF0dXMpOwogCiAKIC8qKgpAQCAtMjczLDcgKzI3Myw3
IEBAIHV0ZXh0X29wZW5Vbmljb2RlU3RyaW5nKFVUZXh0ICp1dCwgVV9OQU1FU1BBQ0VfUVVBTElG
SUVSIFVuaWNvZGVTdHJpbmcgKnMsIFVFcnJvCiAgKiBAc3RhYmxlIElDVSAzLjQKICAqLwogVV9T
VEFCTEUgVVRleHQgKiBVX0VYUE9SVDIKLXV0ZXh0X29wZW5Db25zdFVuaWNvZGVTdHJpbmcoVVRl
eHQgKnV0LCBjb25zdCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyAqcywgVUVy
cm9yQ29kZSAqc3RhdHVzKTsKK3V0ZXh0X29wZW5Db25zdFVuaWNvZGVTdHJpbmcoVVRleHQgKnV0
LCBjb25zdCBpY3U6OlVuaWNvZGVTdHJpbmcgKnMsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKIAog
LyoqCkBAIC0yODksNyArMjg5LDcgQEAgdXRleHRfb3BlbkNvbnN0VW5pY29kZVN0cmluZyhVVGV4
dCAqdXQsIGNvbnN0IFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3RyaW4KICAqIEBzdGFi
bGUgSUNVIDMuNAogICovCiBVX1NUQUJMRSBVVGV4dCAqIFVfRVhQT1JUMgotdXRleHRfb3BlblJl
cGxhY2VhYmxlKFVUZXh0ICp1dCwgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFJlcGxhY2VhYmxlICpy
ZXAsIFVFcnJvckNvZGUgKnN0YXR1cyk7Cit1dGV4dF9vcGVuUmVwbGFjZWFibGUoVVRleHQgKnV0
LCBpY3U6OlJlcGxhY2VhYmxlICpyZXAsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKIC8qKgogICog
T3BlbiBhICBVVGV4dCBpbXBsZW1lbnRhdGlvbiBvdmVyIGFuIElDVSBDaGFyYWN0ZXJJdGVyYXRv
ci4KQEAgLTMwNCw3ICszMDQsNyBAQCB1dGV4dF9vcGVuUmVwbGFjZWFibGUoVVRleHQgKnV0LCBV
X05BTUVTUEFDRV9RVUFMSUZJRVIgUmVwbGFjZWFibGUgKnJlcCwgVUVycm9yQwogICogQHN0YWJs
ZSBJQ1UgMy40CiAgKi8KIFVfU1RBQkxFIFVUZXh0ICogVV9FWFBPUlQyCi11dGV4dF9vcGVuQ2hh
cmFjdGVySXRlcmF0b3IoVVRleHQgKnV0LCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVy
SXRlcmF0b3IgKmljLCBVRXJyb3JDb2RlICpzdGF0dXMpOwordXRleHRfb3BlbkNoYXJhY3Rlckl0
ZXJhdG9yKFVUZXh0ICp1dCwgaWN1OjpDaGFyYWN0ZXJJdGVyYXRvciAqY2ksIFVFcnJvckNvZGUg
KnN0YXR1cyk7CiAKICNlbmRpZgogCkBAIC02NzUsMTQ3ICs2NzUsNiBAQCB1dGV4dF9leHRyYWN0
KFVUZXh0ICp1dCwKICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOwogCiAKLS8qKgot
ICogQ29tcGFyZSB0d28gVVRleHRzIChiaW5hcnkgb3JkZXIpLiBUaGUgY29tcGFyaXNvbiBiZWdp
bnMgYXQgZWFjaCBzb3VyY2UgdGV4dCdzCi0gKiBpdGVyYXRpb24gcG9zaXRpb24uIFRoZSBpdGVy
YXRpb24gcG9zaXRpb24gb2YgZWFjaCBVVGV4dCB3aWxsIGJlIGxlZnQgZm9sbG93aW5nCi0gKiB0
aGUgbGFzdCBjaGFyYWN0ZXIgY29tcGFyZWQuCi0gKgotICogVGhlIGNvbXBhcmlzb24gaXMgZG9u
ZSBpbiBjb2RlIHBvaW50IG9yZGVyOyB1bmxpa2UgdV9zdHJDb21wYXJlLCB5b3UKLSAqIGNhbm5v
dCBjaG9vc2UgdG8gdXNlIGNvZGUgdW5pdCBvcmRlci4gVGhpcyBpcyBiZWNhdXNlIHRoZSBjaGFy
YWN0ZXJzCi0gKiBpbiBhIFVUZXh0IGFyZSBhY2Nlc3NlZCBvbmUgY29kZSBwb2ludCBhdCBhIHRp
bWUsIGFuZCBtYXkgbm90IGJlIGZyb20gYSBVVEYtMTYKLSAqIGNvbnRleHQuCi0gKgotICogVGhp
cyBmdW5jdGlvbnMgd29ya3Mgd2l0aCBzdHJpbmdzIG9mIGRpZmZlcmVudCBleHBsaWNpdGx5IHNw
ZWNpZmllZCBsZW5ndGhzCi0gKiB1bmxpa2UgdGhlIEFOU0kgQy1saWtlIHVfc3RyY21wKCkgYW5k
IHVfbWVtY21wKCkgZXRjLgotICogQSBsZW5ndGggYXJndW1lbnQgb2YgLTEgc2lnbmlmaWVzIHRo
YXQgYXMgbXVjaCBvZiB0aGUgc3RyaW5nIHNob3VsZCBiZSB1c2VkIGFzCi0gKiBpcyBuZWNlc3Nh
cnkgdG8gY29tcGFyZSB3aXRoIHRoZSBvdGhlciBzdHJpbmcuIElmIGJvdGggbGVuZ3RoIGFyZ3Vt
ZW50cyBhcmUgLTEsCi0gKiB0aGUgZW50aXJlIHJlbWFpbmluZyBwb3J0aW9uc3Mgb2YgYm90aCBz
dHJpbmdzIGFyZSB1c2VkLgotICoKLSAqIEBwYXJhbSBzMSBGaXJzdCBzb3VyY2Ugc3RyaW5nLgot
ICogQHBhcmFtIGxlbmd0aDEgTGVuZ3RoIG9mIGZpcnN0IHNvdXJjZSBzdHJpbmcgaW4gVVRGLTMy
IGNvZGUgcG9pbnRzLgotICoKLSAqIEBwYXJhbSBzMiBTZWNvbmQgc291cmNlIHN0cmluZy4KLSAq
IEBwYXJhbSBsZW5ndGgyIExlbmd0aCBvZiBzZWNvbmQgc291cmNlIHN0cmluZyBpbiBVVEYtMzIg
Y29kZSBwb2ludHMuCi0gKgotICogQHJldHVybiA8MCBvciAwIG9yID4wIGFzIHVzdWFsIGZvciBz
dHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBAaW50ZXJuYWwgSUNVIDQuNCB0ZWNobm9sb2d5IHBy
ZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQzMl90IFVfRVhQT1JUMgotdXRleHRfY29tcGFyZShV
VGV4dCAqczEsIGludDMyX3QgbGVuZ3RoMSwKLSAgICAgICAgICAgICAgVVRleHQgKnMyLCBpbnQz
Ml90IGxlbmd0aDIpOyAgICAKLQotLyoqCi0gKiBDb21wYXJlIHR3byBVVGV4dHMgKGJpbmFyeSBv
cmRlcikuIFRoZSBjb21wYXJpc29uIGJlZ2lucyBhdCBlYWNoIHNvdXJjZSB0ZXh0J3MKLSAqIGl0
ZXJhdGlvbiBwb3NpdGlvbi4gVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBvZiBlYWNoIFVUZXh0IHdp
bGwgYmUgbGVmdCBmb2xsb3dpbmcKLSAqIHRoZSBsYXN0IGNoYXJhY3RlciBjb21wYXJlZC4gVGhp
cyBtZXRob2QgZGlmZmVycyBmcm9tIHV0ZXh0X2NvbXBhcmUgaW4gdGhhdAotICogaXQgYWNjZXB0
cyBuYXRpdmUgbGltaXRzIHJhdGhlciB0aGFuIGxlbmd0aHMgZm9yIGVhY2ggc3RyaW5nLgotICoK
LSAqIFRoZSBjb21wYXJpc29uIGlzIGRvbmUgaW4gY29kZSBwb2ludCBvcmRlcjsgdW5saWtlIHVf
c3RyQ29tcGFyZSwgeW91Ci0gKiBjYW5ub3QgY2hvb3NlIHRvIHVzZSBjb2RlIHVuaXQgb3JkZXIu
IFRoaXMgaXMgYmVjYXVzZSB0aGUgY2hhcmFjdGVycwotICogaW4gYSBVVGV4dCBhcmUgYWNjZXNz
ZWQgb25lIGNvZGUgcG9pbnQgYXQgYSB0aW1lLCBhbmQgbWF5IG5vdCBiZSBmcm9tIGEgVVRGLTE2
Ci0gKiBjb250ZXh0LgotICoKLSAqIFRoaXMgZnVuY3Rpb25zIHdvcmtzIHdpdGggc3RyaW5ncyBv
ZiBkaWZmZXJlbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgbGVuZ3RocwotICogdW5saWtlIHRoZSBB
TlNJIEMtbGlrZSB1X3N0cmNtcCgpIGFuZCB1X21lbWNtcCgpIGV0Yy4KLSAqIEEgbGltaXQgYXJn
dW1lbnQgb2YgLTEgc2lnbmlmaWVzIHRoYXQgYXMgbXVjaCBvZiB0aGUgc3RyaW5nIHNob3VsZCBi
ZSB1c2VkIGFzCi0gKiBpcyBuZWNlc3NhcnkgdG8gY29tcGFyZSB3aXRoIHRoZSBvdGhlciBzdHJp
bmcuIElmIGJvdGggbGltaXQgYXJndW1lbnRzIGFyZSAtMSwKLSAqIHRoZSBlbnRpcmUgcmVtYWlu
aW5nIHBvcnRpb25zcyBvZiBib3RoIHN0cmluZ3MgYXJlIHVzZWQuCi0gKgotICogQHBhcmFtIHMx
IEZpcnN0IHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbGltaXQxIE5hdGl2ZSBpbmRleCBvZiB0
aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBzdHJpbmcgdG8gYmUgY29uc2lk
ZXJlZC4KLSAqCi0gKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0g
bGltaXQyIE5hdGl2ZSBpbmRleCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBz
b3VyY2Ugc3RyaW5nIHRvIGJlIGNvbnNpZGVyZWQuCi0gKgotICogQHJldHVybiA8MCBvciAwIG9y
ID4wIGFzIHVzdWFsIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBAaW50ZXJuYWwgSUNV
IDQuNCB0ZWNobm9sb2d5IHByZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQzMl90IFVfRVhQT1JU
MgotdXRleHRfY29tcGFyZU5hdGl2ZUxpbWl0KFVUZXh0ICpzMSwgaW50NjRfdCBsaW1pdDEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgVVRleHQgKnMyLCBpbnQ2NF90IGxpbWl0Mik7ICAgIAot
Ci0vKioKLSAqIENvbXBhcmUgdHdvIFVUZXh0cyBjYXNlLWluc2Vuc2l0aXZlbHkgdXNpbmcgZnVs
bCBjYXNlIGZvbGRpbmcuIFRoZSBjb21wYXJpc29uCi0gKiBiZWdpbnMgYXQgZWFjaCBzb3VyY2Ug
dGV4dCdzIGl0ZXJhdGlvbiBwb3NpdGlvbi4gVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBvZiBlYWNo
Ci0gKiBVVGV4dCB3aWxsIGJlIGxlZnQgZm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3RlciBjb21w
YXJlZC4KLSAqCi0gKiBUaGUgY29tcGFyaXNvbiBpcyBkb25lIGluIGNvZGUgcG9pbnQgb3JkZXI7
IHRoaXMgaXMgYmVjYXVzZSB0aGUgY2hhcmFjdGVycwotICogaW4gYSBVVGV4dCBhcmUgYWNjZXNz
ZWQgb25lIGNvZGUgcG9pbnQgYXQgYSB0aW1lLCBhbmQgbWF5IG5vdCBiZSBmcm9tIGEgVVRGLTE2
Ci0gKiBjb250ZXh0LgotICoKLSAqIFRoaXMgZnVuY3Rpb25zIHdvcmtzIHdpdGggc3RyaW5ncyBv
ZiBkaWZmZXJlbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgbGVuZ3RocwotICogdW5saWtlIHRoZSBB
TlNJIEMtbGlrZSB1X3N0cmNtcCgpIGFuZCB1X21lbWNtcCgpIGV0Yy4KLSAqIEEgbGVuZ3RoIGFy
Z3VtZW50IG9mIC0xIHNpZ25pZmllcyB0aGF0IGFzIG11Y2ggb2YgdGhlIHN0cmluZyBzaG91bGQg
YmUgdXNlZCBhcwotICogaXMgbmVjZXNzYXJ5IHRvIGNvbXBhcmUgd2l0aCB0aGUgb3RoZXIgc3Ry
aW5nLiBJZiBib3RoIGxlbmd0aCBhcmd1bWVudHMgYXJlIC0xLAotICogdGhlIGVudGlyZSByZW1h
aW5pbmcgcG9ydGlvbnNzIG9mIGJvdGggc3RyaW5ncyBhcmUgdXNlZC4KLSAqCi0gKiBAcGFyYW0g
czEgRmlyc3Qgc291cmNlIHN0cmluZy4KLSAqIEBwYXJhbSBsZW5ndGgxIExlbmd0aCBvZiBmaXJz
dCBzb3VyY2Ugc3RyaW5nIGluIFVURi0zMiBjb2RlIHBvaW50cy4KLSAqCi0gKiBAcGFyYW0gczIg
U2Vjb25kIHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbGVuZ3RoMiBMZW5ndGggb2Ygc2Vjb25k
IHNvdXJjZSBzdHJpbmcgaW4gVVRGLTMyIGNvZGUgcG9pbnRzLgotICoKLSAqIEBwYXJhbSBvcHRp
b25zIEEgYml0IHNldCBvZiBvcHRpb25zOgotICogICAtIFVfRk9MRF9DQVNFX0RFRkFVTFQgb3Ig
MCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6Ci0gKiAgICAgQ29tcGFyaXNvbiBpbiBjb2Rl
IHBvaW50IG9yZGVyIHdpdGggZGVmYXVsdCBjYXNlIGZvbGRpbmcuCi0gKgotICogICAtIFVfRk9M
RF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCi0gKgotICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBi
ZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKLSAqICAgICAgICAgICAg
ICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KLSAqCi0gKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmlu
ZyBjb21wYXJpc29ucwotICoKLSAqIEBpbnRlcm5hbCBJQ1UgNC40IHRlY2hub2xvZ3kgcHJldmll
dwotICovCi1VX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyCi11dGV4dF9jYXNlQ29tcGFyZShV
VGV4dCAqczEsIGludDMyX3QgbGVuZ3RoMSwKLSAgICAgICAgICAgICAgICAgIFVUZXh0ICpzMiwg
aW50MzJfdCBsZW5ndGgyLAotICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3B0aW9ucywgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7ICAgIAotCi0vKioKLSAqIENvbXBhcmUgdHdvIFVUZXh0cyBj
YXNlLWluc2Vuc2l0aXZlbHkgdXNpbmcgZnVsbCBjYXNlIGZvbGRpbmcuIFRoZSBjb21wYXJpc29u
Ci0gKiBiZWdpbnMgYXQgZWFjaCBzb3VyY2UgdGV4dCdzIGl0ZXJhdGlvbiBwb3NpdGlvbi4gVGhl
IGl0ZXJhdGlvbiBwb3NpdGlvbiBvZiBlYWNoCi0gKiBVVGV4dCB3aWxsIGJlIGxlZnQgZm9sbG93
aW5nIHRoZSBsYXN0IGNoYXJhY3RlciBjb21wYXJlZC4gVGhpcyBtZXRob2QgZGlmZmVycyBmcm9t
Ci0gKiB1dGV4dF9jYXNlQ29tcGFyZSBpbiB0aGF0IGl0IGFjY2VwdHMgbmF0aXZlIGxpbWl0cyBy
YXRoZXIgdGhhbiBsZW5ndGhzIGZvciBlYWNoCi0gKiBzdHJpbmcuCi0gKgotICogVGhlIGNvbXBh
cmlzb24gaXMgZG9uZSBpbiBjb2RlIHBvaW50IG9yZGVyOyB0aGlzIGlzIGJlY2F1c2UgdGhlIGNo
YXJhY3RlcnMKLSAqIGluIGEgVVRleHQgYXJlIGFjY2Vzc2VkIG9uZSBjb2RlIHBvaW50IGF0IGEg
dGltZSwgYW5kIG1heSBub3QgYmUgZnJvbSBhIFVURi0xNgotICogY29udGV4dC4KLSAqCi0gKiBU
aGlzIGZ1bmN0aW9ucyB3b3JrcyB3aXRoIHN0cmluZ3Mgb2YgZGlmZmVyZW50IGV4cGxpY2l0bHkg
c3BlY2lmaWVkIGxlbmd0aHMKLSAqIHVubGlrZSB0aGUgQU5TSSBDLWxpa2UgdV9zdHJjbXAoKSBh
bmQgdV9tZW1jbXAoKSBldGMuCi0gKiBBIGxpbWl0IGFyZ3VtZW50IG9mIC0xIHNpZ25pZmllcyB0
aGF0IGFzIG11Y2ggb2YgdGhlIHN0cmluZyBzaG91bGQgYmUgdXNlZCBhcwotICogaXMgbmVjZXNz
YXJ5IHRvIGNvbXBhcmUgd2l0aCB0aGUgb3RoZXIgc3RyaW5nLiBJZiBib3RoIGxlbmd0aCBhcmd1
bWVudHMgYXJlIC0xLAotICogdGhlIGVudGlyZSByZW1haW5pbmcgcG9ydGlvbnNzIG9mIGJvdGgg
c3RyaW5ncyBhcmUgdXNlZC4KLSAqCi0gKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4K
LSAqIEBwYXJhbSBsaW1pdDEgTmF0aXZlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0
aGUgZmlyc3Qgc291cmNlIHN0cmluZyB0byBiZSBjb25zaWRlcmVkLgotICoKLSAqIEBwYXJhbSBz
MiBTZWNvbmQgc291cmNlIHN0cmluZy4KLSAqIEBwYXJhbSBsaW1pdDIgTmF0aXZlIGluZGV4IG9m
IHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgc2Vjb25kIHNvdXJjZSBzdHJpbmcgdG8gYmUgY29u
c2lkZXJlZC4KLSAqCi0gKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKLSAq
ICAgLSBVX0ZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBvcHRpb25z
OgotICogICAgIENvbXBhcmlzb24gaW4gY29kZSBwb2ludCBvcmRlciB3aXRoIGRlZmF1bHQgY2Fz
ZSBmb2xkaW5nLgotICoKLSAqICAgLSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQotICoK
LSAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9y
IGNvZGUgdmFsdWUsCi0gKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRl
IGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCi0gKgotICogQHJldHVybiA8MCBv
ciAwIG9yID4wIGFzIHVzdWFsIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBAaW50ZXJu
YWwgSUNVIDQuNCB0ZWNobm9sb2d5IHByZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQzMl90IFVf
RVhQT1JUMgotdXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdChVVGV4dCAqczEsIGludDY0X3Qg
bGltaXQxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVGV4dCAqczIsIGludDY0X3Qg
bGltaXQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHRpb25zLCBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsgICAgCi0KIAogLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgogICoKQEAgLTgzMiw2ICs2OTEsNyBAQCB1dGV4dF9jYXNlQ29tcGFyZU5hdGl2ZUxpbWl0
KFVUZXh0ICpzMSwgaW50NjRfdCBsaW1pdDEsCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKICAqIGlubGluZSB2ZXJz
aW9uIG9mIHV0ZXh0X2N1cnJlbnQzMigpLCBmb3IgcGVyZm9ybWFuY2UtY3JpdGljYWwgc2l0dWF0
aW9ucy4KICAqCkBAIC04NDQsNiArNzA0LDcgQEAgdXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1p
dChVVGV4dCAqczEsIGludDY0X3QgbGltaXQxLAogI2RlZmluZSBVVEVYVF9DVVJSRU5UMzIodXQp
ICBcCiAgICAgKCh1dCktPmNodW5rT2Zmc2V0IDwgKHV0KS0+Y2h1bmtMZW5ndGggJiYgKCh1dCkt
PmNodW5rQ29udGVudHMpWyh1dCktPmNodW5rT2Zmc2V0XTwweGQ4MDAgPyBcCiAgICAgKCh1dCkt
PmNodW5rQ29udGVudHMpWygodXQpLT5jaHVua09mZnNldCldIDogdXRleHRfY3VycmVudDMyKHV0
KSkKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqIGlubGluZSB2
ZXJzaW9uIG9mIHV0ZXh0X25leHQzMigpLCBmb3IgcGVyZm9ybWFuY2UtY3JpdGljYWwgc2l0dWF0
aW9ucy4KQEAgLTE2OTIsNiArMTU1Myw3IEBAIHN0cnVjdCBVVGV4dCB7CiBVX1NUQUJMRSBVVGV4
dCAqIFVfRVhQT1JUMgogdXRleHRfc2V0dXAoVVRleHQgKnV0LCBpbnQzMl90IGV4dHJhU3BhY2Us
IFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoq
CiAgICogQGludGVybmFsCiAgICogIFZhbHVlIHVzZWQgdG8gaGVscCBpZGVudGlmeSBjb3JyZWN0
bHkgaW5pdGlhbGl6ZWQgVVRleHQgc3RydWN0cy4KQEAgLTE3MDAsNiArMTU2Miw3IEBAIHV0ZXh0
X3NldHVwKFVUZXh0ICp1dCwgaW50MzJfdCBleHRyYVNwYWNlLCBVRXJyb3JDb2RlICpzdGF0dXMp
OwogZW51bSB7CiAgICAgVVRFWFRfTUFHSUMgPSAweDM0NWFkODJjCiB9OworI2VuZGlmICAvKiBV
X0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogaW5pdGlhbGl6ZXIgdG8gYmUgdXNlZCB3
aXRoIGxvY2FsIChzdGFjaykgaW5zdGFuY2VzIG9mIGEgVVRleHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0Zi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
dXRmLmgKaW5kZXggZjc5NDc5OTM1ZDRhMWQ2YjFiZWZjZDQwNWNkMDRmNTIzODFiOTNlNy4uZjU5
NTRmZTlmZTY5OTg5M2JkMzE4ZTI0NzcyOTI2YzE3NWEyMGM3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNv
ZGUvdXRmLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTIyLDE1ICsyMiwyMCBAQAogICogYSBz
dXJyb2dhdGUgb3IgYSBub24tY2hhcmFjdGVyIGV0Yy4KICAqCiAgKiBUaGUgVUNoYXIgYW5kIFVD
aGFyMzIgZGF0YSB0eXBlcyBmb3IgVW5pY29kZSBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cwot
ICogYXJlIGRlZmluZWQgaW4gdW1hY2hpbmVzLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBtYWNoaW5l
LWRlcGVuZGVudC4KKyAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lLmggYmVjYXVzZSB0aGV5IGNh
biBiZSBtYWNoaW5lLWRlcGVuZGVudC4KICAqCi0gKiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlw
ZXMuaCBhbmQgaXRzZWxmIGluY2x1ZGVzIHV0ZjguaCBhbmQgdXRmMTYuaCBhZnRlciBzb21lCi0g
KiBjb21tb24gZGVmaW5pdGlvbnMuIFRob3NlIGZpbGVzIGRlZmluZSBtYWNyb3MgZm9yIGVmZmlj
aWVudGx5IGdldHRpbmcgY29kZSBwb2ludHMKKyAqIElmIFVfTk9fREVGQVVMVF9JTkNMVURFX1VU
Rl9IRUFERVJTIGlzIDAgdGhlbiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaAorICogYW5k
IGl0c2VsZiBpbmNsdWRlcyB1dGY4LmggYW5kIHV0ZjE2LmggYWZ0ZXIgc29tZQorICogY29tbW9u
IGRlZmluaXRpb25zLgorICogSWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMgaXMg
MSB0aGVuIGVhY2ggb2YgdGhlc2UgaGVhZGVycyBtdXN0IGJlCisgKiBpbmNsdWRlZCBleHBsaWNp
dGx5IGlmIHRoZWlyIGRlZmluaXRpb25zIGFyZSB1c2VkLgorICoKKyAqIHV0ZjguaCBhbmQgdXRm
MTYuaCBkZWZpbmUgbWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCiAg
KiBpbiBhbmQgb3V0IG9mIFVURi04LzE2IHN0cmluZ3MuCiAgKiB1dGYxNi5oIG1hY3JvcyBoYXZl
ICJVMTZfIiBwcmVmaXhlcy4KICAqIHV0ZjguaCBkZWZpbmVzIHNpbWlsYXIgbWFjcm9zIHdpdGgg
IlU4XyIgcHJlZml4ZXMgZm9yIFVURi04IHN0cmluZyBoYW5kbGluZy4KICAqCi0gKiBJQ1UgcHJv
Y2Vzc2VzIDE2LWJpdCBVbmljb2RlIHN0cmluZ3MuCisgKiBJQ1UgbW9zdGx5IHByb2Nlc3NlcyAx
Ni1iaXQgVW5pY29kZSBzdHJpbmdzLgogICogTW9zdCBvZiB0aGUgdGltZSwgc3VjaCBzdHJpbmdz
IGFyZSB3ZWxsLWZvcm1lZCBVVEYtMTYuCiAgKiBTaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZXMg
bXVzdCBiZSBoYW5kbGVkIGFzIHdlbGwsIGFuZCBhcmUgdHJlYXRlZCBpbiBJQ1UKICAqIGxpa2Ug
cmVndWxhciBjb2RlIHBvaW50cyB3aGVyZSBwb3NzaWJsZS4KQEAgLTQyLDE1ICs0NywxNiBAQAog
ICogSUNVIGZ1bmN0aW9ucyBoYW5kbGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoVSsxMDAw
MC4uVSsxMGZmZmYpCiAgKiBidXQgYXJlIG9wdGltaXplZCBmb3IgdGhlIG11Y2ggbW9yZSBmcmVx
dWVudGx5IG9jY3VycmluZyBCTVAgY29kZSBwb2ludHMuCiAgKgotICogdXRmLmggZGVmaW5lcyBV
Q2hhciB0byBiZSBhbiB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdj
aGFyX3QsIHRoZW4KLSAqIFVDaGFyIGlzIGRlZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBv
dGhlcndpc2UgdWludDE2X3QuCisgKiB1bWFjaGluZS5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4g
dW5zaWduZWQgMTYtYml0IGludGVnZXIuCisgKiBXaGVyZSBhdmFpbGFibGUsIFVDaGFyIGlzIGRl
ZmluZWQgdG8gYmUgYSBjaGFyMTZfdAorICogb3IgYSB3Y2hhcl90IChpZiB0aGF0IGlzIGFuIHVu
c2lnbmVkIDE2LWJpdCB0eXBlKSwgb3RoZXJ3aXNlIHVpbnQxNl90LgogICoKICAqIFVDaGFyMzIg
aXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAoaW50MzJfdCksIGxhcmdl
IGVub3VnaCBmb3IgYSAyMS1iaXQKICAqIFVuaWNvZGUgY29kZSBwb2ludCAoVW5pY29kZSBzY2Fs
YXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KICAqIEJlZm9yZSBJQ1UgMi40LCB0aGUgZGVmaW5pdGlv
biBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5kZW50IGFzCiAgKiB0aGUg
ZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZv
ciBVQ2hhcjMyIGl0c2VsZi4KICAqCi0gKiB1dGYuaCBhbHNvIGRlZmluZXMgYSBzbWFsbCBudW1i
ZXIgb2YgQyBtYWNyb3MgZm9yIHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgorICogdXRmLmgg
ZGVmaW5lcyBhIHNtYWxsIG51bWJlciBvZiBDIG1hY3JvcyBmb3Igc2luZ2xlIFVuaWNvZGUgY29k
ZSBwb2ludHMuCiAgKiBUaGVzZSBhcmUgc2ltcGxlIGNoZWNrcyBmb3Igc3Vycm9nYXRlcyBhbmQg
bm9uLWNoYXJhY3RlcnMuCiAgKiBGb3IgYWN0dWFsIFVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRp
ZXMgc2VlIHVjaGFyLmguCiAgKgpAQCAtNTksOSArNjUsNiBAQAogICogVGhlIG1hY3JvcyB3aWxs
IGRldGVjdCBpZiBhIHN1cnJvZ2F0ZSBjb2RlIHVuaXQgaXMgdW5wYWlyZWQKICAqIChsZWFkIHVu
aXQgd2l0aG91dCB0cmFpbCB1bml0IG9yIHZpY2UgdmVyc2EpIGFuZCBqdXN0IHJldHVybiB0aGUg
dW5pdCBpdHNlbGYKICAqIGFzIHRoZSBjb2RlIHBvaW50LgotICogKEl0IGlzIGFuIGFjY2lkZW50
YWwgcHJvcGVydHkgb2YgVW5pY29kZSBhbmQgVVRGLTE2IHRoYXQgYWxsCi0gKiBtYWxmb3JtZWQg
c2VxdWVuY2VzIGNhbiBiZSBleHByZXNzZWQgdW5hbWJpZ3VvdXNseSB3aXRoIGEgZGlzdGluY3Qg
c3VicmFuZ2UKLSAqIG9mIFVuaWNvZGUgY29kZSBwb2ludHMuKQogICoKICAqIFRoZSByZWd1bGFy
ICJzYWZlIiBtYWNyb3MgcmVxdWlyZSB0aGF0IHRoZSBpbml0aWFsLCBwYXNzZWQtaW4gc3RyaW5n
IGluZGV4CiAgKiBpcyB3aXRoaW4gYm91bmRzLiBUaGV5IG9ubHkgY2hlY2sgdGhlIGluZGV4IHdo
ZW4gdGhleSByZWFkIG1vcmUgdGhhbiBvbmUKQEAgLTk1LDcgKzk4LDcgQEAKICAqIGNvZGUgcG9p
bnQgdmFsdWVzICgwLi5VKzEwZmZmZikuIFRoZXkgYXJlIGluZGljYXRlZCB3aXRoIG5lZ2F0aXZl
IHZhbHVlcyBpbnN0ZWFkLgogICoKICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgSUNV
IFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91
c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0
Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3Vp
ZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5n
IHRoZXNlIG1hY3Jvcy4KQEAgLTEwOCwzMiArMTExLDEyIEBACiAjaWZuZGVmIF9fVVRGX0hfXwog
I2RlZmluZSBfX1VURl9IX18KIAotI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVk
ZSAidW5pY29kZS91bWFjaGluZS5oIgogLyogaW5jbHVkZSB0aGUgdXRmWFguaCBhZnRlciB0aGUg
Zm9sbG93aW5nIGRlZmluaXRpb25zICovCiAKIC8qIHNpbmdsZS1jb2RlIHBvaW50IGRlZmluaXRp
b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8q
KgotICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElz
IHRoYXQKLSAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4K
LSAqIEl0IGlzIG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEw
ZmZmZi4KLSAqIAotICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4g
YSBuZXcgQVBJCi0gKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgotICoKLSAq
IElDVSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Ut
c3BlY2lmaWMgImRvbmUiCi0gKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCi0gKiBUaG9zZSBtYXkg
bmVlZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KLSAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250
ZW50cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCi0gKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFz
TmV4dCgpIG9yIFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgotICoKLSAqIEByZXR1cm4gLTEKLSAq
IEBzZWUgVUNoYXIzMgotICogQHN0YWJsZSBJQ1UgMi40Ci0gKi8KLSNkZWZpbmUgVV9TRU5USU5F
TCAoLTEpCi0KLS8qKgogICogSXMgdGhpcyBjb2RlIHBvaW50IGEgVW5pY29kZSBub25jaGFyYWN0
ZXI/CiAgKiBAcGFyYW0gYyAzMi1iaXQgY29kZSBwb2ludAogICogQHJldHVybiBUUlVFIG9yIEZB
TFNFCkBAIC0yMjcsMTAgKzIxMCwxNCBAQAogCiAvKiBpbmNsdWRlIHRoZSB1dGZYWC5oIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisj
aWYgIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTCisKICNpbmNsdWRlICJ1bmljb2Rl
L3V0ZjguaCIKICNpbmNsdWRlICJ1bmljb2RlL3V0ZjE2LmgiCiAKIC8qIHV0Zl9vbGQuaCBjb250
YWlucyBkZXByZWNhdGVkLCBwcmUtSUNVIDIuNCBkZWZpbml0aW9ucyAqLwogI2luY2x1ZGUgInVu
aWNvZGUvdXRmX29sZC5oIgogCi0jZW5kaWYKKyNlbmRpZiAgLyogIVVfTk9fREVGQVVMVF9JTkNM
VURFX1VURl9IRUFERVJTICovCisKKyNlbmRpZiAgLyogX19VVEZfSF9fICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dGYxNi5oIGIvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdXRmMTYuaAppbmRleCA1MDc5YzExNDZiM2QzNDcyMzBjZDY5OGEwZTEzOTY4OTdl
NDg0NWFkLi5iZGQ4OGE4YjljNGYwMGVhMGRmMjcyYWMwMmY2OTY3ZWY2MTA4OWI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dGYxNi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ljdS91bmljb2RlL3V0ZjE2LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE5LDExICsx
OSw5IEBACiAgKiBcYnJpZWYgQyBBUEk6IDE2LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1hY3Jvcwog
ICogCiAgKiBUaGlzIGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIDE2LWJpdCBVbmlj
b2RlIChVVEYtMTYpIGNvZGUgdW5pdHMgYW5kIHN0cmluZ3MuCi0gKiB1dGYxNi5oIGlzIGluY2x1
ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hpbmUuaAotICogYW5kIHNvbWUgY29tbW9u
IGRlZmluaXRpb25zLgogICoKICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1dGYuaCBhbmQg
dGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICogKGh0dHA6Ly9pY3UtcHJvamVj
dC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0cDovL3VzZXJndWlkZS5pY3Ut
cHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdlOjwvZW0+CiAgKiBJQ1UgY29k
aW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91bGQgYmUgZm9sbG93ZWQgd2hl
biB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0zNCw3ICszMiw3IEBACiAjaWZuZGVmIF9fVVRGMTZf
SF9fCiAjZGVmaW5lIF9fVVRGMTZfSF9fCiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVkZWQgZmly
c3QuICovCisjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VURl9IX18K
ICMgICBpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2VuZGlmCkBAIC0xODIsNiArMTgwLDkgQEAK
ICAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0aGUgbGVhZCBvciB0cmFpbCBzdXJy
b2dhdGUgdW5pdAogICogZm9yIGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50LCBpbiB3aGljaCBj
YXNlIHRoZSBtYWNybyB3aWxsIHJlYWQKICAqIHRoZSBhZGphY2VudCBtYXRjaGluZyBzdXJyb2dh
dGUgYXMgd2VsbC4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwt
dGVybWluYXRlZCBzdHJpbmcuCisgKgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSBzaW5n
bGUsIHVucGFpcmVkIHN1cnJvZ2F0ZSwgdGhlbiB0aGF0IGl0c2VsZgogICogd2lsbCBiZSByZXR1
cm5lZCBhcyB0aGUgY29kZSBwb2ludC4KICAqIEl0ZXJhdGlvbiB0aHJvdWdoIGEgc3RyaW5nIGlz
IG1vcmUgZWZmaWNpZW50IHdpdGggVTE2X05FWFRfVU5TQUZFIG9yIFUxNl9ORVhULgpAQCAtMTk5
LDcgKzIwMCw3IEBACiAgICAgaWYoVTE2X0lTX1NVUlJPR0FURShjKSkgeyBcCiAgICAgICAgIHVp
bnQxNl90IF9fYzI7IFwKICAgICAgICAgaWYoVTE2X0lTX1NVUlJPR0FURV9MRUFEKGMpKSB7IFwK
LSAgICAgICAgICAgIGlmKChpKSsxPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVso
aSkrMV0pKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxIT0obGVuZ3RoKSAmJiBVMTZfSVNfVFJB
SUwoX19jMj0ocylbKGkpKzFdKSkgeyBcCiAgICAgICAgICAgICAgICAgKGMpPVUxNl9HRVRfU1VQ
UExFTUVOVEFSWSgoYyksIF9fYzIpOyBcCiAgICAgICAgICAgICB9IFwKICAgICAgICAgfSBlbHNl
IHsgXApAQCAtMjQ0LDYgKzI0NSw4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgZm9yd2FyZCBp
dGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMg
YW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4g
YmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIFRoZSBvZmZz
ZXQgbWF5IHBvaW50IHRvIHRoZSBsZWFkIHN1cnJvZ2F0ZSB1bml0CiAgKiBmb3IgYSBzdXBwbGVt
ZW50YXJ5IGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZAogICog
dGhlIGZvbGxvd2luZyB0cmFpbCBzdXJyb2dhdGUgYXMgd2VsbC4KQEAgLTI2Miw3ICsyNjUsNyBA
QAogICAgIChjKT0ocylbKGkpKytdOyBcCiAgICAgaWYoVTE2X0lTX0xFQUQoYykpIHsgXAogICAg
ICAgICB1aW50MTZfdCBfX2MyOyBcCi0gICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBVMTZfSVNf
VFJBSUwoX19jMj0ocylbKGkpXSkpIHsgXAorICAgICAgICBpZigoaSkhPShsZW5ndGgpICYmIFUx
Nl9JU19UUkFJTChfX2MyPShzKVsoaSldKSkgeyBcCiAgICAgICAgICAgICArKyhpKTsgXAogICAg
ICAgICAgICAgKGMpPVUxNl9HRVRfU1VQUExFTUVOVEFSWSgoYyksIF9fYzIpOyBcCiAgICAgICAg
IH0gXApAQCAtMzQwLDYgKzM0Myw4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0aW9u
LikKICAqICJTYWZlIiBtYWNybywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVj
a3MgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0
aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCBV
Q2hhciAqIHN0cmluZwogICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0
aAogICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCkBAIC0zNDcsNyArMzUyLDcgQEAKICAq
IEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9GV0RfMShzLCBpLCBsZW5ndGgpIHsg
XAotICAgIGlmKFUxNl9JU19MRUFEKChzKVsoaSkrK10pICYmIChpKTwobGVuZ3RoKSAmJiBVMTZf
SVNfVFJBSUwoKHMpW2ldKSkgeyBcCisgICAgaWYoVTE2X0lTX0xFQUQoKHMpWyhpKSsrXSkgJiYg
KGkpIT0obGVuZ3RoKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCiAgICAgICAgICsrKGkp
OyBcCiAgICAgfSBcCiB9CkBAIC0zNzgsMTYgKzM4MywxOCBAQAogICogKFBvc3QtaW5jcmVtZW50
aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQgc3Vycm9n
YXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3Ro
IGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBh
cmFtIHMgY29uc3QgVUNoYXIgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11
c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFt
IGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVu
Z3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9p
bnRzIHRvIHNraXAKICAqIEBzZWUgVTE2X0ZXRF9OX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40
CiAgKi8KICNkZWZpbmUgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgeyBcCiAgICAgaW50MzJf
dCBfX049KG4pOyBcCi0gICAgd2hpbGUoX19OPjAgJiYgKGkpPChsZW5ndGgpKSB7IFwKKyAgICB3
aGlsZShfX04+MCAmJiAoKGkpPChsZW5ndGgpIHx8ICgobGVuZ3RoKTwwICYmIChzKVtpXSE9MCkp
KSB7IFwKICAgICAgICAgVTE2X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAgLS1fX047
IFwKICAgICB9IFwKQEAgLTU5OCwxNSArNjA1LDE3IEBACiAgKiBUaGUgaW5wdXQgb2Zmc2V0IG1h
eSBiZSB0aGUgc2FtZSBhcyB0aGUgc3RyaW5nIGxlbmd0aC4KICAqICJTYWZlIiBtYWNybywgaGFu
ZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3VuZGFyaWVz
LgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVk
IHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCBVQ2hhciAqIHN0cmluZwotICogQHBhcmFt
IHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0
cmluZyBvZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxl
bmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1
YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBzdGFydDw9aTw9bGVu
Z3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHNlZSBVMTZf
U0VUX0NQX0xJTUlUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVTE2
X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZigoc3RhcnQpPChp
KSAmJiAoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX0xFQUQoKHMpWyhpKS0xXSkgJiYgVTE2X0lTX1RS
QUlMKChzKVtpXSkpIHsgXAorICAgIGlmKChzdGFydCk8KGkpICYmICgoaSk8KGxlbmd0aCkgfHwg
KGxlbmd0aCk8MCkgJiYgVTE2X0lTX0xFQUQoKHMpWyhpKS0xXSkgJiYgVTE2X0lTX1RSQUlMKChz
KVtpXSkpIHsgXAogICAgICAgICArKyhpKTsgXAogICAgIH0gXAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmOC5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNv
ZGUvdXRmOC5oCmluZGV4IDY0MDU3OTVhNWExYzUzNjk4ODQ2ZDExMDE1Njk5YjYxYzMxMDIyMjQu
LjIxZTVmM2QwNDc5MDUzMTU1ZjI5NGM0Mjg4NGY0Mjc0ZGE1NDRlYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0ZjguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91dGY4LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTMsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE5LDExICsxOSw5IEBACiAg
KiBcYnJpZWYgQyBBUEk6IDgtYml0IFVuaWNvZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAKICAqIFRo
aXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggOC1iaXQgVW5pY29kZSAoVVRGLTgp
IGNvZGUgdW5pdHMgKGJ5dGVzKSBhbmQgc3RyaW5ncy4KLSAqIHV0ZjguaCBpcyBpbmNsdWRlZCBi
eSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmgKLSAqIGFuZCBzb21lIGNvbW1vbiBkZWZp
bml0aW9ucy4KICAqCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdXRmLmggYW5kIHRoZSBJ
Q1UgVXNlciBHdWlkZSBTdHJpbmdzIGNoYXB0ZXIKLSAqIChodHRwOi8vaWN1LXByb2plY3Qub3Jn
L3VzZXJndWlkZS9zdHJpbmdzLmh0bWwpLgorICogKGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2pl
Y3Qub3JnL3N0cmluZ3MpLgogICoKICAqIDxlbT5Vc2FnZTo8L2VtPgogICogSUNVIGNvZGluZyBn
dWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIHdoZW4gdXNp
bmcgdGhlc2UgbWFjcm9zLgpAQCAtMzQsNyArMzIsNyBAQAogI2lmbmRlZiBfX1VURjhfSF9fCiAj
ZGVmaW5lIF9fVVRGOF9IX18KIAotLyogdXRmLmggbXVzdCBiZSBpbmNsdWRlZCBmaXJzdC4gKi8K
KyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjaWZuZGVmIF9fVVRGX0hfXwogIyAgIGlu
Y2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAgLTYyLDEzICs2MCw0MSBAQCBVX0NGVU5D
IFVfSU1QT1JUIGNvbnN0IHVpbnQ4X3QgLyogVV9JTVBPUlQyPyAqLyAvKlVfSU1QT1JUKi8KIHV0
ZjhfY291bnRUcmFpbEJ5dGVzWzI1Nl07CiAKIC8qKgotICogQ291bnQgdGhlIHRyYWlsIGJ5dGVz
IGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIENvdW50cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEg
VVRGLTggbGVhZCBieXRlLgorICogUmV0dXJucyAwIGZvciAwLi4weGJmIGFzIHdlbGwgYXMgZm9y
IDB4ZmUgYW5kIDB4ZmYuCiAgKgogICogVGhpcyBpcyBpbnRlcm5hbCBzaW5jZSBpdCBpcyBub3Qg
bWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IGV4dGVybmFsIGNsaWVudHM7CiAgKiBob3dl
dmVyIGl0IGlzIGNhbGxlZCBieSBwdWJsaWMgbWFjcm9zIGluIHRoaXMgZmlsZSBhbmQgdGh1cyBt
dXN0IHJlbWFpbiBzdGFibGUuCisgKgorICogTm90ZTogQmVnaW5uaW5nIHdpdGggSUNVIDUwLCB0
aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhIG11bHRpLWNvbmRpdGlvbiBleHByZXNzaW9uCisgKiB3
aGljaCB3YXMgc2hvd24gaW4gMjAxMiAob24geDg2LTY0KSB0byBjb21waWxlIHRvIGZhc3QsIGJy
YW5jaC1mcmVlIGNvZGUuCisgKiBsZWFkQnl0ZSBpcyBldmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMu
CisgKgorICogVGhlIHByZS1JQ1UgNTAgaW1wbGVtZW50YXRpb24gdXNlZCB0aGUgZXhwb3J0ZWQg
YXJyYXkgdXRmOF9jb3VudFRyYWlsQnl0ZXM6CisgKiAjZGVmaW5lIFU4X0NPVU5UX1RSQUlMX0JZ
VEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbbGVhZEJ5dGVdKQorICogbGVhZEJ5
dGUgd2FzIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCisgKgorICogQHBhcmFtIGxlYWRCeXRlIFRo
ZSBmaXJzdCBieXRlIG9mIGEgVVRGLTggc2VxdWVuY2UuIE11c3QgYmUgMC4uMHhmZi4KICAqIEBp
bnRlcm5hbAogICovCi0jZGVmaW5lIFU4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRCeXRlKSAodXRm
OF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQorI2RlZmluZSBVOF9DT1VOVF9U
UkFJTF9CWVRFUyhsZWFkQnl0ZSkgXAorICAgICgobGVhZEJ5dGUpPDB4ZjAgPyBcCisgICAgICAg
ICgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkgOiBcCisgICAgICAgIChsZWFk
Qnl0ZSk8MHhmZSA/IDMrKChsZWFkQnl0ZSk+PTB4ZjgpKygobGVhZEJ5dGUpPj0weGZjKSA6IDAp
CisKKy8qKgorICogQ291bnRzIHRoZSB0cmFpbCBieXRlcyBmb3IgYSBVVEYtOCBsZWFkIGJ5dGUg
b2YgYSB2YWxpZCBVVEYtOCBzZXF1ZW5jZS4KKyAqIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBsZWFk
IGJ5dGUgaXMgMHhmNCBjb3JyZXNwb25kaW5nIHRvIFUrMTBGRkZGLgorICogbGVhZEJ5dGUgbWln
aHQgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgorICoKKyAqIFRoaXMgaXMgaW50ZXJuYWwg
c2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseSBieSBleHRlcm5hbCBj
bGllbnRzOworICogaG93ZXZlciBpdCBpcyBjYWxsZWQgYnkgcHVibGljIG1hY3JvcyBpbiB0aGlz
IGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxlLgorICoKKyAqIEBwYXJhbSBsZWFkQnl0
ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4ZmYuCisg
KiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFU19VTlNBRkUobGVh
ZEJ5dGUpIFwKKyAgICAoKChsZWFkQnl0ZSk+PTB4YzApKygobGVhZEJ5dGUpPj0weGUwKSsoKGxl
YWRCeXRlKT49MHhmMCkpCiAKIC8qKgogICogTWFzayBhIFVURi04IGxlYWQgYnl0ZSwgbGVhdmUg
b25seSB0aGUgbG93ZXIgYml0cyB0aGF0IGZvcm0gcGFydCBvZiB0aGUgY29kZSBwb2ludCB2YWx1
ZS4KQEAgLTIwNiwyNCArMjMyLDYwIEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90
ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogVGhlIG9mZnNldCBtYXkgcG9pbnQg
dG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0cmFpbCBieXRlcwogICogZm9y
IGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkIGFsbCBvZiB0
aGUgYnl0ZXMKICAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBi
ZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogSWYgdGhlIG9m
ZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlLCB0aGVuCiAgKiBj
IGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJp
bmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhUX1VOU0FGRSBvciBVOF9ORVhULgogICoK
ICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFy
dGluZyBzdHJpbmcgb2Zmc2V0Ci0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0
YXJ0PD1pPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0g
c3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBAcGFyYW0gaSBpbnQzMl90
IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3Ro
IGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFi
bGUsIHNldCB0byA8MCBpbiBjYXNlIG9mIGFuIGVycm9yCiAgKiBAc2VlIFU4X0dFVF9VTlNBRkUK
ICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0dFVChzLCBzdGFydCwgaSwgbGVu
Z3RoLCBjKSB7IFwKLSAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9KGludDMyX3QpKGkpOyBcCisg
ICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAogICAgIFU4X1NFVF9DUF9TVEFSVChzLCBz
dGFydCwgX3U4X2dldF9pbmRleCk7IFwKICAgICBVOF9ORVhUKHMsIF91OF9nZXRfaW5kZXgsIGxl
bmd0aCwgYyk7IFwKIH0KIAorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAqIEdldCBh
IGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zmc2V0LAorICog
d2l0aG91dCBjaGFuZ2luZyB0aGUgb2Zmc2V0LgorICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8g
ZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0cmFpbCBieXRlcworICogZm9yIGEg
Y29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkIGFsbCBvZiB0aGUg
Ynl0ZXMKKyAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBu
ZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgorICogSWYgdGhlIG9mZnNl
dCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlLCB0aGVuCisgKiBjIGlz
IHNldCB0byBVK0ZGRkQuCisgKiBJdGVyYXRpb24gdGhyb3VnaCBhIHN0cmluZyBpcyBtb3JlIGVm
ZmljaWVudCB3aXRoIFU4X05FWFRfVU5TQUZFIG9yIFU4X05FWFRfT1JfRkZGRC4KKyAqCisgKiBU
aGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0
aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5j
ZS4KKyAqIFVzZSBVOF9HRVQoKSBpZiB0aGF0IGRpc3RpbmN0aW9uIGlzIGltcG9ydGFudC4KKyAq
CisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCisgKiBAcGFyYW0gc3RhcnQgaW50
MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBv
ZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qg
c3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0
byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBVOF9HRVQKKyAqIEBkcmFmdCBJ
Q1UgNTEKKyAqLworI2RlZmluZSBVOF9HRVRfT1JfRkZGRChzLCBzdGFydCwgaSwgbGVuZ3RoLCBj
KSB7IFwKKyAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9KGkpOyBcCisgICAgVThfU0VUX0NQX1NU
QVJUKHMsIHN0YXJ0LCBfdThfZ2V0X2luZGV4KTsgXAorICAgIFU4X05FWFRfT1JfRkZGRChzLCBf
dThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBcCit9CisjZW5kaWYgLyogVV9ISURFX0RSQUZUX0FQ
SSAqLworCiAvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTI0NSwxOSArMzA3LDE2
IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBp
bnQzMl90IGkpOwogICovCiAjZGVmaW5lIFU4X05FWFRfVU5TQUZFKHMsIGksIGMpIHsgXAogICAg
IChjKT0odWludDhfdCkocylbKGkpKytdOyBcCi0gICAgaWYoKHVpbnQ4X3QpKChjKS0weGMwKTww
eDM1KSB7IFwKLSAgICAgICAgdWludDhfdCBfX2NvdW50PVU4X0NPVU5UX1RSQUlMX0JZVEVTKGMp
OyBcCi0gICAgICAgIFU4X01BU0tfTEVBRF9CWVRFKGMsIF9fY291bnQpOyBcCi0gICAgICAgIHN3
aXRjaChfX2NvdW50KSB7IFwKLSAgICAgICAgLyogZWFjaCBmb2xsb3dpbmcgYnJhbmNoIGZhbGxz
IHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKLSAgICAgICAgY2FzZSAzOiBcCi0gICAgICAg
ICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKLSAgICAgICAgY2FzZSAyOiBc
Ci0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKLSAgICAgICAg
Y2FzZSAxOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwK
LSAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8gb3B0aW1pemUgc3dpdGNoKCkgKi8gXAot
ICAgICAgICAgICAgYnJlYWs7IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICBpZigo
Yyk8MHhlMCkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmMHgxZik8PDYpfCgocylbKGkpKytd
JjB4M2YpOyBcCisgICAgICAgIH0gZWxzZSBpZigoYyk8MHhmMCkgeyBcCisgICAgICAgICAgICAv
KiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhlIHVwcGVyIGJpdHMgYXJlIHRydW5jYXRl
ZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hhcikgKi8gXAorICAgICAgICAgICAgKGMp
PShVQ2hhcikoKChjKTw8MTIpfCgoKHMpW2ldJjB4M2YpPDw2KXwoKHMpWyhpKSsxXSYweDNmKSk7
IFwKKyAgICAgICAgICAgIChpKSs9MjsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAg
ICAoYyk9KCgoYykmNyk8PDE4KXwoKChzKVtpXSYweDNmKTw8MTIpfCgoKHMpWyhpKSsxXSYweDNm
KTw8Nil8KChzKVsoaSkrMl0mMHgzZik7IFwKKyAgICAgICAgICAgIChpKSs9MzsgXAogICAgICAg
ICB9IFwKICAgICB9IFwKIH0KQEAgLTI2OCwxNCArMzI3LDE2IEBAIHV0ZjhfYmFjazFTYWZlQm9k
eShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogKFBvc3Qt
aW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywgY2hlY2tz
IGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAq
IFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4K
KyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVhZCBieXRlIG9mIGEgbXVsdGkt
Ynl0ZSBzZXF1ZW5jZSwKICAqIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCB0aGUg
d2hvbGUgc2VxdWVuY2UuCiAgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHRyYWlsIGJ5dGUg
b3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgogICogYyBpcyBzZXQgdG8gYSBuZWdh
dGl2ZSB2YWx1ZS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBA
cGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFyYW0gbGVuZ3Ro
IHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBi
ZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBw
YXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4gY2FzZSBvZiBhbiBl
cnJvcgogICogQHNlZSBVOF9ORVhUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC0yODYs
NyArMzQ3LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qg
c3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgIHVpbnQ4X3QgX190MSwgX190MjsgXAogICAgICAg
ICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAqLyBcCiAgICAgICAgICAgICAo
MHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCi0gICAgICAgICAgICAoKChpKSsxKTwobGVuZ3Ro
KSkgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkgfHwgKGxlbmd0aCk8MCkgJiYg
XAogICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2YgJiYgXAog
ICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0tMHg4MCkpPD0gMHgzZiBcCiAg
ICAgICAgICkgeyBcCkBAIC0yOTUsMTkgKzM1Niw3MCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAgICAgICAgICAgIChp
KSs9MjsgXAogICAgICAgICB9IGVsc2UgaWYoIC8qIGhhbmRsZSBVKzAwODAuLlUrMDdGRiBpbmxp
bmUgKi8gXAogICAgICAgICAgICAgKChjKTwweGUwICYmIChjKT49MHhjMikgJiYgXAotICAgICAg
ICAgICAgKChpKTwobGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKChpKSE9KGxlbmd0aCkpICYm
IFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0weDNmIFwKICAg
ICAgICAgKSB7IFwKLSAgICAgICAgICAgIChjKT0oVUNoYXIpKCgoKGMpJjB4MWYpPDw2KXxfX3Qx
KTsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxfX3QxOyBcCiAgICAgICAgICAg
ICArKyhpKTsgXAotICAgICAgICB9IGVsc2UgaWYoVThfSVNfTEVBRChjKSkgeyBcCisgICAgICAg
IH0gZWxzZSB7IFwKICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIGNhbGwgZm9yICJjb21wbGljYXRl
ZCIgYW5kIGVycm9yIGNhc2VzICovIFwKLSAgICAgICAgICAgIChjKT11dGY4X25leHRDaGFyU2Fm
ZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCAmKGkpLCAoaW50MzJfdCkobGVuZ3RoKSwgYywgLTEp
OyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90
ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0xKTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30K
KworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAqIEdldCBhIGNvZGUgcG9pbnQgZnJv
bSBhIHN0cmluZyBhdCBhIGNvZGUgcG9pbnQgYm91bmRhcnkgb2Zmc2V0LAorICogYW5kIGFkdmFu
Y2UgdGhlIG9mZnNldCB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGJvdW5kYXJ5LgorICogKFBvc3Qt
aW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKKyAqICJTYWZlIiBtYWNybywgY2hlY2tz
IGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgorICoKKyAq
IFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4K
KyAqCisgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVhZCBieXRlIG9mIGEgbXVsdGkt
Ynl0ZSBzZXF1ZW5jZSwKKyAqIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCB0aGUg
d2hvbGUgc2VxdWVuY2UuCisgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHRyYWlsIGJ5dGUg
b3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgorICogYyBpcyBzZXQgdG8gVStGRkZE
LgorICoKKyAqIFRoaXMgbWFjcm8gZG9lcyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHJlYWwg
VStGRkZEIGluIHRoZSB0ZXh0CisgKiBhbmQgVStGRkZEIHJldHVybmVkIGZvciBhbiBpbGwtZm9y
bWVkIHNlcXVlbmNlLgorICogVXNlIFU4X05FWFQoKSBpZiB0aGF0IGRpc3RpbmN0aW9uIGlzIGlt
cG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCisgKiBAcGFy
YW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBs
ZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2
YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9mIGFuIGVycm9yCisgKiBAc2VlIFU4X05F
WFQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9ORVhUX09SX0ZGRkQocywgaSwg
bGVuZ3RoLCBjKSB7IFwKKyAgICAoYyk9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAorICAgIGlmKChj
KT49MHg4MCkgeyBcCisgICAgICAgIHVpbnQ4X3QgX190MSwgX190MjsgXAorICAgICAgICBpZigg
LyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAqLyBcCisgICAgICAgICAgICAoMHhlMDwo
YykgJiYgKGMpPD0weGVjKSAmJiBcCisgICAgICAgICAgICAoKChpKSsxKTwobGVuZ3RoKSB8fCAo
bGVuZ3RoKTwwKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODAp
KTw9MHgzZiAmJiBcCisgICAgICAgICAgICAoX190Mj0odWludDhfdCkoKHMpWyhpKSsxXS0weDgw
KSk8PSAweDNmIFwKKyAgICAgICAgKSB7IFwKKyAgICAgICAgICAgIC8qIG5vIG5lZWQgZm9yIChj
JjB4ZikgYmVjYXVzZSB0aGUgdXBwZXIgYml0cyBhcmUgdHJ1bmNhdGVkIGFmdGVyIDw8MTIgaW4g
dGhlIGNhc3QgdG8gKFVDaGFyKSAqLyBcCisgICAgICAgICAgICAoYyk9KFVDaGFyKSgoKGMpPDwx
Mil8KF9fdDE8PDYpfF9fdDIpOyBcCisgICAgICAgICAgICAoaSkrPTI7IFwKKyAgICAgICAgfSBl
bHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYgaW5saW5lICovIFwKKyAgICAgICAgICAg
ICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShsZW5ndGgp
KSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiBc
CisgICAgICAgICkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmMHgxZik8PDYpfF9fdDE7IFwK
KyAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgIH0gZWxzZSB7IFwKLSAgICAgICAgICAgIChj
KT1VX1NFTlRJTkVMOyBcCisgICAgICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAiY29tcGxp
Y2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hh
clNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0zKTsgXAog
ICAgICAgICB9IFwKICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRfQVBJICovCiAK
IC8qKgogICogQXBwZW5kIGEgY29kZSBwb2ludCB0byBhIHN0cmluZywgb3ZlcndyaXRpbmcgMSB0
byA0IGJ5dGVzLgpAQCAtMzUxLDkgKzQ2Myw5IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1
aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogdGhlbiBpc0Vycm9yIGlz
IHNldCB0byBUUlVFLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcgYnVm
ZmVyCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8Y2FwYWNpdHkKLSAqIEBw
YXJhbSBjYXBhY2l0eSBzaXplIG9mIHRoZSBzdHJpbmcgYnVmZmVyCi0gKiBAcGFyYW0gYyBjb2Rl
IHBvaW50IHRvIGFwcGVuZAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIGk8Y2FwYWNpdHkKKyAqIEBwYXJhbSBjYXBhY2l0eSBpbnQzMl90IHNpemUgb2YgdGhlIHN0
cmluZyBidWZmZXIKKyAqIEBwYXJhbSBjIFVDaGFyMzIgY29kZSBwb2ludCB0byBhcHBlbmQKICAq
IEBwYXJhbSBpc0Vycm9yIG91dHB1dCBVQm9vbCBzZXQgdG8gVFJVRSBpZiBhbiBlcnJvciBvY2N1
cnMsIG90aGVyd2lzZSBub3QgbW9kaWZpZWQKICAqIEBzZWUgVThfQVBQRU5EX1VOU0FGRQogICog
QHN0YWJsZSBJQ1UgMi40CkBAIC0zNjksNyArNDgxLDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNv
bnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgIChzKVso
aSkrK109KHVpbnQ4X3QpKCgoKGMpPj42KSYweDNmKXwweDgwKTsgXAogICAgICAgICAocylbKGkp
KytdPSh1aW50OF90KSgoKGMpJjB4M2YpfDB4ODApOyBcCiAgICAgfSBlbHNlIHsgXAotICAgICAg
ICAoaSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50MzJfdCko
Y2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAorICAgICAgICAoaSk9dXRmOF9hcHBlbmRDaGFy
U2FmZUJvZHkocywgKGkpLCAoY2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAogICAgIH0gXAog
fQogCkBAIC0zODQsNyArNDk2LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3Qg
KnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwog
I2RlZmluZSBVOF9GV0RfMV9VTlNBRkUocywgaSkgeyBcCi0gICAgKGkpKz0xK1U4X0NPVU5UX1RS
QUlMX0JZVEVTKChzKVtpXSk7IFwKKyAgICAoaSkrPTErVThfQ09VTlRfVFJBSUxfQllURVNfVU5T
QUZFKCh1aW50OF90KShzKVtpXSk7IFwKIH0KIAogLyoqCkBAIC0zOTIsOSArNTA0LDExIEBAIHV0
ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90
IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8s
IGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4K
ICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBz
dHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFt
IGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJp
bmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxs
ZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFU4
X0ZXRF8xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KQEAgLTQwMiw3ICs1MTYsNyBA
QCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50
MzJfdCBpKTsKICAgICB1aW50OF90IF9fYj0odWludDhfdCkocylbKGkpKytdOyBcCiAgICAgaWYo
VThfSVNfTEVBRChfX2IpKSB7IFwKICAgICAgICAgdWludDhfdCBfX2NvdW50PVU4X0NPVU5UX1RS
QUlMX0JZVEVTKF9fYik7IFwKLSAgICAgICAgaWYoKGkpK19fY291bnQ+KGxlbmd0aCkpIHsgXAor
ICAgICAgICBpZigoaSkrX19jb3VudD4obGVuZ3RoKSAmJiAobGVuZ3RoKT49MCkgeyBcCiAgICAg
ICAgICAgICBfX2NvdW50PSh1aW50OF90KSgobGVuZ3RoKS0oaSkpOyBcCiAgICAgICAgIH0gXAog
ICAgICAgICB3aGlsZShfX2NvdW50PjAgJiYgVThfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCkBAIC00
MzgsMTYgKzU1MiwxOCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50
MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24u
KQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Ig
c3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9y
IGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3Qg
KiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAq
IEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcg
b2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5n
IGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRvIHNraXAKICAqIEBz
ZWUgVThfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9G
V0RfTihzLCBpLCBsZW5ndGgsIG4pIHsgXAogICAgIGludDMyX3QgX19OPShuKTsgXAotICAgIHdo
aWxlKF9fTj4wICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgd2hpbGUoX19OPjAgJiYgKChpKTwo
bGVuZ3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFU4X0ZX
RF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAgLS1fX047IFwKICAgICB9IFwKQEAgLTQ3OSwx
NCArNTk1LDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90
IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwg
c2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29u
c3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZz
ZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8
PWkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFs
bHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDw9
aQogICogQHNlZSBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAq
LwogI2RlZmluZSBVOF9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIGkpIHsgXAogICAgIGlmKFU4X0lT
X1RSQUlMKChzKVsoaSldKSkgeyBcCi0gICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywg
c3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYmFjazFTYWZlQm9keShz
LCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQogCkBAIC01NDcsOCArNjYzLDggQEAgdXRmOF9i
YWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7
CiAgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2FsIFVURi04IHNlcXVlbmNlLCB0
aGVuIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUuCiAgKgogICogQHBhcmFtIHMgY29uc3Qg
dWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQg
KHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQor
ICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAw
KQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKICAq
IEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4gY2FzZSBvZiBh
biBlcnJvcgogICogQHNlZSBVOF9QUkVWX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC01
NTYsMTMgKzY3Miw0MiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50
MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICNkZWZpbmUgVThfUFJFVihzLCBzdGFydCwgaSwgYykg
eyBcCiAgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKICAgICBpZigoYyk+PTB4ODApIHsg
XAotICAgICAgICBpZigoYyk8PTB4YmYpIHsgXAotICAgICAgICAgICAgKGMpPXV0ZjhfcHJldkNo
YXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAmKGkpLCBjLCAtMSk7IFwKLSAg
ICAgICAgfSBlbHNlIHsgXAotICAgICAgICAgICAgKGMpPVVfU0VOVElORUw7IFwKLSAgICAgICAg
fSBcCisgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilz
LCBzdGFydCwgJihpKSwgYywgLTEpOyBcCisgICAgfSBcCit9CisKKyNpZm5kZWYgVV9ISURFX0RS
QUZUX0FQSQorLyoqCisgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZyb20gb25lIGNvZGUgcG9p
bnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZQorICogYW5kIGdldCB0aGUgY29kZSBwb2lu
dCBiZXR3ZWVuIHRoZW0uCisgKiAoUHJlLWRlY3JlbWVudGluZyBiYWNrd2FyZCBpdGVyYXRpb24u
KQorICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Ig
c3RyaW5nIGJvdW5kYXJpZXMuCisgKgorICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNh
bWUgYXMgdGhlIHN0cmluZyBsZW5ndGguCisgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhIG11
bHRpLWJ5dGUgc2VxdWVuY2UsIHRoZW4gdGhlIG1hY3JvIHdpbGwgcmVhZAorICogdGhlIHdob2xl
IHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYSBsZWFkIGJ5dGUsIHRoZW4g
dGhhdCBpdHNlbGYKKyAqIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhlIGNvZGUgcG9pbnQuCisgKiBJ
ZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2FsIFVURi04IHNlcXVlbmNlLCB0aGVuIGMg
aXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNo
IGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5l
ZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9QUkVWKCkgaWYgdGhhdCBk
aXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAq
IHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAo
dXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0
YXJ0PGkKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gVStGRkZE
IGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfUFJFVgorICogQGRyYWZ0IElDVSA1MQor
ICovCisjZGVmaW5lIFU4X1BSRVZfT1JfRkZGRChzLCBzdGFydCwgaSwgYykgeyBcCisgICAgKGMp
PSh1aW50OF90KShzKVstLShpKV07IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICAo
Yyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgc3RhcnQsICYoaSks
IGMsIC0zKTsgXAogICAgIH0gXAogfQorI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KIAog
LyoqCiAgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZyb20gb25lIGNvZGUgcG9pbnQgYm91bmRh
cnkgdG8gdGhlIHByZXZpb3VzIG9uZS4KQEAgLTU4NiwxNCArNzMxLDE0IEBAIHV0ZjhfYmFjazFT
YWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICog
IlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5n
IGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICog
QHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJh
bSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMy
X3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJf
dCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKICAqIEBzZWUgVThfQkFDS18xX1VOU0FG
RQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfQkFDS18xKHMsIHN0YXJ0LCBp
KSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylbLS0oaSldKSkgeyBcCi0gICAgICAgIChpKT11
dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAgICAgKGkp
PXV0ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQogCkBAIC02
MjYsOCArNzcxLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMy
X3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdh
bCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCiAgKiBAcGFyYW0gcyBj
b25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgaW5kZXggb2YgdGhlIHN0YXJ0
IG9mIHRoZSBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8
aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3QgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBzdHJp
bmcKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCiAg
KiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tpcAogICogQHNlZSBVOF9CQUNL
X05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKQEAgLTY2NiwxNSArODExLDE3IEBAIHV0Zjhf
YmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkp
OwogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0cmluZyBsZW5n
dGguCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZv
ciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBm
b3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhf
dCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFs
bHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8PWxlbmd0
aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQgaW50MzJf
dCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0gaSBpbnQzMl90
IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8PWxlbmd0aAorICogQHBhcmFtIGxlbmd0
aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBzZWUgVThfU0VUX0NQX0xJTUlUX1VOU0FGRQog
ICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0
LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYmIChpKTwobGVuZ3RoKSkgeyBc
CisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAo
cylbaV0hPTApKSkgeyBcCiAgICAgICAgIFU4X0JBQ0tfMShzLCBzdGFydCwgaSk7IFwKICAgICAg
ICAgVThfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAgIH0gXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmX29sZC5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNv
ZGUvdXRmX29sZC5oCmluZGV4IDg1MDRhMDMwZGRmYzRkYmFlMzYzZTViNWZhNmM1ZDE1OGJiN2Nj
ZTMuLmY5MTI1YjFkZDJlZDdlMWM2ODRkYTE2NTRmNWU0N2RkN2NkNWZiMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0Zl9vbGQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91dGZfb2xkLmgKQEAgLTEgKzEsMTE2OSBAQAotLyogVGhpcyBmaWxlIGlz
IGludGVudGlvbmFsbHkgbGVmdCBibGFuay4gKi8KKy8qCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dGZfb2xkLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAyc2VwMjEKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmll
ZiBDIEFQSTogRGVwcmVjYXRlZCBtYWNyb3MgZm9yIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nCisg
Ki8KKworLyoqCisgKiAKKyAqIFRoZSBtYWNyb3MgaW4gdXRmX29sZC5oIGFyZSBhbGwgZGVwcmVj
YXRlZCBhbmQgdGhlaXIgdXNlIGRpc2NvdXJhZ2VkLgorICogU29tZSBvZiB0aGUgZGVzaWduIHBy
aW5jaXBsZXMgYmVoaW5kIHRoZSBzZXQgb2YgVVRGIG1hY3JvcworICogaGF2ZSBjaGFuZ2VkIG9y
IHByb3ZlZCBpbXByYWN0aWNhbC4KKyAqIEFsbW9zdCBhbGwgb2YgdGhlIG9sZCAiVVRGIG1hY3Jv
cyIgYXJlIGF0IGxlYXN0IHJlbmFtZWQuCisgKiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgbmV3
IGVxdWl2YWxlbnQgdG8gYW4gb2xkIG1hY3JvLCBwbGVhc2Ugc2VlIHRoZQorICogY29tbWVudCBh
dCB0aGUgb2xkIG9uZS4KKyAqCisgKiBCcmllZiBzdW1tYXJ5IG9mIHJlYXNvbnMgZm9yIGRlcHJl
Y2F0aW9uOgorICogLSBTd2l0Y2ggb24gVVRGX1NJWkUgKHNlbGVjdGlvbiBvZiBVVEYtOC8xNi8z
MiBkZWZhdWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgaW1wcmFjdGljYWwuCisgKiAt
IFN3aXRjaCBvbiBVVEZfU0FGRSBldGMuIChzZWxlY3Rpb24gb2YgdW5zYWZlL3NhZmUvc3RyaWN0
IGRlZmF1bHQgc3RyaW5nIHByb2Nlc3NpbmcpCisgKiAgIHdhcyBvZiBsaXR0bGUgdXNlIGFuZCBp
bXByYWN0aWNhbC4KKyAqIC0gV2hvbGUgY2xhc3NlcyBvZiBtYWNyb3MgYmVjYW1lIG9ic29sZXRl
IG91dHNpZGUgb2YgdGhlIFVURl9TSVpFL1VURl9TQUZFCisgKiAgIHNlbGVjdGlvbiBmcmFtZXdv
cms6IFVURjMyXyBtYWNyb3MgKGFsbCB0cml2aWFsKQorICogICBhbmQgVVRGXyBkZWZhdWx0IGFu
ZCBpbnRlcm1lZGlhdGUgbWFjcm9zIChhbGwgYWxpYXNlcykuCisgKiAtIFRoZSBzZWxlY3Rpb24g
ZnJhbWV3b3JrIGFsc28gY2F1c2VkIG1hbnkgbWFjcm8gYWxpYXNlcy4KKyAqIC0gQ2hhbmdlIGlu
IFVuaWNvZGUgc3RhbmRhcmQ6ICJpcnJlZ3VsYXIiIHNlcXVlbmNlcyAoMy4wKSBiZWNhbWUgaWxs
ZWdhbCAoMy4yKS4KKyAqIC0gQ2hhbmdlIG9mIGxhbmd1YWdlIGluIFVuaWNvZGUgc3RhbmRhcmQ6
CisgKiAgIEdyb3dpbmcgZGlzdGluY3Rpb24gYmV0d2VlbiBpbnRlcm5hbCB4LWJpdCBVbmljb2Rl
IHN0cmluZ3MgYW5kIGV4dGVybmFsIFVURi14CisgKiAgIGZvcm1zLCB3aXRoIHRoZSBmb3JtZXIg
bW9yZSBsZW5pZW50LgorICogICBTdWdnZXN0cyByZW5hbWluZyBvZiBVVEYxNl8gbWFjcm9zIHRv
IFUxNl8uCisgKiAtIFRoZSBwcmVmaXggIlVURl8iIHdpdGhvdXQgYSB3aWR0aCBudW1iZXIgY29u
ZnVzZWQgc29tZSB1c2Vycy4KKyAqIC0gIlNhZmUiIGFwcGVuZCBtYWNyb3MgbmVlZGVkIHRoZSBh
ZGRpdGlvbiBvZiBhbiBlcnJvciBpbmRpY2F0b3Igb3V0cHV0LgorICogLSAiU2FmZSIgVVRGLTgg
bWFjcm9zIHVzZWQgbGVnaXRpbWF0ZSAoaWYgcmFyZWx5IHVzZWQpIGNvZGUgcG9pbnQgdmFsdWVz
CisgKiAgIHRvIGluZGljYXRlIGVycm9yIGNvbmRpdGlvbnMuCisgKiAtIFRoZSB1c2Ugb2YgdGhl
ICJfQ0hBUiIgaW5maXggZm9yIGNvZGUgcG9pbnQgb3BlcmF0aW9ucyBjb25mdXNlZCBzb21lIHVz
ZXJzLgorICoKKyAqIE1vcmUgZGV0YWlsczoKKyAqCisgKiBVbnRpbCBJQ1UgMi4yLCB1dGYuaCB0
aGVvcmV0aWNhbGx5IGFsbG93ZWQgdG8gY2hvb3NlIGFtb25nIFVURi04LzE2LzMyCisgKiBmb3Ig
c3RyaW5nIHByb2Nlc3NpbmcsIGFuZCBhbW9uZyB1bnNhZmUvc2FmZS9zdHJpY3QgZGVmYXVsdCBt
YWNyb3MgZm9yIHRoYXQuCisgKgorICogSXQgcHJvdmVkIG5lYXJseSBpbXBvc3NpYmxlIHRvIHdy
aXRlIG5vbi10cml2aWFsLCBoaWdoLXBlcmZvcm1hbmNlIGNvZGUKKyAqIHRoYXQgaXMgVVRGLWdl
bmVyaWMuCisgKiBVbnNhZmUgZGVmYXVsdCBtYWNyb3Mgd291bGQgYmUgZGFuZ2Vyb3VzIGZvciBk
ZWZhdWx0IHN0cmluZyBwcm9jZXNzaW5nLAorICogYW5kIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhl
ICJzdHJpY3QiIHZlcnNpb25zIGRpc2FwcGVhcmVkOgorICogQmV0d2VlbiBVbmljb2RlIDMuMCBh
bmQgMy4yIGFsbCAiaXJyZWd1bGFyIiBVVEYtOCBzZXF1ZW5jZXMgYmVjYW1lIGlsbGVnYWwuCisg
KiBUaGUgb25seSBvdGhlciBjb25kaXRpb25zIHRoYXQgInN0cmljdCIgY2hlY2tlZCBmb3Igd2Vy
ZSBub24tY2hhcmFjdGVycywKKyAqIHdoaWNoIGFyZSB2YWxpZCBkdXJpbmcgcHJvY2Vzc2luZy4g
T25seSBkdXJpbmcgdGV4dCBpbnB1dC9vdXRwdXQgc2hvdWxkIHRoZXkKKyAqIGJlIGNoZWNrZWQs
IGFuZCBhdCB0aGF0IHRpbWUgb3RoZXIgd2VsbC1mb3JtZWRuZXNzIGNoZWNrcyBtYXkgYmUKKyAq
IG5lY2Vzc2FyeSBvciB1c2VmdWwgYXMgd2VsbC4KKyAqIFRoaXMgY2FuIHN0aWxsIGJlIGRvbmUg
YnkgdXNpbmcgVTE2X05FWFQgYW5kIFVfSVNfVU5JQ09ERV9OT05DSEFSCisgKiBvciBVX0lTX1VO
SUNPREVfQ0hBUi4KKyAqCisgKiBUaGUgb2xkIFVURjhfLi4uX1NBRkUgbWFjcm9zIGFsc28gdXNl
ZCBzb21lIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzCisgKiB0byBpbmRpY2F0ZSBtYWxmb3Jt
ZWQgc2VxdWVuY2VzLgorICogVGhlIG5ldyBVVEY4XyBtYWNyb3Mgd2l0aG91dCBzdWZmaXggdXNl
IG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLgorICoKKyAqIFRoZSBlbnRpcmUgY29udGVudHMgb2Yg
dXRmMzIuaCB3YXMgbW92ZWQgaGVyZSB3aXRob3V0IHJlcGxhY2VtZW50CisgKiBiZWNhdXNlIGFs
bCB0aG9zZSBtYWNyb3Mgd2VyZSB0cml2aWFsIGFuZAorICogd2VyZSBtZWFuaW5nZnVsIG9ubHkg
aW4gdGhlIGZyYW1ld29yayBvZiBjaG9vc2luZyB0aGUgVVRGIHNpemUuCisgKgorICogU2VlIEpp
dHRlcmJ1ZyAyMTUwIGFuZCBpdHMgZGlzY3Vzc2lvbiBvbiB0aGUgSUNVIG1haWxpbmcgbGlzdAor
ICogaW4gU2VwdGVtYmVyIDIwMDIuCisgKgorICogPGhyPgorICoKKyAqIDxlbT5PYnNvbGV0ZSBw
YXJ0PC9lbT4gb2YgcHJlLUlDVSAyLjQgdXRmLmggZmlsZSBkb2N1bWVudGF0aW9uOgorICoKKyAq
IDxwPlRoZSBvcmlnaW5hbCBjb25jZXB0IGZvciB0aGVzZSBmaWxlcyB3YXMgZm9yIElDVSB0byBh
bGxvdworICogaW4gcHJpbmNpcGxlIHRvIHNldCB3aGljaCBVVEYgKFVURi04LzE2LzMyKSBpcyB1
c2VkIGludGVybmFsbHkKKyAqIGJ5IGRlZmluaW5nIFVURl9TSVpFIHRvIGVpdGhlciA4LCAxNiwg
b3IgMzIuIHV0Zi5oIHdvdWxkIHRoZW4gZGVmaW5lIHRoZSBVQ2hhciB0eXBlCisgKiBhY2NvcmRp
bmdseS4gVVRGLTE2IHdhcyB0aGUgZGVmYXVsdC48L3A+CisgKgorICogPHA+VGhpcyBjb25jZXB0
IGhhcyBiZWVuIGFiYW5kb25lZC4KKyAqIEEgbG90IG9mIHRoZSBJQ1Ugc291cmNlIGNvZGUgYXNz
dW1lcyBVQ2hhciBzdHJpbmdzIGFyZSBpbiBVVEYtMTYuCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkg
dHJ1ZSBmb3IgbG93LWxldmVsIGNvZGUgbGlrZQorICogY29udmVyc2lvbiwgbm9ybWFsaXphdGlv
biwgYW5kIGNvbGxhdGlvbi4KKyAqIFRoZSB1dGYuaCBoZWFkZXIgZW5mb3JjZXMgdGhlIGRlZmF1
bHQgb2YgVVRGLTE2LgorICogVGhlIFVURi04IGFuZCBVVEYtMzIgbWFjcm9zIHJlbWFpbiBmb3Ig
bm93IGZvciBjb21wbGV0ZW5lc3MgYW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuPC9wPgorICoK
KyAqIDxwPkFjY29yZGluZ2x5LCB1dGYuaCBkZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVk
IDE2LWJpdCBpbnRlZ2VyLiBJZiB0aGlzIG1hdGNoZXMgd2NoYXJfdCwgdGhlbgorICogVUNoYXIg
aXMgZGVmaW5lZCB0byBiZSBleGFjdGx5IHdjaGFyX3QsIG90aGVyd2lzZSB1aW50MTZfdC48L3A+
CisgKgorICogPHA+VUNoYXIzMiBpcyBkZWZpbmVkIHRvIGJlIGEgc2lnbmVkIDMyLWJpdCBpbnRl
Z2VyIChpbnQzMl90KSwgbGFyZ2UgZW5vdWdoIGZvciBhIDIxLWJpdAorICogVW5pY29kZSBjb2Rl
IHBvaW50IChVbmljb2RlIHNjYWxhciB2YWx1ZSwgMC4uMHgxMGZmZmYpLgorICogQmVmb3JlIElD
VSAyLjQsIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyMzIgd2FzIHNpbWlsYXJseSBwbGF0Zm9ybS1k
ZXBlbmRlbnQgYXMKKyAqIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyLiBGb3IgZGV0YWlscyBzZWUg
dGhlIGRvY3VtZW50YXRpb24gZm9yIFVDaGFyMzIgaXRzZWxmLjwvcD4KKyAqCisgKiA8cD51dGYu
aCBhbHNvIGRlZmluZXMgYSBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIGhhbmRsaW5nIHNpbmdsZSBV
bmljb2RlIGNvZGUgcG9pbnRzIGFuZAorICogZm9yIHVzaW5nIFVURiBVbmljb2RlIHN0cmluZ3Mu
IEl0IGluY2x1ZGVzIHV0ZjguaCwgdXRmMTYuaCwgYW5kIHV0ZjMyLmggZm9yIHRoZSBhY3R1YWwK
KyAqIGltcGxlbWVudGF0aW9ucyBvZiB0aG9zZSBtYWNyb3MgYW5kIHRoZW4gYWxpYXNlcyBvbmUg
c2V0IG9mIHRoZW0gKGZvciBVVEYtMTYpIGZvciBnZW5lcmFsIHVzZS4KKyAqIFRoZSBVVEYtc3Bl
Y2lmaWMgbWFjcm9zIGhhdmUgdGhlIFVURiBzaXplIGluIHRoZSBtYWNybyBuYW1lIHByZWZpeGVz
IChVVEYxNl8uLi4pLCB3aGlsZQorICogdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIGFsd2F5cyBi
ZWdpbiB3aXRoIFVURl8uLi48L3A+CisgKgorICogPHA+TWFueSBzdHJpbmcgb3BlcmF0aW9ucyBj
YW4gYmUgZG9uZSB3aXRoIG9yIHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcuCisgKiBXaGVyZSBzdWNo
IGEgZGlzdGluY3Rpb24gaXMgdXNlZnVsLCB0aGVyZSBhcmUgdHdvIHZlcnNpb25zIG9mIHRoZSBt
YWNyb3MsICJ1bnNhZmUiIGFuZCAic2FmZSIKKyAqIG9uZXMgd2l0aCAuLi5fVU5TQUZFIGFuZCAu
Li5fU0FGRSBzdWZmaXhlcy4gVGhlIHVuc2FmZSBtYWNyb3MgYXJlIGZhc3QgYnV0IG1heSBjYXVz
ZQorICogcHJvZ3JhbSBmYWlsdXJlcyBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IHdlbGwtZm9ybWVk
LiBUaGUgc2FmZSBtYWNyb3MgaGF2ZSBhbiBhZGRpdGlvbmFsLCBib29sZWFuCisgKiBwYXJhbWV0
ZXIgInN0cmljdCIuIElmIHN0cmljdCBpcyBGQUxTRSwgdGhlbiBvbmx5IGlsbGVnYWwgc2VxdWVu
Y2VzIGFyZSBkZXRlY3RlZC4KKyAqIE90aGVyd2lzZSwgaXJyZWd1bGFyIHNlcXVlbmNlcyBhbmQg
bm9uLWNoYXJhY3RlcnMgYXJlIGRldGVjdGVkIGFzIHdlbGwgKGxpa2Ugc2luZ2xlIHN1cnJvZ2F0
ZXMpLgorICogU2FmZSBtYWNyb3MgcmV0dXJuIHNwZWNpYWwgZXJyb3IgY29kZSBwb2ludHMgZm9y
IGlsbGVnYWwvaXJyZWd1bGFyIHNlcXVlbmNlczoKKyAqIFR5cGljYWxseSwgVStmZmZmLCBvciB2
YWx1ZXMgdGhhdCB3b3VsZCByZXN1bHQgaW4gYSBjb2RlIHVuaXQgc2VxdWVuY2Ugb2YgdGhlIHNh
bWUgbGVuZ3RoCisgKiBhcyB0aGUgZXJyb25lb3VzIGlucHV0IHNlcXVlbmNlLjxicj4KKyAqIE5v
dGUgdGhhdCBfVU5TQUZFIG1hY3JvcyBoYXZlIGZld2VyIHBhcmFtZXRlcnM6IFRoZXkgZG8gbm90
IGhhdmUgdGhlIHN0cmljdG5lc3MgcGFyYW1ldGVyLCBhbmQKKyAqIHRoZXkgZG8gbm90IGhhdmUg
c3RhcnQvbGVuZ3RoIHBhcmFtZXRlcnMgZm9yIGJvdW5kYXJ5IGNoZWNraW5nLjwvcD4KKyAqCisg
KiA8cD5IZXJlLCB0aGUgbWFjcm9zIGFyZSBhbGlhc2VkIGluIHR3byBzdGVwczoKKyAqIEluIHRo
ZSBmaXJzdCBzdGVwLCB0aGUgVVRGLXNwZWNpZmljIG1hY3JvcyB3aXRoIFVURjE2XyBwcmVmaXgg
YW5kIF9VTlNBRkUgYW5kIF9TQUZFIHN1ZmZpeGVzIGFyZQorICogYWxpYXNlZCBhY2NvcmRpbmcg
dG8gdGhlIFVURl9TSVpFIHRvIG1hY3JvcyB3aXRoIFVURl8gcHJlZml4IGFuZCB0aGUgc2FtZSBz
dWZmaXhlcyBhbmQgc2lnbmF0dXJlcy4KKyAqIFRoZW4sIGluIGEgc2Vjb25kIHN0ZXAsIHRoZSBk
ZWZhdWx0LCBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhcmUgc2V0IHRvIHVzZSBlaXRoZXIgdGhlIHVu
c2FmZSBvcgorICogdGhlIHNhZmUvbm90IHN0cmljdCAoZGVmYXVsdCkgb3IgdGhlIHNhZmUvc3Ry
aWN0IG1hY3JvOworICogdGhlc2UgZ2VuZXJhbCBtYWNyb3MgZG8gbm90IGhhdmUgYSBzdHJpY3Ru
ZXNzIHBhcmFtZXRlci48L3A+CisgKgorICogPHA+SXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRo
ZSBkZWZhdWx0IGNob2ljZSBmb3IgdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIHRvIGJlIHVuc2Fm
ZSwgc2FmZS9ub3Qgc3RyaWN0IG9yIHNhZmUvc3RyaWN0LgorICogVGhlIGRlZmF1bHQgaXMgc2Fm
ZS9ub3Qgc3RyaWN0LiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gc2VsZWN0IHRoZSB1bnNhZmUg
bWFjcm9zIGFzIHRoZSBiYXNpcyBmb3IKKyAqIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nIGluIElD
VSEgVG8gc2VsZWN0IHRoaXMsIGRlZmluZSBVVEZfU0FGRSwgVVRGX1NUUklDVCwgb3IgVVRGX1VO
U0FGRS48L3A+CisgKgorICogPHA+Rm9yIGdlbmVyYWwgdXNlLCBvbmUgc2hvdWxkIHVzZSB0aGUg
ZGVmYXVsdCwgZ2VuZXJhbCBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgbm8gX1NBRkUvX1VO
U0FGRSBzdWZmaXguCisgKiBPbmx5IGluIHNvbWUgY2FzZXMgaXQgbWF5IGJlIG5lY2Vzc2FyeSB0
byBjb250cm9sIHRoZSBjaG9pY2Ugb2YgbWFjcm8gZGlyZWN0bHkgYW5kIHVzZSBhIGxlc3MgZ2Vu
ZXJpYyBhbGlhcy4KKyAqIEZvciBleGFtcGxlLCBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGEg
c3RyaW5nIGlzIHdlbGwtZm9ybWVkIGFuZCB0aGUgaW5kZXggd2lsbCBzdGF5IHdpdGhpbiB0aGUg
Ym91bmRzLAorICogdGhlbiB0aGUgX1VOU0FGRSB2ZXJzaW9uIG1heSBiZSB1c2VkLgorICogSWYg
YSBVVEYtOCBzdHJpbmcgaXMgdG8gYmUgcHJvY2Vzc2VkLCB0aGVuIHRoZSBtYWNyb3Mgd2l0aCBV
VEY4XyBwcmVmaXhlcyBuZWVkIHRvIGJlIHVzZWQuPC9wPgorICoKKyAqIDxocj4KKyAqCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgdGhlIG1hY3JvcyBpbiB1dGYuaCwgdXRmMTYuaCwgdXRm
OC5oIGluc3RlYWQuCisgKi8KKworI2lmbmRlZiBfX1VURl9PTERfSF9fCisjZGVmaW5lIF9fVVRG
X09MRF9IX18KKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworI2luY2x1ZGUgInVu
aWNvZGUvdXRmLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCisjaW5jbHVkZSAidW5pY29k
ZS91dGYxNi5oIgorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAxIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWZkZWYgVV9VU0VfVVRG
X0RFUFJFQ0FURVMKKy8qKgorICogVW5pY29kZSBzdHJpbmcgYW5kIGFycmF5IG9mZnNldCBhbmQg
aW5kZXggdHlwZS4KKyAqIElDVSBhbHdheXMgY291bnRzIFVuaWNvZGUgY29kZSB1bml0cyAoVUNo
YXJzKSBmb3IKKyAqIHN0cmluZyBvZmZzZXRzLCBpbmRleGVzLCBhbmQgbGVuZ3Rocywgbm90IFVu
aWNvZGUgY29kZSBwb2ludHMuCisgKgorICogQG9ic29sZXRlIElDVSAyLjYuIFVzZSBpbnQzMl90
IGRpcmVjdGx5IGluc3RlYWQgc2luY2UgdGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIHRoYXQg
cmVsZWFzZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IFVUZXh0T2Zmc2V0OworI2VuZGlmCisKKy8q
KiBOdW1iZXIgb2YgYml0cyBpbiBhIFVuaWNvZGUgc3RyaW5nIGNvZGUgdW5pdCAtIElDVSB1c2Vz
IDE2LWJpdCBVbmljb2RlLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NJWkUgMTYKKworLyoqCisgKiBUaGUgZGVmYXVsdCBjaG9p
Y2UgZm9yIGdlbmVyYWwgVW5pY29kZSBzdHJpbmcgbWFjcm9zIGlzIHRvIHVzZSB0aGUgLi4uX1NB
RkUgbWFjcm8gaW1wbGVtZW50YXRpb25zCisgKiB3aXRoIHN0cmljdD1GQUxTRS4KKyAqCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmlu
ZSBVVEZfU0FGRQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI3VuZGVmIFVURl9VTlNBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyN1bmRlZiBVVEZfU1RSSUNUCisKKy8qKgorICogVVRG
OF9FUlJPUl9WQUxVRV8xIGFuZCBVVEY4X0VSUk9SX1ZBTFVFXzIgYXJlIHNwZWNpYWwgZXJyb3Ig
dmFsdWVzIGZvciBVVEYtOCwKKyAqIHdoaWNoIG5lZWQgMSBvciAyIGJ5dGVzIGluIFVURi04Ogor
ICogXGNvZGUKKyAqIFUrMDAxNSA9IE5BSyA9IE5lZ2F0aXZlIEFja25vd2xlZGdlLCBDMCBjb250
cm9sIGNoYXJhY3RlcgorICogVSswMDlmID0gaGlnaGVzdCBDMSBjb250cm9sIGNoYXJhY3Rlcgor
ICogXGVuZGNvZGUKKyAqCisgKiBUaGVzZSBhcmUgdXNlZCBieSBVVEY4Xy4uLl9TQUZFIG1hY3Jv
cyBzbyB0aGF0IHRoZXkgY2FuIHJldHVybiBhbiBlcnJvciB2YWx1ZQorICogdGhhdCBuZWVkcyB0
aGUgc2FtZSBudW1iZXIgb2YgY29kZSB1bml0cyAoYnl0ZXMpIGFzIHdlcmUgc2VlbiBieQorICog
YSBtYWNyby4gVGhleSBzaG91bGQgYmUgdGVzdGVkIHdpdGggVVRGX0lTX0VSUk9SKCkgb3IgVVRG
X0lTX1ZBTElEKCkuCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8xIDB4MTUKKworLyoqCisg
KiBTZWUgZG9jdW1lbnRhdGlvbiBvbiBVVEY4X0VSUk9SX1ZBTFVFXzEgZm9yIGRldGFpbHMuCisg
KgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8yIDB4OWYKKworLyoqCisgKiBFcnJvciB2YWx1ZSBm
b3IgYWxsIFVURnMuIFRoaXMgY29kZSBwb2ludCB2YWx1ZSB3aWxsIGJlIHNldCBieSBtYWNyb3Mg
d2l0aCBlcnJvcgorICogY2hlY2tpbmcgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX0VSUk9SX1ZBTFVFIDB4ZmZmZgorCisvKioKKyAqIElzIGEgZ2l2ZW4gMzItYml0IGNv
ZGUgYW4gZXJyb3IgdmFsdWUKKyAqIGFzIHJldHVybmVkIGJ5IG9uZSBvZiB0aGUgbWFjcm9zIGZv
ciBhbnkgVVRGPworICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRm
X29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19FUlJPUihjKSBcCisgICAgKCgoYykmMHhmZmZl
KT09MHhmZmZlIHx8IChjKT09VVRGOF9FUlJPUl9WQUxVRV8xIHx8IChjKT09VVRGOF9FUlJPUl9W
QUxVRV8yKQorCisvKioKKyAqIFRoaXMgaXMgYSBjb21iaW5lZCBtYWNybzogSXMgYyBhIHZhbGlk
IFVuaWNvZGUgdmFsdWUgX2FuZF8gbm90IGFuIGVycm9yIGNvZGU/CisgKgorICogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lT
X1ZBTElEKGMpIFwKKyAgICAoVVRGX0lTX1VOSUNPREVfQ0hBUihjKSAmJiBcCisgICAgIChjKSE9
VVRGOF9FUlJPUl9WQUxVRV8xICYmIChjKSE9VVRGOF9FUlJPUl9WQUxVRV8yKQorCisvKioKKyAq
IElzIHRoaXMgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgYSBzdXJyb2dhdGUgKFUrZDgwMC4uVStk
ZmZmKT8KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19TVVJST0dBVEUg
YW5kIFUxNl9JU19TVVJST0dBVEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lT
X1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmY4MDApPT0weGQ4MDApCisKKy8qKgor
ICogSXMgYSBnaXZlbiAzMi1iaXQgY29kZSBwb2ludCBhIFVuaWNvZGUgbm9uY2hhcmFjdGVyPwor
ICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RFX05PTkNI
QVIsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihj
KSBcCisgICAgKChjKT49MHhmZGQwICYmIFwKKyAgICAgKCh1aW50MzJfdCkoYyk8PTB4ZmRlZiB8
fCAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSkgJiYgXAorICAgICAodWludDMyX3QpKGMpPD0weDEwZmZm
ZikKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCB2YWx1ZSBhIFVuaWNvZGUgY29kZSBwb2lu
dCB2YWx1ZSAoMC4uVSsxMGZmZmYpCisgKiB0aGF0IGNhbiBiZSBhc3NpZ25lZCBhIGNoYXJhY3Rl
cj8KKyAqCisgKiBDb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgY2hhcmFjdGVycyBpbmNsdWRlOgor
ICogLSBzaW5nbGUgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIChVK2Q4MDAuLlUrZGZmZiwgMjA0OCBj
b2RlIHBvaW50cykKKyAqIC0gdGhlIGxhc3QgdHdvIGNvZGUgcG9pbnRzIG9uIGVhY2ggcGxhbmUg
KFUrX19mZmZlIGFuZCBVK19fZmZmZiwgMzQgY29kZSBwb2ludHMpCisgKiAtIFUrZmRkMC4uVStm
ZGVmIChuZXcgd2l0aCBVbmljb2RlIDMuMSwgMzIgY29kZSBwb2ludHMpCisgKiAtIHRoZSBoaWdo
ZXN0IFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZSBpcyBVKzEwZmZmZgorICoKKyAqIFRoaXMgbWVh
bnMgdGhhdCBhbGwgY29kZSBwb2ludHMgYmVsb3cgVStkODAwIGFyZSBjaGFyYWN0ZXIgY29kZSBw
b2ludHMsCisgKiBhbmQgdGhhdCBib3VuZGFyeSBpcyB0ZXN0ZWQgZmlyc3QgZm9yIHBlcmZvcm1h
bmNlLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RF
X0NIQVIsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfQ0hBUihj
KSBcCisgICAgKCh1aW50MzJfdCkoYyk8MHhkODAwIHx8IFwKKyAgICAgICAgKCh1aW50MzJfdCko
Yyk+MHhkZmZmICYmIFwKKyAgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmICYmIFwKKyAg
ICAgICAgICFVVEZfSVNfVU5JQ09ERV9OT05DSEFSKGMpKSkKKworLyogRm9ybWVybHkgdXRmOC5o
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKi8KKworLyoqCisgKiBDb3VudCB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBi
eXRlLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9DT1VOVF9UUkFJTF9C
WVRFUywgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEY4X0NPVU5UX1RSQUlMX0JZVEVT
KGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQorCisv
KioKKyAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2VyIGJpdHMg
dGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCisgKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFU4X01BU0tfTEVBRF9CWVRFLCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURjhfTUFTS19MRUFEX0JZVEUobGVhZEJ5dGUsIGNvdW50VHJhaWxCeXRlcykg
KChsZWFkQnl0ZSkmPSgxPDwoNi0oY291bnRUcmFpbEJ5dGVzKSkpLTEpCisKKy8qKiBJcyB0aGlz
IHRoaXMgY29kZSBwb2ludCBhIHNpbmdsZSBjb2RlIHVuaXQgKGJ5dGUpPyBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9JU19TSU5HTEUodWNoYXIpICgoKHVjaGFyKSYweDgwKT09MCkKKy8qKiBJcyB0aGlz
IHRoaXMgY29kZSB1bml0IHRoZSBsZWFkIGNvZGUgdW5pdCAoYnl0ZSkgb2YgYSBjb2RlIHBvaW50
PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX0xFQUQsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjhfSVNfTEVBRCh1Y2hhcikgKCh1aW50OF90KSgodWNoYXIpLTB4
YzApPDB4M2UpCisvKiogSXMgdGhpcyB0aGlzIGNvZGUgdW5pdCBhIHRyYWlsaW5nIGNvZGUgdW5p
dCAoYnl0ZSkgb2YgYSBjb2RlIHBvaW50PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X0lTX1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0lTX1RSQUlMKHVj
aGFyKSAoKCh1Y2hhcikmMHhjMCk9PTB4ODApCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVuaWNv
ZGUgdmFsdWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHg3ZikgaW5z
dGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORUVEX01VTFRJUExFX1VDSEFS
KGMpICgodWludDMyX3QpKGMpPjB4N2YpCisKKy8qKgorICogR2l2ZW4gdGhlIGxlYWQgY2hhcmFj
dGVyLCBob3cgbWFueSBieXRlcyBhcmUgdGFrZW4gYnkgdGhpcyBjb2RlIHBvaW50LgorICogSUNV
IGRvZXMgbm90IGRlYWwgd2l0aCBjb2RlIHBvaW50cyA+MHgxMGZmZmYKKyAqIHVubGVzcyBuZWNl
c3NhcnkgZm9yIGFkdmFuY2luZyBpbiB0aGUgYnl0ZSBzdHJlYW0uCisgKgorICogVGhlc2UgbGVu
Z3RoIG1hY3JvcyB0YWtlIGludG8gYWNjb3VudCB0aGF0IGZvciB2YWx1ZXMgPjB4MTBmZmZmCisg
KiB0aGUgVVRGOF9BUFBFTkRfQ0hBUl9TQUZFIG1hY3JvcyB3b3VsZCB3cml0ZSB0aGUgZXJyb3Ig
Y29kZSBwb2ludCAweGZmZmYKKyAqIHdpdGggMyBieXRlcy4KKyAqIENvZGUgcG9pbnQgY29tcGFy
aXNvbnMgbmVlZCB0byBiZSBpbiB1aW50MzJfdCBiZWNhdXNlIFVDaGFyMzIKKyAqIG1heSBiZSBh
IHNpZ25lZCB0eXBlLCBhbmQgbmVnYXRpdmUgdmFsdWVzIG11c3QgYmUgcmVjb2duaXplZC4KKyAq
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIGluc3RlYWQsIHNlZSB1dGYu
aC4KKyAqLworI2lmIDEKKyMgICBkZWZpbmUgVVRGOF9DSEFSX0xFTkdUSChjKSBcCisgICAgICAg
ICgodWludDMyX3QpKGMpPD0weDdmID8gMSA6IFwKKyAgICAgICAgICAgICgodWludDMyX3QpKGMp
PD0weDdmZiA/IDIgOiBcCisgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoKGMpLTB4MTAwMDAp
PjB4ZmZmZmYgPyAzIDogNCkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbHNlCisj
ICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVpbnQzMl90KShjKTw9
MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZmYgPyAyIDogXAor
ICAgICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAzIDogXAorICAgICAgICAg
ICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYgPyA0IDogXAorICAgICAgICAgICAg
ICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4M2ZmZmZmZiA/IDUgOiBcCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmZmZmZmYgPyA2IDogMykgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgICAgICAgICAgICkgXAorICAg
ICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbmRpZgorCisv
KiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHBlciBjb2RlIHBvaW50LiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjhfTUFYX0NIQVJfTEVOR1RIIDQKKworLyoqIEF2ZXJhZ2UgbnVtYmVyIG9mIGNv
ZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2LiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9BUlJBWV9TSVpFKHNpemUpICgoNSoo
c2l6ZSkpLzIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0dFVF9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfR0VUX0NIQVJfVU5TQUZFKHMs
IGksIGMpIHsgXAorICAgIGludDMyX3QgX3V0ZjhfZ2V0X2NoYXJfdW5zYWZlX2luZGV4PShpbnQz
Ml90KShpKTsgXAorICAgIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIF91dGY4X2dldF9j
aGFyX3Vuc2FmZV9pbmRleCk7IFwKKyAgICBVVEY4X05FWFRfQ0hBUl9VTlNBRkUocywgX3V0Zjhf
Z2V0X2NoYXJfdW5zYWZlX2luZGV4LCBjKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFU4X0dFVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dF
VF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICBpbnQz
Ml90IF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXg9KGludDMyX3QpKGkpOyBcCisgICAgVVRGOF9T
RVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBfdXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4KTsg
XAorICAgIFVURjhfTkVYVF9DSEFSX1NBRkUocywgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCwg
bGVuZ3RoLCBjLCBzdHJpY3QpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X05F
WFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBp
ZigodWludDhfdCkoKGMpLTB4YzApPDB4MzUpIHsgXAorICAgICAgICB1aW50OF90IF9fY291bnQ9
VVRGOF9DT1VOVF9UUkFJTF9CWVRFUyhjKTsgXAorICAgICAgICBVVEY4X01BU0tfTEVBRF9CWVRF
KGMsIF9fY291bnQpOyBcCisgICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKKyAgICAgICAgLyog
ZWFjaCBmb2xsb3dpbmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwK
KyAgICAgICAgY2FzZSAzOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10m
MHgzZik7IFwKKyAgICAgICAgY2FzZSAyOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChz
KVsoaSkrK10mMHgzZik7IFwKKyAgICAgICAgY2FzZSAxOiBcCisgICAgICAgICAgICAoYyk9KChj
KTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKKyAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMg
dG8gb3B0aW1pemUgc3dpdGNoKCkgKi8gXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAgICAgICAg
fSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4
X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NI
QVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4N2YpIHsgXAor
ICAgICAgICAocylbKGkpKytdPSh1aW50OF90KShjKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAg
ICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZmYpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0o
dWludDhfdCkoKChjKT4+Nil8MHhjMCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAg
ICAgaWYoKHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgICAgICAgICAocylbKGkp
KytdPSh1aW50OF90KSgoKGMpPj4xMil8MHhlMCk7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwK
KyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpPj4xOCl8MHhmMCk7IFwK
KyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+MTIpJjB4M2YpfDB4
ODApOyBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3Qp
KCgoKGMpPj42KSYweDNmKXwweDgwKTsgXAorICAgICAgICB9IFwKKyAgICAgICAgKHMpWyhpKSsr
XT0odWludDhfdCkoKChjKSYweDNmKXwweDgwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIChpKSs9MStVVEY4
X0NPVU5UX1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVThfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwK
KyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBc
CisgICAgICAgIC0tX19OOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFU4X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVU
RjhfSVNfVFJBSUwoKHMpW2ldKSkgeyAtLShpKTsgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBVc2UgVThfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEY4X05FWFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9
KHMpWyhpKSsrXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKFVURjhfSVNf
TEVBRChjKSkgeyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KHMsICYo
aSksIChpbnQzMl90KShsZW5ndGgpLCBjLCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwK
KyAgICAgICAgICAgIChjKT1VVEY4X0VSUk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAg
fSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfQVBQRU5EIGluc3RlYWQs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBs
ZW5ndGgsIGMpICB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAgICAg
KHMpWyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChpKT11
dGY4X2FwcGVuZENoYXJTYWZlQm9keShzLCAoaW50MzJfdCkoaSksIChpbnQzMl90KShsZW5ndGgp
LCBjLCBOVUxMKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9GV0RfMV9T
QUZFKHMsIGksIGxlbmd0aCkgVThfRldEXzEocywgaSwgbGVuZ3RoKQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwgbikgVThfRldEX04ocywgaSwgbGVuZ3Ro
LCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfU1RB
UlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRfU0FGRShz
LCBzdGFydCwgaSkgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGOF9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylb
LS0oaSldOyBcCisgICAgaWYoVVRGOF9JU19UUkFJTChjKSkgeyBcCisgICAgICAgIHVpbnQ4X3Qg
X19iLCBfX2NvdW50PTEsIF9fc2hpZnQ9NjsgXAorXAorICAgICAgICAvKiBjIGlzIGEgdHJhaWwg
Ynl0ZSAqLyBcCisgICAgICAgIChjKSY9MHgzZjsgXAorICAgICAgICBmb3IoOzspIHsgXAorICAg
ICAgICAgICAgX19iPShzKVstLShpKV07IFwKKyAgICAgICAgICAgIGlmKF9fYj49MHhjMCkgeyBc
CisgICAgICAgICAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShfX2IsIF9fY291bnQpOyBcCisg
ICAgICAgICAgICAgICAgKGMpfD0oVUNoYXIzMilfX2I8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAg
ICAgICBicmVhazsgXAorICAgICAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgICAgIChj
KXw9KFVDaGFyMzIpKF9fYiYweDNmKTw8X19zaGlmdDsgXAorICAgICAgICAgICAgICAgICsrX19j
b3VudDsgXAorICAgICAgICAgICAgICAgIF9fc2hpZnQrPTY7IFwKKyAgICAgICAgICAgIH0gXAor
ICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVThfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9C
QUNLXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNfVFJBSUwoKHMpWy0tKGkp
XSkpIHt9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFD
S19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fVU5TQUZF
KHMsIGksIG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7
IFwKKyAgICAgICAgVVRGOF9CQUNLXzFfVU5TQUZFKHMsIGkpOyBcCisgICAgICAgIC0tX19OOyBc
CisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X1NF
VF9DUF9MSU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NI
QVJfTElNSVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsg
XAorICAgIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBVc2UgVThfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEY4X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0o
cylbLS0oaSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMpPD0weGJm
KSB7IFwKKyAgICAgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkocywgc3RhcnQsICYo
aSksIGMsIHN0cmljdCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgKGMpPVVU
RjhfRVJST1JfVkFMVUVfMTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBVOF9CQUNLXzEocywgc3RhcnQs
IGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTiwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikg
VThfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhf
U0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoKSBVOF9TRVRfQ1BfTElNSVQo
cywgc3RhcnQsIGksIGxlbmd0aCkKKworLyogRm9ybWVybHkgdXRmMTYuaCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIElz
IHVjaGFyIGEgZmlyc3QvbGVhZCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVV9JU19MRUFEIGFuZCBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmZjMDApPT0w
eGQ4MDApCisKKy8qKiBJcyB1Y2hhciBhIHNlY29uZC90cmFpbCBzdXJyb2dhdGU/IEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlMLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfSVNfU0VDT05EX1NVUlJPR0FURSh1Y2hhcikgKCgo
dWNoYXIpJjB4ZmZmZmZjMDApPT0weGRjMDApCisKKy8qKiBBc3N1bWluZyBjIGlzIGEgc3Vycm9n
YXRlLCBpcyBpdCBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRFX0xFQUQgYW5kIFUxNl9JU19TVVJST0dBVEVfTEVBRCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJPR0FURV9GSVJTVChjKSAoKChj
KSYweDQwMCk9PTApCisKKy8qKiBIZWxwZXIgY29uc3RhbnQgZm9yIFVURjE2X0dFVF9QQUlSX1ZB
TFVFLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TVVJST0dBVEVfT0ZGU0VU
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU1VSUk9HQVRFX09GRlNFVCAoKDB4ZDgw
MDw8MTBVTCkrMHhkYzAwLTB4MTAwMDApCisKKy8qKiBHZXQgdGhlIFVURi0zMiB2YWx1ZSBmcm9t
IHRoZSBzdXJyb2dhdGUgY29kZSB1bml0cy4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfR0VUX1NVUFBMRU1FTlRBUlksIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2
X0dFVF9QQUlSX1ZBTFVFKGZpcnN0LCBzZWNvbmQpIFwKKyAgICAoKChmaXJzdCk8PDEwVUwpKyhz
ZWNvbmQpLVVURl9TVVJST0dBVEVfT0ZGU0VUKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZJUlNU
X1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KSAoVUNoYXIpKCgoc3VwcGxlbWVudGFyeSk+PjEwKSsw
eGQ3YzApCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVu
dGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpJjB4M2ZmKXwweGRjMDApCisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRUFELCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEYxNl9MRUFEKHN1cHBsZW1lbnRhcnkpIFVURl9GSVJTVF9TVVJST0dBVEUoc3Vw
cGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1RS
QUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9UUkFJTChzdXBwbGVtZW50YXJ5
KSBVVEZfU0VDT05EX1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfU0lOR0xFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYxNl9JU19TSU5HTEUodWNoYXIpICFVVEZfSVNfU1VSUk9HQVRFKHVjaGFyKQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfTEVBRCh1Y2hhcikgVVRGX0lTX0ZJUlNUX1NVUlJP
R0FURSh1Y2hhcikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lT
X1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9JU19UUkFJTCh1Y2hhcikg
VVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVu
aWNvZGUgdmFsdWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgVTE2X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4ZmZm
ZikgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfTkVFRF9NVUxUSVBM
RV9VQ0hBUihjKSAoKHVpbnQzMl90KShjKT4weGZmZmYpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjE2X0NIQVJfTEVOR1RIKGMpICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAxIDogMikKKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X01BWF9MRU5HVEgsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X01BWF9DSEFSX0xFTkdUSCAyCisKKy8qKiBBdmVyYWdl
IG51bWJlciBvZiBjb2RlIHVuaXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0FSUkFZX1NJ
WkUoc2l6ZSkgKHNpemUpCisKKy8qKgorICogR2V0IGEgc2luZ2xlIGNvZGUgcG9pbnQgZnJvbSBh
biBvZmZzZXQgdGhhdCBwb2ludHMgdG8gYW55CisgKiBvZiB0aGUgY29kZSB1bml0cyB0aGF0IGJl
bG9uZyB0byB0aGF0IGNvZGUgcG9pbnQuCisgKiBBc3N1bWUgMDw9aTxsZW5ndGguCisgKgorICog
VGhpcyBjb3VsZCBiZSB1c2VkIGZvciBpdGVyYXRpb24gdG9nZXRoZXIgd2l0aAorICogVVRGMTZf
Q0hBUl9MRU5HVEgoKSBhbmQgVVRGX0lTX0VSUk9SKCksCisgKiBidXQgdGhlIHVzZSBvZiBVVEYx
Nl9ORVhUX0NIQVJbX1VOU0FGRV0oKSBhbmQKKyAqIFVURjE2X1BSRVZfQ0hBUltfVU5TQUZFXSgp
IGlzIG1vcmUgZWZmaWNpZW50IGZvciB0aGF0LgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfR0VUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEYx
Nl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorICAgIGlm
KFVURl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICBpZihVVEZfSVNfU1VSUk9HQVRFX0ZJ
UlNUKGMpKSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIChz
KVsoaSkrMV0pOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9H
RVRfUEFJUl9WQUxVRSgocylbKGkpLTFdLCAoYykpOyBcCisgICAgICAgIH0gXAorICAgIH0gXAor
fQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9HRVQgaW5zdGVhZCwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfR0VUX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgbGVu
Z3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZfSVNfU1VS
Uk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZihVVEZf
SVNfU1VSUk9HQVRFX0ZJUlNUKGMpKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxPChsZW5ndGgp
ICYmIFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAorICAgICAg
ICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAg
ICAgICAgICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQgYnkgVVRG
X0lTX0VSUk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAgICAgICB9
IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBz
dXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICAgICAgICAgIH0gXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICBpZigoaSktMT49
KHN0YXJ0KSAmJiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAor
ICAgICAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAoYykpOyBcCisg
ICAgICAgICAgICAgICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQg
YnkgVVRGX0lTX0VSUk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAg
ICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBz
ZWNvbmQgc3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVF
OyBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3Qp
ICYmICFVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9W
QUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRf
Q0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZihV
VEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlS
X1ZBTFVFKChjKSwgKHMpWyhpKSsrXSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjE2X0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigo
dWludDMyX3QpKGMpPD0weGZmZmYpIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCko
Yyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgoKGMp
Pj4xMCkrMHhkN2MwKTsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKSYweDNm
Zil8MHhkYzAwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYx
Nl9GV0RfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSgo
cylbKGkpKytdKSkgeyBcCisgICAgICAgICsrKGkpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfTl9VTlNBRkUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjE2X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQz
Ml90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjE2X0ZXRF8x
X1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJUX1VOU0FGRSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkp
IHsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKChzKVtpXSkpIHsgXAorICAgICAg
ICAtLShpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUx
Nl9ORVhUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRfQ0hB
Ul9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsg
XAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICB1aW50MTZf
dCBfX2MyOyBcCisgICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBVVEZfSVNfU0VDT05EX1NVUlJP
R0FURShfX2MyPShzKVsoaSldKSkgeyBcCisgICAgICAgICAgICArKyhpKTsgXAorICAgICAgICAg
ICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKChjKSwgX19jMik7IFwKKyAgICAgICAgICAgIC8q
IHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigp
IGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICB9IGVsc2UgaWYoc3RyaWN0
KSB7XAorICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSAqLyBcCisgICAg
ICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBp
Zigoc3RyaWN0KSAmJiAhVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIC8qIHVu
bWF0Y2hlZCBzZWNvbmQgc3Vycm9nYXRlIG9yIG90aGVyIG5vbi1jaGFyYWN0ZXIgKi8gXAorICAg
ICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykgeyBcCisgICAgaWYo
KHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3Qp
KGMpOyBcCisgICAgfSBlbHNlIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAg
ICAgaWYoKGkpKzE8KGxlbmd0aCkpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2
X3QpKCgoYyk+PjEwKSsweGQ3YzApOyBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50MTZf
dCkoKChjKSYweDNmZil8MHhkYzAwKTsgXAorICAgICAgICB9IGVsc2UgLyogbm90IGVub3VnaCBz
cGFjZSAqLyB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgICAgIH0gXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSBlcnJvciB2YWx1ZSAq
LyB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30K
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkgVTE2X0ZX
RF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfTl9TQUZFKHMs
IGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgVTE2X1NF
VF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X1BSRVZfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9Q
UkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAg
aWYoVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYyk9VVRGMTZfR0VU
X1BBSVJfVkFMVUUoKHMpWy0tKGkpXSwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZf
SVNfU0VDT05EX1NVUlJPR0FURSgocylbLS0oaSldKSkgeyBcCisgICAgICAgIC0tKGkpOyBcCisg
ICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNL
X05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05fVU5TQUZF
KHMsIGksIG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7
IFwKKyAgICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
U0VUX0NQX0xJTUlUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VU
X0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dB
VEUoKHMpWyhpKS0xXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3Qp
IHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGX0lTX1NFQ09ORF9TVVJST0dB
VEUoYykpIHsgXAorICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisgICAgICAgIGlmKChpKT4oc3Rh
cnQpICYmIFVURl9JU19GSVJTVF9TVVJST0dBVEUoX19jMj0ocylbKGkpLTFdKSkgeyBcCisgICAg
ICAgICAgICAtLShpKTsgXAorICAgICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKF9f
YzIsIChjKSk7IFwKKyAgICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUg
aXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8g
XAorICAgICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgLyogdW5tYXRjaGVk
IHNlY29uZCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsg
XAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0cmljdCkgJiYgIVVURl9JU19VTklDT0RF
X0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9nYXRlIG9yIG90
aGVyIG5vbi1jaGFyYWN0ZXIgKi8gXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNL
XzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0
LCBpKSBVMTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9C
QUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikgVTE2X0JBQ0tfTihzLCBzdGFydCwgaSwgbikKKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFy
dCwgaSwgbGVuZ3RoKSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKy8q
IEZvcm1lcmx5IHV0ZjMyLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisqIE9sZCBkb2N1bWVudGF0aW9uOgorKgorKiAg
IFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggVVRGLTMyIGNvZGUgdW5pdHMg
YW5kIGNvZGUgcG9pbnRzLgorKiAgIFNpZ25hdHVyZXMgYW5kIHNlbWFudGljcyBhcmUgdGhlIHNh
bWUgYXMgZm9yIHRoZSBzaW1pbGFybHkgbmFtZWQgbWFjcm9zCisqICAgaW4gdXRmMTYuaC4KKyog
ICB1dGYzMi5oIGlzIGluY2x1ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hpbmUuaDwv
cD4KKyogICBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCisqICAgPHA+PGI+VXNhZ2U6PC9i
PiAgSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJlIGZv
bGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgorKiAgICAgICAgICAgICAgICAgIENvbXBv
dW5kIHN0YXRlbWVudHMgKGN1cmx5IGJyYWNlcyB7fSkgbXVzdCBiZSB1c2VkICBmb3IgaWYtZWxz
ZS13aGlsZS4uLgorKiAgICAgICAgICAgICAgICAgIGJvZGllcyBhbmQgYWxsIG1hY3JvIHN0YXRl
bWVudHMgc2hvdWxkIGJlIHRlcm1pbmF0ZWQgd2l0aCBzZW1pY29sb24uPC9wPgorKi8KKworLyog
aW50ZXJuYWwgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TQUZFKGMsIHN0cmljdCkgXAor
ICAgICghKHN0cmljdCkgPyBcCisgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmIDogXAor
ICAgICAgICBVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKQorCisvKgorICogRm9yIHRoZSBzZW1hbnRp
Y3Mgb2YgYWxsIG9mIHRoZXNlIG1hY3Jvcywgc2VlIHV0ZjE2LmguCisgKiBUaGUgVVRGLTMyIHZl
cnNpb25zIGFyZSB0cml2aWFsIGJlY2F1c2UgYW55IGNvZGUgcG9pbnQgaXMKKyAqIGVuY29kZWQg
dXNpbmcgZXhhY3RseSBvbmUgY29kZSB1bml0LgorICovCisKKy8qIHNpbmdsZS1jb2RlIHBvaW50
IGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICovCisKKy8qIGNsYXNzZXMgb2YgY29kZSB1bml0IHZhbHVlcyAqLworCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0lT
X1NJTkdMRSh1Y2hhcikgMQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19MRUFEKHVjaGFyKSAwCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMy
X0lTX1RSQUlMKHVjaGFyKSAwCisKKy8qIG51bWJlciBvZiBjb2RlIHVuaXRzIHBlciBjb2RlIHBv
aW50ICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAwCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMy
X0NIQVJfTEVOR1RIKGMpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTUFYX0NIQVJfTEVOR1RIIDEKKworLyogYXZl
cmFnZSBudW1iZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYgKi8KKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYzMl9BUlJBWV9TSVpFKHNpemUpIChzaXplKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1VOU0FG
RShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfR0VUX0NI
QVJfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylb
aV07IFwKKyAgICBpZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMp
PVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiBkZWZpbml0aW9ucyB3aXRoIGZv
cndhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShz
KVsoaSkrK107IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykg
eyBcCisgICAgKHMpWyhpKSsrXT0oYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfMV9VTlNBRkUo
cywgaSkgeyBcCisgICAgKysoaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfTl9VTlNBRkUocywg
aSwgbikgeyBcCisgICAgKGkpKz0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9TVEFS
VF9VTlNBRkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVYVF9DSEFSX1NBRkUocywgaSwg
bGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoIVVU
RjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0
aCwgYykgeyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpIHsgXAorICAgICAgICAo
cylbKGkpKytdPShjKTsgXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSAweGZmZmQg
Ki8geyBcCisgICAgICAgIChzKVsoaSkrK109MHhmZmZkOyBcCisgICAgfSBcCit9CisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMzJfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIHsgXAorICAgICsrKGkpOyBcCit9CisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGMzJfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIHsgXAorICAgIGlmKCgoaSkrPShu
KSk+KGxlbmd0aCkpIHsgXAorICAgICAgICAoaSk9KGxlbmd0aCk7IFwKKyAgICB9IFwKK30KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYzMl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwKK30KKworLyog
ZGVmaW5pdGlvbnMgd2l0aCBiYWNrd2FyZCBpdGVyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9QUkVWX0NIQVJfVU5TQUZFKHMsIGks
IGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQkFDS18xX1VO
U0FGRShzLCBpKSB7IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9VTlNB
RkUocywgaSwgbikgeyBcCisgICAgKGkpLT0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hB
Ul9MSU1JVF9VTlNBRkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1NBRkUo
cywgc3RhcnQsIGksIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVstLShpKV07IFwKKyAgICBp
ZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9W
QUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBp
KSB7IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0
LCBpLCBuKSB7IFwKKyAgICAoaSktPShuKTsgXAorICAgIGlmKChpKTwoc3RhcnQpKSB7IFwKKyAg
ICAgICAgKGkpPShzdGFydCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9M
SU1JVF9TQUZFKHMsIGksIGxlbmd0aCkgeyBcCit9CisKKy8qIEZvcm1lcmx5IHV0Zi5oLCBwYXJ0
IDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CisKKy8qKgorICogRXN0aW1hdGUgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGZvciBhIHN0cmlu
ZyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzLgorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
Rl9BUlJBWV9TSVpFKHNpemUpIFVURjE2X0FSUkFZX1NJWkUoc2l6ZSkKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgICAgIFVU
RjE2X0dFVF9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
VXNlIFUxNl9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0dFVF9D
SEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSBVVEYxNl9HRVRfQ0hBUl9T
QUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgIFVURjE2
X05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVz
ZSBVMTZfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfTkVYVF9D
SEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpICBVVEYxNl9ORVhUX0NIQVJfU0FGRShz
LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfQVBQRU5EX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgVVRGMTZfQVBQRU5EX0NI
QVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQ
UEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQVBQRU5EX0NIQVJf
U0FGRShzLCBpLCBsZW5ndGgsIGMpICAgICAgICBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGks
IGxlbmd0aCwgYykKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
RldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFfVU5TQUZF
KHMsIGkpICAgICAgICAgICAgICAgICAgICAgICBVVEYxNl9GV0RfMV9VTlNBRkUocywgaSkKKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpICAgICAgICAgICAg
ICAgICBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkKKworCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEZfRldEX05fVU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgICBVVEYx
Nl9GV0RfTl9VTlNBRkUocywgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEX05fU0FG
RShzLCBpLCBsZW5ndGgsIG4pICAgICAgICAgICAgICBVVEYxNl9GV0RfTl9TQUZFKHMsIGksIGxl
bmd0aCwgbikKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VU
X0NQX1NUQVJUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFS
X1NUQVJUX1VOU0FGRShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5T
QUZFKHMsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRf
Q1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFSVF9T
QUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3Rh
cnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1BSRVZf
VU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfUFJFVl9DSEFSX1VOU0FGRShz
LCBpLCBjKSAgICAgICAgICAgICAgICBVVEYxNl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJp
Y3QpICAgVVRGMTZfUFJFVl9DSEFSX1NBRkUocywgc3RhcnQsIGksIGMsIHN0cmljdCkKKworCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMV9VTlNBRkUocywgaSkgICAgICAgICAg
ICAgICAgICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEZfQkFDS18xX1NBRkUocywgc3RhcnQsIGkpICAgICAgICAgICAgICAgICBVVEYxNl9CQUNL
XzFfU0FGRShzLCBzdGFydCwgaSkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVMTZfQkFDS19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JB
Q0tfTl9VTlNBRkUocywgaSwgbikgICAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1VOU0FG
RShzLCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFD
S19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQkFDS19OX1NBRkUocywgc3RhcnQs
IGksIG4pICAgICAgICAgICAgICBVVEYxNl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikKKwor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlUX1VO
U0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUX1VOU0FG
RShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0
LCBpLCBsZW5ndGgpIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0
aCkKKworLyogRGVmaW5lIGRlZmF1bHQgbWFjcm9zIChVVEYtMTYgInNhZmUiKSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSB1
bml0IGFsb25lIGVuY29kZSBhIGNvZGUgcG9pbnQgKEJNUCwgbm90IGEgc3Vycm9nYXRlKT8KKyAq
IFNhbWUgYXMgVVRGMTZfSVNfU0lOR0xFLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVX0lTX1NJTkdMRSBhbmQgVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLwor
I2RlZmluZSBVVEZfSVNfU0lOR0xFKHVjaGFyKSBVMTZfSVNfU0lOR0xFKHVjaGFyKQorCisvKioK
KyAqIElzIHRoaXMgY29kZSB1bml0IHRoZSBmaXJzdCBvbmUgb2Ygc2V2ZXJhbCAoYSBsZWFkIHN1
cnJvZ2F0ZSk/CisgKiBTYW1lIGFzIFVURjE2X0lTX0xFQUQuCisgKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmgu
CisgKi8KKyNkZWZpbmUgVVRGX0lTX0xFQUQodWNoYXIpIFUxNl9JU19MRUFEKHVjaGFyKQorCisv
KioKKyAqIElzIHRoaXMgY29kZSB1bml0IG9uZSBvZiBzZXZlcmFsIGJ1dCBub3QgdGhlIGZpcnN0
IG9uZSAoYSB0cmFpbCBzdXJyb2dhdGUpPworICogU2FtZSBhcyBVVEYxNl9JU19UUkFJTC4KKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RS
QUlMLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19UUkFJTCh1Y2hhcikgVTE2
X0lTX1RSQUlMKHVjaGFyKQorCisvKioKKyAqIERvZXMgdGhpcyBjb2RlIHBvaW50IHJlcXVpcmUg
bXVsdGlwbGUgY29kZSB1bml0cyAoaXMgaXQgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQpPwor
ICogU2FtZSBhcyBVVEYxNl9ORUVEX01VTFRJUExFX1VDSEFSLgorICogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGluc3Rl
YWQuCisgKi8KKyNkZWZpbmUgVVRGX05FRURfTVVMVElQTEVfVUNIQVIoYykgVVRGMTZfTkVFRF9N
VUxUSVBMRV9VQ0hBUihjKQorCisvKioKKyAqIEhvdyBtYW55IGNvZGUgdW5pdHMgYXJlIHVzZWQg
dG8gZW5jb2RlIHRoaXMgY29kZSBwb2ludCAoMSBvciAyKT8KKyAqIFNhbWUgYXMgVVRGMTZfQ0hB
Ul9MRU5HVEguCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRU5HVEgs
IHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0NIQVJfTEVOR1RIKGMpIFUxNl9MRU5H
VEgoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIGF0IG1vc3QgZm9y
IGFueSBVbmljb2RlIGNvZGUgcG9pbnQgKDIpPworICogU2FtZSBhcyBVVEYxNl9NQVhfQ0hBUl9M
RU5HVEguCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RI
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9NQVhfQ0hBUl9MRU5HVEggVTE2X01B
WF9MRU5HVEgKKworLyoqCisgKiBTZXQgYyB0byB0aGUgY29kZSBwb2ludCB0aGF0IGNvbnRhaW5z
IHRoZSBjb2RlIHVuaXQgaS4KKyAqIGkgY291bGQgcG9pbnQgdG8gdGhlIGxlYWQgb3IgdGhlIHRy
YWlsIHN1cnJvZ2F0ZSBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKiBpIGlzIG5vdCBtb2RpZmllZC4K
KyAqIFNhbWUgYXMgVVRGMTZfR0VUX0NIQVIuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfR0VULCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUihzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSBVMTZfR0VU
KHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9p
bnQgdGhhdCBzdGFydHMgYXQgY29kZSB1bml0IGkKKyAqIGFuZCBhZHZhbmNlIGkgdG8gYmV5b25k
IHRoZSBjb2RlIHVuaXRzIG9mIHRoaXMgY29kZSBwb2ludCAocG9zdC1pbmNyZW1lbnQpLgorICog
aSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50LgorICog
T3RoZXJ3aXNlIGMgaXMgc2V0IHRvIHRoZSB0cmFpbCB1bml0IChzdXJyb2dhdGUpIGl0c2VsZi4K
KyAqIFNhbWUgYXMgVVRGMTZfTkVYVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBv
c3QgMDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9ORVhULCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9ORVhUX0NIQVIocywgaSwg
bGVuZ3RoLCBjKSBVMTZfTkVYVChzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQXBwZW5kIHRo
ZSBjb2RlIHVuaXRzIG9mIGNvZGUgcG9pbnQgYyB0byB0aGUgc3RyaW5nIGF0IGluZGV4IGkKKyAq
IGFuZCBhZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBuZXcgY29kZSB1bml0cyAocG9zdC1pbmNyZW1l
bnQpLgorICogVGhlIGNvZGUgdW5pdHMgYmVnaW5uaW5nIGF0IGluZGV4IGkgd2lsbCBiZSBvdmVy
d3JpdHRlbi4KKyAqIFNhbWUgYXMgVVRGMTZfQVBQRU5EX0NIQVIuCisgKiBccHJlIDA8PWM8PTB4
MTBmZmZmCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfQVBQRU5EIGluc3RlYWQsIHNlZSB1dGZfb2xk
LmguCisgKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSKHMsIGksIGxlbmd0aCwgYykgVVRGMTZf
QVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQWR2YW5jZSBpIHRv
IGJleW9uZCB0aGUgY29kZSB1bml0cyBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGJlZ2lucyBhdCBp
LgorICogSS5lLiwgYWR2YW5jZSBpIGJ5IG9uZSBjb2RlIHBvaW50LgorICogU2FtZSBhcyBVVEYx
Nl9GV0RfMS4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgor
ICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzEsIHNlZSB1dGZfb2xk
LmguCisgKi8KKyNkZWZpbmUgVVRGX0ZXRF8xKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8xKHMsIGks
IGxlbmd0aCkKKworLyoqCisgKiBBZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBjb2RlIHVuaXRzIG9m
IHRoZSBuIGNvZGUgcG9pbnRzIHdoZXJlIHRoZSBmaXJzdCBvbmUgYmVnaW5zIGF0IGkuCisgKiBJ
LmUuLCBhZHZhbmNlIGkgYnkgbiBjb2RlIHBvaW50cy4KKyAqIFNhbWUgYXMgVVQxNl9GV0RfTi4K
KyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX04sIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGX0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0
aCwgbikKKworLyoqCisgKiBUYWtlIHRoZSByYW5kb20tYWNjZXNzIGluZGV4IGkgYW5kIGFkanVz
dCBpdCBzbyB0aGF0IGl0IHBvaW50cyB0byB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIGNvZGUgcG9p
bnQuCisgKiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIHRvIGFueSBjb2RlIHVuaXQgb2YgYSBjb2Rl
IHBvaW50IGFuZCBpcyBtb3ZlZCB0byBwb2ludCB0bworICogdGhlIGZpcnN0IGNvZGUgdW5pdCBv
ZiB0aGUgc2FtZSBjb2RlIHBvaW50LiBpIGlzIG5ldmVyIGluY3JlbWVudGVkLgorICogSW4gb3Ro
ZXIgd29yZHMsIGlmIGkgcG9pbnRzIHRvIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgaXMgcHJlY2Vk
ZWQgYnkgYSBtYXRjaGluZworICogbGVhZCBzdXJyb2dhdGUsIHRoZW4gaSBpcyBkZWNyZW1lbnRl
ZC4gT3RoZXJ3aXNlIGl0IGlzIG5vdCBtb2RpZmllZC4KKyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
c3RhcnQgYW4gaXRlcmF0aW9uIHdpdGggVVRGX05FWFRfQ0hBUigpIGZyb20gYSByYW5kb20gaW5k
ZXguCisgKiBTYW1lIGFzIFVURjE2X1NFVF9DSEFSX1NUQVJULgorICogXHByZSBzdGFydDw9aTxs
ZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2Rl
ZmluZSBVVEZfU0VUX0NIQVJfU1RBUlQocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1BfU1RBUlQocywg
c3RhcnQsIGkpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMgY29k
ZSB1bml0cyBiZWZvcmUgaQorICogYW5kIG1vdmUgaSBiYWNrd2FyZCAodG93YXJkcyB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIHRoaXMg
Y29kZSBwb2ludCAocHJlLWluY3JlbWVudCkuCisgKiBpIG11c3QgcG9pbnQgdG8gdGhlIGZpcnN0
IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29kZSBwb2ludCAoaT09bGVuZ3Ro
IGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9QUkVWX0NIQVIuCisgKiBccHJlIHN0YXJ0
PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfUFJFViwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmlu
ZSBVVEZfUFJFVl9DSEFSKHMsIHN0YXJ0LCBpLCBjKSBVMTZfUFJFVihzLCBzdGFydCwgaSwgYykK
KworLyoqCisgKiBNb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUg
c3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUgY29kZSBwb2ludCB0aGF0
IGhhcyBjb2RlIHVuaXRzIGJlZm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG9u
ZSBjb2RlIHBvaW50LgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0
ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4K
KyAqIFNhbWUgYXMgVVRGMTZfQkFDS18xLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxw
b3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS18xKHMs
IHN0YXJ0LCBpKSBVMTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKioKKyAqIE1vdmUgaSBiYWNr
d2FyZCAodG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmly
c3QgY29kZSB1bml0IG9mIHRoZSBuIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBjb2RlIHVuaXRzIGJl
Zm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG4gY29kZSBwb2ludHMuCisgKiBp
IG11c3QgcG9pbnQgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9m
IGEgY29kZSBwb2ludCAoaT09bGVuZ3RoIGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9C
QUNLX04uCisgKiBccHJlIHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3Ro
CisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9CQUNLX04ocywgc3RhcnQsIGksIG4pIFUxNl9C
QUNLX04ocywgc3RhcnQsIGksIG4pCisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBp
bmRleCBpIGFuZCBhZGp1c3QgaXQgc28gdGhhdCBpdCBwb2ludHMgYmV5b25kCisgKiBhIGNvZGUg
cG9pbnQuIFRoZSBpbnB1dCBpbmRleCBwb2ludHMgYmV5b25kIGFueSBjb2RlIHVuaXQKKyAqIG9m
IGEgY29kZSBwb2ludCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgYmV5b25kIHRoZSBsYXN0IGNvZGUg
dW5pdCBvZiB0aGUgc2FtZQorICogY29kZSBwb2ludC4gaSBpcyBuZXZlciBkZWNyZW1lbnRlZC4K
KyAqIEluIG90aGVyIHdvcmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0
IGlzIHByZWNlZGVkIGJ5IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMg
aW5jcmVtZW50ZWQuIE90aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBi
ZSB1c2VkIHRvIHN0YXJ0IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9QUkVWX0NIQVIoKSBmcm9tIGEg
cmFuZG9tIGluZGV4LgorICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9MSU1JVC4KKyAqIFxwcmUg
c3RhcnQ8aTw9bGVuZ3RoCisgKiBccG9zdCBzdGFydDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmgu
CisgKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIFUx
Nl9TRVRfQ1BfTElNSVQocywgc3RhcnQsIGksIGxlbmd0aCkKKworI2VuZGlmIC8qIFVfSElERV9E
RVBSRUNBVEVEX0FQSSAqLworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aWN1L3VuaWNvZGUvdXR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dHlwZXMu
aAppbmRleCAwMGJmMTRjZThlNmU1ZDZlYzhlZDg3ZDhlOTU2MTcwY2E1Nzc4N2IyLi44ZjkyNGM5
ZDE0MjQxNzkyODQ2NGI3OTQ0Nzk2MTIxNzYwMTAyOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pY3UvdW5pY29kZS91dHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29k
ZS91dHlwZXMuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJp
Z2h0IChDKSAxOTk2LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTYtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwog
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgpAQCAtMzQsOSArMzQsMTMgQEAKIAogCiAjaW5jbHVkZSAidW5pY29kZS91bWFj
aGluZS5oIgotI2luY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjaW5jbHVkZSAidW5pY29kZS91dmVy
c2lvbi5oIgogI2luY2x1ZGUgInVuaWNvZGUvdWNvbmZpZy5oIgorI2luY2x1ZGUgPGZsb2F0Lmg+
CisKKyNpZiAhVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMKKyMgICBpbmNsdWRlICJ1
bmljb2RlL3V0Zi5oIgorI2VuZGlmCiAKIC8qIQogICogXGZpbGUKQEAgLTUzLDkgKzU3LDkgQEAK
ICAqIFxkZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKICAqIEBpbnRlcm5hbAogICovCi0jaWZkZWYg
WFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBpZm5kZWYgVV9TSE9XX0NQTFVT
UExVU19BUEkKLSMgICAgICAgZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKyMgICAgICAg
ZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDAKICMgICBlbmRpZgogI2Vsc2UKICMgICB1bmRl
ZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQpAQCAtNjcsNiArNzEsMTIgQEAKIC8qKgogICogXGRlZiBV
X0hJREVfRFJBRlRfQVBJCiAgKiBEZWZpbmUgdGhpcyB0byAxIHRvIHJlcXVlc3QgdGhhdCBkcmFm
dCBBUEkgYmUgImhpZGRlbiIKKyAqIEBpbnRlcm5hbAorICovCisvKioKKyAqIFxkZWYgVV9ISURF
X0lOVEVSTkFMX0FQSQorICogRGVmaW5lIHRoaXMgdG8gMSB0byByZXF1ZXN0IHRoYXQgaW50ZXJu
YWwgQVBJIGJlICJoaWRkZW4iCisgKiBAaW50ZXJuYWwKICAqLwogI2lmICFVX0RFRkFVTFRfU0hP
V19EUkFGVCAmJiAhZGVmaW5lZChVX1NIT1dfRFJBRlRfQVBJKQogI2RlZmluZSBVX0hJREVfRFJB
RlRfQVBJIDEKQEAgLTc1LDExNiArODUsOCBAQAogI2RlZmluZSBVX0hJREVfSU5URVJOQUxfQVBJ
IDEKICNlbmRpZgogCi0jaWZkZWYgVV9ISURFX0RSQUZUX0FQSQotI2luY2x1ZGUgInVuaWNvZGUv
dWRyYWZ0LmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQotI2luY2x1
ZGUgInVuaWNvZGUvdWRlcHJjdGQuaCIKLSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX0RFUFJFQ0FU
RURfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91b2JzbGV0ZS5oIgotI2VuZGlmCi0KLSNpZmRlZiBV
X0hJREVfSU5URVJOQUxfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91aW50cm5hbC5oIgotI2VuZGlm
Ci0KLSNpZmRlZiBVX0hJREVfU1lTVEVNX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdXN5c3RlbS5o
IgotI2VuZGlmCi0KIC8qKiBAfSAqLwogCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qIGNo
YXIgQ2hhcmFjdGVyIHNldCBmYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBVX0NI
QVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMg
YW4gQVNDSUkgYmFzZWQgcGxhdGZvcm0uCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2RlZmlu
ZSBVX0FTQ0lJX0ZBTUlMWSAwCi0KLS8qKgotICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0
byB0aGlzIHZhbHVlIHdoZW4gdGhlIHBsYXRmb3JtIGlzIGFuIEVCQ0RJQyBiYXNlZCBwbGF0Zm9y
bS4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVmaW5lIFVfRUJDRElDX0ZBTUlMWSAxCi0K
LS8qKgotICogXGRlZiBVX0NIQVJTRVRfRkFNSUxZCi0gKgotICogPHA+VGhlc2UgZGVmaW5pdGlv
bnMgYWxsb3cgdG8gc3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2YgdGV4dAotICogaW4gdGhlIGNoYXIg
ZGF0YSB0eXBlIGFzIGRlZmluZWQgYnkgdGhlIHBsYXRmb3JtIGFuZCB0aGUgY29tcGlsZXIuCi0g
KiBJdCBpcyBlbm91Z2ggdG8gZGV0ZXJtaW5lIHRoZSBjb2RlIHBvaW50IHZhbHVlcyBvZiAiaW52
YXJpYW50IGNoYXJhY3RlcnMiLAotICogd2hpY2ggYXJlIHRoZSBvbmVzIHNoYXJlZCBieSBhbGwg
ZW5jb2RpbmdzIHRoYXQgYXJlIGluIHVzZQotICogb24gYSBnaXZlbiBwbGF0Zm9ybS48L3A+Ci0g
KgotICogPHA+VGhvc2UgImludmFyaWFudCBjaGFyYWN0ZXJzIiBzaG91bGQgYmUgYWxsIHRoZSB1
cHBlcmNhc2UgYW5kIGxvd2VyY2FzZQotICogbGF0aW4gbGV0dGVycywgdGhlIGRpZ2l0cywgdGhl
IHNwYWNlLCBhbmQgImJhc2ljIHB1bmN0dWF0aW9uIi4KLSAqIEFsc28sICdcXG4nLCAnXFxyJywg
J1xcdCcgc2hvdWxkIGJlIGF2YWlsYWJsZS48L3A+Ci0gKgotICogPHA+VGhlIGxpc3Qgb2YgImlu
dmFyaWFudCBjaGFyYWN0ZXJzIiBpczo8YnI+Ci0gKiBcY29kZQotICogICAgQS1aICBhLXogIDAt
OSAgU1BBQ0UgICIgICUgICZhbXA7ICAnICAoICApICAqICArICAsICAtICAuICAvICA6ICA7ICA8
ICA9ICA+ICA/ICBfCi0gKiBcZW5kY29kZQotICogPGJyPgotICogKDUyIGxldHRlcnMgKyAxMCBu
dW1iZXJzICsgMjAgcHVuYy9zeW0vc3BhY2UgPSA4MiB0b3RhbCk8L3A+Ci0gKgotICogPHA+VGhp
cyBtYXRjaGVzIHRoZSBJQk0gU3ludGFjdGljIENoYXJhY3RlciBTZXQgKENTIDY0MCkuPC9wPgot
ICoKLSAqIDxwPkluIG90aGVyIHdvcmRzLCBhbGwgdGhlIGdyYXBoaWMgY2hhcmFjdGVycyBpbiA3
LWJpdCBBU0NJSSBzaG91bGQKLSAqIGJlIHNhZmVseSBhY2Nlc3NpYmxlIGV4Y2VwdCB0aGUgZm9s
bG93aW5nOjwvcD4KLSAqCi0gKiBcY29kZQotICogICAgJ1wnIDxiYWNrc2xhc2g+Ci0gKiAgICAn
WycgPGxlZnQgYnJhY2tldD4KLSAqICAgICddJyA8cmlnaHQgYnJhY2tldD4KLSAqICAgICd7JyA8
bGVmdCBicmFjZT4KLSAqICAgICd9JyA8cmlnaHQgYnJhY2U+Ci0gKiAgICAnXicgPGNpcmN1bWZs
ZXg+Ci0gKiAgICAnficgPHRpbGRlPgotICogICAgJyEnIDxleGNsYW1hdGlvbiBtYXJrPgotICog
ICAgJyMnIDxudW1iZXIgc2lnbj4KLSAqICAgICd8JyA8dmVydGljYWwgbGluZT4KLSAqICAgICck
JyA8ZG9sbGFyIHNpZ24+Ci0gKiAgICAnQCcgPGNvbW1lcmNpYWwgYXQ+Ci0gKiAgICAnYCcgPGdy
YXZlIGFjY2VudD4KLSAqIFxlbmRjb2RlCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotCi0jaWZu
ZGVmIFVfQ0hBUlNFVF9GQU1JTFkKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSAwCi0jZW5k
aWYKLQotLyoqCi0gKiBcZGVmIFVfQ0hBUlNFVF9JU19VVEY4Ci0gKgotICogSGFyZGNvZGUgdGhl
IGRlZmF1bHQgY2hhcnNldCB0byBVVEYtOC4KLSAqCi0gKiBJZiB0aGlzIGlzIHNldCB0byAxLCB0
aGVuCi0gKiAtIElDVSB3aWxsIGFzc3VtZSB0aGF0IGFsbCBub24taW52YXJpYW50IGNoYXIqLCBT
dHJpbmdQaWVjZSwgc3RkOjpzdHJpbmcgZXRjLgotICogICBjb250YWluIFVURi04IHRleHQsIHJl
Z2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc3lzdGVtIEFQSSB1c2VzCi0gKiAtIHNvbWUgSUNVIGNvZGUg
d2lsbCB1c2UgZmFzdCBmdW5jdGlvbnMgbGlrZSB1X3N0ckZyb21VVEY4KCkKLSAqICAgcmF0aGVy
IHRoYW4gdGhlIG1vcmUgZ2VuZXJhbCBhbmQgbW9yZSBoZWF2eS13ZWlnaHQgY29udmVyc2lvbiBB
UEkgKHVjbnYuaCkKLSAqIC0gdWNudl9nZXREZWZhdWx0TmFtZSgpIGFsd2F5cyByZXR1cm5zICJV
VEYtOCIKLSAqIC0gdWNudl9zZXREZWZhdWx0TmFtZSgpIGlzIGRpc2FibGVkIGFuZCB3aWxsIG5v
dCBjaGFuZ2UgdGhlIGRlZmF1bHQgY2hhcnNldAotICogLSBzdGF0aWMgYnVpbGRzIG9mIElDVSBh
cmUgc21hbGxlcgotICogLSBtb3JlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHdpdGggdGhl
IFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZC10aW1lCi0gKiAgIGNvbmZpZ3VyYXRpb24gb3B0
aW9uIChzZWUgdW5pY29kZS91Y29uZmlnLmgpCi0gKiAtIHRoZSBVQ09ORklHX05PX0NPTlZFUlNJ
T04gYnVpbGQgb3B0aW9uIGluIHVjb25maWcuaCBpcyBtb3JlIHVzYWJsZQotICoKLSAqIEBzdGFi
bGUgSUNVIDQuMgotICogQHNlZSBVQ09ORklHX05PX0NPTlZFUlNJT04KLSAqLwotI2lmbmRlZiBV
X0NIQVJTRVRfSVNfVVRGOAotIyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAwCi0jZW5kaWYK
LQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogSUNVREFUQSBuYW1pbmcgc2NoZW1lICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0qLwpAQCAtMjMyLDkgKzEzNCwxMSBAQAogICogSUNVIDEuOC54IG9uIEVC
Q0RJQywgZXRjLi4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCi0jZGVmaW5lIFVfSUNVREFUQV9O
QU1FICAgICJpY3VkdCIgVV9JQ1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9MRVRURVIg
IC8qKjwgQGludGVybmFsICovCisjZGVmaW5lIFVfSUNVREFUQV9OQU1FICAgICJpY3VkdCIgVV9J
Q1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9MRVRURVIKKyNpZm5kZWYgVV9ISURFX0lO
VEVSTkFMX0FQSQogI2RlZmluZSBVX1VTUkRBVEFfTkFNRSAgICAidXNyZHQiIFVfSUNVX1ZFUlNJ
T05fU0hPUlQgVV9JQ1VEQVRBX1RZUEVfTEVUVEVSICAvKio8IEBpbnRlcm5hbCAqLwotI2RlZmlu
ZSBVX1VTRV9VU1JEQVRBICAgICAwICAvKio8IEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1VTRV9V
U1JEQVRBICAgICAxICAvKio8IEBpbnRlcm5hbCAqLworI2VuZGlmICAvKiBVX0hJREVfSU5URVJO
QUxfQVBJICovCiAKIC8qKgogICogIFVfSUNVX0VOVFJZX1BPSU5UIGlzIHRoZSBuYW1lIG9mIHRo
ZSBETEwgZW50cnkgcG9pbnQgdG8gdGhlIElDVSBkYXRhIGxpYnJhcnkuCkBAIC0yNDcsMzggKzE1
MSwyOCBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCNkZWZpbmUgVV9J
Q1VfRU5UUllfUE9JTlQgaWN1ZHQxOV9kYXQKICAqIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVm
aW5lIFVfSUNVREFUQV9FTlRSWV9QT0lOVCAgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQoVV9J
Q1VfVkVSU0lPTl9NQUpPUl9OVU0sIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNKQorI2RlZmluZSBV
X0lDVURBVEFfRU5UUllfUE9JTlQgIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BPSU5UKFVfSUNVX1ZF
UlNJT05fTUFKT1JfTlVNLFVfTElCX1NVRkZJWF9DX05BTUUpCiAKKyNpZm5kZWYgVV9ISURFX0lO
VEVSTkFMX0FQSQogLyoqCi0gKiBEbyBub3QgdXNlLgorICogRG8gbm90IHVzZS4gTm90ZSB0aGF0
IGl0J3MgT0sgZm9yIHRoZSAybmQgYXJndW1lbnQgdG8gYmUgdW5kZWZpbmVkIChsaXRlcmFsKS4K
ICAqIEBpbnRlcm5hbAogICovCi0jZGVmaW5lIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1h
am9yLCBtaW5vcikgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwgbWlub3IpCisjZGVm
aW5lIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLHN1ZmYpIFVfREVGX0lDVURBVEFf
RU5UUllfUE9JTlQobWFqb3Isc3VmZikKKwogLyoqCiAgKiBEbyBub3QgdXNlLgogICogQGludGVy
bmFsCiAgKi8KICNpZm5kZWYgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVAogLyogYWZmZWN0ZWQg
Ynkgc3ltYm9sIHJlbmFtaW5nLiBTZWUgcGxhdGZvcm0uaCAqLwotI2RlZmluZSBVX0RFRl9JQ1VE
QVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikgaWN1ZHQjI21ham9yIyNtaW5vciMjX2RhdAot
I2VuZGlmCi0KLS8qKgotICogXGRlZiBVX0NBTExDT05WCi0gKiBTaW1pbGFyIHRvIFVfQ0RFQ0xf
QkVHSU4vVV9DREVDTF9FTkQsIHRoaXMgcXVhbGlmaWVyIGlzIG5lY2Vzc2FyeQotICogaW4gY2Fs
bGJhY2sgZnVuY3Rpb24gdHlwZWRlZnMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNhbGxpbmcgY29u
dmVudGlvbgotICogaXMgY29tcGF0aWJsZS4KLSAqCi0gKiBUaGlzIGlzIG9ubHkgdXNlZCBmb3Ig
bm9uLUlDVS1BUEkgZnVuY3Rpb25zLgotICogV2hlbiBhIGZ1bmN0aW9uIGlzIGEgcHVibGljIElD
VSBBUEksCi0gKiB5b3UgbXVzdCB1c2UgdGhlIFVfQ0FQSSBhbmQgVV9FWFBPUlQyIHF1YWxpZmll
cnMuCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2lmIGRlZmluZWQoT1MzOTApICYmIGRlZmlu
ZWQoWFBfQ1BMVVNQTFVTKQotIyAgICBkZWZpbmUgVV9DQUxMQ09OViBfX2NkZWNsCisjaWZuZGVm
IFVfTElCX1NVRkZJWF9DX05BTUUKKyNkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVCht
YWpvciwgc3VmZikgaWN1ZHQjI21ham9yIyNfZGF0CiAjZWxzZQotIyAgICBkZWZpbmUgVV9DQUxM
Q09OViBVX0VYUE9SVDIKKyNkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwg
c3VmZikgaWN1ZHQjI3N1ZmYgIyMgbWFqb3IjI19kYXQKKyNlbmRpZgogI2VuZGlmCisjZW5kaWYg
IC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogLyoqCiAgKiBcZGVmIE5VTEwKQEAgLTI4Niw3
ICsxODAsNyBAQAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZm5kZWYgTlVMTAotI2lmZGVm
IFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAjZGVmaW5lIE5VTEwgICAgMAogI2Vs
c2UKICNkZWZpbmUgTlVMTCAgICAoKHZvaWQgKikwKQpAQCAtMzE1LDU0ICsyMDksMTcgQEAgdHlw
ZWRlZiBkb3VibGUgVURhdGU7CiAvKiogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgcGVyIGRh
eSBAc3RhYmxlIElDVSAyLjAgKi8KICNkZWZpbmUgVV9NSUxMSVNfUEVSX0RBWSAgICAgICAoODY0
MDAwMDApCiAKLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogVUNsYXNzSUQtYmFzZWQgUlRU
SSAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyoqIAorICogTWF4aW11bSBVRGF0ZSB2YWx1
ZSAKKyAqIEBzdGFibGUgSUNVIDQuOCAKKyAqLyAKKyNkZWZpbmUgVV9EQVRFX01BWCBEQkxfTUFY
CiAKIC8qKgotICogVUNsYXNzSUQgaXMgdXNlZCB0byBpZGVudGlmeSBjbGFzc2VzIHdpdGhvdXQg
dXNpbmcgUlRUSSwgc2luY2UgUlRUSQotICogaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkgYWxsIEMr
KyBjb21waWxlcnMuICBFYWNoIGNsYXNzIGhpZXJhcmNoeSB3aGljaCBuZWVkcwotICogdG8gaW1w
bGVtZW50IHBvbHltb3JwaGljIGNsb25lKCkgb3Igb3BlcmF0b3I9PSgpIGRlZmluZXMgdHdvIG1l
dGhvZHMsCi0gKiBkZXNjcmliZWQgaW4gZGV0YWlsIGJlbG93LiAgVUNsYXNzSUQgdmFsdWVzIGNh
biBiZSBjb21wYXJlZCB1c2luZwotICogb3BlcmF0b3I9PSgpLiBOb3RoaW5nIGVsc2Ugc2hvdWxk
IGJlIGRvbmUgd2l0aCB0aGVtLgotICoKLSAqIFxwYXIKLSAqIGdldER5bmFtaWNDbGFzc0lEKCkg
aXMgZGVjbGFyZWQgaW4gdGhlIGJhc2UgY2xhc3Mgb2YgdGhlIGhpZXJhcmNoeSBhcwotICogYSBw
dXJlIHZpcnR1YWwuICBFYWNoIGNvbmNyZXRlIHN1YmNsYXNzIGltcGxlbWVudHMgaXQgaW4gdGhl
IHNhbWUgd2F5OgotICoKLSAqIFxjb2RlCi0gKiAgICAgIGNsYXNzIEJhc2UgewotICogICAgICBw
dWJsaWM6Ci0gKiAgICAgICAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkg
Y29uc3QgPSAwOwotICogICAgICB9Ci0gKgotICogICAgICBjbGFzcyBEZXJpdmVkIHsKLSAqICAg
ICAgcHVibGljOgotICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJ
RCgpIGNvbnN0Ci0gKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNz
SUQoKTsgfQotICogICAgICB9Ci0gKiBcZW5kY29kZQotICoKLSAqIEVhY2ggY29uY3JldGUgY2xh
c3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwgd2hpY2ggYWxsb3dzCi0g
KiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KLSAqCi0gKiBcY29kZQotICog
ICAgICBjbGFzcyBEZXJpdmVkIHsKLSAqICAgICAgcHVibGljOgotICogICAgICAgICAgc3RhdGlj
IFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7Ci0gKiAgICAgIHByaXZhdGU6
Ci0gKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7Ci0gKiAgICAgIH0KLSAqCi0gKiAg
ICAgIC8vIEluIERlcml2ZWQuY3BwOgotICogICAgICBVQ2xhc3NJRCBEZXJpdmVkOjpnZXRTdGF0
aWNDbGFzc0lEKCkKLSAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQpJkRlcml2ZWQ6OmZnQ2xh
c3NJRDsgfQotICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9IDA7IC8vIFZhbHVlIGlz
IGlycmVsZXZhbnQKLSAqIFxlbmRjb2RlCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotdHlwZWRl
ZiB2b2lkKiBVQ2xhc3NJRDsKKyAqIE1pbmltdW0gVURhdGUgdmFsdWUgCisgKiBAc3RhYmxlIElD
VSA0LjggCisgKi8gCisjZGVmaW5lIFVfREFURV9NSU4gLVVfREFURV9NQVgKIAogLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0qLwogLyogU2hhcmVkIGxpYnJhcnkvRExMIGltcG9ydC1leHBvcnQgQVBJIGNv
bnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMzczLDcgKzIzMCw3IEBA
IHR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CiAgKiBJQ1UgaXMgc2VwYXJhdGVkIGludG8gdGhyZWUg
bGlicmFyaWVzLgogICovCiAKLS8qCisvKioKICAqIFxkZWYgVV9DT01CSU5FRF9JTVBMRU1FTlRB
VElPTgogICogU2V0IHRvIGV4cG9ydCBsaWJyYXJ5IHN5bWJvbHMgZnJvbSBpbnNpZGUgdGhlIElD
VSBsaWJyYXJ5CiAgKiB3aGVuIGFsbCBvZiBJQ1UgaXMgaW4gYSBzaW5nbGUgbGlicmFyeS4KQEAg
LTU0MCw5ICszOTcsOSBAQCB0eXBlZGVmIHZvaWQqIFVDbGFzc0lEOwogICoKICAqIE5vdGU6IFRo
aXMgaXMgY3VycmVudGx5IG9ubHkgZG9uZSBvbiBXaW5kb3dzIGJlY2F1c2UKICAqIHNvbWUgTGlu
dXgvVW5peCBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGRlZmluaW5nIGdsb2JhbCBuZXcv
ZGVsZXRlLgotICogT24gV2luZG93cywgVV9XSU5ET1dTIGlzIGRlZmluZWQsIGFuZCBpdCBpcyBf
TVNDX1ZFUj49MTIwMCBmb3IgTVNWQyA2LjAgYW5kIGhpZ2hlci4KKyAqIE9uIFdpbmRvd3MsIGl0
IGlzIF9NU0NfVkVSPj0xMjAwIGZvciBNU1ZDIDYuMCBhbmQgaGlnaGVyLgogICovCi0jaWYgZGVm
aW5lZChYUF9DUExVU1BMVVMpICYmIGRlZmluZWQoV0lOMzIpICYmIFVfREVCVUcgJiYgVV9PVkVS
UklERV9DWFhfQUxMT0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDApICYmICFkZWZpbmVkKFVfU1RB
VElDX0lNUExFTUVOVEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikg
fHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1F
TlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChV
X0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSkKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBV
X0RFQlVHICYmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gJiYgKF9NU0NfVkVSPj0xMjAwKSAm
JiAhZGVmaW5lZChVX1NUQVRJQ19JTVBMRU1FTlRBVElPTikgJiYgKGRlZmluZWQoVV9DT01NT05f
SU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZp
bmVkKFVfSU9fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5UQVRJ
T04pIHx8IGRlZmluZWQoVV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikpCiAKICNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQogLyoqCkBAIC03NDMsNiArNjAwLDcgQEAgdHlwZWRlZiBlbnVtIFVF
cnJvckNvZGUgewogICAgIFVfVU5ERUZJTkVEX0tFWVdPUkQsICAgICAgICAgICAgICAvKio8IFVu
ZGVmaW5lZCBQbHVyYWwga2V5d29yZCAqLwogICAgIFVfREVGQVVMVF9LRVlXT1JEX01JU1NJTkcs
ICAgICAgICAvKio8IE1pc3NpbmcgREVGQVVMVCBydWxlIGluIHBsdXJhbCBydWxlcyAqLwogICAg
IFVfREVDSU1BTF9OVU1CRVJfU1lOVEFYX0VSUk9SLCAgICAvKio8IERlY2ltYWwgbnVtYmVyIHN5
bnRheCBlcnJvciAqLworICAgIFVfRk9STUFUX0lORVhBQ1RfRVJST1IsICAgICAgICAgICAvKio8
IENhbm5vdCBmb3JtYXQgYSBudW1iZXIgZXhhY3RseSBhbmQgcm91bmRpbmcgbW9kZSBpcyBST1VO
RF9VTk5FQ0VTU0FSWSBAc3RhYmxlIElDVSA0LjggKi8KICAgICBVX0ZNVF9QQVJTRV9FUlJPUl9M
SU1JVCwgICAgICAgICAgLyoqPCBUaGUgbGltaXQgZm9yIGZvcm1hdCBsaWJyYXJ5IGVycm9ycyAq
LwogCiAgICAgLyoKQEAgLTgyNiw3ICs2ODQsNyBAQCB0eXBlZGVmIGVudW0gVUVycm9yQ29kZSB7
CiAvKiBVc2UgdGhlIGZvbGxvd2luZyB0byBkZXRlcm1pbmUgaWYgYW4gVUVycm9yQ29kZSByZXBy
ZXNlbnRzICovCiAvKiBvcGVyYXRpb25hbCBzdWNjZXNzIG9yIGZhaWx1cmUuICovCiAKLSNpZmRl
ZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogICAgIC8qKgogICAgICAqIERvZXMg
dGhlIGVycm9yIGNvZGUgaW5kaWNhdGUgc3VjY2Vzcz8KICAgICAgKiBAc3RhYmxlIElDVSAyLjAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0uaAppbmRleCA3MjIxNjEyOTIwOTJkYTYwNjI4
OWMwNmVjMjM2MTMwODUzOTFjNDE4Li5iZDBiMGM5ODk4YTIzNTc5ZThmYjgxMTlmNmNkMTYzOWFj
MmE4ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVybnVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXZlcm51bS5oCkBAIC0xLDYgKzEsNiBA
QAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAx
MSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAw
MC0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCkBAIC0xMiw1NyArMTIsNjYgQEAKICogICBDcmVhdGVkIGJ5OiBWbGFkaW1pciBXZWluc3Rl
aW4KICogICBVcGRhdGVkIGJ5OiBTdGV2ZW4gUi4gTG9vbWlzCiAqCi0qICBHZXRzIGluY2x1ZGVk
IGJ5IHV2ZXJzaW9uLmggYW5kIG90aGVyIGZpbGVzLgotKgotKiBJTVBPUlRBTlQ6IFdoZW4gdXBk
YXRpbmcgdmVyc2lvbiwgdGhlIGZvbGxvd2luZyB0aGluZ3MgbmVlZCB0byBiZSBkb25lOgotKiBz
b3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51bS5oIC0gdGhpcyBmaWxlOiB1cGRhdGUgbWFqb3Is
IG1pbm9yLAotKiAgICAgICAgcGF0Y2hsZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJz
aW9uIGNvbnN0YW50cywgbmFtZXNwYWNlLAotKiAgICAgICAgICAgICAgICAgICAgcmVuYW1pbmcg
bWFjcm8sIGFuZCBjb3B5cmlnaHQKLSoKLSogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJl
IHVwZGF0ZWQgYXMgd2VsbCwgd2hpY2ggY2FuIGJlIGRvbmUKLSogIGJ5IHJ1bm5pbmcgdGhlIFVO
SVggbWFrZWZpbGUgdGFyZ2V0ICd1cGRhdGUtd2luZG93cy1tYWtlZmlsZXMnIGluIGljdS9zb3Vy
Y2UuCi0qCi0qCi0qIHNvdXJjZS9jb21tb24vY29tbW9uLnZjcHJvaiAtIHVwZGF0ZSAnT3V0cHV0
IGZpbGUgbmFtZScgb24gdGhlIGxpbmsgdGFiIHNvCi0qICAgICAgICAgICAgICAgICAgIHRoYXQg
aXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbgotKiBzb3VyY2UvaTE4
bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCi0qIHNvdXJjZS9s
YXlvdXQvbGF5b3V0LnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCi0qIHNv
dXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3Byb2ogLSBzYW1lCi0qIHNvdXJjZS9zdHViZGF0YS9z
dHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagotKiBzb3VyY2Uv
aW8vaW8udmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKLSogc291cmNlL2Rh
dGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9OQU1FIHNvIHRoYXQgaXQgY29udGFp
bnMKLSogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBtYWpvci9taW5vciBjb21i
aW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KICovCiAKKy8qKgorICogXGZpbGUKKyAq
IFxicmllZiBDIEFQSTogZGVmaW5pdGlvbnMgb2YgSUNVIHZlcnNpb24gbnVtYmVycworICoKKyAq
IFRoaXMgZmlsZSBpcyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4gVGhp
cyBmaWxlIGNvbnRhaW5zIG9ubHkKKyAqIG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMuIFRoZSBhY3R1
YWwgdmVyc2lvbiBudW1iZXJzIGFyZSBkZWZpbmVkIGhlcmUuCisgKi8KKworIC8qCisgICogSU1Q
T1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhpbmdzIG5lZWQg
dG8gYmUgZG9uZToKKyAgKiBzb3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51bS5oIC0gdGhpcyBm
aWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAorICAqICAgICAgICBwYXRjaGxldmVsLCBzdWZmaXgs
IHZlcnNpb24sIHNob3J0IHZlcnNpb24gY29uc3RhbnRzLCBuYW1lc3BhY2UsCisgICogICAgICAg
ICAgICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0CisgICoKKyAgKiBUaGUg
Zm9sbG93aW5nIGZpbGVzIG5lZWQgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsLCB3aGljaCBjYW4gYmUg
ZG9uZQorICAqICBieSBydW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdp
bmRvd3MtbWFrZWZpbGVzJyBpbiBpY3Uvc291cmNlLgorICAqCisgICoKKyAgKiBzb3VyY2UvY29t
bW9uL2NvbW1vbi52Y3Byb2ogLSB1cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5r
IHRhYiBzbworICAqICAgICAgICAgICAgICAgICAgIHRoYXQgaXQgY29udGFpbnMgdGhlIG5ldyBt
YWpvci9taW5vciBjb21iaW5hdGlvbgorICAqIHNvdXJjZS9pMThuL2kxOG4udmNwcm9qIC0gc2Ft
ZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAgKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3By
b2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAqIHNvdXJjZS9sYXlvdXRleC9s
YXlvdXRleC52Y3Byb2ogLSBzYW1lCisgICogc291cmNlL3N0dWJkYXRhL3N0dWJkYXRhLnZjcHJv
aiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNlL2lvL2lvLnZjcHJv
aiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNlL2RhdGEvbWFrZWRh
dGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9OQU1FIHNvIHRoYXQgaXQgY29udGFpbnMKKyAgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbmV3IG1ham9yL21pbm9yIGNvbWJpbmF0aW9u
IGFuZCB0aGUgVW5pY29kZSB2ZXJzaW9uLgorICAqLworCiAjaWZuZGVmIFVWRVJOVU1fSAogI2Rl
ZmluZSBVVkVSTlVNX0gKIAotLyoqIFRoZSBzdGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQg
Z2V0cyBjb21waWxlZCBpbnRvIGVhY2ggbGlicmFyeS4gCisvKiogVGhlIHN0YW5kYXJkIGNvcHly
aWdodCBub3RpY2UgdGhhdCBnZXRzIGNvbXBpbGVkIGludG8gZWFjaCBsaWJyYXJ5LgogICogIFRo
aXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAg
KiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVV9DT1BZUklHSFRfU1RSSU5HIFwKLSAg
IiBDb3B5cmlnaHQgKEMpIDIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIgorICAiIENvcHlyaWdo
dCAoQykgMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAiCiAKLS8qKiBUaGUgY3VycmVudCBJQ1Ug
bWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLiAKKy8qKiBUaGUgY3VycmVudCBJQ1UgbWFqb3Ig
dmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhl
IHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNk
ZWZpbmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNAorI2RlZmluZSBVX0lDVV9WRVJTSU9OX01B
Sk9SX05VTSA1MgogCi0vKiogVGhlIGN1cnJlbnQgSUNVIG1pbm9yIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4gCisvKiogVGhlIGN1cnJlbnQgSUNVIG1pbm9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4K
ICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9m
IElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlO
T1JfTlVNIDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gMQogCi0vKiogVGhlIGN1
cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLiAgCisvKiogVGhlIGN1
cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICogIFRoaXMgdmFs
dWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0
YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05VTSAx
CisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0gMAogCi0vKiogVGhlIGN1cnJl
bnQgSUNVIGJ1aWxkIGxldmVsIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gIAorLyoqIFRoZSBjdXJy
ZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1
ZSBpcyBmb3IgdXNlIGJ5IElDVSBjbGllbnRzLiBJdCBkZWZhdWx0cyB0byAwLgogICogIEBzdGFi
bGUgSUNVIDQuMAogICovCkBAIC03MCwzOSArNzksNTkgQEAKICNkZWZpbmUgVV9JQ1VfVkVSU0lP
Tl9CVUlMRExFVkVMX05VTSAwCiAjZW5kaWYKIAotLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZv
ciByZW5hbWVycyAKKy8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMKICAqICBU
aGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQog
ICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fU1VGRklYIF80
NgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NVRkZJWCBfNTIKIAotLyoqIEdsdWVkIHZlcnNpb24g
c3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycyAKKy8qKgorICogXGRlZiBVX0RFRjJfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisgKi8KKy8qKgorICogXGRlZiBVX0RFRl9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FCisgKiBAaW50ZXJuYWwKKyAqLworLyoqIEdsdWVkIHZlcnNp
b24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycwogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFu
Z2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVLgogICogIElmIGEgY3VzdG9tIHN1
ZmZpeCAoc3VjaCBhcyBtYXRjaGluZyBsaWJyYXJ5IHN1ZmZpeGVzKSBpcyBkZXNpcmVkLCB0aGlz
IGNhbiBiZSBtb2RpZmllZC4KICAqICBOb3RlIHRoYXQgaWYgcHJlc2VudCwgcGxhdGZvcm0uaCBt
YXkgY29udGFpbiBhbiBlYXJsaWVyIGRlZmluaXRpb24gb2YgdGhpcyBtYWNyby4KKyAqICBcZGVm
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQogICogIEBzdGFibGUgSUNVIDQuMgogICovCisKICNp
Zm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCi0jZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh4KSAgICB4ICMjIF80NgorI2lmZGVmIFVfSEFWRV9MSUJfU1VGRklYCisjZGVmaW5l
IFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopIHggIyMgeSAjIyAgegorI2RlZmlu
ZSBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkseikgVV9ERUZfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh4LHkseikKKyNkZWZpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAg
IFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgsVV9JQ1VfVkVSU0lPTl9TVUZGSVgsVV9M
SUJfU1VGRklYX0NfTkFNRSkKKyNlbHNlCisjZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoeCx5KSB4ICMjIHkKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
eCx5KSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkKKyNkZWZpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgsVV9J
Q1VfVkVSU0lPTl9TVUZGSVgpCisjZW5kaWYKICNlbmRpZgogCiAvKiogVGhlIGN1cnJlbnQgSUNV
IGxpYnJhcnkgdmVyc2lvbiBhcyBhIGRvdHRlZC1kZWNpbWFsIHN0cmluZy4gVGhlIHBhdGNobGV2
ZWwKLSAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYgaXQgbm9uLXplcm8uIAorICog
IG9ubHkgYXBwZWFycyBpbiB0aGlzIHN0cmluZyBpZiBpdCBub24temVyby4KICAqICBUaGlzIHZh
bHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBz
dGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT04gIjQuNi4xIgorI2RlZmlu
ZSBVX0lDVV9WRVJTSU9OICI1Mi4xIgogCi0vKiogVGhlIGN1cnJlbnQgSUNVIGxpYnJhcnkgbWFq
b3IvbWlub3IgdmVyc2lvbiBhcyBhIHN0cmluZyB3aXRob3V0IGRvdHMsIGZvciBsaWJyYXJ5IG5h
bWUgc3VmZml4ZXMuIAorLyoqIFRoZSBjdXJyZW50IElDVSBsaWJyYXJ5IG1ham9yL21pbm9yIHZl
cnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBkb3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVz
LgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMg
b2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi42CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9T
SE9SVCAiNDYiCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fU0hPUlQgIjUyIgogCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKIC8qKiBEYXRhIHZlcnNpb24gaW4gSUNVNEMuCiAgKiBAaW50ZXJu
YWwgSUNVIDQuNCBJbnRlcm5hbCBVc2UgT25seQogICoqLwotI2RlZmluZSBVX0lDVV9EQVRBX1ZF
UlNJT04gIjQuNiIKKyNkZWZpbmUgVV9JQ1VfREFUQV9WRVJTSU9OICI1Mi4xIgorI2VuZGlmICAv
KiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgKiBJQ1Ug
Y29sbGF0aW9uIGZyYW1ld29yayB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3Vu
aWNvZGUvdXZlcnNpb24uaAppbmRleCBlNTRjZDU1YTY3Y2JjNGNjNjkyZTRlMzY5MjFkYTJiMzZh
ZDE1YTVmLi43NGUzMDkxMDU1MTRhZGYzODIzN2EzYjdhNDA5ODAxYTgxNWE1ZDU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEwLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAg
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTY3LDcg
KzY3LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdU
SF07CiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBiZWdpbnMgYW4gZXh0ZXJuICJDKysi
IGxpbmthZ2UgYmxvY2sgKHRvIHByb3RlY3QKICAqIGFnYWluc3QgY2FzZXMgaW4gd2hpY2ggYW4g
ZXh0ZXJuYWwgY2xpZW50IGluY2x1ZGVzIElDVSBoZWFkZXIgZmlsZXMgaW5zaWRlCiAgKiBhbiBl
eHRlcm4gIkMiIGxpbmthZ2UgYmxvY2spLgotICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0
cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGJlZ2lucyBhIG5hbWVzcGFjZSBibG9jay4KKyAqCisgKiBJ
dCBhbHNvIGJlZ2lucyBhIHZlcnNpb25lZC1JQ1UtbmFtZXNwYWNlIGJsb2NrLgogICogQHN0YWJs
ZSBJQ1UgMi40CiAgKi8KIApAQCAtNzcsOCArNzgsOCBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNp
b25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFdoZW4gbm90IGNvbXBpbGluZyBmb3Ig
QysrLCBpdCBkb2VzIG5vdGhpbmcuCiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBlbmRz
IHRoZSBleHRlcm4gIkMrKyIgYmxvY2sgYmVndW4gYnkKICAqIFVfTkFNRVNQQUNFX0JFR0lOLgot
ICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGVuZHMg
dGhlIG5hbWVzcGFjZSBibG9jawotICogYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4uCisgKgor
ICogSXQgYWxzbyBlbmRzIHRoZSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jayBiZWd1biBi
eSBVX05BTUVTUEFDRV9CRUdJTi4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTg2LDcg
Kzg3LDkgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdU
SF07CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1VTRQogICogVGhpcyBpcyB1c2VkIHRvIHNwZWNpZnkg
dGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQogICogcHVibGljIElDVSBDKysgQVBJ
IG5hbWVzcGFjZS4KLSAqIElmIHRoZSBjb21waWxlciBkb2Vzbid0IHN1cHBvcnQgbmFtZXNwYWNl
cywgdGhpcyBkb2VzIG5vdGhpbmcuCisgKiBUaGlzIGlzIGludm9rZWQgYnkgZGVmYXVsdDsgd2Ug
cmVjb21tZW5kIHRoYXQgeW91IHR1cm4gaXQgb2ZmOgorICogU2VlIHRoZSAiUmVjb21tZW5kZWQg
QnVpbGQgT3B0aW9ucyIgc2VjdGlvbiBvZiB0aGUgSUNVNEMgcmVhZG1lCisgKiAoaHR0cDovL3Nv
dXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90cnVuay9yZWFkbWUuaHRtbCNSZWNC
dWlsZCkKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTk0LDEzICs5NywxNCBAQCB0eXBl
ZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFxkZWYg
VV9OQU1FU1BBQ0VfUVVBTElGSUVSCiAgKiBUaGlzIGlzIHVzZWQgdG8gcXVhbGlmeSB0aGF0IGEg
ZnVuY3Rpb24gb3IgY2xhc3MgaXMgcGFydCBvZgogICogdGhlIHB1YmxpYyBJQ1UgQysrIEFQSSBu
YW1lc3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFjZXMs
IHRoaXMgZG9lcyBub3RoaW5nLgorICoKKyAqIFRoaXMgbWFjcm8gaXMgdW5uZWNlc3Nhcnkgc2lu
Y2UgSUNVIDQ5IHJlcXVpcmVzIG5hbWVzcGFjZSBzdXBwb3J0LgorICogWW91IGNhbiBqdXN0IHVz
ZSAiaWN1OjoiIGluc3RlYWQuCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCiAvKiBEZWZpbmUg
bmFtZXNwYWNlIHN5bWJvbHMgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LiAqLwotI2lmZGVm
IFhQX0NQTFVTUExVUwotI2lmIFVfSEFWRV9OQU1FU1BBQ0UKKyNpZmRlZiBfX2NwbHVzcGx1cwog
IyAgIGlmIFVfRElTQUJMRV9SRU5BTUlORwogIyAgICAgICBkZWZpbmUgVV9JQ1VfTkFNRVNQQUNF
IGljdQogICAgICAgICBuYW1lc3BhY2UgVV9JQ1VfTkFNRVNQQUNFIHsgfQpAQCAtMTIyLDEyICsx
MjYsNiBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RI
XTsKICAgICAgICAgVV9OQU1FU1BBQ0VfVVNFCiAjICAgZW5kaWYKICNlbHNlCi0jICAgZGVmaW5l
IFVfTkFNRVNQQUNFX0JFR0lOIGV4dGVybiAiQysrIiB7Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNF
X0VORCB9Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQotIyAgIGRlZmluZSBVX05BTUVTUEFD
RV9RVUFMSUZJRVIKLSNlbmRpZgotI2Vsc2UKICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfQkVHSU4K
ICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfRU5ECiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQpA
QCAtMTgwLDcgKzE3OCw3IEBAIHVfdmVyc2lvbkZyb21VU3RyaW5nKFVWZXJzaW9uSW5mbyB2ZXJz
aW9uQXJyYXksIGNvbnN0IFVDaGFyICp2ZXJzaW9uU3RyaW5nKTsKICAqIEBzdGFibGUgSUNVIDIu
NAogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgotdV92ZXJzaW9uVG9TdHJpbmcoVVZlcnNp
b25JbmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7Cit1X3ZlcnNpb25Ub1N0
cmluZyhjb25zdCBVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjaGFyICp2ZXJzaW9uU3RyaW5n
KTsKIAogLyoqCiAgKiBHZXRzIHRoZSBJQ1UgcmVsZWFzZSB2ZXJzaW9uLiAgVGhlIHZlcnNpb24g
YXJyYXkgc3RvcmVzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L2ljdS91bmljb2RlL2xvY2FscG9pbnRlci5oCmluZGV4IGI3NmExZjg1NjI5OTIzYmRkYjg0NmU5
OGEwODQ4MzM0N2NhNGVlNGEuLmUzY2NiMjU4MTU0Y2MyMTYwOThlYmMyNzM5ZmI3YjY4MjIwNTlj
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL2xvY2FscG9pbnRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL2xvY2FscG9pbnRlci5oCkBA
IC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cHlyaWdodCAoQykgMjAwOS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCkBAIC0xNDQsNiArMTQ0LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
cHRyPXA7CiAgICAgfQogcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEFjdHVhbCBwb2ludGVy
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLwogICAgIFQgKnB0cjsKIHByaXZhdGU6CiAgICAg
Ly8gTm8gY29tcGFyaXNvbiBvcGVyYXRvcnMgd2l0aCBvdGhlciBMb2NhbFBvaW50ZXJCYXNlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3BsYXRmb3JtLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oCmluZGV4IDNkZTQwZDI1NjU1
M2M0YWFmMWVjMDQ4MzFlOTljNTUzZmQ3YzQ2ZTkuLjFiMmFiMzA2ZWEzMzc4MjlmZDk5YjJjMGYy
ODI3MGQyOWM3YmIyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2Rl
L3BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcGxhdGZvcm0u
aApAQCAtMSwxNSArMSwxMSBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENv
cHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogKgotKiBOb3RlOiBhdXRvY29uZiBjcmVhdGVzIHBsYXRm
b3JtLmggZnJvbSBwbGF0Zm9ybS5oLmluIGF0IGNvbmZpZ3VyZSB0aW1lLgotKgotKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCi0qCiAqICBGSUxFIE5BTUUgOiBwbGF0Zm9ybS5oCiAqCiAqICAgRGF0ZSAg
ICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KQEAgLTIzLDM3OSArMTksNzM3IEBACiAjaWZu
ZGVmIF9QTEFURk9STV9ICiAjZGVmaW5lIF9QTEFURk9STV9ICiAKKyNpbmNsdWRlICJ1bmljb2Rl
L3Vjb25maWcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V2ZXJudW0uaCIKKwogLyoqCi0gKiBcZmls
ZSAKLSAqIFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtIAorICogXGZpbGUKKyAq
IFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtLgorICoKKyAqIFRoaXMgZmlsZSB1
c2VkIHRvIGJlIGdlbmVyYXRlZCBieSBhdXRvY29uZi9jb25maWd1cmUuCisgKiBTdGFydGluZyB3
aXRoIElDVSA0OSwgcGxhdGZvcm0uaCBpcyBhIG5vcm1hbCBzb3VyY2UgZmlsZSwKKyAqIHRvIHNp
bXBsaWZ5IGNyb3NzLWNvbXBpbGluZyBhbmQgd29ya2luZyB3aXRoIG5vbi1hdXRvY29uZi9tYWtl
IGJ1aWxkIHN5c3RlbXMuCisgKgorICogV2hlbiBhIHZhbHVlIGluIHRoaXMgZmlsZSBkb2VzIG5v
dCB3b3JrIG9uIGEgcGxhdGZvcm0sIHRoZW4gcGxlYXNlCisgKiB0cnkgdG8gZGVyaXZlIGl0IGZy
b20gdGhlIFVfUExBVEZPUk0gdmFsdWUKKyAqIChmb3Igd2hpY2ggd2UgbWlnaHQgbmVlZCBhIG5l
dyB2YWx1ZSBjb25zdGFudCBpbiByYXJlIGNhc2VzKQorICogYW5kL29yIGZyb20gb3RoZXIgbWFj
cm9zIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlIGNvbXBpbGVyCisgKiBvciBkZWZpbmVkIGlu
IHN0YW5kYXJkIChQT1NJWCBvciBwbGF0Zm9ybSBvciBjb21waWxlcikgaGVhZGVycy4KKyAqCisg
KiBBcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLCB5b3UgY2FuIGFkZCBhbiBleHBsaWNpdCA8Y29k
ZT4jZGVmaW5lPC9jb2RlPiBmb3Igc29tZSBtYWNyb3MKKyAqIGJlZm9yZSBpdCBpcyBmaXJzdCB0
ZXN0ZWQsIG9yIGFkZCBhbiBlcXVpdmFsZW50IC1EIG1hY3JvIGRlZmluaXRpb24KKyAqIHRvIHRo
ZSBjb21waWxlcidzIGNvbW1hbmQgbGluZS4KKyAqCisgKiBOb3RlOiBTb21lIGNvbXBpbGVycyBw
cm92aWRlIHdheXMgdG8gc2hvdyB0aGUgcHJlZGVmaW5lZCBtYWNyb3MuCisgKiBGb3IgZXhhbXBs
ZSwgd2l0aCBnY2MgeW91IGNhbiBjb21waWxlIGFuIGVtcHR5IC5jIGZpbGUgYW5kIGhhdmUgdGhl
IGNvbXBpbGVyCisgKiBwcmludCB0aGUgcHJlZGVmaW5lZCBtYWNyb3Mgd2l0aAorICogXGNvZGUK
KyAqIGdjYyAtRSAtZE0gLXggYyAvZGV2L251bGwgfCBzb3J0CisgKiBcZW5kY29kZQorICogKFlv
dSBjYW4gcHJvdmlkZSBhbiBhY3R1YWwgZW1wdHkgLmMgZmlsZSByYXRoZXIgdGhhbiAvZGV2L251
bGwuCisgKiA8Y29kZT4teCBjKys8L2NvZGU+IGlzIGZvciBDKysuKQogICovCiAKLS8qIFRoaXMg
ZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgYmVmb3JlIHV2ZXJudW0uaC4gKi8KLSNpZiBkZWZpbmVk
KFVWRVJOVU1fSCkKLSMgZXJyb3IgRG8gbm90IGluY2x1ZGUgdW5pY29kZS91dmVybnVtLmggYmVm
b3JlICNpbmNsdWRpbmcgdW5pY29kZS9wbGF0Zm9ybS5oLiAgSW5zdGVhZCBvZiB1bmljb2RlL3V2
ZXJudW0uaCwgI2luY2x1ZGUgdW5pY29kZS91dmVyc2lvbi5oCi0jZW5kaWYKLQogLyoqCi0gKiBE
ZXRlcm1pbmUgd2hldGVyIHRvIGVuYWJsZSBhdXRvIGNsZWFudXAgb2YgbGlicmFyaWVzLiAKKyAq
IERlZmluZSBzb21lIHRoaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlIGRvY3VtZW50ZWQuCiAgKiBA
aW50ZXJuYWwKICAqLwotI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAotI2RlZmluZSBVQ0xO
X05PX0FVVE9fQ0xFQU5VUCAxCi0jZW5kaWYKLQotLyogTmVlZCBwbGF0Zm9ybS5oIHdoZW4gdXNp
bmcgQ1lHV0lOTVNWQyB0byBnZXQgZGVmaW5pdGlvbnMgYWJvdmUuIElnbm9yZSBldmVyeXRoaW5n
IGVsc2UuICovCi0jaWZuZGVmIENZR1dJTk1TVkMKKyNpZmRlZiBVX0lOX0RPWFlHRU4KKy8qCisg
KiBQcm9ibGVtOiAicGxhdGZvcm0uaDozMzU6IHdhcm5pbmc6IGRvY3VtZW50YXRpb24gZm9yIHVu
a25vd24gZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIGZvdW5kLiIgbWVhbnMgdGhhdCBVX0hBVkVf
U1REX1NUUklORyBpcyBub3QgZG9jdW1lbnRlZC4KKyAqIFNvbHV0aW9uOiAjZGVmaW5lIGFueSBk
ZWZpbmVzIGZvciBub24gQGludGVybmFsIEFQSSBoZXJlLCBzbyB0aGF0IHRoZXkgYXJlIHZpc2li
bGUgaW4gdGhlIGRvY3MuICBJZiB5b3UganVzdCBzZXQgUFJFREVGSU5FRCBpbiBEb3h5ZmlsZS5p
biwgIHRoZXkgd29uJ3QgYmUgZG9jdW1lbnRlZC4KKyAqLwogCi0vKiogRGVmaW5lIHRoZSBwbGF0
Zm9ybSB3ZSdyZSBvbi4gKi8KLSNpZm5kZWYgVV9EQVJXSU4KLSNkZWZpbmUgVV9EQVJXSU4KKy8q
IE5vbmUgZm9yIG5vdy4gKi8KICNlbmRpZgogCiAvKioKLSAqIFxkZWYgVV9IQVZFX0RJUkVOVF9I
Ci0gKiBEZWZpbmUgd2hldGhlciBkaXJlbnQuaCBpcyBhdmFpbGFibGUgCisgKiBcZGVmIFVfUExB
VEZPUk0KKyAqIFRoZSBVX1BMQVRGT1JNIG1hY3JvIGRlZmluZXMgdGhlIHBsYXRmb3JtIHdlJ3Jl
IG9uLgorICoKKyAqIFdlIHVzZWQgdG8gZGVmaW5lIG9uZSBkaWZmZXJlbnQsIHZhbHVlLWxlc3Mg
bWFjcm8gcGVyIHBsYXRmb3JtLgorICogVGhhdCBtYWRlIGl0IGhhcmQgdG8ga25vdyB0aGUgc2V0
IG9mIHJlbGV2YW50IHBsYXRmb3JtcyBhbmQgbWFjcm9zLAorICogYW5kIGhhcmQgdG8gZGVhbCB3
aXRoIHZhcmlhbnRzIG9mIHBsYXRmb3Jtcy4KKyAqCisgKiBTdGFydGluZyB3aXRoIElDVSA0OSwg
d2UgZGVmaW5lIHBsYXRmb3JtcyBhcyBudW1lcmljIG1hY3JvcywKKyAqIHdpdGggcmFuZ2VzIG9m
IHZhbHVlcyBmb3IgcmVsYXRlZCBwbGF0Zm9ybXMgYW5kIHRoZWlyIHZhcmlhbnRzLgorICogVGhl
IFVfUExBVEZPUk0gbWFjcm8gaXMgc2V0IHRvIG9uZSBvZiB0aGVzZSB2YWx1ZXMuCisgKgorICog
SGlzdG9yaWNhbCBub3RlIGZyb20gdGhlIFNvbGFyaXMgV2lraXBlZGlhIGFydGljbGU6CisgKiBB
VCZUIGFuZCBTdW4gY29sbGFib3JhdGVkIG9uIGEgcHJvamVjdCB0byBtZXJnZSB0aGUgbW9zdCBw
b3B1bGFyIFVuaXggdmFyaWFudHMKKyAqIG9uIHRoZSBtYXJrZXQgYXQgdGhhdCB0aW1lOiBCU0Qs
IFN5c3RlbSBWLCBhbmQgWGVuaXguCisgKiBUaGlzIGJlY2FtZSBVbml4IFN5c3RlbSBWIFJlbGVh
c2UgNCAoU1ZSNCkuCisgKgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9IQVZFX0RJUkVO
VF9ICi0jZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAxCi0jZW5kaWYKIAotLyoqIERlZmluZSB3aGV0
aGVyIGludHR5cGVzLmggaXMgYXZhaWxhYmxlICovCi0jaWZuZGVmIFVfSEFWRV9JTlRUWVBFU19I
Ci0jZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKy8qKiBVbmtub3duIHBsYXRmb3JtLiBAaW50
ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9VTktOT1dOIDAKKy8qKiBXaW5kb3dzIEBpbnRlcm5hbCAq
LworI2RlZmluZSBVX1BGX1dJTkRPV1MgMTAwMAorLyoqIE1pbkdXLiBXaW5kb3dzLCBjYWxscyB0
byBXaW4zMiBBUEksIGJ1dCB1c2luZyBHTlUgZ2NjIGFuZCBiaW51dGlscy4gQGludGVybmFsICov
CisjZGVmaW5lIFVfUEZfTUlOR1cgMTgwMAorLyoqCisgKiBDeWd3aW4uIFdpbmRvd3MsIGNhbGxz
IHRvIGN5Z3dpbjEuZGxsIGZvciBQb3NpeCBmdW5jdGlvbnMsCisgKiB1c2luZyBNU1ZDIG9yIEdO
VSBnY2MgYW5kIGJpbnV0aWxzLgorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVV9QRl9DWUdX
SU4gMTkwMAorLyogUmVzZXJ2ZSAyMDAwIGZvciBVX1BGX1VOSVg/ICovCisvKiogSFAtVVggaXMg
YmFzZWQgb24gVU5JWCBTeXN0ZW0gVi4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfSFBVWCAy
MTAwCisvKiogU29sYXJpcyBpcyBhIFVuaXggb3BlcmF0aW5nIHN5c3RlbSBiYXNlZCBvbiBTVlI0
LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9TT0xBUklTIDI2MDAKKy8qKiBCU0QgaXMgYSBV
TklYIG9wZXJhdGluZyBzeXN0ZW0gZGVyaXZhdGl2ZS4gQGludGVybmFsICovCisjZGVmaW5lIFVf
UEZfQlNEIDMwMDAKKy8qKiBBSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gViBSZWxlYXNlcyBh
bmQgNC4zIEJTRC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQUlYIDMxMDAKKy8qKiBJUklY
IGlzIGJhc2VkIG9uIFVOSVggU3lzdGVtIFYgd2l0aCBCU0QgZXh0ZW5zaW9ucy4gQGludGVybmFs
ICovCisjZGVmaW5lIFVfUEZfSVJJWCAzMjAwCisvKioKKyAqIERhcndpbiBpcyBhIFBPU0lYLWNv
bXBsaWFudCBvcGVyYXRpbmcgc3lzdGVtLCBjb21wb3NlZCBvZiBjb2RlIGRldmVsb3BlZCBieSBB
cHBsZSwKKyAqIGFzIHdlbGwgYXMgY29kZSBkZXJpdmVkIGZyb20gTmVYVFNURVAsIEJTRCwgYW5k
IG90aGVyIHByb2plY3RzLAorICogYnVpbHQgYXJvdW5kIHRoZSBNYWNoIGtlcm5lbC4KKyAqIERh
cndpbiBmb3JtcyB0aGUgY29yZSBzZXQgb2YgY29tcG9uZW50cyB1cG9uIHdoaWNoIE1hYyBPUyBY
LCBBcHBsZSBUViwgYW5kIGlPUyBhcmUgYmFzZWQuCisgKiAoT3JpZ2luYWwgZGVzY3JpcHRpb24g
bW9kaWZpZWQgZnJvbSBXaWtpUGVkaWEuKQorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVV9Q
Rl9EQVJXSU4gMzUwMAorLyoqIGlQaG9uZSBPUyAoaU9TKSBpcyBhIGRlcml2YXRpdmUgb2YgTWFj
IE9TIFguIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0lQSE9ORSAzNTUwCisvKiogUU5YIGlz
IGEgY29tbWVyY2lhbCBVbml4LWxpa2UgcmVhbC10aW1lIG9wZXJhdGluZyBzeXN0ZW0gcmVsYXRl
ZCB0byBCU0QuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1FOWCAzNzAwCisvKiogTGludXgg
aXMgYSBVbml4LWxpa2Ugb3BlcmF0aW5nIHN5c3RlbS4gQGludGVybmFsICovCisjZGVmaW5lIFVf
UEZfTElOVVggNDAwMAorLyoqIEFuZHJvaWQgaXMgYmFzZWQgb24gTGludXguIEBpbnRlcm5hbCAq
LworI2RlZmluZSBVX1BGX0FORFJPSUQgNDA1MAorLyoqICJDbGFzc2ljIiBNYWMgT1MgKDE5ODQt
MjAwMSkgQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQ0xBU1NJQ19NQUNPUyA4MDAwCisvKiog
ei9PUyBpcyB0aGUgc3VjY2Vzc29yIHRvIE9TLzM5MCB3aGljaCB3YXMgdGhlIHN1Y2Nlc3NvciB0
byBNVlMuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX09TMzkwIDkwMDAKKy8qKiAiSUJNIGki
IGlzIHRoZSBjdXJyZW50IG5hbWUgb2Ygd2hhdCB1c2VkIHRvIGJlIGk1L09TIGFuZCBlYXJsaWVy
IE9TLzQwMC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfT1M0MDAgOTQwMAorCisjaWZkZWYg
VV9QTEFURk9STQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRl
ZmluZWQoX19NSU5HVzMyX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9NSU5HVworI2Vs
aWYgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQ1lHV0lO
CisjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChXSU42
NCkgfHwgZGVmaW5lZChfV0lONjQpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9XSU5ET1dT
CisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZf
QU5EUk9JRAorICAgIC8qIEFuZHJvaWQgd2NoYXJfdCBzdXBwb3J0IGRlcGVuZHMgb24gdGhlIEFQ
SSBsZXZlbC4gKi8KKyMgICBpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgorI2VsaWYgZGVm
aW5lZChsaW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19saW51eCkKKyMg
ICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0xJTlVYCisjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykg
JiYgZGVmaW5lZChfX01BQ0hfXykKKyMgICBpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4K
KyMgICBpZiBkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmIFRBUkdFVF9PU19JUEhPTkUgIC8q
IHZhcmlhbnQgb2YgVEFSR0VUX09TX01BQyAqLworIyAgICAgICBkZWZpbmUgVV9QTEFURk9STSBV
X1BGX0lQSE9ORQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9EQVJX
SU4KKyMgICBlbmRpZgorI2VsaWYgZGVmaW5lZChCU0QpIHx8IGRlZmluZWQoX19GcmVlQlNEX18p
IHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8
IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19NaXJCU0RfXykKKyMgICBkZWZpbmUg
VV9QTEFURk9STSBVX1BGX0JTRAorI2VsaWYgZGVmaW5lZChzdW4pIHx8IGRlZmluZWQoX19zdW4p
CisgICAgLyogQ2hlY2sgZGVmaW5lZChfX1NWUjQpIHx8IGRlZmluZWQoX19zdnI0X18pIHRvIGRp
c3Rpbmd1aXNoIFNvbGFyaXMgZnJvbSBTdW5PUz8gKi8KKyMgICBkZWZpbmUgVV9QTEFURk9STSBV
X1BGX1NPTEFSSVMKKyMgICBpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgICAgICAvKiBTb2xhcmlz
L0dDQyBuZWVkcyB0aGlzIGhlYWRlciBmaWxlIHRvIGdldCB0aGUgcHJvcGVyIGVuZGlhbm5lc3Mu
IE5vcm1hbGx5LCB0aGlzCisgICAgICAgICAqIGhlYWRlciBmaWxlIGlzIGluY2x1ZGVkIHdpdGgg
c3RkZGVmLmggYnV0IG9uIFNvbGFpcnMvR0NDLCB0aGUgR0NDIHZlcnNpb24gb2Ygc3RkZGVmLmgK
KyAgICAgICAgICogIGlzIGluY2x1ZGVkIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgdGhpcyBoZWFk
ZXIgZmlsZS4KKyAgICAgICAgICovCisjICAgICAgIGluY2x1ZGUgPHN5cy9pc2FfZGVmcy5oPgor
IyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9BSVgpIHx8IGRlZmluZWQoX19UT1NfQUlYX18pCisj
ICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9BSVgKKyNlbGlmIGRlZmluZWQoX2hwdXgpIHx8IGRl
ZmluZWQoaHB1eCkgfHwgZGVmaW5lZChfX2hwdXgpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9Q
Rl9IUFVYCisjZWxpZiBkZWZpbmVkKHNnaSkgfHwgZGVmaW5lZChfX3NnaSkKKyMgICBkZWZpbmUg
VV9QTEFURk9STSBVX1BGX0lSSVgKKyNlbGlmIGRlZmluZWQobWFjaW50b3NoKQorIyAgIGRlZmlu
ZSBVX1BMQVRGT1JNIFVfUEZfQ0xBU1NJQ19NQUNPUworI2VsaWYgZGVmaW5lZChfX1FOWF9fKSB8
fCBkZWZpbmVkKF9fUU5YTlRPX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9RTlgKKyNl
bGlmIGRlZmluZWQoX19UT1NfTVZTX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9PUzM5
MAorI2VsaWYgZGVmaW5lZChfX09TNDAwX18pIHx8IGRlZmluZWQoX19UT1NfT1M0MDBfXykKKyMg
ICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX09TNDAwCisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRG
T1JNIFVfUEZfVU5LTk9XTgogI2VuZGlmCiAKIC8qKgotICogRGVmaW5lIHdoYXQgc3VwcG9ydCBm
b3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxlLgotICogICAgIElmIFVfSU9TVFJFQU1fU09VUkNF
IGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0O2lvc3RyZWFtJmd0OyBpcyBhdmFpbGFibGUKLSAq
ICgxOTk3NzExIGlzIHRoZSBkYXRlIHRoZSBJU08vSUVDIEMrKyBGRElTIHdhcyBwdWJsaXNoZWQp
LCBhbmQgdGhlbgotICogb25lIHNob3VsZCBxdWFsaWZ5IHN0cmVhbXMgdXNpbmcgdGhlIHN0ZCBu
YW1lc3BhY2UgaW4gSUNVIGhlYWRlcgotICogZmlsZXMuCi0gKiAgICAgSWYgVV9JT1NUUkVBTV9T
T1VSQ0UgaXMgc2V0IHRvIDE5ODUwNiwgdGhlbiAmbHQ7aW9zdHJlYW0uaCZndDsgaXMKLSAqIGF2
YWlsYWJsZSBpbnN0ZWFkICgxOTg1MDYgaXMgdGhlIGRhdGUgd2hlbiBTdHJvdXN0cnVwIHB1Ymxp
c2hlZAotICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5IGZvciBDKysiIGF0IHRoZSBzdW1t
ZXIgVVNFTklYIGNvbmZlcmVuY2UpLgotICogICAgIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIDAs
IHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCi0gKiBzdXBwb3J0IGZvciB0
aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCi0gKgorICogXGRlZiBDWUdX
SU5NU1ZDCisgKiBEZWZpbmVkIGlmIHRoaXMgaXMgV2luZG93cyB3aXRoIEN5Z3dpbiwgYnV0IHVz
aW5nIE1TVkMgcmF0aGVyIHRoYW4gZ2NjLgorICogT3RoZXJ3aXNlIHVuZGVmaW5lZC4KKyAqIEBp
bnRlcm5hbAogICovCi0KLSNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKLSNkZWZpbmUgVV9JT1NU
UkVBTV9TT1VSQ0UgMTk5NzExCisvKiBDb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBpcyBhbHJl
YWR5IHNldCBpbiBtaC1jeWd3aW4tbXN2YworI2lmIFVfUExBVEZPUk0gPT0gVV9QRl9DWUdXSU4g
JiYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgQ1lHV0lOTVNWQwogI2VuZGlmCisqLwog
CiAvKioKLSAqIFxkZWYgVV9IQVZFX1NURF9TVFJJTkcKLSAqIERlZmluZSB3aGV0aGVyIHRoZSBz
dGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsgaGVhZGVyIGlzIGF2YWlsYWJsZS4KLSAq
IEZvciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgdXNlIHBsYXRmb3JtLmggYW5kIGRvIG5vdCBkZWZp
bmUgdGhpcyBjb25zdGFudAotICogaW4gdGhlaXIgcGxhdGZvcm0tc3BlY2lmaWMgaGVhZGVycywg
c3RkX3N0cmluZy5oIGRlZmF1bHRzCi0gKiBVX0hBVkVfU1REX1NUUklORyB0byAxLgorICogXGRl
ZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAqIERlZmluZXMgd2hldGhlciB0aGUg
cGxhdGZvcm0gdXNlcyBvbmx5IHRoZSBXaW4zMiBBUEkuCisgKiBTZXQgdG8gMSBmb3IgV2luZG93
cy9NU1ZDIGFuZCBNaW5HVyBidXQgbm90IEN5Z3dpbi4KICAqIEBpbnRlcm5hbAogICovCi0jaWZu
ZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0jZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEKKyNpZmRl
ZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiAoVV9QRl9XSU5ET1dTIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFU
Rk9STSA8PSBVX1BGX01JTkdXKSB8fCBkZWZpbmVkKENZR1dJTk1TVkMpCisjICAgZGVmaW5lIFVf
UExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSAxCisjZWxzZQorICAgIC8qIEN5Z3dpbiBpbXBs
ZW1lbnRzIFBPU0lYLiAqLworIyAgIGRlZmluZSBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9B
UEkgMAogI2VuZGlmCiAKLS8qKiBAeyBEZXRlcm1pbmVzIHdoZXRoZXIgc3BlY2lmaWMgdHlwZXMg
YXJlIGF2YWlsYWJsZSAqLwotI2lmbmRlZiBVX0hBVkVfSU5UOF9UCi0jZGVmaW5lIFVfSEFWRV9J
TlQ4X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICogRGVmaW5l
cyB3aGV0aGVyIHRoZSBXaW4zMiBBUEkgaXMgYXZhaWxhYmxlIG9uIHRoZSBwbGF0Zm9ybS4KKyAq
IFNldCB0byAxIGZvciBXaW5kb3dzL01TVkMsIE1pbkdXIGFuZCBDeWd3aW4uCisgKiBAaW50ZXJu
YWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICAgIC8qIFVzZSB0aGUg
cHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUEZfV0lORE9XUyA8PSBVX1BMQVRGT1JNICYm
IFVfUExBVEZPUk0gPD0gVV9QRl9DWUdXSU4KKyMgICBkZWZpbmUgVV9QTEFURk9STV9IQVNfV0lO
MzJfQVBJIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSAwCiAj
ZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDhfVAotI2RlZmluZSBVX0hBVkVfVUlOVDhfVCAw
CisvKioKKyAqIFxkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgKiBEZWZpbmVzIHdo
ZXRoZXIgdGhlIHBsYXRmb3JtIGltcGxlbWVudHMgKG1vc3Qgb2YpIHRoZSBQT1NJWCBBUEkuCisg
KiBTZXQgdG8gMSBmb3IgQ3lnd2luIGFuZCBtb3N0IG90aGVyIHBsYXRmb3Jtcy4KKyAqIEBpbnRl
cm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lO
MzJfQVBJIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisjICAgZGVmaW5lIFVf
UExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAwCisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRGT1JN
X0lNUExFTUVOVFNfUE9TSVggMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDE2X1QKLSNk
ZWZpbmUgVV9IQVZFX0lOVDE2X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSVNfTElOVVhf
QkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaXMgTGludXggb3Igb25lIG9m
IGl0cyBkZXJpdmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9J
U19MSU5VWF9CQVNFRAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlm
IFVfUEZfTElOVVggPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfQU5EUk9JRAor
IyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VEIDEKKyNlbHNlCisjICAgZGVmaW5l
IFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQgMAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX1VJ
TlQxNl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMTZfVCAwCisvKioKKyAqIFxkZWYgVV9QTEFURk9S
TV9JU19EQVJXSU5fQkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaXMgRGFy
d2luIG9yIG9uZSBvZiBpdHMgZGVyaXZhdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVm
IFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VECisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QRl9EQVJXSU4gPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9
IFVfUEZfSVBIT05FCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIDEKKyNl
bHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIDAKICNlbmRpZgogCi0j
aWZuZGVmIFVfSEFWRV9JTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9JTlQzMl9UIDEKKy8qKgorICog
XGRlZiBVX0hBVkVfU1RESU5UX0gKKyAqIERlZmluZXMgd2hldGhlciBzdGRpbnQuaCBpcyBhdmFp
bGFibGUuIEl0IGlzIGEgQzk5IHN0YW5kYXJkIGhlYWRlci4KKyAqIFdlIHVzZWQgdG8gaW5jbHVk
ZSBpbnR0eXBlcy5oIHdoaWNoIGluY2x1ZGVzIHN0ZGludC5oIGJ1dCB3ZSB1c3VhbGx5IGRvIG5v
dCBuZWVkCisgKiB0aGUgYWRkaXRpb25hbCBkZWZpbml0aW9ucyBmcm9tIGludHR5cGVzLmguCisg
KiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9TVERJTlRfSAorICAgIC8qIFVzZSB0aGUg
cHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQ
SQorIyAgIGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBVX1BMQVRGT1JNID09IFVfUEZfTUlO
R1cgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPj0xNjAwKQorICAgICAgICAvKiBX
aW5kb3dzIFZpc3VhbCBTdHVkaW8gOSBhbmQgYmVsb3cgZG8gbm90IGhhdmUgc3RkaW50LmggJiBp
bnR0eXBlcy5oLCBidXQgVlMgMjAxMCBhZGRzIHRoZW0uICovCisjICAgICAgIGRlZmluZSBVX0hB
VkVfU1RESU5UX0ggMQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAw
CisjICAgZW5kaWYKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisgICAgLyogU29s
YXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBVX0hB
VkVfU1RESU5UX0ggMAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWCAmJiAhZGVmaW5lZChf
QUlYNTEpICYmIGRlZmluZWQoX1BPV0VSKQorICAgIC8qIFBQQyBBSVggPD0gNC4zIGhhcyBpbnR0
eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAw
CisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMQogI2VuZGlmCiAKLSNpZm5kZWYg
VV9IQVZFX1VJTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMzJfVCAwCisvKioKKyAqIFxkZWYg
VV9IQVZFX0lOVFRZUEVTX0gKKyAqIERlZmluZXMgd2hldGhlciBpbnR0eXBlcy5oIGlzIGF2YWls
YWJsZS4gSXQgaXMgYSBDOTkgc3RhbmRhcmQgaGVhZGVyLgorICogV2UgaW5jbHVkZSBpbnR0eXBl
cy5oIHdoZXJlIGl0IGlzIGF2YWlsYWJsZSBidXQgc3RkaW50LmggaXMgbm90LgorICogQGludGVy
bmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICAgIC8qIFVzZSB0aGUgcHJlZGVm
aW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisgICAgLyog
U29sYXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBV
X0hBVkVfSU5UVFlQRVNfSCAxCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYICYmICFkZWZp
bmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9XRVIpCisgICAgLyogUFBDIEFJWCA8PSA0LjMgaGFz
IGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX0lOVFRZ
UEVTX0ggMQorI2Vsc2UKKyAgICAvKiBNb3N0IHBsYXRmb3JtcyBoYXZlIGJvdGggaW50dHlwZXMu
aCBhbmQgc3RkaW50LmgsIG9yIG5laXRoZXIuICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBF
U19IIFVfSEFWRV9TVERJTlRfSAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDY0X1QKLSNk
ZWZpbmUgVV9IQVZFX0lOVDY0X1QgMQorLyoqCisgKiBcZGVmIFVfSU9TVFJFQU1fU09VUkNFCisg
KiBEZWZpbmVzIHdoYXQgc3VwcG9ydCBmb3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxlLgorICoK
KyAqIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0O2lvc3Ry
ZWFtJmd0OyBpcyBhdmFpbGFibGUKKyAqICh0aGUgSVNPL0lFQyBDKysgRkRJUyB3YXMgcHVibGlz
aGVkIGluIE5vdmVtYmVyIDE5OTcpLCBhbmQgdGhlbgorICogb25lIHNob3VsZCBxdWFsaWZ5IHN0
cmVhbXMgdXNpbmcgdGhlIHN0ZCBuYW1lc3BhY2UgaW4gSUNVIGhlYWRlcgorICogZmlsZXMuCisg
KiBTdGFydGluZyB3aXRoIElDVSA0OSwgdGhpcyBpcyB0aGUgb25seSBzdXBwb3J0ZWQgdmVyc2lv
bi4KKyAqCisgKiBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2LCB0aGVuICZs
dDtpb3N0cmVhbS5oJmd0OyBpcworICogYXZhaWxhYmxlIGluc3RlYWQgKGluIEp1bmUgMTk4NSBT
dHJvdXN0cnVwIHB1Ymxpc2hlZAorICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5IGZvciBD
KysiIGF0IHRoZSBzdW1tZXIgVVNFTklYIGNvbmZlcmVuY2UpLgorICogU3RhcnRpbmcgd2l0aCBJ
Q1UgNDksIHRoaXMgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGFueSBtb3JlLgorICoKKyAqIElm
IFVfSU9TVFJFQU1fU09VUkNFIGlzIDAgKG9yIGFueSB2YWx1ZSBsZXNzIHRoYW4gMTk5NzExKSwK
KyAqIHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCisgKiBzdXBwb3J0IGZv
ciB0aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCisgKgorICogQGludGVy
bmFsCisgKi8KKyNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKKyNkZWZpbmUgVV9JT1NUUkVBTV9T
T1VSQ0UgMTk5NzExCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDY0X1QKLSNkZWZpbmUg
VV9IQVZFX1VJTlQ2NF9UIDAKKy8qKgorICogXGRlZiBVX0hBVkVfU1REX1NUUklORworICogRGVm
aW5lcyB3aGV0aGVyIHRoZSBzdGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsgaGVhZGVy
IGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURF9TVFJJ
TkcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQorIyAgIGRlZmlu
ZSBVX0hBVkVfU1REX1NUUklORyAxCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KIC8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ki8KIC8qKiBAeyBDb21waWxlciBhbmQgZW52aXJvbm1lbnQgZmVhdHVyZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ki8KIAotLyogRGVmaW5lIHdoZXRoZXIgbmFtZXNwYWNlIGlzIHN1cHBvcnRlZCAqLwotI2lmbmRl
ZiBVX0hBVkVfTkFNRVNQQUNFCi0jZGVmaW5lIFVfSEFWRV9OQU1FU1BBQ0UgMQotI2VuZGlmCi0K
LS8qIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtCi0gICBJdCdzIGRv
bmUgdGhpcyB3YXkgaW4gY2FzZSBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGFyZSBiZWluZyBidWls
dCBhdCBvbmNlLgotICAgRm9yIGV4YW1wbGUsIERhcndpbiBzdXBwb3J0cyBmYXQgYmluYXJpZXMs
IHdoaWNoIGNhbiBiZSBib3RoIFBQQyBhbmQgeDg2IGJhc2VkLiAqLwotI2lmIGRlZmluZWQoQllU
RV9PUkRFUikgJiYgZGVmaW5lZChCSUdfRU5ESUFOKQotI2RlZmluZSBVX0lTX0JJR19FTkRJQU4g
KEJZVEVfT1JERVIgPT0gQklHX0VORElBTikKKy8qKgorICogXGRlZiBVX0dDQ19NQUpPUl9NSU5P
UgorICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlzIGdjYyAodGVzdCBmb3IgIT0g
MCksCisgKiBhbmQgaWYgc28sIGNvbnRhaW5zIGl0cyBtYWpvciAodGltZXMgMTAwKSBhbmQgbWlu
b3IgdmVyc2lvbiBudW1iZXJzLgorICogSWYgdGhlIGNvbXBpbGVyIGlzIG5vdCBnY2MsIHRoZW4g
VV9HQ0NfTUFKT1JfTUlOT1IgPT0gMC4KKyAqCisgKiBGb3IgZXhhbXBsZSwgZm9yIHRlc3Rpbmcg
Zm9yIHdoZXRoZXIgd2UgaGF2ZSBnY2MsIGFuZCB3aGV0aGVyIGl0J3MgNC42IG9yIGhpZ2hlciwK
KyAqIHVzZSAiI2lmIFVfR0NDX01BSk9SX01JTk9SID49IDQwNiIuCisgKiBAaW50ZXJuYWwKKyAq
LworI2lmZGVmIF9fR05VQ19fCisjICAgZGVmaW5lIFVfR0NDX01BSk9SX01JTk9SIChfX0dOVUNf
XyAqIDEwMCArIF9fR05VQ19NSU5PUl9fKQogI2Vsc2UKLSNkZWZpbmUgVV9JU19CSUdfRU5ESUFO
IDEKKyMgICBkZWZpbmUgVV9HQ0NfTUFKT1JfTUlOT1IgMAogI2VuZGlmCiAKLS8qIDEgb3IgMCB0
byBlbmFibGUgb3IgZGlzYWJsZSB0aHJlYWRzLiAgSWYgdW5kZWZpbmVkLCBkZWZhdWx0IGlzOiBl
bmFibGUgdGhyZWFkcy4gKi8KLSNpZm5kZWYgSUNVX1VTRV9USFJFQURTIAotI2RlZmluZSBJQ1Vf
VVNFX1RIUkVBRFMgMQotI2VuZGlmCi0KLS8qIE9uIHN0cm9uZyBtZW1vcnkgbW9kZWwgQ1BVcyAo
ZS5nLiB4ODYgQ1BVcyksIHdlIHVzZSBhIHNhZmUgJiBxdWljayBkb3VibGUgY2hlY2sgbG9jay4g
Ki8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l
ZChfX3g4Nl82NF9fKSkKLSNkZWZpbmUgVU1UWF9TVFJPTkdfTUVNT1JZX01PREVMIDEKLSNlbmRp
ZgotCi0jaWZuZGVmIFVfREVCVUcKLSNkZWZpbmUgVV9ERUJVRyAwCi0jZW5kaWYKLQotI2lmbmRl
ZiBVX1JFTEVBU0UKLSNkZWZpbmUgVV9SRUxFQVNFIDEKKy8qKgorICogXGRlZiBVX0lTX0JJR19F
TkRJQU4KKyAqIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtLgorICog
QGludGVybmFsCisgKi8KKyNpZmRlZiBVX0lTX0JJR19FTkRJQU4KKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKEJZVEVfT1JERVIpICYmIGRlZmluZWQo
QklHX0VORElBTikKKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChCWVRFX09SREVSID09IEJJ
R19FTkRJQU4pCisjZWxpZiBkZWZpbmVkKF9fQllURV9PUkRFUl9fKSAmJiBkZWZpbmVkKF9fT1JE
RVJfQklHX0VORElBTl9fKQorICAgIC8qIGdjYyAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJ
QU4gKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9fKQorI2VsaWYgZGVmaW5l
ZChfX0JJR19FTkRJQU5fXykgfHwgZGVmaW5lZChfQklHX0VORElBTikKKyMgICBkZWZpbmUgVV9J
U19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pIHx8IGRlZmlu
ZWQoX0xJVFRMRV9FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAwCisjZWxpZiBV
X1BMQVRGT1JNID09IFVfUEZfT1MzOTAgfHwgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwIHx8IGRl
ZmluZWQoX19zMzkwX18pIHx8IGRlZmluZWQoX19zMzkweF9fKQorICAgIC8qIFRoZXNlIHBsYXRm
b3JtcyBkbyBub3QgYXBwZWFyIHRvIHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3MuICov
CisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisjZWxpZiBkZWZpbmVkKF9QQV9SSVNDMV8w
KSB8fCBkZWZpbmVkKF9QQV9SSVNDMV8xKSB8fCBkZWZpbmVkKF9QQV9SSVNDMl8wKQorICAgIC8q
IEhQUEEgZG8gbm90IGFwcGVhciB0byBwcmVkZWZpbmUgYW55IGVuZGlhbm5lc3MgbWFjcm9zLiAq
LworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChzcGFyYykgfHwg
ZGVmaW5lZChfX3NwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmNfXykKKyAgICAvKiBTb21lIHNwYXJj
IGJhc2VkIHN5c3RlbXMgKGUuZy4gTGludXgpIGRvIG5vdCBwcmVkZWZpbmUgYW55IGVuZGlhbm5l
c3MgbWFjcm9zLiAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9JU19CSUdfRU5ESUFOIDAKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0
byBkaXNhYmxlIHJlbmFtaW5nIG9yIG5vdC4gVGhpcyBvdmVycmlkZXMgdGhlCi0gICBzZXR0aW5n
IGluIHVtYWNoaW5lLmggd2hpY2ggaXMgZm9yIGFsbCBwbGF0Zm9ybXMuICovCi0jaWZuZGVmIFVf
RElTQUJMRV9SRU5BTUlORwotI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMQorLyoqCisgKiBc
ZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gb3ZlcnJp
ZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuCisgKiBAc3RhYmxlIElDVSAyLjYK
KyAqLworI2lmZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgZGVmaW5lIFVf
SEFWRV9QTEFDRU1FTlRfTkVXIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QTEFDRU1FTlRf
TkVXIDEKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBvdmVycmlkZSBuZXcgYW5k
IGRlbGV0ZS4gKi8KLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmluZSBV
X09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotLyogRGV0ZXJtaW5lIHdoZXRoZXIg
dG8gb3ZlcnJpZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuICovCi0jaWZuZGVm
IFVfSEFWRV9QTEFDRU1FTlRfTkVXCi0jZGVmaW5lIFVfSEFWRV9QTEFDRU1FTlRfTkVXIDEKKy8q
KgorICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIAorICogRGVmaW5lIHRoaXMgdG8g
ZGVmaW5lIHRoZSBNRkMgZGVidWcgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IgbmV3LgorICoKKyAq
IEBzdGFibGUgSUNVIDMuNAorICovCisjaWZkZWYgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVwor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX01TQ19W
RVIpCisjICAgZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAwCiAjZW5kaWYKIAotLyogRGV0ZXJtaW5l
IHdoZXRoZXIgdG8gZW5hYmxlIHRyYWNpbmcuICovCi0jaWZuZGVmIFVfRU5BQkxFX1RSQUNJTkcK
LSNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAxCisvKiBDb21wYXRpYmlsaXR5IHdpdGggbm9uIGNs
YW5nIGNvbXBpbGVycyAqLworI2lmbmRlZiBfX2hhc19hdHRyaWJ1dGUKKyMgICAgZGVmaW5lIF9f
aGFzX2F0dHJpYnV0ZSh4KSAwCiAjZW5kaWYKIAogLyoqCi0gKiBXaGV0aGVyIHRvIGVuYWJsZSBE
eW5hbWljIGxvYWRpbmcgaW4gSUNVCisgKiBcZGVmIFVfTUFMTE9DX0FUVFIKKyAqIEF0dHJpYnV0
ZSB0byBtYXJrIGZ1bmN0aW9ucyBhcyBtYWxsb2MtbGlrZQogICogQGludGVybmFsCiAgKi8KLSNp
Zm5kZWYgVV9FTkFCTEVfRFlMT0FECi0jZGVmaW5lIFVfRU5BQkxFX0RZTE9BRCAxCisjaWYgZGVm
aW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18+PTMKKyMgICAgZGVmaW5lIFVfTUFMTE9DX0FUVFIg
X19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKQorI2Vsc2UKKyMgICAgZGVmaW5lIFVfTUFMTE9D
X0FUVFIKICNlbmRpZgogCiAvKioKLSAqIFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxvYWRpbmcg
YXMgYW4gT1MgY2FwYWJpbHR5CisgKiBcZGVmIFVfQUxMT0NfU0laRV9BVFRSCisgKiBBdHRyaWJ1
dGUgdG8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciBmb3IgbWFsbG9j
LWxpa2UgZnVuY3Rpb25zCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0NIRUNLX0RZTE9B
RAotI2RlZmluZSBVX0NIRUNLX0RZTE9BRCAxCi0jZW5kaWYKLQotCi0vKiogRG8gd2UgYWxsb3cg
SUNVIHVzZXJzIHRvIHVzZSB0aGUgZHJhZnQgQVBJcyBieSBkZWZhdWx0PyAqLwotI2lmbmRlZiBV
X0RFRkFVTFRfU0hPV19EUkFGVAotI2RlZmluZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAxCisjaWYg
KGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYg
X19HTlVDX01JTk9SX18gPj0gMykpKSB8fCBfX2hhc19hdHRyaWJ1dGUoYWxsb2Nfc2l6ZSkKKyMg
ICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIoWCkgX19hdHRyaWJ1dGVfXyAoKGFsbG9jX3NpemUo
WCkpKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUjIoWCxZKSBfX2F0dHJpYnV0ZV9fICgo
YWxsb2Nfc2l6ZShYLFkpKSkKKyNlbHNlCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSKFgp
CisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSMihYLFkpCiAjZW5kaWYKIAogLyoqIEB9ICov
CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0eXBlcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
KiogQHsgQ2hhcmFjdGVyIGRhdGEgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiAoKGRl
ZmluZWQoT1MzOTApICYmICghZGVmaW5lZChfX0NIQVJTRVRfTElCKSB8fCAhX19DSEFSU0VUX0xJ
QikpKSB8fCBkZWZpbmVkKE9TNDAwKQotIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIDEKKy8q
KgorICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhlIHBs
YXRmb3JtIGlzIGFuIEFTQ0lJIGJhc2VkIHBsYXRmb3JtLgorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KKyNkZWZpbmUgVV9BU0NJSV9GQU1JTFkgMAorCisvKioKKyAqIFVfQ0hBUlNFVF9GQU1JTFkg
aXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBFQkNESUMgYmFz
ZWQgcGxhdGZvcm0uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2RlZmluZSBVX0VCQ0RJQ19G
QU1JTFkgMQorCisvKioKKyAqIFxkZWYgVV9DSEFSU0VUX0ZBTUlMWQorICoKKyAqIDxwPlRoZXNl
IGRlZmluaXRpb25zIGFsbG93IHRvIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHRleHQKKyAqIGlu
IHRoZSBjaGFyIGRhdGEgdHlwZSBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybSBhbmQgdGhlIGNv
bXBpbGVyLgorICogSXQgaXMgZW5vdWdoIHRvIGRldGVybWluZSB0aGUgY29kZSBwb2ludCB2YWx1
ZXMgb2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiwKKyAqIHdoaWNoIGFyZSB0aGUgb25lcyBzaGFy
ZWQgYnkgYWxsIGVuY29kaW5ncyB0aGF0IGFyZSBpbiB1c2UKKyAqIG9uIGEgZ2l2ZW4gcGxhdGZv
cm0uPC9wPgorICoKKyAqIDxwPlRob3NlICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgc2hvdWxkIGJl
IGFsbCB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UKKyAqIGxhdGluIGxldHRlcnMsIHRoZSBk
aWdpdHMsIHRoZSBzcGFjZSwgYW5kICJiYXNpYyBwdW5jdHVhdGlvbiIuCisgKiBBbHNvLCAnXFxu
JywgJ1xccicsICdcXHQnIHNob3VsZCBiZSBhdmFpbGFibGUuPC9wPgorICoKKyAqIDxwPlRoZSBs
aXN0IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgaXM6PGJyPgorICogXGNvZGUKKyAqICAgIEEt
WiAgYS16ICAwLTkgIFNQQUNFICAiICAlICAmYW1wOyAgJyAgKCAgKSAgKiAgKyAgLCAgLSAgLiAg
LyAgOiAgOyAgPCAgPSAgPiAgPyAgXworICogXGVuZGNvZGUKKyAqIDxicj4KKyAqICg1MiBsZXR0
ZXJzICsgMTAgbnVtYmVycyArIDIwIHB1bmMvc3ltL3NwYWNlID0gODIgdG90YWwpPC9wPgorICoK
KyAqIDxwPlRoaXMgbWF0Y2hlcyB0aGUgSUJNIFN5bnRhY3RpYyBDaGFyYWN0ZXIgU2V0IChDUyA2
NDApLjwvcD4KKyAqCisgKiA8cD5JbiBvdGhlciB3b3JkcywgYWxsIHRoZSBncmFwaGljIGNoYXJh
Y3RlcnMgaW4gNy1iaXQgQVNDSUkgc2hvdWxkCisgKiBiZSBzYWZlbHkgYWNjZXNzaWJsZSBleGNl
cHQgdGhlIGZvbGxvd2luZzo8L3A+CisgKgorICogXGNvZGUKKyAqICAgICdcJyA8YmFja3NsYXNo
PgorICogICAgJ1snIDxsZWZ0IGJyYWNrZXQ+CisgKiAgICAnXScgPHJpZ2h0IGJyYWNrZXQ+Cisg
KiAgICAneycgPGxlZnQgYnJhY2U+CisgKiAgICAnfScgPHJpZ2h0IGJyYWNlPgorICogICAgJ14n
IDxjaXJjdW1mbGV4PgorICogICAgJ34nIDx0aWxkZT4KKyAqICAgICchJyA8ZXhjbGFtYXRpb24g
bWFyaz4KKyAqICAgICcjJyA8bnVtYmVyIHNpZ24+CisgKiAgICAnfCcgPHZlcnRpY2FsIGxpbmU+
CisgKiAgICAnJCcgPGRvbGxhciBzaWduPgorICogICAgJ0AnIDxjb21tZXJjaWFsIGF0PgorICog
ICAgJ2AnIDxncmF2ZSBhY2NlbnQ+CisgKiBcZW5kY29kZQorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KKyNpZmRlZiBVX0NIQVJTRVRfRkFNSUxZCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICghZGVmaW5lZChfX0NI
QVJTRVRfTElCKSB8fCAhX19DSEFSU0VUX0xJQikKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlM
WSBVX0VCQ0RJQ19GQU1JTFkKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCAmJiAhZGVm
aW5lZChfX1VURjMyX18pCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgVV9FQkNESUNfRkFN
SUxZCisjZWxzZQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfQVNDSUlfRkFNSUxZCisj
ZW5kaWYKKworLyoqCisgKiBcZGVmIFVfQ0hBUlNFVF9JU19VVEY4CisgKgorICogSGFyZGNvZGUg
dGhlIGRlZmF1bHQgY2hhcnNldCB0byBVVEYtOC4KKyAqCisgKiBJZiB0aGlzIGlzIHNldCB0byAx
LCB0aGVuCisgKiAtIElDVSB3aWxsIGFzc3VtZSB0aGF0IGFsbCBub24taW52YXJpYW50IGNoYXIq
LCBTdHJpbmdQaWVjZSwgc3RkOjpzdHJpbmcgZXRjLgorICogICBjb250YWluIFVURi04IHRleHQs
IHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc3lzdGVtIEFQSSB1c2VzCisgKiAtIHNvbWUgSUNVIGNv
ZGUgd2lsbCB1c2UgZmFzdCBmdW5jdGlvbnMgbGlrZSB1X3N0ckZyb21VVEY4KCkKKyAqICAgcmF0
aGVyIHRoYW4gdGhlIG1vcmUgZ2VuZXJhbCBhbmQgbW9yZSBoZWF2eS13ZWlnaHQgY29udmVyc2lv
biBBUEkgKHVjbnYuaCkKKyAqIC0gdWNudl9nZXREZWZhdWx0TmFtZSgpIGFsd2F5cyByZXR1cm5z
ICJVVEYtOCIKKyAqIC0gdWNudl9zZXREZWZhdWx0TmFtZSgpIGlzIGRpc2FibGVkIGFuZCB3aWxs
IG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgY2hhcnNldAorICogLSBzdGF0aWMgYnVpbGRzIG9mIElD
VSBhcmUgc21hbGxlcgorICogLSBtb3JlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHdpdGgg
dGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZC10aW1lCisgKiAgIGNvbmZpZ3VyYXRpb24g
b3B0aW9uIChzZWUgdW5pY29kZS91Y29uZmlnLmgpCisgKiAtIHRoZSBVQ09ORklHX05PX0NPTlZF
UlNJT04gYnVpbGQgb3B0aW9uIGluIHVjb25maWcuaCBpcyBtb3JlIHVzYWJsZQorICoKKyAqIEBz
dGFibGUgSUNVIDQuMgorICogQHNlZSBVQ09ORklHX05PX0NPTlZFUlNJT04KKyAqLworI2lmZGVm
IFVfQ0hBUlNFVF9JU19VVEY4CisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgfHwgVV9QTEFURk9STV9JU19EQVJXSU5f
QkFTRUQKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0lTX1VURjggMQorI2Vsc2UKKyMgICBkZWZpbmUg
VV9DSEFSU0VUX0lTX1VURjggMAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IEluZm9ybWF0aW9u
IGFib3V0IHdjaGFyIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9ICi0j
ZGVmaW5lIFVfSEFWRV9XQ0hBUl9IICAgICAgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9XQ0hBUl9I
CisgKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4gaXMgYXZhaWxhYmxlICgxKSBvciBub3Qg
KDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisj
aWZkZWYgVV9IQVZFX1dDSEFSX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICov
CisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCAmJiBfX0FORFJPSURfQVBJX18gPCA5
CisgICAgLyoKKyAgICAgKiBBbmRyb2lkIGJlZm9yZSBHaW5nZXJicmVhZCAoQW5kcm9pZCAyLjMs
IEFQSSBsZXZlbCA5KSBkaWQgbm90IHN1cHBvcnQgd2NoYXJfdC4KKyAgICAgKiBUaGUgdHlwZSBh
bmQgaGVhZGVyIGV4aXN0ZWQsIGJ1dCB0aGUgbGlicmFyeSBmdW5jdGlvbnMgZGlkIG5vdCB3b3Jr
IGFzIGV4cGVjdGVkLgorICAgICAqIFRoZSBzaXplIG9mIHdjaGFyX3Qgd2FzIDEgYnV0IEwieHl6
IiBzdHJpbmcgbGl0ZXJhbHMgaGFkIDMyLWJpdCB1bml0cyBhbnl3YXkuCisgICAgICovCisjICAg
ZGVmaW5lIFVfSEFWRV9XQ0hBUl9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9XQ0hBUl9I
IDEKICNlbmRpZgogCi0jaWZuZGVmIFVfU0laRU9GX1dDSEFSX1QKLSNkZWZpbmUgVV9TSVpFT0Zf
V0NIQVJfVCAgICA0CisvKioKKyAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJfVAorICogVV9TSVpFT0Zf
V0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpCisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyNp
ZmRlZiBVX1NJWkVPRl9XQ0hBUl9UCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAq
LworI2VsaWYgKFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lEICYmIF9fQU5EUk9JRF9BUElfXyA8
IDkpIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisgICAgLyoKKyAgICAgKiBD
bGFzc2ljIE1hYyBPUyBhbmQgTWFjIE9TIFggYmVmb3JlIDEwLjMgKFBhbnRoZXIpIGRpZCBub3Qg
c3VwcG9ydCB3Y2hhcl90IG9yIHdzdHJpbmcuCisgICAgICogTmV3ZXIgTWFjIE9TIFggaGFzIHNp
emUgNC4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAxCisjZWxpZiBVX1BM
QVRGT1JNX0hBU19XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NZR1dJTgorIyAgIGRl
ZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BSVgKKyAg
ICAvKgorICAgICAqIEFJWCA2LjEgaW5mb3JtYXRpb24sIHNlY3Rpb24gIldpZGUgY2hhcmFjdGVy
IGRhdGEgcmVwcmVzZW50YXRpb24iOgorICAgICAqICIuLi4gdGhlIHdjaGFyX3QgZGF0YXR5cGUg
aXMgMzItYml0IGluIHRoZSA2NC1iaXQgZW52aXJvbm1lbnQgYW5kCisgICAgICogMTYtYml0IGlu
IHRoZSAzMi1iaXQgZW52aXJvbm1lbnQuIgorICAgICAqIGFuZAorICAgICAqICJBbGwgbG9jYWxl
cyB1c2UgVW5pY29kZSBmb3IgdGhlaXIgd2lkZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZXMgKHByb2Nl
c3MgY29kZSksCisgICAgICogZXhjZXB0IHRoZSBJQk0tZXVjVFcgY29kZXNldC4iCisgICAgICov
CisjICAgaWZkZWYgX182NEJJVF9fCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDQK
KyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyMgICBlbmRpZgor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCisgICAgLyoKKyAgICAgKiB6L09TIFYxUjEx
IGluZm9ybWF0aW9uIGNlbnRlciwgc2VjdGlvbiAiTFA2NCB8IElMUDMyIjoKKyAgICAgKiAiSW4g
MzEtYml0IG1vZGUsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50ZXJzIGlzIDQgYnl0ZXMgYW5k
IHRoZSBzaXplIG9mIHdjaGFyX3QgaXMgMiBieXRlcy4KKyAgICAgKiBVbmRlciBMUDY0LCB0aGUg
c2l6ZSBvZiBsb25nIGFuZCBwb2ludGVyIGlzIDggYnl0ZXMgYW5kIHRoZSBzaXplIG9mIHdjaGFy
X3QgaXMgNCBieXRlcy4iCisgICAgICovCisjICAgaWZkZWYgX0xQNjQKKyMgICAgICAgZGVmaW5l
IFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfU0laRU9GX1dD
SEFSX1QgMgorIyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBp
ZiBkZWZpbmVkKF9fVVRGMzJfXykKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQRSgq
TE9DQUxFVVRGKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFjdGVyIHN0cmlu
Z3MgYXJlIGluIFVURi0zMiwKKyAgICAgICAgICogbmFycm93LWNoYXJhY3RlciBzdHJpbmdzIGFy
ZSBpbiBVVEYtOC4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9U
IDQKKyMgICBlbGlmIGRlZmluZWQoX19VQ1MyX18pCisgICAgICAgIC8qCisgICAgICAgICAqIExP
Q0FMRVRZUEUoKkxPQ0FMRVVDUzIpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICogV2lkZS1jaGFy
YWN0ZXIgc3RyaW5ncyBhcmUgaW4gVUNTLTIsCisgICAgICAgICAqIG5hcnJvdy1jaGFyYWN0ZXIg
c3RyaW5ncyBhcmUgaW4gRUJDRElDLgorICAgICAgICAgKi8KKyMgICAgICAgZGVmaW5lIFVfU0la
RU9GX1dDSEFSX1QgMgorI2Vsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQRSgq
Q0xEKSBvciBMT0NBTEVUWVBFKCpMT0NBTEUpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICogV2lk
ZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gMTYtYml0IEVCQ0RJQywKKyAgICAgICAgICogbmFy
cm93LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMuCisgICAgICAgICAqLworIyAgICAg
ICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbHNlCisjICAgZGVmaW5l
IFVfU0laRU9GX1dDSEFSX1QgNAogI2VuZGlmCiAKICNpZm5kZWYgVV9IQVZFX1dDU0NQWQotI2Rl
ZmluZSBVX0hBVkVfV0NTQ1BZICAgICAgIDEKKyNkZWZpbmUgVV9IQVZFX1dDU0NQWSBVX0hBVkVf
V0NIQVJfSAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKioKKyAqIFxkZWYgVV9IQVZFX0NIQVIx
Nl9UCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNoYXIxNl90IHR5cGUgaXMgYXZhaWxhYmxlIGZv
ciBVVEYtMTYKKyAqIGFuZCB1ImFiYyIgVVRGLTE2IHN0cmluZyBsaXRlcmFscyBhcmUgc3VwcG9y
dGVkLgorICogVGhpcyBpcyBhIG5ldyBzdGFuZGFyZCB0eXBlIGFuZCBzdGFuZGFyZCBzdHJpbmcg
bGl0ZXJhbCBzeW50YXggaW4gQysrMHgKKyAqIGJ1dCBoYXMgYmVlbiBhdmFpbGFibGUgaW4gc29t
ZSBjb21waWxlcnMgYmVmb3JlLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfQ0hB
UjE2X1QKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQorICAgIC8q
CisgICAgICogTm90ZXM6CisgICAgICogVmlzdWFsIFN0dWRpbyAxMCAoX01TQ19WRVI+PTE2MDAp
IGRlZmluZXMgY2hhcjE2X3QgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9ydCB1ImFiYyIgc3Ry
aW5nIGxpdGVyYWxzLgorICAgICAqIGdjYyA0LjQgZGVmaW5lcyB0aGUgX19DSEFSMTZfVFlQRV9f
IG1hY3JvIHRvIGEgdXNhYmxlIHR5cGUgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9ydCB1ImFi
YyIgc3RyaW5nIGxpdGVyYWxzLgorICAgICAqIEMrKzExIGFuZCBDMTEgcmVxdWlyZSBzdXBwb3J0
IGZvciBVVEYtMTYgbGl0ZXJhbHMKKyAgICAgKi8KKyMgICBpZiAoZGVmaW5lZChfX2NwbHVzcGx1
cykgJiYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkgfHwgKGRlZmluZWQoX19TVERDX1ZFUlNJT05f
XykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMKQorIyAgICAgICBkZWZpbmUgVV9IQVZF
X0NIQVIxNl9UIDEKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX0hBVkVfQ0hBUjE2X1QgMAor
IyAgIGVuZGlmCisjZW5kaWYKKworLyoqCiAgKiBAewogICogXGRlZiBVX0RFQ0xBUkVfVVRGMTYK
LSAqIERvIG5vdCB1c2UgdGhpcyBtYWNyby4gVXNlIHRoZSBVTklDT0RFX1NUUklORyBvciBVX1NU
UklOR19ERUNMIG1hY3JvcwotICogaW5zdGVhZC4KLSAqIEBpbnRlcm5hbAotICoKLSAqIFxkZWYg
VV9HTlVDX1VURjE2X1NUUklORworICogRG8gbm90IHVzZSB0aGlzIG1hY3JvIGJlY2F1c2UgaXQg
aXMgbm90IGRlZmluZWQgb24gYWxsIHBsYXRmb3Jtcy4KKyAqIFVzZSB0aGUgVU5JQ09ERV9TVFJJ
Tkcgb3IgVV9TVFJJTkdfREVDTCBtYWNyb3MgaW5zdGVhZC4KICAqIEBpbnRlcm5hbAogICovCi0j
aWZuZGVmIFVfR05VQ19VVEYxNl9TVFJJTkcKLSNkZWZpbmUgVV9HTlVDX1VURjE2X1NUUklORyAw
Ci0jZW5kaWYKLSNpZiAxIHx8IGRlZmluZWQoVV9DSEVDS19VVEYxNl9TVFJJTkcpCi0jaWYgKGRl
ZmluZWQoX194bENfXykgJiYgZGVmaW5lZChfX0lCTV9VVEZfTElURVJBTCkgJiYgVV9TSVpFT0Zf
V0NIQVJfVCAhPSAyKSBcCisjaWZkZWYgVV9ERUNMQVJFX1VURjE2CisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9IQVZFX0NIQVIxNl9UIFwKKyAgICB8fCAoZGVm
aW5lZChfX3hsQ19fKSAmJiBkZWZpbmVkKF9fSUJNX1VURl9MSVRFUkFMKSAmJiBVX1NJWkVPRl9X
Q0hBUl9UICE9IDIpIFwKICAgICB8fCAoZGVmaW5lZChfX0hQX2FDQykgJiYgX19IUF9hQ0MgPj0g
MDM1MDAwKSBcCi0gICAgfHwgKGRlZmluZWQoX19IUF9jYykgJiYgX19IUF9jYyA+PSAxMTExMDYp
IFwKLSAgICB8fCBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihz
dHJpbmcpIHUgIyMgc3RyaW5nCi0jZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5Q
Uk9fQ0MgPj0gMHg1NTApCi0vKiB8fCAoZGVmaW5lZChfX1NVTlBST19DKSAmJiBfX1NVTlBST19D
ID49IDB4NTgwKSAqLwotLyogU3VuJ3MgQyBjb21waWxlciBoYXMgaXNzdWVzIHdpdGggdGhpcyBu
b3RhdGlvbiwgYW5kIGl0J3MgdW5yZWxpYWJsZS4gKi8KLSNkZWZpbmUgVV9ERUNMQVJFX1VURjE2
KHN0cmluZykgVSAjIyBzdHJpbmcKKyAgICB8fCAoZGVmaW5lZChfX0hQX2NjKSAmJiBfX0hQX2Nj
ID49IDExMTEwNikKKyMgICBkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgdSAjIyBzdHJp
bmcKICNlbGlmIFVfU0laRU9GX1dDSEFSX1QgPT0gMiBcCi0gICAgJiYgKFVfQ0hBUlNFVF9GQU1J
TFkgPT0gMCB8fCAoKGRlZmluZWQoT1MzOTApIHx8IGRlZmluZWQoT1M0MDApKSAmJiBkZWZpbmVk
KF9fVUNTMl9fKSkpCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwgIyMgc3RyaW5n
Ci0jZW5kaWYKLSNlbmRpZgotCi0vKiogQH0gKi8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwot
LyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IFBPU0lYIHN1cHBvcnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lm
bmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAotI2RlZmluZSBVX0hBVkVfTkxfTEFOR0lO
Rk9fQ09ERVNFVCAgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9OTF9MQU5HSU5GT19DT0RFU0VUCi0j
ZGVmaW5lIFVfTkxfTEFOR0lORk9fQ09ERVNFVCAgICAgICBDT0RFU0VUCi0jZW5kaWYKLQotI2lm
IDEKLSNkZWZpbmUgVV9UWlNFVCAgICAgICAgIHR6c2V0Ci0jZW5kaWYKLSNpZiAwCi0jZGVmaW5l
IFVfVElNRVpPTkUgICAgICB0aW1lem9uZQotI2VuZGlmCi0jaWYgMQotI2RlZmluZSBVX1RaTkFN
RSAgICAgICAgdHpuYW1lCisgICAgJiYgKFVfQ0hBUlNFVF9GQU1JTFkgPT0gMCB8fCAoVV9QRl9P
UzM5MCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9PUzQwMCAmJiBkZWZpbmVk
KF9fVUNTMl9fKSkpCisjICAgZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwgIyMgc3Ry
aW5nCisjZWxzZQorICAgIC8qIExlYXZlIFVfREVDTEFSRV9VVEYxNiB1bmRlZmluZWQuIFNlZSB1
bmlzdHIuaC4gKi8KICNlbmRpZgogCi0jZGVmaW5lIFVfSEFWRV9NTUFQICAgICAxCi0jZGVmaW5l
IFVfSEFWRV9QT1BFTiAgICAxCi0KIC8qKiBAfSAqLwogCiAvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
Ci0vKiogQHsgU3ltYm9sIGltcG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IFN5bWJvbCBpbXBvcnQtZXhwb3J0
IGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgMQotI2RlZmluZSBVX0VYUE9SVCBfX2F0dHJpYnV0
ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2lmZGVmIFVfRVhQT1JUCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX1NUQVRJQ19JTVBMRU1F
TlRBVElPTikKKyMgICBkZWZpbmUgVV9FWFBPUlQKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisj
ICAgZGVmaW5lIFVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkp
CiAjZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPj0gMHg1NTApIFwK
ICAgIHx8IChkZWZpbmVkKF9fU1VOUFJPX0MpICYmIF9fU1VOUFJPX0MgPj0gMHg1NTApIAotI2Rl
ZmluZSBVX0VYUE9SVCBfX2dsb2JhbAorIyAgIGRlZmluZSBVX0VYUE9SVCBfX2dsb2JhbAogLyoj
ZWxpZiBkZWZpbmVkKF9fSFBfYUNDKSB8fCBkZWZpbmVkKF9fSFBfY2MpCi0jZGVmaW5lIFVfRVhQ
T1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSovCisjICAgZGVmaW5lIFVfRVhQT1JUIF9fZGVjbHNw
ZWMoZGxsZXhwb3J0KSovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmluZSBVX0VY
UE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKICNlbHNlCi0jZGVmaW5lIFVfRVhQT1JUCisjICAg
ZGVmaW5lIFVfRVhQT1JUCiAjZW5kaWYKIAogLyogVV9DQUxMQ09OViBpcyByZWxlYXRlZCB0byBV
X0VYUE9SVDIgKi8KLSNkZWZpbmUgVV9FWFBPUlQyCi0KLS8qIGN5Z3dpbiBuZWVkcyB0byBleHBv
cnQvaW1wb3J0IGRhdGEgKi8KLSNpZiBkZWZpbmVkKFVfQ1lHV0lOKSAmJiAhZGVmaW5lZChfX0dO
VUNfXykKLSNkZWZpbmUgVV9JTVBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjaWZkZWYgVV9F
WFBPUlQyCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5l
ZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9FWFBPUlQyIF9fY2RlY2wKICNlbHNlCi0jZGVmaW5l
IFVfSU1QT1JUIAotI2VuZGlmCi0KLS8qIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
LS8qKiBAeyBDb2RlIGFsaWdubWVudCBhbmQgQyBmdW5jdGlvbiBpbmxpbmluZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KLSNp
Zm5kZWYgVV9JTkxJTkUKLSMgICBpZmRlZiBfX2NwbHVzcGx1cwotIyAgICAgICBkZWZpbmUgVV9J
TkxJTkUgaW5saW5lCi0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9JTkxJTkUgX19pbmxpbmVf
XwotIyAgIGVuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSNkZWZpbmUgVV9B
TElHTl9DT0RFKG4pIAorIyAgIGRlZmluZSBVX0VYUE9SVDIKICNlbmRpZgogCi0vKiogQH0gKi8K
LQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IEdDQyBidWlsdCBpbiBmdW5jdGlvbnMg
Zm9yIGF0b21pYyBtZW1vcnkgb3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBcZGVmIFVfSEFWRV9HQ0NfQVRPTUlDUwot
ICogQGludGVybmFsCi0gKi8KLSNpZm5kZWYgVV9IQVZFX0dDQ19BVE9NSUNTCi0jZGVmaW5lIFVf
SEFWRV9HQ0NfQVRPTUlDUyAxCisjaWZkZWYgVV9JTVBPUlQKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorICAgIC8qIFdpbmRvd3Mg
bmVlZHMgdG8gZXhwb3J0L2ltcG9ydCBkYXRhLiAqLworIyAgIGRlZmluZSBVX0lNUE9SVCBfX2Rl
Y2xzcGVjKGRsbGltcG9ydCkKKyNlbHNlCisjICAgZGVmaW5lIFVfSU1QT1JUIAogI2VuZGlmCiAK
LS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgUHJvZ3JhbXMgdXNl
ZCBieSBJQ1UgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCiAvKioKLSAqIFxkZWYgVV9NQUtFCi0g
KiBXaGF0IHByb2dyYW0gdG8gZXhlY3V0ZSB0byBydW4gJ21ha2UnCisgKiBcZGVmIFVfQ0FMTENP
TlYKKyAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJTi9VX0NERUNMX0VORCwgdGhpcyBxdWFsaWZp
ZXIgaXMgbmVjZXNzYXJ5CisgKiBpbiBjYWxsYmFjayBmdW5jdGlvbiB0eXBlZGVmcyB0byBtYWtl
IHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50aW9uCisgKiBpcyBjb21wYXRpYmxlLgorICoK
KyAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24tSUNVLUFQSSBmdW5jdGlvbnMuCisgKiBXaGVu
IGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQSSwKKyAqIHlvdSBtdXN0IHVzZSB0aGUgVV9D
QVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4KKyAqIEBzdGFibGUgSUNVIDIuMAogICovCi0j
aWZuZGVmIFVfTUFLRQotI2RlZmluZSBVX01BS0UgICIvdXNyL2Jpbi9nbnVtYWtlIgorI2lmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyAgICBkZWZp
bmUgVV9DQUxMQ09OViBfX2NkZWNsCisjZWxzZQorIyAgICBkZWZpbmUgVV9DQUxMQ09OViBVX0VY
UE9SVDIKICNlbmRpZgogCi0vKiogQH0gKi8KLQotI2VuZGlmIC8qIENZR1dJTk1TVkMgKi8KLQot
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwotLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5hbWlu
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBEZWZpbmUgdGhlIGxpYnJhcnkgc3VmZml4
IHdpdGggQyBzeW50YXguCi0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJfU1VGRklY
X0NfTkFNRSAKLS8qKgotICogRGVmaW5lIHRoZSBsaWJyYXJ5IHN1ZmZpeCBhcyBhIHN0cmluZyB3
aXRoIEMgc3ludGF4Ci0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJfU1VGRklYX0Nf
TkFNRV9TVFJJTkcgIiIKLS8qKgotICogMSBpZiBhIGN1c3RvbSBsaWJyYXJ5IHN1ZmZpeCBpcyBz
ZXQKLSAqIEBpbnRlcm5hbAotICovCi0jIGRlZmluZSBVX0hBVkVfTElCX1NVRkZJWCAwCi0KLSNp
ZiBVX0hBVkVfTElCX1NVRkZJWAotIyBpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCi0v
KiBSZW5hbWluZyBwYXR0ZXJuOiAgICB1X3N0cmNweV80MV9zdWZmaXggKi8KLSMgIGRlZmluZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfICMjIDQ2ICMjIAotIyAgZGVmaW5l
IFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBpY3VkdCMjIyNtYWpvciMj
bWlub3IjI19kYXQKLQotIyBlbmRpZgotI2VuZGlmCisvKiBAfSAqLwogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3B0eXBlcy5oIGIvU291cmNlL1dl
YktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5cGVzLmgKaW5kZXggMWYzNGQyZjg0ZTQxMGVmNzkzMGE2
NmVmNmU3NGNiNjRiY2JjNTgxZC4uYjdmNzExNjAzMjgyYzM2YzczMjIyMGU3YTk2YzkxMzNkZDAy
NTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5cGVzLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5cGVzLmgKQEAgLTEsNyArMSw3
IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3
LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTctMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCkBAIC0xNyw0MCArMTcsNjkgQEAKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKi8KIAor
LyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBEZWZpbml0aW9ucyBvZiBpbnRlZ2VyIHR5
cGVzIG9mIHZhcmlvdXMgd2lkdGhzCisgKi8KKwogI2lmbmRlZiBfUFRZUEVTX0gKICNkZWZpbmUg
X1BUWVBFU19ICiAKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy8qKgorICogXGRlZiBfX1NURENf
TElNSVRfTUFDUk9TCisgKiBBY2NvcmRpbmcgdG8gdGhlIExpbnV4IHN0ZGludC5oLCB0aGUgSVNP
IEM5OSBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBpbiBDKysgaW1wbGVtZW50YXRpb25zCisgKiBt
YWNyb3MgbGlrZSBJTlQzMl9NSU4gYW5kIFVJTlRQVFJfTUFYIHNob3VsZCBvbmx5IGJlIGRlZmlu
ZWQgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQuCisgKiBXZSBuZWVkIHRvIGRlZmluZSBfX1NURENf
TElNSVRfTUFDUk9TIGJlZm9yZSBpbmNsdWRpbmcgc3RkaW50LmggaW4gQysrIGNvZGUKKyAqIHRo
YXQgdXNlcyBzdWNoIGxpbWl0IG1hY3Jvcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIF9f
U1REQ19MSU1JVF9NQUNST1MKKyNkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUworI2VuZGlmCisK
Ky8qIE5VTEwsIHNpemVfdCwgd2NoYXJfdCAqLworI2luY2x1ZGUgPHN0ZGRlZi5oPgogCisvKgor
ICogSWYgYWxsIGNvbXBpbGVycyBwcm92aWRlZCBhbGwgb2YgdGhlIEM5OSBoZWFkZXJzIGFuZCB0
eXBlcywKKyAqIHdlIHdvdWxkIGp1c3QgdW5jb25kaXRpb25hbGx5ICNpbmNsdWRlIDxzdGRpbnQu
aD4gaGVyZQorICogYW5kIG5vdCBuZWVkIGFueSBvZiB0aGUgc3R1ZmYgYWZ0ZXIgaW5jbHVkaW5n
IHBsYXRmb3JtLmguCisgKi8KKworLyogRmluZCBvdXQgaWYgd2UgaGF2ZSBzdGRpbnQuaCBldGMu
ICovCiAjaW5jbHVkZSAidW5pY29kZS9wbGF0Zm9ybS5oIgogCiAvKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCiAvKiBHZW5lcmljIGRhdGEgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLS8q
IElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciwg
eW91IG1heQotICAgbmVlZCB0byBlZGl0IHRoZSB0eXBlZGVmcyBiZWxvdy4gKi8KLSNpZiBVX0hB
VkVfSU5UVFlQRVNfSAorLyogSWYgeW91ciBwbGF0Zm9ybSBkb2VzIG5vdCBoYXZlIHRoZSA8c3Rk
aW50Lmg+IGhlYWRlciwgeW91IG1heQorICAgbmVlZCB0byBlZGl0IHRoZSB0eXBlZGVmcyBpbiB0
aGUgI2Vsc2Ugc2VjdGlvbiBiZWxvdy4KKyAgIFVzZSAjaWYuLi4jZWxzZS4uLiNlbmRpZiB3aXRo
IHByZWRlZmluZWQgY29tcGlsZXIgbWFjcm9zIGlmIHBvc3NpYmxlLiAqLworI2lmIFVfSEFWRV9T
VERJTlRfSAorCisvKgorICogV2UgbW9zdGx5IG5lZWQgPHN0ZGludC5oPiAod2hpY2ggZGVmaW5l
cyB0aGUgc3RhbmRhcmQgaW50ZWdlciB0eXBlcykgYnV0IG5vdCA8aW50dHlwZXMuaD4uCisgKiA8
aW50dHlwZXMuaD4gaW5jbHVkZXMgPHN0ZGludC5oPiBhbmQgYWRkcyB0aGUgcHJpbnRmL3NjYW5m
IGhlbHBlcnMgUFJJZDMyLCBTQ054MTYgZXRjLgorICogd2hpY2ggd2UgYWxtb3N0IG5ldmVyIHVz
ZSwgcGx1cyBzdHVmZiBsaWtlIGltYXhhYnMoKSB3aGljaCB3ZSBuZXZlciB1c2UuCisgKi8KKyNp
bmNsdWRlIDxzdGRpbnQuaD4KIAotLyogYXV0b2NvbmYgMi4xMyBzb21ldGltZXMgY2FuJ3QgcHJv
cGVybHkgZmluZCB0aGUgZGF0YSB0eXBlcyBpbiA8aW50dHlwZXMuaD4gKi8KLS8qIG9zLzM5MCBu
ZWVkcyA8aW50dHlwZXMuaD4sIGJ1dCBpdCBkb2Vzbid0IGhhdmUgaW50OF90LCBhbmQgaXQgc29t
ZXRpbWVzICovCi0vKiBkb2Vzbid0IGhhdmUgdWludDhfdCBkZXBlbmRpbmcgb24gdGhlIE9TIHZl
cnNpb24uICovCi0vKiBTbyB3ZSBoYXZlIHRoaXMgd29yayBhcm91bmQuICovCi0jaWZkZWYgT1Mz
OTAKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAKIC8qIFRoZSBmZWF0dXJlcyBoZWFkZXIg
aXMgbmVlZGVkIHRvIGdldCAodSlpbnQ2NF90IHNvbWV0aW1lcy4gKi8KICNpbmNsdWRlIDxmZWF0
dXJlcy5oPgotI2lmICEgVV9IQVZFX0lOVDhfVAotdHlwZWRlZiBzaWduZWQgY2hhciBpbnQ4X3Q7
Ci0jZW5kaWYKKy8qIHovT1MgaGFzIDxzdGRpbnQuaD4sIGJ1dCBzb21lIHZlcnNpb25zIGFyZSBt
aXNzaW5nIHVpbnQ4X3QgKEFQQVIgUEs2MjI0OCkuICovCiAjaWYgIWRlZmluZWQoX191aW50OF90
KQogI2RlZmluZSBfX3VpbnQ4X3QgMQogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7CiAj
ZW5kaWYKLSNlbmRpZiAvKiBPUzM5MCAqLworI2VuZGlmIC8qIFVfUExBVEZPUk0gPT0gVV9QRl9P
UzM5MCAqLworCisjZWxpZiBVX0hBVkVfSU5UVFlQRVNfSAogCi0jaW5jbHVkZSA8aW50dHlwZXMu
aD4KKyMgICBpbmNsdWRlIDxpbnR0eXBlcy5oPgogCi0jZWxzZSAvKiBVX0hBVkVfSU5UVFlQRVNf
SCAqLworI2Vsc2UgLyogbmVpdGhlciBVX0hBVkVfU1RESU5UX0ggbm9yIFVfSEFWRV9JTlRUWVBF
U19IICovCiAKICNpZiAhIFVfSEFWRV9JTlQ4X1QKIHR5cGVkZWYgc2lnbmVkIGNoYXIgaW50OF90
OwpAQCAtNzcsMTYgKzEwNiwyMSBAQCB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsKICNl
bmRpZgogCiAjaWYgISBVX0hBVkVfSU5UNjRfVAorI2lmZGVmIF9NU0NfVkVSCisgICAgdHlwZWRl
ZiBzaWduZWQgX19pbnQ2NCBpbnQ2NF90OworI2Vsc2UKICAgICB0eXBlZGVmIHNpZ25lZCBsb25n
IGxvbmcgaW50NjRfdDsKLS8qIGVsc2Ugd2UgbWF5IG5vdCBoYXZlIGEgNjQtYml0IHR5cGUgKi8K
KyNlbmRpZgogI2VuZGlmCiAKICNpZiAhIFVfSEFWRV9VSU5UNjRfVAorI2lmZGVmIF9NU0NfVkVS
CisgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IHVpbnQ2NF90OworI2Vsc2UKICAgICB0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRfdDsKLS8qIGVsc2Ugd2UgbWF5IG5vdCBoYXZl
IGEgNjQtYml0IHR5cGUgKi8KKyNlbmRpZgogI2VuZGlmCiAKLSNlbmRpZiAvKiBVX0hBVkVfSU5U
VFlQRVNfSCAqLworI2VuZGlmIC8qIFVfSEFWRV9TVERJTlRfSCAvIFVfSEFWRV9JTlRUWVBFU19I
ICovCiAKICNlbmRpZiAvKiBfUFRZUEVTX0ggKi8KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvaWN1L3VuaWNvZGUvcHV0aWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2Rl
L3B1dGlsLmgKaW5kZXggNzFkNWQyNjQzMDUyOWI2MGI3ZWE0YzRkODMwZGJjODYxNzUyOTQ2NS4u
NmZjN2U5Y2Q1YTYyYTU1OTQ2YWU2ZDc3ODdiZjI1ZDIzNjExMGExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHV0aWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9pY3UvdW5pY29kZS9wdXRpbC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMzAsMTIgKzMwLDYg
QEAKICAgKiBcYnJpZWYgQyBBUEk6IFBsYXRmb3JtIFV0aWxpdGllcwogICAqLwogCi0vKiogRGVm
aW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5n
IHBvaW50LAotICAgdG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8KLSNpZm5kZWYgSUVFRV83NTQKLSMg
ICBkZWZpbmUgSUVFRV83NTQgMQotI2VuZGlmCi0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyog
UGxhdGZvcm0gdXRpbGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTkzLDQzICs4Nywy
MCBAQCBVX1NUQUJMRSBjb25zdCBjaGFyKiBVX0VYUE9SVDIgdV9nZXREYXRhRGlyZWN0b3J5KHZv
aWQpOwogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiB1X3NldERhdGFEaXJlY3RvcnkoY29u
c3QgY2hhciAqZGlyZWN0b3J5KTsKIAotI2lmICFVX0NIQVJTRVRfSVNfVVRGOAotLyoqCi0gKiBQ
bGVhc2UgdXNlIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRoZSBk
ZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIGFuZCBsb2NhbGUuCi0gKiBUaGlzIGZ1
bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgpIG9uIFVuaXggcGxhdGZvcm1zLiBQbGVhc2UgcmVh
ZCB0aGUKLSAqIHBsYXRmb3JtIGRvY3VtZW50YXRpb24gb24gc2V0bG9jYWxlKCkgYmVmb3JlIGNh
bGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqIEByZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9y
IHRoaXMgcGxhdGZvcm0gCi0gKiBAaW50ZXJuYWwKLSAqLwotVV9JTlRFUk5BTCBjb25zdCBjaGFy
KiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdENvZGVwYWdlKHZvaWQpOwotI2VuZGlmCi0KLS8q
KgotICogUGxlYXNlIHVzZSB1bG9jX2dldERlZmF1bHQoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRo
ZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcgYnkgcXVlcnlpbmcgdGhzIHN5c3RlbSwgb3IKLSAq
ICAgICB6ZXJvIGlmIG9uZSBjYW5ub3QgYmUgZm91bmQuIAotICogVGhpcyBmdW5jdGlvbiBjYW4g
Y2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBw
bGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMg
ZnVuY3Rpb24uCi0gKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcKLSAqIEBp
bnRlcm5hbAotICovCi1VX0lOVEVSTkFMIGNvbnN0IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXRE
ZWZhdWx0TG9jYWxlSUQodm9pZCk7Ci0KIC8qKgogICogQHsKICAqIEZpbGVzeXN0ZW0gZmlsZSBh
bmQgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycy4KICAqIEV4YW1wbGU6ICcvJyBhbmQgJzonIG9u
IFVuaXgsICdcXCcgYW5kICc7JyBvbiBXaW5kb3dzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8K
LSNpZmRlZiBYUF9NQUMKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUwogIyAg
IGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIgJzonCiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX0NI
QVIgJzonCiAjICAgZGVmaW5lIFVfUEFUSF9TRVBfQ0hBUiAnOycKICMgICBkZWZpbmUgVV9GSUxF
X1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX1NUUklORyAiOiIKICMg
ICBkZWZpbmUgVV9QQVRIX1NFUF9TVFJJTkcgIjsiCi0jZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBk
ZWZpbmVkKE9TMikKKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQogIyAgIGRl
ZmluZSBVX0ZJTEVfU0VQX0NIQVIgJ1xcJwogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFS
ICcvJwogIyAgIGRlZmluZSBVX1BBVEhfU0VQX0NIQVIgJzsnCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y2hhci5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3Vu
aWNvZGUvdWNoYXIuaAppbmRleCA5M2FhNjYzMjA2YjJiNGM0ODIwYjgyY2ZjNjZjODRhMmQwMGFl
OWIyLi4xYTViNzFiNDYzZTQ4MzZlZTUxMzUyYmFhYzZiNGU0YzcyNjNmMzFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y2hhci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL3VjaGFyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM5LDcgKzM5LDcgQEAgVV9DREVDTF9CRUdJ
TgogICogQHNlZSB1X2dldFVuaWNvZGVWZXJzaW9uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwot
I2RlZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4wIgorI2RlZmluZSBVX1VOSUNPREVfVkVSU0lP
TiAiNi4zIgogCiAvKioKICAqIFxmaWxlCkBAIC0xMzksMTkgKzEzOSw2IEBAIFVfQ0RFQ0xfQkVH
SU4KICAqLwogI2RlZmluZSBVX01BU0soeCkgKCh1aW50MzJfdCkxPDwoeCkpCiAKLS8qCi0gKiAh
ISBOb3RlOiBTZXZlcmFsIGNvbW1lbnRzIGluIHRoaXMgZmlsZSBhcmUgbWFjaGluZS1yZWFkIGJ5
IHRoZQotICogZ2VucG5hbWUgdG9vbC4gIFRoZXNlIGNvbW1lbnRzIGRlc2NyaWJlIHRoZSBjb3Jy
ZXNwb25kZW5jZSBiZXR3ZWVuCi0gKiBpY3UgZW51bSBjb25zdGFudHMgYW5kIFVDRCBlbnRpdGll
cy4gIERvIG5vdCBkZWxldGUgdGhlbS4gIFVwZGF0ZQotICogdGhlc2UgY29tbWVudHMgYXMgbmVl
ZGVkLgotICoKLSAqIEFueSBjb21tZW50IG9mIHRoZSBmb3JtICIvICpbbmFtZV0qIC8iIChzcGFj
ZXMgYWRkZWQpIGlzIHN1Y2gKLSAqIGEgY29tbWVudC4KLSAqCi0gKiBUaGUgVV9KR18qIGFuZCBV
X0dDXypfTUFTSyBjb25zdGFudHMgYXJlIG1hdGNoZWQgYnkgdGhlaXIgc3ltYm9saWMKLSAqIG5h
bWUsIHdoaWNoIG11c3QgbWF0Y2ggUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LgotICovCi0KIC8q
KgogICogU2VsZWN0aW9uIGNvbnN0YW50cyBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzLgogICogVGhl
c2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBsaWtlIHVfaGFzQmluYXJ5UHJvcGVy
dHkgdG8gc2VsZWN0CkBAIC0xNzIsOSArMTU5LDExIEBAIFVfQ0RFQ0xfQkVHSU4KICAqIEBzdGFi
bGUgSUNVIDIuMQogICovCiB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKLSAgICAvKiAgU2VlIG5v
dGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQmluYXJ5IHByb3BlcnR5IERhc2giLAotICAg
ICAgICAiRW51bWVyYXRlZCBwcm9wZXJ0eSBTY3JpcHQiLCAiRG91YmxlIHByb3BlcnR5IE51bWVy
aWNfVmFsdWUiLAotICAgICAgICBhbmQgIlN0cmluZyBwcm9wZXJ0eSBBZ2UiIGFyZSByZWFkIGJ5
IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAgICogTm90ZTogVVByb3BlcnR5IGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVQ0hBUl88VW5pY29kZSBwcm9wZXJ0eSBuYW1lPj08aW50ZWdlcj4sCisg
ICAgICovCiAKICAgICAvKiAgTm90ZTogUGxhY2UgVUNIQVJfQUxQSEFCRVRJQyBiZWZvcmUgVUNI
QVJfQklOQVJZX1NUQVJUIHNvIHRoYXQKICAgICBkZWJ1Z2dlcnMgZGlzcGxheSBVQ0hBUl9BTFBI
QUJFVElDIGFzIHRoZSBzeW1ib2xpYyBuYW1lIGZvciAwLApAQCAtNDkxLDggKzQ4MCwxMyBAQCB0
eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAgICAgKGh0dHA6Ly93d3cudW5pY29kZS5vcmcv
cmVwb3J0cy90cjI5LykKICAgICAgICAgUmV0dXJucyBVV29yZEJyZWFrVmFsdWVzIHZhbHVlcy4g
QHN0YWJsZSBJQ1UgMy40ICovCiAgICAgVUNIQVJfV09SRF9CUkVBSz0weDEwMTQsCisgICAgLyoq
IEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlIChuZXcgaW4gVW5p
Y29kZSA2LjMpLgorICAgICAgICBVc2VkIGluIFVBWCAjOTogVW5pY29kZSBCaWRpcmVjdGlvbmFs
IEFsZ29yaXRobQorICAgICAgICAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyOS8p
CisgICAgICAgIFJldHVybnMgVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB2YWx1ZXMuIEBzdGFibGUg
SUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVF9UWVBFPTB4MTAxNSwKICAg
ICAvKiogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgZW51bWVyYXRlZC9pbnRl
Z2VyIFVuaWNvZGUgcHJvcGVydGllcy4gQHN0YWJsZSBJQ1UgMi4yICovCi0gICAgVUNIQVJfSU5U
X0xJTUlUPTB4MTAxNSwKKyAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE2LAogCiAgICAgLyoqIEJp
dG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNrLgogICAgICAgICBUaGlzIGlzIHRo
ZSBHZW5lcmFsX0NhdGVnb3J5IHByb3BlcnR5IHJldHVybmVkIGFzIGEgYml0IG1hc2suCkBAIC01
MjcsOSArNTIxLDExIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgIC8qKiBTdHJpbmcg
cHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0ckZvbGRD
YXNlIGluIHVzdHJpbmcuaC4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNIQVJfQ0FTRV9GT0xE
SU5HPTB4NDAwMiwKLSAgICAvKiogU3RyaW5nIHByb3BlcnR5IElTT19Db21tZW50LgotICAgICAg
ICBDb3JyZXNwb25kcyB0byB1X2dldElTT0NvbW1lbnQuIEBzdGFibGUgSUNVIDIuNCAqLworI2lm
bmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKyAgICAvKiogRGVwcmVjYXRlZCBzdHJpbmcgcHJv
cGVydHkgSVNPX0NvbW1lbnQuCisgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0SVNPQ29tbWVu
dC4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJfSVNPX0NPTU1FTlQ9MHg0MDAzLAor
I2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAvKiogU3RyaW5nIHByb3Bl
cnR5IExvd2VyY2FzZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvTG93
ZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9MT1dFUkNBU0Vf
TUFQUElORz0weDQwMDQsCkBAIC01NTEsMjkgKzU0NywzMyBAQCB0eXBlZGVmIGVudW0gVVByb3Bl
cnR5IHsKICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9NYXBwaW5nLgogICAgICAg
ICBDb3JyZXNwb25kcyB0byB1X3N0clRvVGl0bGUgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAy
LjQgKi8KICAgICBVQ0hBUl9USVRMRUNBU0VfTUFQUElORz0weDQwMEEsCisjaWZuZGVmIFVfSElE
RV9ERVBSRUNBVEVEX0FQSQogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVW5pY29kZV8xX05hbWUu
Ci0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfY2hhck5hbWUuIEBzdGFibGUgSUNVIDIuNCAqLwor
ICAgICAgICBUaGlzIHByb3BlcnR5IGlzIG9mIGxpdHRsZSBwcmFjdGljYWwgdmFsdWUuCisgICAg
ICAgIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0dXJuIGFuIGVtcHR5IHN0cmlu
ZyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgQ29ycmVzcG9uZHMgdG8gdV9jaGFyTmFtZShV
X1VOSUNPREVfMTBfQ0hBUl9OQU1FKS4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJf
VU5JQ09ERV8xX05BTUU9MHg0MDBCLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkg
Ki8KICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFVwcGVyY2FzZV9NYXBwaW5nLgogICAgICAgICBD
b3JyZXNwb25kcyB0byB1X3N0clRvVXBwZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQg
Ki8KICAgICBVQ0hBUl9VUFBFUkNBU0VfTUFQUElORz0weDQwMEMsCisgICAgLyoqIFN0cmluZyBw
cm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0IChuZXcgaW4gVW5pY29kZSA2LjMpLgorICAgICAg
ICBDb3JyZXNwb25kcyB0byB1X2dldEJpZGlQYWlyZWRCcmFja2V0LiBAc3RhYmxlIElDVSA1MiAq
LworICAgIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVQ9MHg0MDBELAogICAgIC8qKiBPbmUgbW9y
ZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29kZSBwcm9wZXJ0aWVzLiBA
c3RhYmxlIElDVSAyLjQgKi8KLSAgICBVQ0hBUl9TVFJJTkdfTElNSVQ9MHg0MDBELAorICAgIFVD
SEFSX1NUUklOR19MSU1JVD0weDQwMEUsCiAKLSAgICAvKiogUHJvdmlzaW9uYWwgcHJvcGVydHkg
U2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCi0gICAgICAgIEFzIGEgcHJv
dmlzaW9uYWwgcHJvcGVydHksIGl0IG1heSBiZSBtb2RpZmllZCBvciByZW1vdmVkCi0gICAgICAg
IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRodXMgaW4g
SUNVLgorICAgIC8qKiBNaXNjZWxsYW5lb3VzIHByb3BlcnR5IFNjcmlwdF9FeHRlbnNpb25zIChu
ZXcgaW4gVW5pY29kZSA2LjApLgogICAgICAgICBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbW1vbmx5
IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAgICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24s
IHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyNC8uCiAgICAg
ICAgIENvcnJlc3BvbmRzIHRvIHVzY3JpcHRfaGFzU2NyaXB0IGFuZCB1c2NyaXB0X2dldFNjcmlw
dEV4dGVuc2lvbnMgaW4gdXNjcmlwdC5oLgotICAgICAgICBAZHJhZnQgSUNVIDQuNiAqLworICAg
ICAgICBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9TQ1JJUFRfRVhURU5TSU9OUz0weDcw
MDAsCi0gICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHByb3BlcnRpZXMgd2l0aCB1
bnVzdWFsIHZhbHVlIHR5cGVzLiBAZHJhZnQgSUNVIDQuNiAqLworICAgIC8qKiBGaXJzdCBjb25z
dGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3VhbCB2YWx1ZSB0eXBlcy4gQHN0
YWJsZSBJQ1UgNC42ICovCiAgICAgVUNIQVJfT1RIRVJfUFJPUEVSVFlfU1RBUlQ9VUNIQVJfU0NS
SVBUX0VYVEVOU0lPTlMsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQg
Zm9yIFVuaWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUgdHlwZXMuCi0gICAgICog
QGRyYWZ0IElDVSA0LjYgKi8KKyAgICAgKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9P
VEhFUl9QUk9QRVJUWV9MSU1JVD0weDcwMDEsCi0KICAgICAvKiogUmVwcmVzZW50cyBhIG5vbmV4
aXN0ZW50IG9yIGludmFsaWQgcHJvcGVydHkgb3IgcHJvcGVydHkgdmFsdWUuIEBzdGFibGUgSUNV
IDIuNCAqLwogICAgIFVDSEFSX0lOVkFMSURfQ09ERSA9IC0xCiB9IFVQcm9wZXJ0eTsKQEAgLTU4
NSw3ICs1ODUsMTIgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eSB7CiAgKi8KIHR5cGVkZWYgZW51
bSBVQ2hhckNhdGVnb3J5CiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMgb2YgdGhl
IGZvcm0gIkNuIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAqIE5vdGU6
IFVDaGFyQ2F0ZWdvcnkgY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29tbWVudHMgYXJlIHBhcnNl
ZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBhaXJzIG9mIGxpbmVzIGxp
a2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAyLWxldHRlciBHZW5lcmFsX0NhdGVnb3J5IHZh
bHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10rPiA9IDxpbnRlZ2VyPiwK
KyAgICAgKi8KIAogICAgIC8qKiBOb24tY2F0ZWdvcnkgZm9yIHVuYXNzaWduZWQgYW5kIG5vbi1j
aGFyYWN0ZXIgY29kZSBwb2ludHMuIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfVU5BU1NJR05F
RCAgICAgICAgICAgICAgPSAwLApAQCAtNzcwLDcgKzc3NSwxMiBAQCB0eXBlZGVmIGVudW0gVUNo
YXJDYXRlZ29yeQogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSBVQ2hhckRp
cmVjdGlvbiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMgb2YgdGhlIGZvcm0gIkVO
IiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVDaGFyRGly
ZWN0aW9uIGNvbnN0YW50cyBhbmQgdGhlaXIgQVBJIGNvbW1lbnRzIGFyZSBwYXJzZWQgYnkgcHJl
cGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBwYWlycyBvZiBsaW5lcyBsaWtlCisgICAg
ICogICAgIC8gKiogPFVuaWNvZGUgMS4uMy1sZXR0ZXIgQmlkaV9DbGFzcyB2YWx1ZT4gY29tbWVu
dC4uLiAqIC8KKyAgICAgKiAgICAgVV88W0EtWl9dKz4gPSA8aW50ZWdlcj4sCisgICAgICovCiAK
ICAgICAvKiogTCBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVX0xFRlRfVE9fUklHSFQgICAgICAg
ICAgICAgICA9IDAsCkBAIC04MTAsMjEgKzgyMCw1NyBAQCB0eXBlZGVmIGVudW0gVUNoYXJEaXJl
Y3Rpb24gewogICAgIFVfRElSX05PTl9TUEFDSU5HX01BUksgICAgICAgID0gMTcsCiAgICAgLyoq
IEJOIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQk9VTkRBUllfTkVVVFJBTCAgICAgICAgICAg
ID0gMTgsCisgICAgLyoqIEZTSSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfRklSU1RfU1RST05H
X0lTT0xBVEUgICAgICAgID0gMTksCisgICAgLyoqIExSSSBAc3RhYmxlIElDVSA1MiAqLworICAg
IFVfTEVGVF9UT19SSUdIVF9JU09MQVRFICAgICAgID0gMjAsCisgICAgLyoqIFJMSSBAc3RhYmxl
IElDVSA1MiAqLworICAgIFVfUklHSFRfVE9fTEVGVF9JU09MQVRFICAgICAgID0gMjEsCisgICAg
LyoqIFBESSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUE9QX0RJUkVDVElPTkFMX0lTT0xBVEUg
ICAgID0gMjIsCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQ0hBUl9ESVJFQ1RJ
T05fQ09VTlQKIH0gVUNoYXJEaXJlY3Rpb247CiAKIC8qKgorICogQmlkaSBQYWlyZWQgQnJhY2tl
dCBUeXBlIGNvbnN0YW50cy4KKyAqCisgKiBAc2VlIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVRf
VFlQRQorICogQHN0YWJsZSBJQ1UgNTIKKyAqLwordHlwZWRlZiBlbnVtIFVCaWRpUGFpcmVkQnJh
Y2tldFR5cGUgeworICAgIC8qCisgICAgICogTm90ZTogVUJpZGlQYWlyZWRCcmFja2V0VHlwZSBj
b25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVz
IGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9CUFRfPFVuaWNvZGUgQmlkaV9QYWlyZWRfQnJhY2tl
dF9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICAvKiogTm90IGEgcGFpcmVkIGJyYWNr
ZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9CUFRfTk9ORSwKKyAgICAvKiogT3BlbiBwYWly
ZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9PUEVOLAorICAgIC8qKiBD
bG9zZSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9DTE9TRSwK
KyAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9DT1VOVCAvKiAzICovCit9IFVC
aWRpUGFpcmVkQnJhY2tldFR5cGU7CisKKy8qKgogICogQ29uc3RhbnRzIGZvciBVbmljb2RlIGJs
b2Nrcywgc2VlIHRoZSBVbmljb2RlIERhdGEgZmlsZSBCbG9ja3MudHh0CiAgKiBAc3RhYmxlIElD
VSAyLjAKICAqLwogZW51bSBVQmxvY2tDb2RlIHsKKyAgICAvKgorICAgICAqIE5vdGU6IFVCbG9j
a0NvZGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQg
bWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVCTE9DS188VW5pY29kZSBCbG9jayB2YWx1
ZSBuYW1lPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOZXcgTm9fQmxvY2sgdmFs
dWUgaW4gVW5pY29kZSA0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICBVQkxPQ0tfTk9fQkxPQ0sg
PSAwLCAvKltub25lXSovIC8qIFNwZWNpYWwgcmFuZ2UgaW5kaWNhdGluZyBOb19CbG9jayAqLwog
CiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19CQVNJQ19MQVRJTiA9IDEs
IC8qWzAwMDBdKi8gLypTZWUgbm90ZSAhISovCisgICAgVUJMT0NLX0JBU0lDX0xBVElOID0gMSwg
LypbMDAwMF0qLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19MQVRJ
Tl8xX1NVUFBMRU1FTlQ9MiwgLypbMDA4MF0qLwpAQCAtMTA2MSw3ICsxMTA3LDcgQEAgZW51bSBV
QmxvY2tDb2RlIHsKICAgICBVQkxPQ0tfTE9XX1NVUlJPR0FURVMgPTc3LCAvKltEQzAwXSovCiAK
ICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLgorICAgICAq
IFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVfVVNFLgogICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjEs
IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSIsCiAgICAgICog
YW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgogICAgICAqIFVu
aWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBVQSB0byAiUHJpdmF0ZSBV
c2UgQXJlYSIgYW5kCkBAIC0xMDY5LDkgKzExMTUsOSBAQCBlbnVtIFVCbG9ja0NvZGUgewogICAg
ICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICovCi0gICAgVUJMT0NLX1BSSVZBVEVf
VVNFID0gNzgsCisgICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPTc4LCAvKltFMDAwXSovCiAg
ICAgLyoqCi0gICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0UuCisgICAgICogU2FtZSBh
cyBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQS4KICAgICAgKiBVbnRpbCBVbmljb2RlIDMuMS4xLCB0
aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBVc2UiLAogICAgICAqIGFu
ZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KICAgICAgKiBVbmlj
b2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZhdGUgVXNl
IEFyZWEiIGFuZApAQCAtMTA3OSw3ICsxMTI1LDcgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAgICAg
KgogICAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgICAqLwotICAgIFVCTE9DS19QUklWQVRFX1VT
RV9BUkVBID1VQkxPQ0tfUFJJVkFURV9VU0UsIC8qW0UwMDBdKi8KKyAgICBVQkxPQ0tfUFJJVkFU
RV9VU0UgPSBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSwKIAogICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUyA9NzksIC8qW0Y5
MDBdKi8KQEAgLTExMTEsMzMgKzExNTcsMzMgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAgICAvKiBO
ZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4xICovCiAKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
Ci0gICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCAgLCAvKlsxMDMwMF0qLworICAgIFVCTE9DS19P
TERfSVRBTElDID0gODgsIC8qWzEwMzAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwot
ICAgIFVCTE9DS19HT1RISUMgPSA4OSAsIC8qWzEwMzMwXSovCisgICAgVUJMT0NLX0dPVEhJQyA9
IDg5LCAvKlsxMDMzMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tf
REVTRVJFVCA9IDkwICwgLypbMTA0MDBdKi8KKyAgICBVQkxPQ0tfREVTRVJFVCA9IDkwLCAvKlsx
MDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfQllaQU5USU5F
X01VU0lDQUxfU1lNQk9MUyA9IDkxICwgLypbMUQwMDBdKi8KKyAgICBVQkxPQ0tfQllaQU5USU5F
X01VU0lDQUxfU1lNQk9MUyA9IDkxLCAvKlsxRDAwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KLSAgICBVQkxPQ0tfTVVTSUNBTF9TWU1CT0xTID0gOTIgLCAvKlsxRDEwMF0qLworICAg
IFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiwgLypbMUQxMDBdKi8KICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9M
UyA9IDkzICAsIC8qWzFENDAwXSovCisgICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBIQU5VTUVS
SUNfU1lNQk9MUyA9IDkzLCAvKlsxRDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8K
LSAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQiAgPSA5NCAsIC8q
WzIwMDAwXSovCisgICAgVUJMT0NLX0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0Ig
ID0gOTQsIC8qWzIwMDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9D
S19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQgPSA5NSAsIC8qWzJGODAw
XSovCisgICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExFTUVOVCA9
IDk1LCAvKlsyRjgwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQkxPQ0tf
VEFHUyA9IDk2LCAvKltFMDAwMF0qLwogCiAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDMu
MiAqLwogCisgICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KKyAgICBVQkxPQ0tfQ1lSSUxMSUNf
U1VQUExFTUVOVCA9IDk3LCAvKlswNTAwXSovCiAgICAgLyoqCiAgICAgICogVW5pY29kZSA0LjAu
MSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxvY2sgdG8gIkN5cmlsbGlj
IFN1cHBsZW1lbnQiLgogICAgICAqIEBzdGFibGUgSUNVIDIuMgogICAgICAqLwotICAgIFVCTE9D
S19DWVJJTExJQ19TVVBQTEVNRU5UQVJZID0gOTcsIAotICAgIC8qKiBAc3RhYmxlIElDVSAzLjAg
ICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQgPSBVQkxPQ0tfQ1lSSUxMSUNfU1VQ
UExFTUVOVEFSWSwgLypbMDUwMF0qLworICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZ
ID0gVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQsIAogICAgIC8qKiBAc3RhYmxlIElDVSAyLjIg
Ki8KICAgICBVQkxPQ0tfVEFHQUxPRyA9IDk4LCAvKlsxNzAwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMiAqLwpAQCAtMTM4MSw4ICsxNDI3LDMzIEBAIGVudW0gVUJsb2NrQ29kZSB7CiAgICAg
LyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVCTE9DS19DSktfVU5JRklFRF9JREVPR1JBUEhT
X0VYVEVOU0lPTl9EID0gMjA5LCAvKlsyQjc0MF0qLwogCi0gICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwotICAgIFVCTE9DS19DT1VOVCA9IDIxMCwKKyAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNv
ZGUgNi4xICovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfQVJBQklD
X0VYVEVOREVEX0EgPSAyMTAsIC8qWzA4QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8K
KyAgICBVQkxPQ0tfQVJBQklDX01BVEhFTUFUSUNBTF9BTFBIQUJFVElDX1NZTUJPTFMgPSAyMTEs
IC8qWzFFRTAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX0NIQUtN
QSA9IDIxMiwgLypbMTExMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxP
Q0tfTUVFVEVJX01BWUVLX0VYVEVOU0lPTlMgPSAyMTMsIC8qW0FBRTBdKi8KKyAgICAvKiogQHN0
YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNfQ1VSU0lWRSA9IDIxNCwgLypbMTA5
QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNfSElF
Uk9HTFlQSFMgPSAyMTUsIC8qWzEwOTgwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisg
ICAgVUJMT0NLX01JQU8gPSAyMTYsIC8qWzE2RjAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5
ICovCisgICAgVUJMT0NLX1NIQVJBREEgPSAyMTcsIC8qWzExMTgwXSovCisgICAgLyoqIEBzdGFi
bGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NPUkFfU09NUEVORyA9IDIxOCwgLypbMTEwRDBdKi8K
KyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU1VOREFORVNFX1NVUFBMRU1F
TlQgPSAyMTksIC8qWzFDQzBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxP
Q0tfVEFLUkkgPSAyMjAsIC8qWzExNjgwXSovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgVUJMT0NLX0NPVU5UID0gMjIxLAogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVCTE9DS19JTlZBTElEX0NPREU9LTEKQEAgLTEzOTksNyArMTQ3MCwxMyBAQCB0eXBlZGVm
IGVudW0gVUJsb2NrQ29kZSBVQmxvY2tDb2RlOwogICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5
cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewotICAgIFVfRUFfTkVVVFJBTCwgICAvKltOXSov
IC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVUVhc3RBc2lhbldpZHRoIGNv
bnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMg
bGluZXMgbGlrZQorICAgICAqICAgICBVX0VBXzxVbmljb2RlIEVhc3RfQXNpYW5fV2lkdGggdmFs
dWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfRUFfTkVVVFJBTCwgICAvKltOXSovCiAgICAgVV9F
QV9BTUJJR1VPVVMsIC8qW0FdKi8KICAgICBVX0VBX0hBTEZXSURUSCwgLypbSF0qLwogICAgIFVf
RUFfRlVMTFdJRFRILCAvKltGXSovCkBAIC0xNDA3LDEwICsxNDg0LDYgQEAgdHlwZWRlZiBlbnVt
IFVFYXN0QXNpYW5XaWR0aCB7CiAgICAgVV9FQV9XSURFLCAgICAgIC8qW1ddKi8KICAgICBVX0VB
X0NPVU5UCiB9IFVFYXN0QXNpYW5XaWR0aDsKLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBub3RlOgot
ICogS2VlcCBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnQgdmFsdWVzIGluIHN5bmMgd2l0aCBuYW1l
cyBsaXN0IGluIGdlbnByb3BzL3Byb3BzMi5jLgotICovCiAKIC8qKgogICogU2VsZWN0b3IgY29u
c3RhbnRzIGZvciB1X2NoYXJOYW1lKCkuCkBAIC0xNDI0LDEwICsxNDk3LDIxIEBAIHR5cGVkZWYg
ZW51bSBVRWFzdEFzaWFuV2lkdGggewogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYg
ZW51bSBVQ2hhck5hbWVDaG9pY2UgeworICAgIC8qKiBVbmljb2RlIGNoYXJhY3RlciBuYW1lIChO
YW1lIHByb3BlcnR5KS4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9VTklDT0RFX0NIQVJfTkFN
RSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAorICAgIC8qKgorICAgICAqIFRoZSBV
bmljb2RlXzFfTmFtZSBwcm9wZXJ0eSB2YWx1ZSB3aGljaCBpcyBvZiBsaXR0bGUgcHJhY3RpY2Fs
IHZhbHVlLgorICAgICAqIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0dXJuIGFu
IGVtcHR5IHN0cmluZyBmb3IgdGhpcyBuYW1lIGNob2ljZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJ
Q1UgNDkKKyAgICAgKi8KICAgICBVX1VOSUNPREVfMTBfQ0hBUl9OQU1FLAotICAgIFVfRVhURU5E
RURfQ0hBUl9OQU1FLAotICAgIFVfQ0hBUl9OQU1FX0FMSUFTLCAgICAgICAgICAvKio8IENvcnJl
Y3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8KKyNlbmRp
ZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisgICAgLyoqIFN0YW5kYXJkIG9yIHN5bnRo
ZXRpYyBjaGFyYWN0ZXIgbmFtZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgVV9FWFRFTkRFRF9D
SEFSX05BTUUgPSBVX1VOSUNPREVfQ0hBUl9OQU1FKzIsCisgICAgLyoqIENvcnJlY3RlZCBuYW1l
IGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0NIQVJfTkFN
RV9BTElBUywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9DSEFSX05BTUVfQ0hP
SUNFX0NPVU5UCiB9IFVDaGFyTmFtZUNob2ljZTsKIApAQCAtMTQ1Nyw3ICsxNTQxLDEzIEBAIHR5
cGVkZWYgZW51bSBVUHJvcGVydHlOYW1lQ2hvaWNlIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICov
CiB0eXBlZGVmIGVudW0gVURlY29tcG9zaXRpb25UeXBlIHsKLSAgICBVX0RUX05PTkUsICAgICAg
ICAgICAgICAvKltub25lXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90ZTog
VURlY29tcG9zaXRpb25UeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5
LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0RUXzxVbmljb2Rl
IERlY29tcG9zaXRpb25fVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9EVF9OT05F
LCAgICAgICAgICAgICAgLypbbm9uZV0qLwogICAgIFVfRFRfQ0FOT05JQ0FMLCAgICAgICAgIC8q
W2Nhbl0qLwogICAgIFVfRFRfQ09NUEFULCAgICAgICAgICAgIC8qW2NvbV0qLwogICAgIFVfRFRf
Q0lSQ0xFLCAgICAgICAgICAgIC8qW2VuY10qLwpAQCAtMTQ4NSw3ICsxNTc1LDEzIEBAIHR5cGVk
ZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewogICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5
cGVkZWYgZW51bSBVSm9pbmluZ1R5cGUgewotICAgIFVfSlRfTk9OX0pPSU5JTkcsICAgICAgIC8q
W1VdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSm9pbmluZ1R5cGUg
Y29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hl
cyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSlRfPFVuaWNvZGUgSm9pbmluZ19UeXBlIHZhbHVl
IG5hbWU+CisgICAgICovCisKKyAgICBVX0pUX05PTl9KT0lOSU5HLCAgICAgICAvKltVXSovCiAg
ICAgVV9KVF9KT0lOX0NBVVNJTkcsICAgICAgLypbQ10qLwogICAgIFVfSlRfRFVBTF9KT0lOSU5H
LCAgICAgIC8qW0RdKi8KICAgICBVX0pUX0xFRlRfSk9JTklORywgICAgICAvKltMXSovCkBAIC0x
NTAxLDYgKzE1OTcsMTIgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlwZSB7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nR3JvdXAgeworICAgIC8qCisgICAg
ICogTm90ZTogVUpvaW5pbmdHcm91cCBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVj
ZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9KR188VW5p
Y29kZSBKb2luaW5nX0dyb3VwIHZhbHVlIG5hbWU+CisgICAgICovCisKICAgICBVX0pHX05PX0pP
SU5JTkdfR1JPVVAsCiAgICAgVV9KR19BSU4sCiAgICAgVV9KR19BTEFQSCwKQEAgLTE1NTksNiAr
MTY2MSw3IEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3VwIHsKICAgICBVX0pHX0JVUlVTSEFT
S0lfWUVIX0JBUlJFRSwgLyoqPCBAc3RhYmxlIElDVSA0LjAgKi8KICAgICBVX0pHX0ZBUlNJX1lF
SCwgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVX0pHX05ZQSwgICAgICAgLyoqPCBAc3Rh
YmxlIElDVSA0LjQgKi8KKyAgICBVX0pHX1JPSElOR1lBX1lFSCwgIC8qKjwgQHN0YWJsZSBJQ1Ug
NDkgKi8KICAgICBVX0pHX0NPVU5UCiB9IFVKb2luaW5nR3JvdXA7CiAKQEAgLTE1NjksNyArMTY3
MiwxMyBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91cCB7CiAgKiBAc3RhYmxlIElDVSAzLjQK
ICAqLwogdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7Ci0gICAgVV9HQ0JfT1RI
RVIgPSAwLCAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAg
ICogTm90ZTogVUdyYXBoZW1lQ2x1c3RlckJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHBy
ZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBV
X0dDQl88VW5pY29kZSBHcmFwaGVtZV9DbHVzdGVyX0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICov
CisKKyAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhdKi8KICAgICBVX0dDQl9D
T05UUk9MID0gMSwgICAgICAgICAgLypbQ05dKi8KICAgICBVX0dDQl9DUiA9IDIsICAgICAgICAg
ICAgICAgLypbQ1JdKi8KICAgICBVX0dDQl9FWFRFTkQgPSAzLCAgICAgICAgICAgLypbRVhdKi8K
QEAgLTE1ODEsNyArMTY5MCw4IEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVyQnJlYWsg
ewogICAgIFVfR0NCX1YgPSA5LCAgICAgICAgICAgICAgICAvKltWXSovCiAgICAgVV9HQ0JfU1BB
Q0lOR19NQVJLID0gMTAsICAgIC8qW1NNXSovIC8qIGZyb20gaGVyZSBvbjogbmV3IGluIFVuaWNv
ZGUgNS4xL0lDVSA0LjAgKi8KICAgICBVX0dDQl9QUkVQRU5EID0gMTEsICAgICAgICAgLypbUFBd
Ki8KLSAgICBVX0dDQl9DT1VOVCA9IDEyCisgICAgVV9HQ0JfUkVHSU9OQUxfSU5ESUNBVE9SID0g
MTIsICAvKltSSV0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUwICovCisgICAgVV9HQ0Jf
Q09VTlQgPSAxMwogfSBVR3JhcGhlbWVDbHVzdGVyQnJlYWs7CiAKIC8qKgpAQCAtMTU5Miw3ICsx
NzAyLDEzIEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgewogICogQHN0YWJs
ZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKLSAgICBVX1dC
X09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoK
KyAgICAgKiBOb3RlOiBVV29yZEJyZWFrVmFsdWVzIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHBy
ZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBV
X1dCXzxVbmljb2RlIFdvcmRfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfV0Jf
T1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfV0JfQUxFVFRFUiA9IDEsICAg
ICAgICAgICAvKltMRV0qLwogICAgIFVfV0JfRk9STUFUID0gMiwgICAgICAgICAgICAvKltGT10q
LwogICAgIFVfV0JfS0FUQUtBTkEgPSAzLCAgICAgICAgICAvKltLQV0qLwpAQCAtMTYwNSw3ICsx
NzIxLDExIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAgICBVX1dCX0xGID0g
MTAsICAgICAgICAgICAgICAgLypbTEZdKi8KICAgICBVX1dCX01JRE5VTUxFVCA9MTEsICAgICAg
ICAgLypbTUJdKi8KICAgICBVX1dCX05FV0xJTkUgPTEyLCAgICAgICAgICAgLypbTkxdKi8KLSAg
ICBVX1dCX0NPVU5UID0gMTMKKyAgICBVX1dCX1JFR0lPTkFMX0lORElDQVRPUiA9IDEzLCAgIC8q
W1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1UgNTAgKi8KKyAgICBVX1dCX0hFQlJFV19M
RVRURVIgPSAxNCwgICAgLypbSExdKi8gLyogZnJvbSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA2
LjMvSUNVIDUyICovCisgICAgVV9XQl9TSU5HTEVfUVVPVEUgPSAxNSwgICAgIC8qW1NRXSovCisg
ICAgVV9XQl9ET1VCTEVfUVVPVEUgPSAxNiwgICAgIC8qW0RRXSovCisgICAgVV9XQl9DT1VOVCA9
IDE3CiB9IFVXb3JkQnJlYWtWYWx1ZXM7CiAKIC8qKgpAQCAtMTYxNSw3ICsxNzM1LDEzIEBAIHR5
cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAqIEBzdGFibGUgSUNVIDMuNAogICovCiB0
eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewotICAgIFVfU0JfT1RIRVIgPSAwLCAgICAgICAg
ICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVTZW50
ZW5jZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAq
IEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX1NCXzxVbmljb2RlIFNlbnRlbmNl
X0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX1NCX09USEVSID0gMCwgICAgICAg
ICAgICAgLypbWFhdKi8KICAgICBVX1NCX0FURVJNID0gMSwgICAgICAgICAgICAgLypbQVRdKi8K
ICAgICBVX1NCX0NMT1NFID0gMiwgICAgICAgICAgICAgLypbQ0xdKi8KICAgICBVX1NCX0ZPUk1B
VCA9IDMsICAgICAgICAgICAgLypbRk9dKi8KQEAgLTE2NDAsNyArMTc2NiwxMyBAQCB0eXBlZGVm
IGVudW0gVVNlbnRlbmNlQnJlYWsgewogICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYg
ZW51bSBVTGluZUJyZWFrIHsKLSAgICBVX0xCX1VOS05PV04gPSAwLCAgICAgICAgICAgLypbWFhd
Ki8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVTGluZUJyZWFrIGNvbnN0
YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGlu
ZXMgbGlrZQorICAgICAqICAgICBVX0xCXzxVbmljb2RlIExpbmVfQnJlYWsgdmFsdWUgbmFtZT4K
KyAgICAgKi8KKworICAgIFVfTEJfVU5LTk9XTiA9IDAsICAgICAgICAgICAvKltYWF0qLwogICAg
IFVfTEJfQU1CSUdVT1VTID0gMSwgICAgICAgICAvKltBSV0qLwogICAgIFVfTEJfQUxQSEFCRVRJ
QyA9IDIsICAgICAgICAvKltBTF0qLwogICAgIFVfTEJfQlJFQUtfQk9USCA9IDMsICAgICAgICAv
KltCMl0qLwpAQCAtMTY1NSw5ICsxNzg3LDkgQEAgdHlwZWRlZiBlbnVtIFVMaW5lQnJlYWsgewog
ICAgIFVfTEJfR0xVRSA9IDEyLCAgICAgICAgICAgICAgLypbR0xdKi8KICAgICBVX0xCX0hZUEhF
TiA9IDEzLCAgICAgICAgICAgIC8qW0hZXSovCiAgICAgVV9MQl9JREVPR1JBUEhJQyA9IDE0LCAg
ICAgICAvKltJRF0qLwotICAgIFVfTEJfSU5TRVBFUkFCTEUgPSAxNSwKICAgICAvKiogUmVuYW1l
ZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5pY29kZSA0LjAuMS9JQ1Ug
My4wIEBzdGFibGUgSUNVIDMuMCAqLwotICAgIFVfTEJfSU5TRVBBUkFCTEU9VV9MQl9JTlNFUEVS
QUJMRSwvKltJTl0qLworICAgIFVfTEJfSU5TRVBBUkFCTEUgPSAxNSwgICAgICAgLypbSU5dKi8K
KyAgICBVX0xCX0lOU0VQRVJBQkxFID0gVV9MQl9JTlNFUEFSQUJMRSwKICAgICBVX0xCX0lORklY
X05VTUVSSUMgPSAxNiwgICAgIC8qW0lTXSovCiAgICAgVV9MQl9MSU5FX0ZFRUQgPSAxNywgICAg
ICAgICAvKltMRl0qLwogICAgIFVfTEJfTk9OU1RBUlRFUiA9IDE4LCAgICAgICAgLypbTlNdKi8K
QEAgLTE2NzksNyArMTgxMSwxMCBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVhayB7CiAgICAgVV9M
Ql9KVCA9IDM0LCAgICAgICAgICAgICAgICAvKltKVF0qLwogICAgIFVfTEJfSlYgPSAzNSwgICAg
ICAgICAgICAgICAgLypbSlZdKi8KICAgICBVX0xCX0NMT1NFX1BBUkVOVEhFU0lTID0gMzYsIC8q
W0NQXSovIC8qIG5ldyBpbiBVbmljb2RlIDUuMi9JQ1UgNC40ICovCi0gICAgVV9MQl9DT1VOVCA9
IDM3CisgICAgVV9MQl9DT05ESVRJT05BTF9KQVBBTkVTRV9TVEFSVEVSID0gMzcsLypbQ0pdKi8g
LyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAgIFVfTEJfSEVCUkVXX0xFVFRFUiA9
IDM4LCAgICAgLypbSExdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAgIFVf
TEJfUkVHSU9OQUxfSU5ESUNBVE9SID0gMzksLypbUkldKi8gLyogbmV3IGluIFVuaWNvZGUgNi4y
L0lDVSA1MCAqLworICAgIFVfTEJfQ09VTlQgPSA0MAogfSBVTGluZUJyZWFrOwogCiAvKioKQEAg
LTE2ODksNyArMTgyNCwxMyBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVhayB7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1lcmljVHlwZSB7Ci0gICAgVV9OVF9OT05F
LCAgICAgICAgICAgICAgLypbTm9uZV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVOdW1lcmljVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5w
eS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9OVF88VW5pY29k
ZSBOdW1lcmljX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfTlRfTk9ORSwgICAg
ICAgICAgICAgIC8qW05vbmVdKi8KICAgICBVX05UX0RFQ0lNQUwsICAgICAgICAgICAvKltkZV0q
LwogICAgIFVfTlRfRElHSVQsICAgICAgICAgICAgIC8qW2RpXSovCiAgICAgVV9OVF9OVU1FUklD
LCAgICAgICAgICAgLypbbnVdKi8KQEAgLTE3MDMsNyArMTg0NCwxMyBAQCB0eXBlZGVmIGVudW0g
VU51bWVyaWNUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuNgogICovCiB0eXBlZGVmIGVudW0gVUhh
bmd1bFN5bGxhYmxlVHlwZSB7Ci0gICAgVV9IU1RfTk9UX0FQUExJQ0FCTEUsICAgLypbTkFdKi8g
LypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSGFuZ3VsU3lsbGFibGVUeXBl
IGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNo
ZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0hTVF88VW5pY29kZSBIYW5ndWxfU3lsbGFibGVf
VHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9IU1RfTk9UX0FQUExJQ0FCTEUsICAg
LypbTkFdKi8KICAgICBVX0hTVF9MRUFESU5HX0pBTU8sICAgICAvKltMXSovCiAgICAgVV9IU1Rf
Vk9XRUxfSkFNTywgICAgICAgLypbVl0qLwogICAgIFVfSFNUX1RSQUlMSU5HX0pBTU8sICAgIC8q
W1RdKi8KQEAgLTE5MDYsNiArMjA1Myw4IEBAIHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJv
cGVydHkgd2hpY2gpOwogICoKICAqIEZvciBjaGFyYWN0ZXJzIHdpdGhvdXQgYW55IG51bWVyaWMg
dmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSwKICAqIHRoaXMgZnVuY3Rp
b24gd2lsbCByZXR1cm4gVV9OT19OVU1FUklDX1ZBTFVFLgorICogTm90ZTogVGhpcyBpcyBkaWZm
ZXJlbnQgZnJvbSB0aGUgVW5pY29kZSBTdGFuZGFyZCB3aGljaCBzcGVjaWZpZXMgTmFOIGFzIHRo
ZSBkZWZhdWx0IHZhbHVlLgorICogKE5hTiBpcyBub3QgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9y
bXMuKQogICoKICAqIFNpbWlsYXIgdG8gamF2YS5sYW5nLkNoYXJhY3Rlci5nZXROdW1lcmljVmFs
dWUoKSwgYnV0IHVfZ2V0TnVtZXJpY1ZhbHVlKCkKICAqIGFsc28gc3VwcG9ydHMgbmVnYXRpdmUg
dmFsdWVzLCBsYXJnZSB2YWx1ZXMsIGFuZCBmcmFjdGlvbnMsCkBAIC0yMzc5LDcgKzI1MjgsNyBA
QCB1X2lzTWlycm9yZWQoVUNoYXIzMiBjKTsKICAqIGFzIHRoZSBtaXJyb3ItaW1hZ2Ugb2YgdGhl
IGRlZmF1bHQgZ2x5cGggb2YgdGhlIHNwZWNpZmllZAogICogY2hhcmFjdGVyLiBUaGlzIGlzIHVz
ZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tCiAgKiBjb2RlcGFnZXMgd2l0aCB2
aXN1YWwgb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlwaAotICogc2VsZWNldGlv
biBjYXBhYmlsaXRpZXMuCisgKiBzZWxlY3Rpb24gY2FwYWJpbGl0aWVzLgogICoKICAqIEBwYXJh
bSBjIHRoZSBjb2RlIHBvaW50IHRvIGJlIG1hcHBlZAogICogQHJldHVybiBhbm90aGVyIFVuaWNv
ZGUgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1pcnJvci1pbWFnZQpAQCAtMjM5NCw2
ICsyNTQzLDI1IEBAIFVfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCiB1X2NoYXJNaXJyb3IoVUNo
YXIzMiBjKTsKIAogLyoqCisgKiBNYXBzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHRvIGl0cyBw
YWlyZWQgYnJhY2tldCBjaGFyYWN0ZXIuCisgKiBGb3IgQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBl
IT1Ob25lLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHVfY2hhck1pcnJvcigpLgorICogT3RoZXJ3aXNl
IGMgaXRzZWxmIGlzIHJldHVybmVkLgorICogU2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVw
b3J0cy90cjkvCisgKgorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQgdG8gYmUgbWFwcGVkCisg
KiBAcmV0dXJuIHRoZSBwYWlyZWQgYnJhY2tldCBjb2RlIHBvaW50LAorICogICAgICAgICBvciBj
IGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcKKyAqICAgICAgICAgKEJpZGlfUGFp
cmVkX0JyYWNrZXRfVHlwZT1Ob25lKQorICoKKyAqIEBzZWUgVUNIQVJfQklESV9QQUlSRURfQlJB
Q0tFVAorICogQHNlZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUX1RZUEUKKyAqIEBzZWUgdV9j
aGFyTWlycm9yCisgKiBAc3RhYmxlIElDVSA1MgorICovCitVX1NUQUJMRSBVQ2hhcjMyIFVfRVhQ
T1JUMgordV9nZXRCaWRpUGFpcmVkQnJhY2tldChVQ2hhcjMyIGMpOworCisvKioKICAqIFJldHVy
bnMgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgdmFsdWUgZm9yIHRoZSBjb2RlIHBvaW50LgogICoKICAq
IFNhbWUgYXMgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlKCkuCkBAIC0yNTUzLDEzICsyNzIx
LDExIEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2RlLCBVQ2hhck5hbWVDaG9pY2UgbmFtZUNob2lj
ZSwKICAgICAgICAgICAgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckxlbmd0aCwKICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FU
RURfQVBJIAogLyoqCi0gKiBHZXQgdGhlIElTTyAxMDY0NiBjb21tZW50IGZvciBhIGNoYXJhY3Rl
ci4KLSAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1hdGl2ZSBmaWVsZCBpbiB0
aGUgVW5pY29kZSBDaGFyYWN0ZXIKLSAqIERhdGFiYXNlIChVbmljb2RlRGF0YS50eHQgZmllbGQg
MTEpIGFuZCBpcyBmcm9tIHRoZSBJU08gMTA2NDYgbmFtZXMgbGlzdC4KLSAqCi0gKiBOb3RlOiBV
bmljb2RlIDUuMiByZW1vdmVzIGFsbCBJU08gY29tbWVudCBkYXRhLCByZXN1bHRpbmcgaW4gZW1w
dHkgc3RyaW5ncwotICogcmV0dXJuZWQgZm9yIGFsbCBjaGFyYWN0ZXJzLgorICogUmV0dXJucyBh
biBlbXB0eSBzdHJpbmcuCisgKiBVc2VkIHRvIHJldHVybiB0aGUgSVNPIDEwNjQ2IGNvbW1lbnQg
Zm9yIGEgY2hhcmFjdGVyLgorICogVGhlIFVuaWNvZGUgSVNPX0NvbW1lbnQgcHJvcGVydHkgaXMg
ZGVwcmVjYXRlZCBhbmQgaGFzIG5vIHZhbHVlcy4KICAqCiAgKiBAcGFyYW0gYyBUaGUgY2hhcmFj
dGVyIChjb2RlIHBvaW50KSBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBJU08gY29tbWVudC4KICAqICAg
ICAgICAgICAgIEl0IG11c3QgYmUgPGNvZGU+MDw9Yzw9MHgxMGZmZmY8L2NvZGU+LgpAQCAtMjU3
MCwxOCArMjczNiwxNSBAQCB1X2NoYXJOYW1lKFVDaGFyMzIgY29kZSwgVUNoYXJOYW1lQ2hvaWNl
IG5hbWVDaG9pY2UsCiAgKiBAcGFyYW0gcEVycm9yQ29kZSBQb2ludGVyIHRvIGEgVUVycm9yQ29k
ZSB2YXJpYWJsZTsKICAqICAgICAgICBjaGVjayBmb3IgPGNvZGU+VV9TVUNDRVNTKCk8L2NvZGU+
IGFmdGVyIDxjb2RlPnVfZ2V0SVNPQ29tbWVudCgpPC9jb2RlPgogICogICAgICAgIHJldHVybnMu
Ci0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGNvbW1lbnQsIG9yIDAgaWYgdGhlcmUgaXMg
bm8gY29tbWVudCBmb3IgdGhpcyBjaGFyYWN0ZXIuCi0gKiAgICAgICAgIElmIHRoZSBkZXN0Q2Fw
YWNpdHkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGgsIHRoZW4gdGhlIGJ1ZmZl
cgotICogICAgICAgICBjb250YWlucyB0aGUgdHJ1bmNhdGVkIG5hbWUgYW5kIHRoZSByZXR1cm5l
ZCBsZW5ndGggaW5kaWNhdGVzIHRoZSBmdWxsCi0gKiAgICAgICAgIGxlbmd0aCBvZiB0aGUgbmFt
ZS4KLSAqICAgICAgICAgVGhlIGxlbmd0aCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB6ZXJvLXRlcm1p
bmF0aW9uLgorICogQHJldHVybiAwCiAgKgotICogQHN0YWJsZSBJQ1UgMi4yCisgKiBAZGVwcmVj
YXRlZCBJQ1UgNDkKICAqLwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVfZ2V0SVNPQ29t
bWVudChVQ2hhcjMyIGMsCiAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0
Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisjZW5k
aWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIEZpbmQgYSBVbmljb2Rl
IGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2RlIHBvaW50IHZhbHVlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWNvbmZpZy5oIGIvU291
cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWNvbmZpZy5oCmluZGV4IDdkMmQyNmU5NTUyODE5
YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJmYThlNzdiMGYxYTM1MjIwNzZmYzBhNjY5MjU3
ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3Vj
b25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y29uZmlnLmgKQEAg
LTEsNiArMSw2IEBACiAvKiAgCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAy
LTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAg
IGZpbGUgbmFtZTogIHVjb25maWcuaApAQCAtMTgsOSArMTgsMTcgQEAKIAogLyohCiAgKiBcZmls
ZQotICogXGJyaWVmIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFydHMgb2YgSUNVIGxpYnJhcnkg
Y29kZSBtb2R1bGVzLgorICogXGJyaWVmIFVzZXItY29uZmlndXJhYmxlIHNldHRpbmdzCiAgKgot
ICogQWxsb3dzIHRvIGJ1aWxkIHBhcnRpYWwsIHNtYWxsZXIgbGlicmFyaWVzIGZvciBzcGVjaWFs
IHB1cnBvc2VzLgorICogTWlzY2VsbGFuZW91cyBzd2l0Y2hlczoKKyAqCisgKiBBIG51bWJlciBv
ZiBtYWNyb3MgYWZmZWN0IGEgdmFyaWV0eSBvZiBtaW5vciBhc3BlY3RzIG9mIElDVS4KKyAqIE1v
c3Qgb2YgdGhlbSB1c2VkIHRvIGJlIGRlZmluZWQgZWxzZXdoZXJlIChlLmcuLCBpbiB1dHlwZXMu
aCBvciBwbGF0Zm9ybS5oKQorICogYW5kIG1vdmVkIGhlcmUgdG8gbWFrZSB0aGVtIGVhc2llciB0
byBmaW5kLgorICoKKyAqIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFydHMgb2YgSUNVIGxpYnJh
cnkgY29kZSBtb2R1bGVzOgorICoKKyAqIENoYW5naW5nIHRoZXNlIG1hY3JvcyBhbGxvd3MgYnVp
bGRpbmcgcGFydGlhbCwgc21hbGxlciBsaWJyYXJpZXMgZm9yIHNwZWNpYWwgcHVycG9zZXMuCiAg
KiBCeSBkZWZhdWx0LCBhbGwgbW9kdWxlcyBhcmUgYnVpbHQuCiAgKiBUaGUgc3dpdGNoZXMgYXJl
IGZhaXJseSBjb2Fyc2UsIGNvbnRyb2xsaW5nIGxhcmdlIG1vZHVsZXMuCiAgKiBCYXNpYyBzZXJ2
aWNlcyBjYW5ub3QgYmUgdHVybmVkIG9mZi4KQEAgLTM4LDE1ICs0NiwxNTMgQEAKIC8qKgogICog
SWYgdGhpcyBzd2l0Y2ggaXMgZGVmaW5lZCwgSUNVIHdpbGwgYXR0ZW1wdCB0byBsb2FkIGEgaGVh
ZGVyIGZpbGUgbmFtZWQgInVjb25maWdfbG9jYWwuaCIKICAqIHByaW9yIHRvIGRldGVybWluaW5n
IGRlZmF1bHQgc2V0dGluZ3MgZm9yIHVjb25maWcgdmFyaWFibGVzLgotICogCisgKgogICogQGlu
dGVybmFsIElDVSA0LjAKLSAqIAogICovCiAjaWYgZGVmaW5lZChVQ09ORklHX1VTRV9MT0NBTCkK
ICNpbmNsdWRlICJ1Y29uZmlnX2xvY2FsLmgiCiAjZW5kaWYKIAogLyoqCisgKiBcZGVmIFVfREVC
VUcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRlIGRlYnVnZ2luZyBjb2RlLgorICog
QXV0b21hdGljYWxseSBzZXQgb24gV2luZG93cywgYnV0IG1vc3QgY29tcGlsZXJzIGRvIG5vdCBo
YXZlCisgKiByZWxhdGVkIHByZWRlZmluZWQgbWFjcm9zLgorICogQGludGVybmFsCisgKi8KKyNp
ZmRlZiBVX0RFQlVHCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
ZGVmaW5lZChfREVCVUcpCisgICAgLyoKKyAgICAgKiBfREVCVUcgaXMgZGVmaW5lZCBieSBWaXN1
YWwgU3R1ZGlvIGRlYnVnIGNvbXBpbGF0aW9uLgorICAgICAqIERvICpub3QqIHRlc3QgZm9yIGl0
cyBOREVCVUcgbWFjcm86IEl0IGlzIGFuIG9ydGhvZ29uYWwgbWFjcm8KKyAgICAgKiB3aGljaCBk
aXNhYmxlcyBhc3NlcnQoKS4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9ERUJVRyAxCisjIGVsc2UK
KyMgICBkZWZpbmUgVV9ERUJVRyAwCisjZW5kaWYKKworLyoqCisgKiBEZXRlcm1pbmVzIHdoZXRl
ciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmllcy4gCisgKiBAaW50ZXJuYWwKKyAq
LworI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAorI2RlZmluZSBVQ0xOX05PX0FVVE9fQ0xF
QU5VUCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRElTQUJMRV9SRU5BTUlORworICogRGV0
ZXJtaW5lcyB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Igbm90LgorICogQGludGVybmFs
CisgKi8KKyNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCisjZGVmaW5lIFVfRElTQUJMRV9SRU5B
TUlORyAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9I
RUFERVJTCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdXR5cGVzLmggaW5jbHVkZXMgdXRmLmgsIHV0
ZjguaCwgdXRmMTYuaCBhbmQgdXRmX29sZC5oLgorICogdXR5cGVzLmggaW5jbHVkZXMgdGhvc2Ug
aGVhZGVycyBpZiB0aGlzIG1hY3JvIGlzIGRlZmluZWQgdG8gMC4KKyAqIE90aGVyd2lzZSwgZWFj
aCB0aG9zZSBoZWFkZXJzIG11c3QgYmUgaW5jbHVkZWQgZXhwbGljaXRseSB3aGVuIHVzaW5nIG9u
ZSBvZiB0aGVpciBtYWNyb3MuCisgKiBEZWZhdWx0cyB0byAwIGZvciBiYWNrd2FyZCBjb21wYXRp
YmlsaXR5LCBleGNlcHQgaW5zaWRlIElDVS4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KKyNpZmRl
ZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUworICAgIC8qIFVzZSB0aGUgcHJlZGVm
aW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9DT01CSU5FRF9JTVBMRU1FTlRBVElPTikg
fHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1Q
TEVNRU5UQVRJT04pIHx8IFwKKyAgICAgIGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikgfHwg
ZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVEVYX0lN
UExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVfVE9PTFVUSUxfSU1QTEVNRU5UQVRJ
T04pCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIDEKKyNlbHNl
CisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIDAKKyNlbmRpZgor
CisvKioKKyAqIFxkZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgorICogRGV0ZXJtaW5lcyB3
aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLgorICogSUNVIGlzIG5vcm1hbGx5IGJ1
aWx0IHN1Y2ggdGhhdCBhbGwgb2YgaXRzIEMrKyBjbGFzc2VzLCB2aWEgdGhlaXIgVU1lbW9yeSBi
YXNlLAorICogb3ZlcnJpZGUgb3BlcmF0b3JzIG5ldyBhbmQgZGVsZXRlIHRvIHVzZSBpdHMgaW50
ZXJuYWwsIGN1c3RvbWl6YWJsZSwKKyAqIG5vbi1leGNlcHRpb24tdGhyb3dpbmcgbWVtb3J5IGFs
bG9jYXRpb24gZnVuY3Rpb25zLiAoRGVmYXVsdCB2YWx1ZSAxIGZvciB0aGlzIG1hY3JvLikKKyAq
CisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gdGhlIGFwcGxpY2F0aW9uIGFu
ZCBpdHMgbGlicmFyaWVzIHVzZSBtdWx0aXBsZSBoZWFwcy4KKyAqIEZvciBleGFtcGxlLCBvbiBX
aW5kb3dzLCB0aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5CisgKiBhcHBsaWNh
dGlvbnMgdGhhdCBzdGF0aWNhbGx5IGxpbmsgdGhlIEMgUnVudGltZSBsaWJyYXJ5LgorICoKKyAq
IEBzdGFibGUgSUNVIDIuMgorICovCisjaWZuZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04K
KyNkZWZpbmUgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAxCisjZW5kaWYKKworLyoqCisgKiBc
ZGVmIFVfRU5BQkxFX1RSQUNJTkcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBlbmFibGUgdHJh
Y2luZy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX1RSQUNJTkcKKyNkZWZp
bmUgVV9FTkFCTEVfVFJBQ0lORyAwCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRU5BQkxFX0RZ
TE9BRAorICogV2hldGhlciB0byBlbmFibGUgRHluYW1pYyBsb2FkaW5nIGluIElDVS4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX0RZTE9BRAorI2RlZmluZSBVX0VOQUJMRV9E
WUxPQUQgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0NIRUNLX0RZTE9BRAorICogV2hldGhl
ciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmlsaXR5LgorICogQGludGVy
bmFsCisgKi8KKyNpZm5kZWYgVV9DSEVDS19EWUxPQUQKKyNkZWZpbmUgVV9DSEVDS19EWUxPQUQg
MQorI2VuZGlmCisKKworLyoqCisgKiBcZGVmIFVfREVGQVVMVF9TSE9XX0RSQUZUCisgKiBEbyB3
ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBBUElzIGJ5IGRlZmF1bHQ/CisgKiBA
aW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0RFRkFVTFRfU0hPV19EUkFGVAorI2RlZmluZSBVX0RF
RkFVTFRfU0hPV19EUkFGVCAxCisjZW5kaWYKKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyog
Q3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5hbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisvKioKKyAqIFxk
ZWYgVV9IQVZFX0xJQl9TVUZGSVgKKyAqIDEgaWYgYSBjdXN0b20gbGlicmFyeSBzdWZmaXggaXMg
c2V0LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfTElCX1NVRkZJWAorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9MSUJfU1VGRklY
X0NfTkFNRSkKKyMgICBkZWZpbmUgVV9IQVZFX0xJQl9TVUZGSVggMQorI2VuZGlmCisKKy8qKgor
ICogXGRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORworICogRGVmaW5lcyB0aGUgbGlicmFy
eSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0aCBDIHN5bnRheC4KKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfTElCX1NVRkZJWF9DX05BTUUpCisjICAgZGVm
aW5lIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HICNVX0xJQl9TVUZGSVhfQ19OQU1FCisjZWxz
ZQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAiIgorI2VuZGlmCisKKy8q
IGNvbW1vbi9pMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgogICogXGRlZiBVQ09ORklHX09OTFlfQ09MTEFU
SU9OCiAgKiBUaGlzIHN3aXRjaCB0dXJucyBvZmYgbW9kdWxlcyB0aGF0IGFyZSBub3QgbmVlZGVk
IGZvciBjb2xsYXRpb24uCiAgKgpAQCAtMTQ2LDYgKzI5Miw5IEBACiAjICAgZGVmaW5lIFVDT05G
SUdfTk9fTk9STUFMSVpBVElPTiAwCiAjZWxpZiBVQ09ORklHX05PX05PUk1BTElaQVRJT04KICAg
ICAvKiBjb21tb24gbGlicmFyeSAqLworICAgIC8qIElDVSA1MCBDSksgZGljdGlvbmFyeSBCcmVh
a0l0ZXJhdG9yIHVzZXMgbm9ybWFsaXphdGlvbiAqLworIyAgIGRlZmluZSBVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAxCisgICAgLyogSUROQSAoVVRTICM0NikgaXMgaW1wbGVtZW50ZWQgdmlh
IG5vcm1hbGl6YXRpb24gKi8KICMgICBkZWZpbmUgVUNPTkZJR19OT19JRE5BIDEKIAogICAgIC8q
IGkxOG4gbGlicmFyeSAqLwpAQCAtMTc2LDYgKzMyNSwxNyBAQAogIyAgIGRlZmluZSBVQ09ORklH
X05PX0lETkEgMAogI2VuZGlmCiAKKy8qKgorICogXGRlZiBVQ09ORklHX01TR1BBVF9ERUZBVUxU
X0FQT1NUUk9QSEVfTU9ERQorICogRGV0ZXJtaW5lcyB0aGUgZGVmYXVsdCBVTWVzc2FnZVBhdHRl
cm5BcG9zdHJvcGhlTW9kZS4KKyAqIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBlbnVt
LgorICoKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCisjaWZuZGVmIFVDT05GSUdfTVNHUEFUX0RF
RkFVTFRfQVBPU1RST1BIRV9NT0RFCisjICAgZGVmaW5lIFVDT05GSUdfTVNHUEFUX0RFRkFVTFRf
QVBPU1RST1BIRV9NT0RFIFVNU0dQQVRfQVBPU19ET1VCTEVfT1BUSU9OQUwKKyNlbmRpZgorCiAv
KiBpMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTIyOCw0ICszODgsMjUgQEAKICMgICBk
ZWZpbmUgVUNPTkZJR19OT19TRVJWSUNFIDEKICNlbmRpZgogCisvKioKKyAqIFxkZWYgVUNPTkZJ
R19IQVZFX1BBUlNFQUxMSU5QVVQKKyAqIFRoaXMgc3dpdGNoIHR1cm5zIG9uIHRoZSAicGFyc2Ug
YWxsIGlucHV0IiBhdHRyaWJ1dGUuIEJpbmFyeSBpbmNvbXBhdGlibGUuCisgKgorICogQGludGVy
bmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQKKyMgICBkZWZpbmUg
VUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQgMQorI2VuZGlmCisKKworLyoqCisgKiBcZGVmIFVD
T05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorICogVGhpcyBzd2l0Y2ggdHVybnMgb24gb3RoZXIg
Zm9ybWF0dGluZyBmYXN0cGF0aHMuIEJpbmFyeSBpbmNvbXBhdGlibGUgaW4gb2JqZWN0IERlY2lt
YWxGb3JtYXQgYW5kIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKgorICogQGludGVybmFsCisgKi8K
KyNpZm5kZWYgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5CisjICAgZGVmaW5lIFVDT05GSUdf
Rk9STUFUX0ZBU1RQQVRIU180OSAxCisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aWRuYS5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1
L3VuaWNvZGUvdWlkbmEuaAppbmRleCAwNGI0MzlkOTcwZjQ1ODI0YWI5ZmU4YzdlZjQ3NzEwNjMz
NGVhZDFkLi4yZWZiMTMwZjk0ZTQzOThhOWU1YWMyNmE3YWRjNzEzNTMzMjI3ZDM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aWRuYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL2ljdS91bmljb2RlL3VpZG5hLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKICAqCi0gKiAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEwLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CkBAIC00MiwxMiArNDIsMTQgQEAKIGVudW0gewogICAgIC8qKgogICAgICAqIERlZmF1bHQgb3B0
aW9ucyB2YWx1ZTogTm9uZSBvZiB0aGUgb3RoZXIgb3B0aW9ucyBhcmUgc2V0LgorICAgICAqIEZv
ciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9yeSBtZXRob2RzLgogICAgICAqIEBzdGFi
bGUgSUNVIDIuNgogICAgICAqLwogICAgIFVJRE5BX0RFRkFVTFQ9MCwKICAgICAvKioKICAgICAg
KiBPcHRpb24gdG8gYWxsb3cgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBpbiBkb21haW4gbmFtZXMg
YW5kIGxhYmVscy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBVVFM0NiBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIgYW5kIGZhY3Rv
cnkgbWV0aG9kcy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBVVFM0
NiBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVVRTICM0NiBkaXNhbGxvd3MgdW5hc3NpZ25lZCBj
b2RlIHBvaW50cy4pCiAgICAgICogQHN0YWJsZSBJQ1UgMi42CiAgICAgICovCkBAIC01Niw0NyAr
NTgsNjIgQEAgZW51bSB7CiAgICAgICogT3B0aW9uIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGlucHV0
IGNvbmZvcm1zIHRvIHRoZSBTVEQzIEFTQ0lJIHJ1bGVzLAogICAgICAqIGZvciBleGFtcGxlIHRo
ZSByZXN0cmljdGlvbiBvZiBsYWJlbHMgdG8gTERIIGNoYXJhY3RlcnMKICAgICAgKiAoQVNDSUkg
TGV0dGVycywgRGlnaXRzIGFuZCBIeXBoZW4tTWludXMpLgorICAgICAqIEZvciB1c2UgaW4gc3Rh
dGljIHdvcmtlciBhbmQgZmFjdG9yeSBtZXRob2RzLgogICAgICAqIEBzdGFibGUgSUNVIDIuNgog
ICAgICAqLwogICAgIFVJRE5BX1VTRV9TVEQzX1JVTEVTPTIsCiAgICAgLyoqCiAgICAgICogSURO
QSBvcHRpb24gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGlucHV0IGNvbmZvcm1zIHRvIHRoZSBC
aURpIHJ1bGVzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElETkEyMDAz
IGltcGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFj
dG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElE
TkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChJRE5BMjAwMyBhbHdheXMgcGVyZm9ybXMg
YSBCaURpIGNoZWNrLikKLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNV
IDQuNgogICAgICAqLwogICAgIFVJRE5BX0NIRUNLX0JJREk9NCwKICAgICAvKioKICAgICAgKiBJ
RE5BIG9wdGlvbiB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9ybXMgdG8gdGhl
IENPTlRFWFRKIHJ1bGVzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElE
TkEyMDAzIGltcGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBh
bmQgZmFjdG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkg
dGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGUgQ09OVEVYVEogY2hlY2sg
aXMgbmV3IGluIElETkEyMDA4LikKLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFi
bGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0NIRUNLX0NPTlRFWFRKPTgsCiAgICAgLyoq
CiAgICAgICogSUROQSBvcHRpb24gZm9yIG5vbnRyYW5zaXRpb25hbCBwcm9jZXNzaW5nIGluIFRv
QVNDSUkoKS4KLSAgICAgKiBCeSBkZWZhdWx0LCBUb0FTQ0lJKCkgdXNlcyB0cmFuc2l0aW9uYWwg
cHJvY2Vzc2luZy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBJRE5BMjAw
MyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIgYW5kIGZh
Y3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5CeSBkZWZhdWx0LCBUb0FTQ0lJKCkgdXNlcyB0cmFu
c2l0aW9uYWwgcHJvY2Vzc2luZy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5
IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVGhpcyBpcyBvbmx5IHJlbGV2
YW50IGZvciBjb21wYXRpYmlsaXR5IG9mIG5ld2VyIElETkEgaW1wbGVtZW50YXRpb25zIHdpdGgg
SUROQTIwMDMuKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42
CiAgICAgICovCiAgICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX0FTQ0lJPTB4MTAsCiAgICAg
LyoqCiAgICAgICogSUROQSBvcHRpb24gZm9yIG5vbnRyYW5zaXRpb25hbCBwcm9jZXNzaW5nIGlu
IFRvVW5pY29kZSgpLgotICAgICAqIEJ5IGRlZmF1bHQsIFRvVW5pY29kZSgpIHVzZXMgdHJhbnNp
dGlvbmFsIHByb2Nlc3NpbmcuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUg
SUROQTIwMDMgaW1wbGVtZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29ya2Vy
IGFuZCBmYWN0b3J5IG1ldGhvZHMuCisgICAgICogPHA+QnkgZGVmYXVsdCwgVG9Vbmljb2RlKCkg
dXNlcyB0cmFuc2l0aW9uYWwgcHJvY2Vzc2luZy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBp
Z25vcmVkIGJ5IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVGhpcyBpcyBv
bmx5IHJlbGV2YW50IGZvciBjb21wYXRpYmlsaXR5IG9mIG5ld2VyIElETkEgaW1wbGVtZW50YXRp
b25zIHdpdGggSUROQTIwMDMuKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJs
ZSBJQ1UgNC42CiAgICAgICovCi0gICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX1VOSUNPREU9
MHgyMAorICAgIFVJRE5BX05PTlRSQU5TSVRJT05BTF9UT19VTklDT0RFPTB4MjAsCisgICAgLyoq
CisgICAgICogSUROQSBvcHRpb24gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGlucHV0IGNvbmZv
cm1zIHRvIHRoZSBDT05URVhUTyBydWxlcy4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3Jr
ZXIgYW5kIGZhY3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBpZ25vcmVk
IGJ5IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiAoVGhlIENPTlRFWFRPIGNo
ZWNrIGlzIG5ldyBpbiBJRE5BMjAwOC4pCisgICAgICogPHA+VGhpcyBpcyBmb3IgdXNlIGJ5IHJl
Z2lzdHJpZXMgZm9yIElETkEyMDA4IGNvbmZvcm1hbmNlLgorICAgICAqIFVUUyAjNDYgZG9lcyBu
b3QgcmVxdWlyZSB0aGUgQ09OVEVYVE8gY2hlY2suCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAg
ICAgKi8KKyAgICBVSUROQV9DSEVDS19DT05URVhUTz0weDQwCiB9OwogCiAvKioKICAqIE9wYXF1
ZSBDIHNlcnZpY2Ugb2JqZWN0IHR5cGUgZm9yIHRoZSBuZXcgSUROQSBBUEkuCi0gKiBAZHJhZnQg
SUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KIHN0cnVjdCBVSUROQTsKLXR5cGVkZWYg
c3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVSUROQS4gQGRy
YWZ0IElDVSA0LjYgKi8KK3R5cGVkZWYgc3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBDIHR5cGVk
ZWYgZm9yIHN0cnVjdCBVSUROQS4gQHN0YWJsZSBJQ1UgNC42ICovCiAKIC8qKgogICogUmV0dXJu
cyBhIFVJRE5BIGluc3RhbmNlIHdoaWNoIGltcGxlbWVudHMgVVRTICM0Ni4KQEAgLTExMywxNyAr
MTMwLDE3IEBAIHR5cGVkZWYgc3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBDIHR5cGVkZWYgZm9y
IHN0cnVjdCBVSUROQS4gQGRyYWZ0IElDVSA0LjYgKi8KICAqICAgICAgICAgICAgICAgICAgaW1t
ZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAq
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3Ig
ZGV0YWlscy4pCiAgKiBAcmV0dXJuIHRoZSBVVFMgIzQ2IFVJRE5BIGluc3RhbmNlLCBpZiBzdWNj
ZXNzZnVsCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJB
RlQgVUlETkEgKiBVX0VYUE9SVDIKK1VfU1RBQkxFIFVJRE5BICogVV9FWFBPUlQyCiB1aWRuYV9v
cGVuVVRTNDYodWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8q
KgogICogQ2xvc2VzIGEgVUlETkEgaW5zdGFuY2UuCiAgKiBAcGFyYW0gaWRuYSBVSUROQSBpbnN0
YW5jZSB0byBiZSBjbG9zZWQKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYK
ICAqLwotVV9EUkFGVCB2b2lkIFVfRVhQT1JUMgorVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVp
ZG5hX2Nsb3NlKFVJRE5BICppZG5hKTsKIAogI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCkBAIC0x
MzcsNyArMTU0LDcgQEAgVV9OQU1FU1BBQ0VfQkVHSU4KICAqCiAgKiBAc2VlIExvY2FsUG9pbnRl
ckJhc2UKICAqIEBzZWUgTG9jYWxQb2ludGVyCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJs
ZSBJQ1UgNC42CiAgKi8KIFVfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVJRE5BUG9p
bnRlciwgVUlETkEsIHVpZG5hX2Nsb3NlKTsKIApAQCAtMTUzLDMyICsxNzAsMzEgQEAgVV9OQU1F
U1BBQ0VfRU5ECiAgKiBpbnQzMl90IGxlbmd0aCA9IHVpZG5hX25hbWVUb0FTQ0lJKC4uLiwgJmlu
Zm8sICZlcnJvckNvZGUpOwogICogaWYoVV9TVUNDRVNTKGVycm9yQ29kZSkgJiYgaW5mby5lcnJv
cnMhPTApIHsgLi4uIH0KICAqIFxlbmRjb2RlCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJs
ZSBJQ1UgNC42CiAgKi8KLXN0cnVjdCBVSUROQUluZm8gewotICAgIC8qKiBzaXplb2YoVUlETkFJ
bmZvKSBAZHJhZnQgSUNVIDQuNiAqLwordHlwZWRlZiBzdHJ1Y3QgVUlETkFJbmZvIHsKKyAgICAv
Kiogc2l6ZW9mKFVJRE5BSW5mbykgQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgaW50MTZfdCBzaXpl
OwogICAgIC8qKgogICAgICAqIFNldCB0byBUUlVFIGlmIHRyYW5zaXRpb25hbCBhbmQgbm9udHJh
bnNpdGlvbmFsIHByb2Nlc3NpbmcgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy4KICAgICAgKiBG
b3IgZGV0YWlscyBzZWUgQysrIElETkFJbmZvOjppc1RyYW5zaXRpb25hbERpZmZlcmVudCgpLgot
ICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAg
ICAgVUJvb2wgaXNUcmFuc2l0aW9uYWxEaWZmZXJlbnQ7CiAgICAgVUJvb2wgcmVzZXJ2ZWRCMzsg
IC8qKjwgUmVzZXJ2ZWQgZmllbGQsIGRvIG5vdCB1c2UuIEBpbnRlcm5hbCAqLwogICAgIC8qKgog
ICAgICAqIEJpdCBzZXQgaW5kaWNhdGluZyBJRE5BIHByb2Nlc3NpbmcgZXJyb3JzLiAwIGlmIG5v
IGVycm9ycy4KICAgICAgKiBTZWUgVUlETkFfRVJST1JfLi4uIGNvbnN0YW50cy4KLSAgICAgKiBA
ZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIHVpbnQz
Ml90IGVycm9yczsKICAgICBpbnQzMl90IHJlc2VydmVkSTI7ICAvKio8IFJlc2VydmVkIGZpZWxk
LCBkbyBub3QgdXNlLiBAaW50ZXJuYWwgKi8KICAgICBpbnQzMl90IHJlc2VydmVkSTM7ICAvKio8
IFJlc2VydmVkIGZpZWxkLCBkbyBub3QgdXNlLiBAaW50ZXJuYWwgKi8KLX07Ci10eXBlZGVmIHN0
cnVjdCBVSUROQUluZm8gVUlETkFJbmZvOworfSBVSUROQUluZm87CiAKIC8qKgogICogU3RhdGlj
IGluaXRpYWxpemVyIGZvciBhIFVJRE5BSW5mbyBzdHJ1Y3QuCi0gKiBAZHJhZnQgSUNVIDQuNgor
ICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KICNkZWZpbmUgVUlETkFfSU5GT19JTklUSUFMSVpFUiB7
IFwKICAgICAoaW50MTZfdClzaXplb2YoVUlETkFJbmZvKSwgXApAQCAtMjA2LDkgKzIyMiw5IEBA
IHR5cGVkZWYgc3RydWN0IFVJRE5BSW5mbyBVSUROQUluZm87CiAgKiAgICAgICAgICAgICAgICAg
IGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRo
CiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUg
Zm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBA
ZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBV
X0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9sYWJlbFRvQVNDSUko
Y29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxhYmVs
LCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJf
dCBjYXBhY2l0eSwKQEAgLTIzMyw5ICsyNDksOSBAQCB1aWRuYV9sYWJlbFRvQVNDSUkoY29uc3Qg
VUlETkEgKmlkbmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3Ig
VV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1
bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVy
biBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJs
ZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMy
X3QgVV9FWFBPUlQyCiB1aWRuYV9sYWJlbFRvVW5pY29kZShjb25zdCBVSUROQSAqaWRuYSwKICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpsYWJlbCwgaW50MzJfdCBsZW5ndGgsCiAg
ICAgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTI2
Miw5ICsyNzgsOSBAQCB1aWRuYV9sYWJlbFRvVW5pY29kZShjb25zdCBVSUROQSAqaWRuYSwKICAq
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcu
IChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0
cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwot
VV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVp
ZG5hX25hbWVUb0FTQ0lJKGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAgY29u
c3QgVUNoYXIgKm5hbWUsIGludDMyX3QgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgVUNoYXIg
KmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0yODksOSArMzA1LDkgQEAgdWlkbmFfbmFtZVRv
QVNDSUkoY29uc3QgVUlETkEgKmlkbmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5
LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMu
KQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQu
NgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1Vf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9uYW1lVG9Vbmljb2RlKGNvbnN0IFVJRE5B
ICppZG5hLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbmFtZSwgaW50MzJfdCBs
ZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5
LApAQCAtMzE0LDkgKzMzMCw5IEBAIHVpZG5hX25hbWVUb1VuaWNvZGUoY29uc3QgVUlETkEgKmlk
bmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJF
KCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNo
YWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5h
dGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42
CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBP
UlQyCiB1aWRuYV9sYWJlbFRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLCBpbnQzMl90IGxlbmd0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zMzcs
OSArMzUzLDkgQEAgdWlkbmFfbGFiZWxUb0FTQ0lJX1VURjgoY29uc3QgVUlETkEgKmlkbmEsCiAg
KiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24g
b3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5n
LiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBz
dHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8K
LVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1
aWRuYV9sYWJlbFRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqbGFiZWwsIGludDMyX3QgbGVuZ3RoLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zNjAsOSAr
Mzc2LDkgQEAgdWlkbmFfbGFiZWxUb1VuaWNvZGVVVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICog
ICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91
dHB1dCBvciB1c2Ugd2l0aAogICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4g
KFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRpb24gc3Ry
aW5nIGxlbmd0aAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1V
X0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWlk
bmFfbmFtZVRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zODMsOSArMzk5LDkgQEAg
dWlkbmFfbmFtZVRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAqICAgICAgICAgICAg
ICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNl
IHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBH
dWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgK
LSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQz
Ml90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX25hbWVUb1Vu
aWNvZGVVVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LApAQCAtMzk5LDU4ICs0MTUsNTggQEAgdWlkbmFf
bmFtZVRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiBlbnVtIHsKICAgICAvKioKICAg
ICAgKiBBIG5vbi1maW5hbCBkb21haW4gbmFtZSBsYWJlbCAob3IgdGhlIHdob2xlIGRvbWFpbiBu
YW1lKSBpcyBlbXB0eS4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNV
IDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX0VNUFRZX0xBQkVMPTEsCiAgICAgLyoqCiAg
ICAgICogQSBkb21haW4gbmFtZSBsYWJlbCBpcyBsb25nZXIgdGhhbiA2MyBieXRlcy4KICAgICAg
KiAoU2VlIFNURDEzL1JGQzEwMzQgMy4xLiBOYW1lIHNwYWNlIHNwZWNpZmljYXRpb25zIGFuZCB0
ZXJtaW5vbG9neS4pCiAgICAgICogVGhpcyBpcyBvbmx5IGNoZWNrZWQgaW4gVG9BU0NJSSBvcGVy
YXRpb25zLCBhbmQgb25seSBpZiB0aGUgb3V0cHV0IGxhYmVsIGlzIGFsbC1BU0NJSS4KLSAgICAg
KiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJ
RE5BX0VSUk9SX0xBQkVMX1RPT19MT05HPTIsCiAgICAgLyoqCiAgICAgICogQSBkb21haW4gbmFt
ZSBpcyBsb25nZXIgdGhhbiAyNTUgYnl0ZXMgaW4gaXRzIHN0b3JhZ2UgZm9ybS4KICAgICAgKiAo
U2VlIFNURDEzL1JGQzEwMzQgMy4xLiBOYW1lIHNwYWNlIHNwZWNpZmljYXRpb25zIGFuZCB0ZXJt
aW5vbG9neS4pCiAgICAgICogVGhpcyBpcyBvbmx5IGNoZWNrZWQgaW4gVG9BU0NJSSBvcGVyYXRp
b25zLCBhbmQgb25seSBpZiB0aGUgb3V0cHV0IGRvbWFpbiBuYW1lIGlzIGFsbC1BU0NJSS4KLSAg
ICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAg
IFVJRE5BX0VSUk9SX0RPTUFJTl9OQU1FX1RPT19MT05HPTQsCiAgICAgLyoqCiAgICAgICogQSBs
YWJlbCBzdGFydHMgd2l0aCBhIGh5cGhlbi1taW51cyAoJy0nKS4KLSAgICAgKiBAZHJhZnQgSUNV
IDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX0xF
QURJTkdfSFlQSEVOPTgsCiAgICAgLyoqCiAgICAgICogQSBsYWJlbCBlbmRzIHdpdGggYSBoeXBo
ZW4tbWludXMgKCctJykuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElD
VSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9UUkFJTElOR19IWVBIRU49MHgxMCwKICAg
ICAvKioKICAgICAgKiBBIGxhYmVsIGNvbnRhaW5zIGh5cGhlbi1taW51cyAoJy0nKSBpbiB0aGUg
dGhpcmQgYW5kIGZvdXJ0aCBwb3NpdGlvbnMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAg
KiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9IWVBIRU5fM180PTB4
MjAsCiAgICAgLyoqCiAgICAgICogQSBsYWJlbCBzdGFydHMgd2l0aCBhIGNvbWJpbmluZyBtYXJr
LgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICov
CiAgICAgVUlETkFfRVJST1JfTEVBRElOR19DT01CSU5JTkdfTUFSSz0weDQwLAogICAgIC8qKgog
ICAgICAqIEEgbGFiZWwgb3IgZG9tYWluIG5hbWUgY29udGFpbnMgZGlzYWxsb3dlZCBjaGFyYWN0
ZXJzLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAg
ICovCiAgICAgVUlETkFfRVJST1JfRElTQUxMT1dFRD0weDgwLAogICAgIC8qKgogICAgICAqIEEg
bGFiZWwgc3RhcnRzIHdpdGggInhuLS0iIGJ1dCBkb2VzIG5vdCBjb250YWluIHZhbGlkIFB1bnlj
b2RlLgogICAgICAqIFRoYXQgaXMsIGFuIHhuLS0gbGFiZWwgZmFpbGVkIFB1bnljb2RlIGRlY29k
aW5nLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAg
ICovCiAgICAgVUlETkFfRVJST1JfUFVOWUNPREU9MHgxMDAsCiAgICAgLyoqCiAgICAgICogQSBs
YWJlbCBjb250YWlucyBhIGRvdD1mdWxsIHN0b3AuCiAgICAgICogVGhpcyBjYW4gb2NjdXIgaW4g
YW4gaW5wdXQgc3RyaW5nIGZvciBhIHNpbmdsZS1sYWJlbCBmdW5jdGlvbi4KLSAgICAgKiBAZHJh
ZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VS
Uk9SX0xBQkVMX0hBU19ET1Q9MHgyMDAsCiAgICAgLyoqCkBAIC00NTksMTkgKzQ3NSwzMiBAQCBl
bnVtIHsKICAgICAgKiBzdHJpbmcgaGFkIHNldmVyZSB2YWxpZGF0aW9uIGVycm9ycy4gRm9yIGV4
YW1wbGUsCiAgICAgICogaXQgbWlnaHQgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBh
bGxvd2VkIGluIEFDRSBsYWJlbHMsCiAgICAgICogb3IgaXQgbWlnaHQgbm90IGJlIG5vcm1hbGl6
ZWQuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAg
Ki8KICAgICBVSUROQV9FUlJPUl9JTlZBTElEX0FDRV9MQUJFTD0weDQwMCwKICAgICAvKioKICAg
ICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQgdGhlIElETkEgQmlEaSByZXF1aXJlbWVudHMgKGZv
ciByaWdodC10by1sZWZ0IGNoYXJhY3RlcnMpLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAg
ICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfQklEST0weDgwMCwK
ICAgICAvKioKICAgICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQgdGhlIElETkEgQ09OVEVYVEog
cmVxdWlyZW1lbnRzLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1Ug
NC42CisgICAgICovCisgICAgVUlETkFfRVJST1JfQ09OVEVYVEo9MHgxMDAwLAorICAgIC8qKgor
ICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBDT05URVhUTyByZXF1aXJlbWVu
dHMgZm9yIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMuCisgICAgICogU29tZSBwdW5jdHVhdGlvbiBj
aGFyYWN0ZXJzICJXb3VsZCBvdGhlcndpc2UgaGF2ZSBiZWVuIERJU0FMTE9XRUQiCisgICAgICog
YnV0IGFyZSBhbGxvd2VkIGluIGNlcnRhaW4gY29udGV4dHMuIChSRkMgNTg5MikKKyAgICAgKiBA
c3RhYmxlIElDVSA0OQorICAgICAqLworICAgIFVJRE5BX0VSUk9SX0NPTlRFWFRPX1BVTkNUVUFU
SU9OPTB4MjAwMCwKKyAgICAvKioKKyAgICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQgdGhlIElE
TkEgQ09OVEVYVE8gcmVxdWlyZW1lbnRzIGZvciBkaWdpdHMuCisgICAgICogQXJhYmljLUluZGlj
IERpZ2l0cyAoVSswNjZ4KSBtdXN0IG5vdCBiZSBtaXhlZCB3aXRoIEV4dGVuZGVkIEFyYWJpYy1J
bmRpYyBEaWdpdHMgKFUrMDZGeCkuCisgICAgICogQHN0YWJsZSBJQ1UgNDkKICAgICAgKi8KLSAg
ICBVSUROQV9FUlJPUl9DT05URVhUSj0weDEwMDAKKyAgICBVSUROQV9FUlJPUl9DT05URVhUT19E
SUdJVFM9MHg0MDAwCiB9OwogCiAvKiBJRE5BMjAwMyBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWl0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L2ljdS91bmljb2RlL3VpdGVyLmgKaW5kZXggYjQ2OWUyNGU2MTY1M2Q3ZTZkMGJlOGM4ZmE2N2Zm
MjY1MWI1MWZhMy4uMGNkYjhmZmJlNWM4MTU0YWM5ZDkwOGY2MDViMGViMTZlYTViYjE5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWl0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aXRlci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwyMDA5
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDIt
MjAxMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CkBAIC02NzMsNyArNjczLDcgQEAgdWl0ZXJfc2V0VVRGOChVQ2hhckl0ZXJhdG9yICppdGVyLCBj
b25zdCBjaGFyICpzLCBpbnQzMl90IGxlbmd0aCk7CiAgKiBAc3RhYmxlIElDVSAyLjEKICAqLwog
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9yKFVDaGFy
SXRlcmF0b3IgKml0ZXIsIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBDaGFyYWN0ZXJJdGVyYXRvciAq
Y2hhckl0ZXIpOwordWl0ZXJfc2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRvciAqaXRl
ciwgaWN1OjpDaGFyYWN0ZXJJdGVyYXRvciAqY2hhckl0ZXIpOwogCiAvKioKICAqIFNldCB1cCBh
IFVDaGFySXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgQysrIFJlcGxhY2VhYmxlLgpAQCAtNjk4
LDcgKzY5OCw3IEBAIHVpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9yKFVDaGFySXRlcmF0b3IgKml0
ZXIsIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBDaGFyYWN0ZXJJCiAgKiBAc3RhYmxlIElDVSAyLjEK
ICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVpdGVyX3NldFJlcGxhY2VhYmxlKFVDaGFy
SXRlcmF0b3IgKml0ZXIsIGNvbnN0IFVfTkFNRVNQQUNFX1FVQUxJRklFUiBSZXBsYWNlYWJsZSAq
cmVwKTsKK3VpdGVyX3NldFJlcGxhY2VhYmxlKFVDaGFySXRlcmF0b3IgKml0ZXIsIGNvbnN0IGlj
dTo6UmVwbGFjZWFibGUgKnJlcCk7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9pY3UvdW5pY29kZS91bWFjaGluZS5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3Vu
aWNvZGUvdW1hY2hpbmUuaAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3OGRlZTE3MzQ4MDQyYmM2
MWMyYTk2Li5kMTEwMmY0OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZlN2ZmNzU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91bWFjaGluZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VtYWNoaW5lLmgKQEAgLTEsNyArMSw3IEBACiAvKgog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTAsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAx
MiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBA
IC00MSwxNiArNDEsNyBAQAogLyogd2hpY2ggYXJlIGNvbnRhaW5lZCBpbiB0aGUgcGxhdGZvcm0t
c3BlY2lmaWMgZmlsZSBwbGF0Zm9ybS5oICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ki8KIAotI2lmIGRlZmluZWQoVV9QQUxNT1MpCi0jICAgaW5jbHVkZSAidW5pY29kZS9wcGFs
bW9zLmgiCi0jZWxpZiAhZGVmaW5lZChfX01JTkdXMzJfXykgJiYgKGRlZmluZWQoV0lOMzIpIHx8
IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjY0KSB8fCBkZWZpbmVkKF9XSU42NCkpCi0j
aWZkZWYgQ1lHV0lOTVNWQwotIyAgIGluY2x1ZGUgInVuaWNvZGUvcGxhdGZvcm0uaCIKLSNlbmRp
ZgotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHdpbjMyLmgiCi0jZWxzZQotIyAgIGluY2x1ZGUgInVu
aWNvZGUvcHR5cGVzLmgiIC8qIHBsYXRmb3JtLmggaXMgaW5jbHVkZWQgaW4gcHR5cGVzLmggKi8K
LSNlbmRpZgorI2luY2x1ZGUgInVuaWNvZGUvcHR5cGVzLmgiIC8qIHBsYXRmb3JtLmggaXMgaW5j
bHVkZWQgaW4gcHR5cGVzLmggKi8KIAogLyoKICAqIEFOU0kgQyBoZWFkZXJzOgpAQCAtNTksMTkg
KzUwLDYgQEAKICNpbmNsdWRlIDxzdGRkZWYuaD4KIAogLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0v
KiBYUF9DUExVU1BMVVMgaXMgYSBjcm9zcy1wbGF0Zm9ybSBzeW1ib2wgd2hpY2ggc2hvdWxkIGJl
IGRlZmluZWQgd2hlbiAgICAgKi8KLS8qIHVzaW5nIEMrKy4gIEl0IHNob3VsZCBub3QgYmUgZGVm
aW5lZCB3aGVuIGNvbXBpbGluZyB1bmRlciBDLiAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotIyAgIGlmbmRlZiBYUF9DUExVU1BMVVMK
LSMgICAgICAgZGVmaW5lIFhQX0NQTFVTUExVUwotIyAgIGVuZGlmCi0jZWxzZQotIyAgIHVuZGVm
IFhQX0NQTFVTUExVUwotI2VuZGlmCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogRm9yIEMg
d3JhcHBlcnMsIHdlIHVzZSB0aGUgc3ltYm9sIFVfU1RBQkxFLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KIC8qIFRoaXMgd29ya3MgcHJvcGVybHkgaWYgdGhlIGluY2x1ZGVyIGlz
IEMgb3IgQysrLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogRnVuY3Rpb25zIGFyZSBk
ZWNsYXJlZCAgIFVfU1RBQkxFIHJldHVybi10eXBlIFVfRVhQT1JUMiBmdW5jdGlvbi1uYW1lKCku
Li4gKi8KQEAgLTk1LDcgKzczLDcgQEAKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKLSNpZmRl
ZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogIyAgIGRlZmluZSBVX0NGVU5DIGV4
dGVybiAiQyIKICMgICBkZWZpbmUgVV9DREVDTF9CRUdJTiBleHRlcm4gIkMiIHsKICMgICBkZWZp
bmUgVV9DREVDTF9FTkQgICB9CkBAIC0xMDUsMjMgKzgzLDI2IEBACiAjICAgZGVmaW5lIFVfQ0RF
Q0xfRU5ECiAjZW5kaWYKIAorI2lmbmRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAvKioKICAq
IFxkZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogICogIFRoaXMgaXMgdXNlZCBmb3IgR0NDIHNw
ZWNpZmljIGF0dHJpYnV0ZXMKICAqIEBpbnRlcm5hbAogICovCi0jaWYgZGVmaW5lZChfX0dOVUNf
XykgJiYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+
PSAyKSkKKyNpZiBVX0dDQ19NQUpPUl9NSU5PUiA+PSAzMDIKICMgICAgZGVmaW5lIFVfQVRUUklC
VVRFX0RFUFJFQ0FURUQgX19hdHRyaWJ1dGVfXyAoKGRlcHJlY2F0ZWQpKQogLyoqCiAgKiBcZGVm
IFVfQVRUUklCVVRFX0RFUFJFQ0FURUQKICAqIFRoaXMgaXMgdXNlZCBmb3IgVmlzdWFsIEMrKyBz
cGVjaWZpYyBhdHRyaWJ1dGVzIAogICogQGludGVybmFsCiAgKi8KLSNlbGlmIGRlZmluZWQoVV9X
SU5ET1dTKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTQwMCkKKyNlbGlm
IGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxNDAwKQogIyAgICBkZWZpbmUgVV9B
VFRSSUJVVEVfREVQUkVDQVRFRCBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQpCiAjZWxzZQogIyAgICBk
ZWZpbmUgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogI2VuZGlmCisjZW5kaWYKKwogLyoqIFRoaXMg
aXMgdXNlZCB0byBkZWNsYXJlIGEgZnVuY3Rpb24gYXMgYSBwdWJsaWMgSUNVIEMgQVBJIEBzdGFi
bGUgSUNVIDIuMCovCiAjZGVmaW5lIFVfQ0FQSSBVX0NGVU5DIFVfRVhQT1JUCiAvKiogVGhpcyBp
cyB1c2VkIHRvIGRlY2xhcmUgYSBmdW5jdGlvbiBhcyBhIHN0YWJsZSBwdWJsaWMgSUNVIEMgQVBJ
Ki8KQEAgLTIzNCwyNyArMjE1LDYgQEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAKIC8qIHdjaGFy
X3QtcmVsYXRlZCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqLwogCi0vKioKLSAqIFxkZWYgVV9IQVZFX1dDSEFSX0gKLSAqIEluZGljYXRl
cyB3aGV0aGVyIDx3Y2hhci5oPiBpcyBhdmFpbGFibGUgKDEpIG9yIG5vdCAoMCkuIFNldCB0byAx
IGJ5IGRlZmF1bHQuCi0gKgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNpZm5kZWYgVV9IQVZF
X1dDSEFSX0gKLSMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMQotI2VuZGlmCi0KLS8qKgotICog
XGRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0gKiBVX1NJWkVPRl9XQ0hBUl9UPT1zaXplb2Yod2NoYXJf
dCkgKDAgbWVhbnMgaXQgaXMgbm90IGRlZmluZWQgb3IgYXV0b2NvbmYgY291bGQgbm90IHNldCBp
dCkKLSAqCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2lmIFVfU0laRU9GX1dDSEFSX1Q9PTAK
LSMgICB1bmRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0jICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1Qg
NAotI2VuZGlmCi0KIC8qCiAgKiBcZGVmIFVfV0NIQVJfSVNfVVRGMTYKICAqIERlZmluZWQgaWYg
d2NoYXJfdCB1c2VzIFVURi0xNi4KQEAgLTI3NSwxNCArMjM1LDE2IEBAIHR5cGVkZWYgaW50OF90
IFVCb29sOwogIyAgICAgICAgICAgZGVmaW5lICBVX1dDSEFSX0lTX1VURjMyCiAjICAgICAgIGVu
ZGlmCiAjICAgZWxpZiBkZWZpbmVkIF9fVUNTMl9fCi0jICAgICAgIGlmIChfX09TMzkwX18gfHwg
X19PUzQwMF9fKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikKKyMgICAgICAgaWYgKFVfUEZfT1Mz
OTAgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfT1M0MDApICYmIChVX1NJWkVP
Rl9XQ0hBUl9UPT0yKQogIyAgICAgICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMTYKICMgICAg
ICAgZW5kaWYKLSMgICBlbGlmIGRlZmluZWQgX19VQ1M0X18KKyMgICBlbGlmIGRlZmluZWQoX19V
Q1M0X18pIHx8IChVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAgJiYgZGVmaW5lZChfX1VURjMyX18p
KQogIyAgICAgICBpZiAoVV9TSVpFT0ZfV0NIQVJfVD09NCkKICMgICAgICAgICAgIGRlZmluZSBV
X1dDSEFSX0lTX1VURjMyCiAjICAgICAgIGVuZGlmCi0jICAgZWxpZiBkZWZpbmVkKFVfV0lORE9X
UykKKyMgICBlbGlmIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIHx8IChVX1NJWkVPRl9XQ0hB
Ul9UPT00ICYmIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQpCisjICAgICAgIGRlZmluZSBVX1dD
SEFSX0lTX1VURjMyCisjICAgZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKICMgICAgICAg
ZGVmaW5lIFVfV0NIQVJfSVNfVVRGMTYKICMgICBlbmRpZgogI2VuZGlmCkBAIC0yOTQsMjQgKzI1
NiwyNCBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKIAogLyoqCiAgKiBcdmFyIFVDaGFyCi0gKiBE
ZWZpbmUgVUNoYXIgdG8gYmUgd2NoYXJfdCBpZiB0aGF0IGlzIDE2IGJpdHMgd2lkZTsgYWx3YXlz
IGFzc3VtZWQgdG8gYmUgdW5zaWduZWQuCi0gKiBJZiB3Y2hhcl90IGlzIG5vdCAxNiBiaXRzIHdp
ZGUsIHRoZW4gZGVmaW5lIFVDaGFyIHRvIGJlIHVpbnQxNl90IG9yIGNoYXIxNl90IGJlY2F1c2Ug
R0NDID49NC40Ci0gKiBjYW4gaGFuZGxlIFVURjE2IHN0cmluZyBsaXRlcmFscy4KKyAqIERlZmlu
ZSBVQ2hhciB0byBiZSBVQ0hBUl9UWVBFLCBpZiB0aGF0IGlzICNkZWZpbmVkIChmb3IgZXhhbXBs
ZSwgdG8gY2hhcjE2X3QpLAorICogb3Igd2NoYXJfdCBpZiB0aGF0IGlzIDE2IGJpdHMgd2lkZTsg
YWx3YXlzIGFzc3VtZWQgdG8gYmUgdW5zaWduZWQuCisgKiBJZiBuZWl0aGVyIGlzIGF2YWlsYWJs
ZSwgdGhlbiBkZWZpbmUgVUNoYXIgdG8gYmUgdWludDE2X3QuCisgKgogICogVGhpcyBtYWtlcyB0
aGUgZGVmaW5pdGlvbiBvZiBVQ2hhciBwbGF0Zm9ybS1kZXBlbmRlbnQKICAqIGJ1dCBhbGxvd3Mg
ZGlyZWN0IHN0cmluZyB0eXBlIGNvbXBhdGliaWxpdHkgd2l0aCBwbGF0Zm9ybXMgd2l0aAogICog
MTYtYml0IHdjaGFyX3QgdHlwZXMuCiAgKgotICogQGRyYWZ0IElDVSA0LjQKKyAqIEBzdGFibGUg
SUNVIDQuNAogICovCi0KLS8qIERlZmluZSBVQ2hhciB0byBiZSBjb21wYXRpYmxlIHdpdGggd2No
YXJfdCBpZiBwb3NzaWJsZS4gKi8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0yCisjaWYgZGVmaW5l
ZChVQ0hBUl9UWVBFKQorICAgIHR5cGVkZWYgVUNIQVJfVFlQRSBVQ2hhcjsKKy8qIE5vdCAjZWxp
ZiBVX0hBVkVfQ0hBUjE2X1QgLS0gYmVjYXVzZSB0aGF0IGlzIHR5cGUtaW5jb21wYXRpYmxlIHdp
dGggcHJlLUMrKzExIGNhbGxlcnMKKyAgICB0eXBlZGVmIGNoYXIxNl90IFVDaGFyOyAgKi8KKyNl
bGlmIFVfU0laRU9GX1dDSEFSX1Q9PTIKICAgICB0eXBlZGVmIHdjaGFyX3QgVUNoYXI7Ci0jZWxp
ZiBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jaWYgZGVmaW5lZCBfR0NDXwotICAgIHR5cGVkZWYgX19D
SEFSMTZfVFlQRV9fIGNoYXIxNl90OwotI2VuZGlmCi0gICAgdHlwZWRlZiBjaGFyMTZfdCBVQ2hh
cjsKKyNlbGlmIGRlZmluZWQoX19DSEFSMTZfVFlQRV9fKQorICAgIHR5cGVkZWYgX19DSEFSMTZf
VFlQRV9fIFVDaGFyOwogI2Vsc2UKICAgICB0eXBlZGVmIHVpbnQxNl90IFVDaGFyOwogI2VuZGlm
CkBAIC0zMzUsMzkgKzI5NywyNSBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICAqLwogdHlwZWRl
ZiBpbnQzMl90IFVDaGFyMzI7CiAKLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogVV9JTkxJTkUg
YW5kIFVfQUxJR05fQ09ERSAgIFNldCBkZWZhdWx0IHZhbHVlcyBpZiB0aGVzZSBhcmUgbm90IGFs
cmVhZHkgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZC4gIERlZmlu
aXRpb25zIG5vcm1hbGx5IGFyZSBpbiAgICAgICAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwbGF0Zm9ybS5oIG9yIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUgZm9yICAgICAqLwot
LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBPUyBpbiB1c2UuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lmbmRlZiBV
X0hJREVfSU5URVJOQUxfQVBJCi0KIC8qKgotICogXGRlZiBVX0FMSUdOX0NPREUKLSAqIFRoaXMg
aXMgdXNlZCB0byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRh
cnkuCi0gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNl
IHRlc3QgcmVzdWx0cy4KLSAqIEBpbnRlcm5hbAotICovCi0jaWZuZGVmIFVfQUxJR05fQ09ERQot
IyAgIGRlZmluZSBVX0FMSUdOX0NPREUobikKLSNlbmRpZgotCi0jZW5kaWYgLyogVV9ISURFX0lO
VEVSTkFMX0FQSSAqLwotCi0vKioKLSAqIFxkZWYgVV9JTkxJTkUKLSAqIFRoaXMgaXMgdXNlZCB0
byByZXF1ZXN0IGlubGluaW5nIG9mIGEgZnVuY3Rpb24sIG9uIHBsYXRmb3JtcyBhbmQgbGFuZ3Vh
Z2VzIHdoaWNoIHN1cHBvcnQgaXQuCisgKiBUaGlzIHZhbHVlIGlzIGludGVuZGVkIGZvciBzZW50
aW5lbCB2YWx1ZXMgZm9yIEFQSXMgdGhhdAorICogKHRha2Ugb3IpIHJldHVybiBzaW5nbGUgY29k
ZSBwb2ludHMgKFVDaGFyMzIpLgorICogSXQgaXMgb3V0c2lkZSBvZiB0aGUgVW5pY29kZSBjb2Rl
IHBvaW50IHJhbmdlIDAuLjB4MTBmZmZmLgorICogCisgKiBGb3IgZXhhbXBsZSwgYSAiZG9uZSIg
b3IgImVycm9yIiB2YWx1ZSBpbiBhIG5ldyBBUEkKKyAqIGNvdWxkIGJlIGluZGljYXRlZCB3aXRo
IFVfU0VOVElORUwuCisgKgorICogSUNVIEFQSXMgZGVzaWduZWQgYmVmb3JlIElDVSAyLjQgdXN1
YWxseSBkZWZpbmUgc2VydmljZS1zcGVjaWZpYyAiZG9uZSIKKyAqIHZhbHVlcywgbW9zdGx5IDB4
ZmZmZi4KKyAqIFRob3NlIG1heSBuZWVkIHRvIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbQorICogYWN0
dWFsIFUrZmZmZiB0ZXh0IGNvbnRlbnRzIGJ5IGNhbGxpbmcgZnVuY3Rpb25zIGxpa2UKKyAqIENo
YXJhY3Rlckl0ZXJhdG9yOjpoYXNOZXh0KCkgb3IgVW5pY29kZVN0cmluZzo6bGVuZ3RoKCkuCisg
KgorICogQHJldHVybiAtMQorICogQHNlZSBVQ2hhcjMyCisgKiBAc3RhYmxlIElDVSAyLjQKICAq
LwotIAotI2lmbmRlZiBVX0lOTElORQotIyAgIGlmZGVmIFhQX0NQTFVTUExVUwotIyAgICAgICBk
ZWZpbmUgVV9JTkxJTkUgaW5saW5lCi0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9JTkxJTkUK
LSMgICBlbmRpZgotI2VuZGlmCisjZGVmaW5lIFVfU0VOVElORUwgKC0xKQogCiAjaW5jbHVkZSAi
dW5pY29kZS91cmVuYW1lLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91
bmljb2RlL3Vub3JtMi5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdW5vcm0yLmgK
aW5kZXggYTUyMmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5ZGI0YTJhMmYxYy4uNzE1MmZjMTA5
NDY2ZDA3YzUwYmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvaWN1L3VuaWNvZGUvdW5vcm0yLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3Vu
aWNvZGUvdW5vcm0yLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOSw2ICsxMTksNzYgQEAg
dHlwZWRlZiBzdHJ1Y3QgVU5vcm1hbGl6ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0eXBlZGVm
IGZvciBzdHJ1Y3QgVU5vcm1hbGl6ZXIKICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAK
IC8qKgorICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkMg
bm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMi
LCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJs
ZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAg
ICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVu
Y3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9y
IFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBm
dW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1
cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJ
Q1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9y
bTJfZ2V0TkZDSW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0
dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFsaXphdGlv
bi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfREVD
T01QT1NFLCBwRXJyb3JDb2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRv
biBpbnN0YW5jZS4gRG8gbm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5k
YXJkIElDVSBlcnJvciBjb2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAg
ICAgICBwYXNzIHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1
cm5zCisgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJF
KCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNo
YWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVx
dWVzdGVkIE5vcm1hbGl6ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICov
CitVX1NUQUJMRSBjb25zdCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORkRJ
bnN0YW5jZShVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5v
cm1hbGl6ZXIyIGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4KKyAqIFNh
bWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBPU0UsIHBF
cnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNl
LiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVy
cm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3Mg
dGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAg
ICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRw
dXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChT
ZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9y
bWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxF
IGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0YW5jZShV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIy
IGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5v
cm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVycm9yQ29k
ZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5v
dCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29k
ZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9T
VUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAg
ICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1
c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2Vy
IEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVy
MiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3Qg
VU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFu
Y2UgZm9yIFVuaWNvZGUgTkZLQ19DYXNlZm9sZCBub3JtYWxpemF0aW9uLgorICogU2FtZSBhcyB1
bm9ybTJfZ2V0SW5zdGFuY2UoTlVMTCwgIm5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9y
Q29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERv
IG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3Ig
Y29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUg
VV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAg
ICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBv
ciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBV
c2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxp
emVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29u
c3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFu
Y2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVOb3JtYWxp
emVyMiBpbnN0YW5jZSB3aGljaCB1c2VzIHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAgKiAocGFj
a2FnZU5hbWUvbmFtZSBzaW1pbGFyIHRvIHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJlc19vcGVu
KCkvUmVzb3VyY2VCdW5kbGUpCiAgKiBhbmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21wb3NlcyB0
ZXh0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMwLDExIEBA
IHVub3JtMl9hcHBlbmQoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21wb3NpdGlv
biBtYXBwaW5nIG9mIGMuIEVxdWl2YWxlbnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJpbmcoYykp
Ci0gKiBvbiBhIFVOT1JNMl9ERUNPTVBPU0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBidXQgbXVj
aCBmYXN0ZXIuCisgKiBHZXRzIHRoZSBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4KKyAqIFJv
dWdobHkgZXF1aXZhbGVudCB0byBub3JtYWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2YgYworICog
b24gYSBVTk9STTJfREVDT01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11Y2ggZmFz
dGVyLCBhbmQgZXhjZXB0IHRoYXQgdGhpcyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5lZ2F0aXZl
IHZhbHVlIGFuZCBkb2VzIG5vdCB3cml0ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5vdCBoYXZl
IGEgZGVjb21wb3NpdGlvbiBtYXBwaW5nIGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgogICogVGhp
cyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIy
LgogICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFtIGMgY29k
ZSBwb2ludApAQCAtMjczLDE0ICszNDYsNzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBVTm9ybWFs
aXplcjIgKm5vcm0yLAogICogICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZv
ciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJl
dHVybiB0aGUgbm9uLW5lZ2F0aXZlIGxlbmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwgaWYgdGhl
cmUgaXMgb25lOyBvdGhlcndpc2UgYSBuZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElDVSA0LjYK
KyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdW5vcm0yX2dldERlY29tcG9zaXRpb24oY29uc3QgVU5v
cm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNo
YXIgKmRlY29tcG9zaXRpb24sIGludDMyX3QgY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSByYXcgZGVj
b21wb3NpdGlvbiBtYXBwaW5nIG9mIGMuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB1
bm9ybTJfZ2V0RGVjb21wb3NpdGlvbigpIGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQorICogcmF3
IGRlY29tcG9zaXRpb24gbWFwcGluZyBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEudHh0IG9y
CisgKiAoZm9yIGN1c3RvbSBkYXRhKSBpbiB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNzZWQgYnkg
dGhlIGdlbm5vcm0yIHRvb2wuCisgKiBCeSBjb250cmFzdCwgdW5vcm0yX2dldERlY29tcG9zaXRp
b24oKSByZXR1cm5zIHRoZSBwcm9jZXNzZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBvc2VkIHZl
cnNpb24gb2YgdGhpcyBtYXBwaW5nLgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5G
S0MgTm9ybWFsaXplcjIgaW5zdGFuY2UsCisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbigp
IHJldHVybnMgdGhlIFVuaWNvZGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJvcGVydHku
CisgKgorICogV2hlbiB1c2VkIG9uIGEgc3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGluc3RhbmNl
LAorICogaXQgcmV0dXJucyB0aGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYgdGhlIERl
Y29tcG9zaXRpb25fVHlwZSAoZHQpIGlzIENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRoaXMgY2Fz
ZSwgdGhlIHJlc3VsdCBjb250YWlucyBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50cyAoPTEu
LjQgVUNoYXJzKS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9mIHRoZSBt
b2RlIG9mIHRoZSBVTm9ybWFsaXplcjIuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGlu
c3RhbmNlCisgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiBT
dHJpbmcgYnVmZmVyIHdoaWNoIHdpbGwgYmUgc2V0IHRvIGMncworICogICAgICAgICAgICAgICAg
ICAgICAgcmF3IGRlY29tcG9zaXRpb24gbWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgorICogQHBh
cmFtIGNhcGFjaXR5IG51bWJlciBvZiBVQ2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBkZWNv
bXBvc2l0aW9uCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4g
SXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VD
Q0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAg
ICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVz
ZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2Vy
IEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGgg
b2YgYydzIHJhdyBkZWNvbXBvc2l0aW9uLCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSBhIG5l
Z2F0aXZlIHZhbHVlCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpu
b3JtMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29t
cG9zaXRpb24sIGludDMyX3QgY2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lzZSBjb21w
b3NpdGlvbiBvZiBhICYgYiBhbmQgcmV0dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJlIGlzIG9u
ZS4KKyAqCisgKiBSZXR1cm5zIGEgY29tcG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlmIGMgaGFz
IGEgdHdvLXdheSBtYXBwaW5nIHRvIGErYi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFs
aXphdGlvbiwgdGhpcyBtZWFucyB0aGF0CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0
aW9uIHRvIGErYgorICogYW5kIGMgZG9lcyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3NpdGlvbl9F
eGNsdXNpb24gcHJvcGVydHkuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBv
ZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxp
emVyMiBpbnN0YW5jZQorICogQHBhcmFtIGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVyKSBjb2Rl
IHBvaW50LgorICogQHBhcmFtIGIgQW5vdGhlciBjb2RlIHBvaW50LgorICogQHJldHVybiBUaGUg
bm9uLW5lZ2F0aXZlIGNvbXBvc2l0ZSBjb2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3
aXNlIGEgbmVnYXRpdmUgdmFsdWUuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBV
Q2hhcjMyIFVfRVhQT1JUMgordW5vcm0yX2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxpemVyMiAq
bm9ybTIsIFVDaGFyMzIgYSwgVUNoYXIzMiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBjb21iaW5p
bmcgY2xhc3Mgb2YgYy4KKyAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMAor
ICogYnV0IGFsbCBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmljb2RlIENh
bm9uaWNhbF9Db21iaW5pbmdfQ2xhc3MgdmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6
ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMncyBjb21i
aW5pbmcgY2xhc3MKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4X3QgVV9F
WFBPUlQyCit1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIyICpub3Jt
MiwgVUNoYXIzMiBjKTsKKworLyoqCiAgKiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6
ZWQuCiAgKiBJbnRlcm5hbGx5LCBpbiBjYXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygpIG1ldGhv
ZCB3b3VsZCByZXR1cm4gIm1heWJlIgogICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUgZm9yIHRo
ZSB0d28gQ09NUE9TRSBtb2RlcykgdGhpcyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL3VyZW5hbWUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmlj
b2RlL3VyZW5hbWUuaAppbmRleCA0NjhiZGJkMGY0NjkyNGRjMmVlOTMzNzQwOGU4NjcyYTJlODY3
YTQ5Li42YjFmNDkwOTg3NTA2OWI0ZDlmZWVmZGQ3NDgzZjVhMDNmYzUwNzVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvaWN1L3VuaWNvZGUvdXJlbmFtZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC05LDcg
KzksNyBAQAogKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQogKiAgIGluZGVudGF0aW9uOjQK
ICoKLSogICBDcmVhdGVkIGJ5OiBQZXJsIHNjcmlwdCB3cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5z
dGVpbgorKiAgIENyZWF0ZWQgYnk6IFBlcmwgc2NyaXB0IHRvb2xzL2dlbnJlbi5wbCB3cml0dGVu
IGJ5IFZsYWRpbWlyIFdlaW5zdGVpbgogKgogKiAgQ29udGFpbnMgZGF0YSBmb3IgcmVuYW1pbmcg
SUNVIGV4cG9ydHMuCiAqICBHZXRzIGluY2x1ZGVkIGJ5IHVtYWNoaW5lLmgKQEAgLTIxLDkgKzIx
LDEzIEBACiAjaWZuZGVmIFVSRU5BTUVfSAogI2RlZmluZSBVUkVOQU1FX0gKIAotLyogVW5jb21t
ZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBkaXNhYmxlIHJlbmFtaW5nIG9uIHBsYXRmb3Jtcwot
ICAgdGhhdCBkbyBub3QgdXNlIEF1dG9jb25mLiAqLwotLyogI2RlZmluZSBVX0RJU0FCTEVfUkVO
QU1JTkcgMSAqLworLyogVV9ESVNBQkxFX1JFTkFNSU5HIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBm
b2xsb3dpbmcgd2F5czoKKyAqICAgLSB3aGVuIHJ1bm5pbmcgY29uZmlndXJlLCBlLmcuCisgKiAg
ICAgICAgcnVuQ29uZmlndXJlSUNVIExpbnV4IC0tZGlzYWJsZS1yZW5hbWluZworICogICAtIGJ5
IGNoYW5naW5nIHRoZSBkZWZhdWx0IHNldHRpbmcgb2YgVV9ESVNBQkxFX1JFTkFNSU5HIGluIHVj
b25maWcuaAorICovCisKKyNpbmNsdWRlICJ1bmljb2RlL3Vjb25maWcuaCIKIAogI2lmICFVX0RJ
U0FCTEVfUkVOQU1JTkcKIApAQCAtMzEsNiArMzUsNyBAQAogICAgdGhlIHBsYXRmb3JtIGEgY2hh
bmNlIHRvIGRlZmluZSBpdCBmaXJzdC4KICAgIE5vcm1hbGx5IChpZiB1dHlwZXMuaCBvciB1bWFj
aGluZS5oIHdhcyBpbmNsdWRlZCBmaXJzdCkgdGhpcyB3aWxsIG5vdCBiZSBuZWNlc3NhcnkgYXMg
aXQgd2lsbCBhbHJlYWR5IGJlIGRlZmluZWQuCiAgKi8KKwogI2lmbmRlZiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUKICNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjZW5kaWYKQEAgLTQ4
LDE0ICs1Myw5IEBACiAKIC8qIEMgZXhwb3J0cyByZW5hbWluZyBkYXRhICovCiAKLSNkZWZpbmUg
REVDUE9XRVJTIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShERUNQT1dFUlMpCi0jZGVmaW5lIERF
Q1NUSUNLWVRBQiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoREVDU1RJQ0tZVEFCKQotI2RlZmlu
ZSBMTm5uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMTm5uKQogI2RlZmluZSBUX0NTdHJpbmdf
aW50NjRUb1N0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX2ludDY0VG9T
dHJpbmcpCiAjZGVmaW5lIFRfQ1N0cmluZ19pbnRlZ2VyVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRfQ1N0cmluZ19pbnRlZ2VyVG9TdHJpbmcpCi0jZGVmaW5lIFRfQ1N0cmluZ19z
dHJpY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NTdHJpbmdfc3RyaWNtcCkKICNkZWZp
bmUgVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9D
U3RyaW5nX3N0cmluZ1RvSW50ZWdlcikKLSNkZWZpbmUgVF9DU3RyaW5nX3N0cm5pY21wIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShUX0NTdHJpbmdfc3RybmljbXApCiAjZGVmaW5lIFRfQ1N0cmlu
Z190b0xvd2VyQ2FzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3RvTG93ZXJD
YXNlKQogI2RlZmluZSBUX0NTdHJpbmdfdG9VcHBlckNhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFRfQ1N0cmluZ190b1VwcGVyQ2FzZSkKICNkZWZpbmUgVUNOVl9GUk9NX1VfQ0FMTEJBQ0tf
RVNDQVBFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVQ05WX0ZST01fVV9DQUxMQkFDS19FU0NB
UEUpCkBAIC03NSw2ICs3NSw3IEBACiAjZGVmaW5lIF9BU0NJSURhdGEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKF9BU0NJSURhdGEpCiAjZGVmaW5lIF9Cb2N1MURhdGEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKF9Cb2N1MURhdGEpCiAjZGVmaW5lIF9DRVNVOERhdGEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKF9DRVNVOERhdGEpCisjZGVmaW5lIF9Db21wb3VuZFRleHREYXRhIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShfQ29tcG91bmRUZXh0RGF0YSkKICNkZWZpbmUgX0haRGF0YSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoX0haRGF0YSkKICNkZWZpbmUgX0lNQVBEYXRhIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShfSU1BUERhdGEpCiAjZGVmaW5lIF9JU0NJSURhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKF9JU0NJSURhdGEpCkBAIC0xMDIsMjEgKzEwMyw4IEBACiAjZGVmaW5l
IF9VVEYzMkxFRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX1VURjMyTEVEYXRhKQogI2Rl
ZmluZSBfVVRGN0RhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9VVEY3RGF0YSkKICNkZWZp
bmUgX1VURjhEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfVVRGOERhdGEpCi0jZGVmaW5l
IGJtc19jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX2Nsb3NlKQotI2RlZmluZSBi
bXNfZW1wdHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19lbXB0eSkKLSNkZWZpbmUgYm1z
X2dldERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19nZXREYXRhKQotI2RlZmluZSBi
bXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX29wZW4pCi0jZGVmaW5lIGJtc19z
ZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19zZWFyY2gpCi0jZGVmaW5lIGJtc19z
ZXRUYXJnZXRTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19zZXRUYXJnZXRTdHJp
bmcpCi0jZGVmaW5lIGJ1aWxkV1NDb25mdXNhYmxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoYnVpbGRXU0NvbmZ1c2FibGVEYXRhKQogI2RlZmluZSBjbWVtb3J5X2NsZWFudXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKGNtZW1vcnlfY2xlYW51cCkKICNkZWZpbmUgY21lbW9yeV9pblVz
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY21lbW9yeV9pblVzZSkKLSNkZWZpbmUgZDJ1dGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGQydXRhYmxlKQotI2RlZmluZSBkZWxldGVDRUxp
c3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNFTGlzdCkKLSNkZWZpbmUgZGVsZXRl
Q2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNoYXJzKQotI2RlZmluZSBkZWxl
dGVDb2xsRGF0YUNhY2hlRW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNvbGxE
YXRhQ2FjaGVFbnRyeSkKLSNkZWZpbmUgZGVsZXRlU3RyaW5nTGlzdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoZGVsZXRlU3RyaW5nTGlzdCkKLSNkZWZpbmUgZGVsZXRlVW5pY29kZVN0cmluZ0tl
eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlVW5pY29kZVN0cmluZ0tleSkKICNkZWZp
bmUgaXpydWxlX2Nsb25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVfY2xvbmUpCiAj
ZGVmaW5lIGl6cnVsZV9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Nsb3Nl
KQogI2RlZmluZSBpenJ1bGVfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVf
ZXF1YWxzKQpAQCAtMjEyLDggKzIwMCw2IEBACiAjZGVmaW5lIHJlc19sb2FkIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShyZXNfbG9hZCkKICNkZWZpbmUgcmVzX3JlYWQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHJlc19yZWFkKQogI2RlZmluZSByZXNfdW5sb2FkIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShyZXNfdW5sb2FkKQotI2RlZmluZSB0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJh
dG9yKQotI2RlZmluZSB0cmllZGljdF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh0cmll
ZGljdF9zd2FwKQogI2RlZmluZSB1X1VDaGFyc1RvQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfVUNoYXJzVG9DaGFycykKICNkZWZpbmUgdV9hdXN0cmNweSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9hdXN0cmNweSkKICNkZWZpbmUgdV9hdXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfYXVzdHJuY3B5KQpAQCAtMjM5LDYgKzIyNSw3IEBACiAjZGVmaW5lIHVfZmVv
ZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZW9mKQogI2RlZmluZSB1X2ZmbHVzaCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZmx1c2gpCiAjZGVmaW5lIHVfZmdldENvbnZlcnRlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0Q29udmVydGVyKQorI2RlZmluZSB1X2ZnZXRO
dW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldE51bWJlckZvcm1hdCkK
ICNkZWZpbmUgdV9mZ2V0YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0YykKICNkZWZp
bmUgdV9mZ2V0Y29kZXBhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGNvZGVwYWdl
KQogI2RlZmluZSB1X2ZnZXRjeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0Y3gpCkBA
IC0yNjcsNiArMjU0LDcgQEAKICNkZWZpbmUgdV9mc2V0dHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfZnNldHRyYW5zbGl0ZXJhdG9yKQogI2RlZmluZSB1X2ZzdHJvcGVu
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZzdHJvcGVuKQogI2RlZmluZSB1X2Z1bmdldGMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnVuZ2V0YykKKyNkZWZpbmUgdV9nZXRCaWRpUGFp
cmVkQnJhY2tldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRCaWRpUGFpcmVkQnJhY2tl
dCkKICNkZWZpbmUgdV9nZXRDb21iaW5pbmdDbGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9nZXRDb21iaW5pbmdDbGFzcykKICNkZWZpbmUgdV9nZXREYXRhRGlyZWN0b3J5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1X2dldERhdGFEaXJlY3RvcnkpCiAjZGVmaW5lIHVfZ2V0RGF0YVZl
cnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0RGF0YVZlcnNpb24pCkBAIC0yNzYs
NiArMjY0LDcgQEAKICNkZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eU1heFZhbHVlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2dldEludFByb3BlcnR5TWF4VmFsdWUpCiAjZGVmaW5lIHVfZ2V0SW50
UHJvcGVydHlNaW5WYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0
eU1pblZhbHVlKQogI2RlZmluZSB1X2dldEludFByb3BlcnR5VmFsdWUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlWYWx1ZSkKKyNkZWZpbmUgdV9nZXRNYWluUHJvcGVy
dGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRNYWluUHJvcGVydGllcykKICNkZWZp
bmUgdV9nZXROdW1lcmljVmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0TnVtZXJp
Y1ZhbHVlKQogI2RlZmluZSB1X2dldFByb3BlcnR5RW51bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9nZXRQcm9wZXJ0eUVudW0pCiAjZGVmaW5lIHVfZ2V0UHJvcGVydHlOYW1lIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1X2dldFByb3BlcnR5TmFtZSkKQEAgLTI4NCw5ICsyNzMsOSBAQAog
I2RlZmluZSB1X2dldFVuaWNvZGVQcm9wZXJ0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2dldFVuaWNvZGVQcm9wZXJ0aWVzKQogI2RlZmluZSB1X2dldFVuaWNvZGVWZXJzaW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFVuaWNvZGVWZXJzaW9uKQogI2RlZmluZSB1X2dldFZl
cnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0VmVyc2lvbikKKyNkZWZpbmUgdV9n
ZXRfc3Rkb3V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldF9zdGRvdXQpCiAjZGVmaW5l
IHVfaGFzQmluYXJ5UHJvcGVydHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaGFzQmluYXJ5
UHJvcGVydHkpCiAjZGVmaW5lIHVfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pbml0
KQotI2RlZmluZSB1X2lzRGF0YU9sZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzRGF0
YU9sZGVyKQogI2RlZmluZSB1X2lzSURJZ25vcmFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVfaXNJRElnbm9yYWJsZSkKICNkZWZpbmUgdV9pc0lEUGFydCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9pc0lEUGFydCkKICNkZWZpbmUgdV9pc0lEU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVfaXNJRFN0YXJ0KQpAQCAtMzE4LDcgKzMwNyw2IEBACiAjZGVmaW5lIHVfaXN0aXRs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3RpdGxlKQogI2RlZmluZSB1X2lzdXBwZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXN1cHBlcikKICNkZWZpbmUgdV9pc3hkaWdpdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3hkaWdpdCkKLSNkZWZpbmUgdV9sZW5ndGhPZklk
ZW50aWNhbExldmVsUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xlbmd0aE9mSWRlbnRp
Y2FsTGV2ZWxSdW4pCiAjZGVmaW5lIHVfbG9jYnVuZF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9sb2NidW5kX2Nsb3NlKQogI2RlZmluZSB1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0KQogI2Rl
ZmluZSB1X2xvY2J1bmRfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2lu
aXQpCkBAIC0zMzQsNyArMzIyLDkgQEAKICNkZWZpbmUgdV9tZW1zZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfbWVtc2V0KQogI2RlZmluZSB1X3BhcnNlTWVzc2FnZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodV9wYXJzZU1lc3NhZ2UpCiAjZGVmaW5lIHVfcGFyc2VNZXNzYWdlV2l0aEVy
cm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3BhcnNlTWVzc2FnZVdpdGhFcnJvcikKKyNk
ZWZpbmUgdV9wcmludGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmKQogI2RlZmlu
ZSB1X3ByaW50Zl9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wcmludGZfcGFyc2Up
CisjZGVmaW5lIHVfcHJpbnRmX3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmX3Up
CiAjZGVmaW5lIHVfcmVsZWFzZURlZmF1bHRDb252ZXJ0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfcmVsZWFzZURlZmF1bHRDb252ZXJ0ZXIpCiAjZGVmaW5lIHVfc2NhbmZfcGFyc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfc2NhbmZfcGFyc2UpCiAjZGVmaW5lIHVfc2V0QXRvbWlj
SW5jRGVjRnVuY3Rpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3NldEF0b21pY0luY0Rl
Y0Z1bmN0aW9ucykKQEAgLTQ0Niw3ICs0MzYsMTAgQEAKICNkZWZpbmUgdWJpZGlfZ2V0TWF4VmFs
dWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldE1heFZhbHVlKQogI2RlZmluZSB1
YmlkaV9nZXRNZW1vcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldE1lbW9yeSkK
ICNkZWZpbmUgdWJpZGlfZ2V0TWlycm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9n
ZXRNaXJyb3IpCisjZGVmaW5lIHViaWRpX2dldFBhaXJlZEJyYWNrZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHViaWRpX2dldFBhaXJlZEJyYWNrZXQpCisjZGVmaW5lIHViaWRpX2dldFBhaXJl
ZEJyYWNrZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYWlyZWRCcmFj
a2V0VHlwZSkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYUxldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1YmlkaV9nZXRQYXJhTGV2ZWwpCisjZGVmaW5lIHViaWRpX2dldFBhcmFMZXZlbEF0SW5k
ZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFMZXZlbEF0SW5kZXgpCiAj
ZGVmaW5lIHViaWRpX2dldFBhcmFncmFwaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlf
Z2V0UGFyYWdyYXBoKQogI2RlZmluZSB1YmlkaV9nZXRQYXJhZ3JhcGhCeUluZGV4IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhZ3JhcGhCeUluZGV4KQogI2RlZmluZSB1Ymlk
aV9nZXRQcm9jZXNzZWRMZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBy
b2Nlc3NlZExlbmd0aCkKQEAgLTQ3MSw2ICs0NjQsNyBAQAogI2RlZmluZSB1YmlkaV9yZW9yZGVy
TG9naWNhbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfcmVvcmRlckxvZ2ljYWwpCiAj
ZGVmaW5lIHViaWRpX3Jlb3JkZXJWaXN1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRp
X3Jlb3JkZXJWaXN1YWwpCiAjZGVmaW5lIHViaWRpX3NldENsYXNzQ2FsbGJhY2sgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHViaWRpX3NldENsYXNzQ2FsbGJhY2spCisjZGVmaW5lIHViaWRpX3Nl
dENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldENvbnRleHQpCiAjZGVm
aW5lIHViaWRpX3NldEludmVyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldElu
dmVyc2UpCiAjZGVmaW5lIHViaWRpX3NldExpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVi
aWRpX3NldExpbmUpCiAjZGVmaW5lIHViaWRpX3NldFBhcmEgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHViaWRpX3NldFBhcmEpCkBAIC00OTUsNiArNDg5LDcgQEAKICNkZWZpbmUgdWJya19vcGVu
UnVsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfb3BlblJ1bGVzKQogI2RlZmluZSB1
YnJrX3ByZWNlZGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19wcmVjZWRpbmcpCiAj
ZGVmaW5lIHVicmtfcHJldmlvdXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcHJldmlv
dXMpCisjZGVmaW5lIHVicmtfcmVmcmVzaFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
YnJrX3JlZnJlc2hVVGV4dCkKICNkZWZpbmUgdWJya19zYWZlQ2xvbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVicmtfc2FmZUNsb25lKQogI2RlZmluZSB1YnJrX3NldFRleHQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVicmtfc2V0VGV4dCkKICNkZWZpbmUgdWJya19zZXRVVGV4dCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zZXRVVGV4dCkKQEAgLTUxMyw2ICs1MDgsNyBAQAog
I2RlZmluZSB1Y2FsX2dldERTVFNhdmluZ3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxf
Z2V0RFNUU2F2aW5ncykKICNkZWZpbmUgdWNhbF9nZXREYXlPZldlZWtUeXBlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y2FsX2dldERheU9mV2Vla1R5cGUpCiAjZGVmaW5lIHVjYWxfZ2V0RGVm
YXVsdFRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERlZmF1bHRUaW1l
Wm9uZSkKKyNkZWZpbmUgdWNhbF9nZXRGaWVsZERpZmZlcmVuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfZ2V0RmllbGREaWZmZXJlbmNlKQogI2RlZmluZSB1Y2FsX2dldEdyZWdvcmlh
bkNoYW5nZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRHcmVnb3JpYW5DaGFuZ2Up
CiAjZGVmaW5lIHVjYWxfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlKQogI2RlZmluZSB1Y2FsX2dl
dExpbWl0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldExpbWl0KQpAQCAtNTIxLDEz
ICs1MTcsMTggQEAKICNkZWZpbmUgdWNhbF9nZXROb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYWxfZ2V0Tm93KQogI2RlZmluZSB1Y2FsX2dldFRaRGF0YVZlcnNpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYWxfZ2V0VFpEYXRhVmVyc2lvbikKICNkZWZpbmUgdWNhbF9nZXRUaW1l
Wm9uZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25l
RGlzcGxheU5hbWUpCisjZGVmaW5lIHVjYWxfZ2V0VGltZVpvbmVJRCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZUlEKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lSURG
b3JXaW5kb3dzSUQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVJREZv
cldpbmRvd3NJRCkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lVHJhbnNpdGlvbkRhdGUpCiAjZGVm
aW5lIHVjYWxfZ2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUeXBlKQog
I2RlZmluZSB1Y2FsX2dldFdlZWtlbmRUcmFuc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y2FsX2dldFdlZWtlbmRUcmFuc2l0aW9uKQorI2RlZmluZSB1Y2FsX2dldFdpbmRvd3NUaW1l
Wm9uZUlEIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFdpbmRvd3NUaW1lWm9uZUlE
KQogI2RlZmluZSB1Y2FsX2luRGF5bGlnaHRUaW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX2luRGF5bGlnaHRUaW1lKQogI2RlZmluZSB1Y2FsX2lzU2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y2FsX2lzU2V0KQogI2RlZmluZSB1Y2FsX2lzV2Vla2VuZCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhbF9pc1dlZWtlbmQpCiAjZGVmaW5lIHVjYWxfb3BlbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuKQogI2RlZmluZSB1Y2FsX29wZW5Db3VudHJ5VGltZVpv
bmVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW5Db3VudHJ5VGltZVpvbmVzKQor
I2RlZmluZSB1Y2FsX29wZW5UaW1lWm9uZUlERW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbikKICNkZWZpbmUgdWNhbF9vcGVu
VGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW5UaW1lWm9uZXMpCiAj
ZGVmaW5lIHVjYWxfcm9sbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9yb2xsKQogI2Rl
ZmluZSB1Y2FsX3NldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9zZXQpCkBAIC01NjAs
NiArNTYxLDggQEAKICNkZWZpbmUgdWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvcikKICNkZWZpbmUgdWNhc2Vt
YXBfZ2V0TG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRMb2NhbGUp
CiAjZGVmaW5lIHVjYXNlbWFwX2dldE9wdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YXNlbWFwX2dldE9wdGlvbnMpCisjZGVmaW5lIHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUpCisj
ZGVmaW5lIHVjYXNlbWFwX21hcFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFw
X21hcFVURjgpCiAjZGVmaW5lIHVjYXNlbWFwX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYXNlbWFwX29wZW4pCiAjZGVmaW5lIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IpCiAjZGVmaW5lIHVj
YXNlbWFwX3NldExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfc2V0TG9j
YWxlKQpAQCAtNTY5LDExICs1NzIsNiBAQAogI2RlZmluZSB1Y2FzZW1hcF91dGY4VG9Mb3dlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRvTG93ZXIpCiAjZGVmaW5lIHVj
YXNlbWFwX3V0ZjhUb1RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF91dGY4
VG9UaXRsZSkKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYXNlbWFwX3V0ZjhUb1VwcGVyKQotI2RlZmluZSB1Y2RfY2xvc2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjZF9jbG9zZSkKLSNkZWZpbmUgdWNkX2ZsdXNoQ2FjaGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjZF9mbHVzaENhY2hlKQotI2RlZmluZSB1Y2RfZnJlZUNhY2hl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2RfZnJlZUNhY2hlKQotI2RlZmluZSB1Y2RfZ2V0
Q29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9nZXRDb2xsYXRvcikKLSNkZWZp
bmUgdWNkX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9vcGVuKQogI2RlZmluZSB1
Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNoYXJfYWRk
UHJvcGVydHlTdGFydHMpCiAjZGVmaW5lIHVjaGFyX3N3YXBOYW1lcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNoYXJfc3dhcE5hbWVzKQogI2RlZmluZSB1Y2xuX2NsZWFudXBPbmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjbG5fY2xlYW51cE9uZSkKQEAgLTY1Niw2ICs2NTQsNyBAQAog
I2RlZmluZSB1Y252X2lvX3N0cmlwQVNDSUlGb3JDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y252X2lvX3N0cmlwQVNDSUlGb3JDb21wYXJlKQogI2RlZmluZSB1Y252X2lvX3N0cmlw
RUJDRElDRm9yQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pb19zdHJpcEVC
Q0RJQ0ZvckNvbXBhcmUpCiAjZGVmaW5lIHVjbnZfaXNBbWJpZ3VvdXMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjbnZfaXNBbWJpZ3VvdXMpCisjZGVmaW5lIHVjbnZfaXNGaXhlZFdpZHRoIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2lzRml4ZWRXaWR0aCkKICNkZWZpbmUgdWNudl9s
b2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2xvYWQpCiAjZGVmaW5lIHVjbnZfbG9h
ZFNoYXJlZERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfbG9hZFNoYXJlZERhdGEp
CiAjZGVmaW5lIHVjbnZfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9vcGVuKQpA
QCAtNjk3LDcgKzY5Niw2IEBACiAjZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjb2xfY2FsY1NvcnRLZXkpCiAjZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXlT
aW1wbGVUZXJ0aWFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jYWxjU29ydEtleVNp
bXBsZVRlcnRpYXJ5KQogI2RlZmluZSB1Y29sX2Nsb25lQmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y29sX2Nsb25lQmluYXJ5KQotI2RlZmluZSB1Y29sX2Nsb25lUnVsZURhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvbmVSdWxlRGF0YSkKICNkZWZpbmUgdWNvbF9j
bG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9zZSkKICNkZWZpbmUgdWNvbF9j
bG9zZUVsZW1lbnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb3NlRWxlbWVudHMp
CiAjZGVmaW5lIHVjb2xfY291bnRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfY291bnRBdmFpbGFibGUpCkBAIC03MTQsOSArNzEyLDExIEBACiAjZGVmaW5lIHVjb2xfZ2V0
QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEF2YWlsYWJsZSkKICNk
ZWZpbmUgdWNvbF9nZXRCb3VuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRCb3Vu
ZCkKICNkZWZpbmUgdWNvbF9nZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9nZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZSkKKyNkZWZpbmUgdWNvbF9nZXRD
b2xsYXRpb25LZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Q29sbGF0aW9uS2V5
KQogI2RlZmluZSB1Y29sX2dldENvbnRyYWN0aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRDb250cmFjdGlvbnMpCiAjZGVmaW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25zQW5kRXhw
YW5zaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnNBbmRF
eHBhbnNpb25zKQogI2RlZmluZSB1Y29sX2dldERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y29sX2dldERpc3BsYXlOYW1lKQorI2RlZmluZSB1Y29sX2dldEVxdWl2YWxlbnRS
ZW9yZGVyQ29kZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RXF1aXZhbGVudFJl
b3JkZXJDb2RlcykKICNkZWZpbmUgdWNvbF9nZXRGaXJzdENFIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y29sX2dldEZpcnN0Q0UpCiAjZGVmaW5lIHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxl
bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQp
CiAjZGVmaW5lIHVjb2xfZ2V0S2V5d29yZFZhbHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRLZXl3b3JkVmFsdWVzKQpAQCAtNzM1LDggKzczNSw2IEBACiAjZGVmaW5lIHVjb2xf
Z2V0UnVsZXNFeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRSdWxlc0V4KQogI2Rl
ZmluZSB1Y29sX2dldFNob3J0RGVmaW5pdGlvblN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9nZXRTaG9ydERlZmluaXRpb25TdHJpbmcpCiAjZGVmaW5lIHVjb2xfZ2V0U29ydEtl
eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5KQotI2RlZmluZSB1Y29s
X2dldFNvcnRLZXlTaXplIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXlT
aXplKQotI2RlZmluZSB1Y29sX2dldFNvcnRLZXlXaXRoQWxsb2NhdGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5V2l0aEFsbG9jYXRpb24pCiAjZGVmaW5lIHVjb2xf
Z2V0U3RyZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0U3RyZW5ndGgpCiAj
ZGVmaW5lIHVjb2xfZ2V0VGFpbG9yZWRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
Z2V0VGFpbG9yZWRTZXQpCiAjZGVmaW5lIHVjb2xfZ2V0VUNBVmVyc2lvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9nZXRVQ0FWZXJzaW9uKQpAQCAtNzg4LDYgKzc4Niw3IEBACiAjZGVm
aW5lIHVjb2xfc2V0VmFyaWFibGVUb3AgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc2V0
VmFyaWFibGVUb3ApCiAjZGVmaW5lIHVjb2xfc3RyY29sbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9zdHJjb2xsKQogI2RlZmluZSB1Y29sX3N0cmNvbGxJdGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y29sX3N0cmNvbGxJdGVyKQorI2RlZmluZSB1Y29sX3N0cmNvbGxVVEY4IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGxVVEY4KQogI2RlZmluZSB1Y29sX3N3
YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcCkKICNkZWZpbmUgdWNvbF9zd2Fw
QmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXBCaW5hcnkpCiAjZGVmaW5l
IHVjb2xfc3dhcEludmVyc2VVQ0EgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcElu
dmVyc2VVQ0EpCkBAIC04MDUsMTIgKzgwNCwxNCBAQAogI2RlZmluZSB1Y3NkZXRfZW5hYmxlSW5w
dXRGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9lbmFibGVJbnB1dEZpbHRl
cikKICNkZWZpbmUgdWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cykKICNkZWZpbmUgdWNz
ZGV0X2dldENvbmZpZGVuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRDb25m
aWRlbmNlKQorI2RlZmluZSB1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzKQogI2RlZmluZSB1Y3Nk
ZXRfZ2V0TGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRMYW5ndWFn
ZSkKICNkZWZpbmUgdWNzZGV0X2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2Rl
dF9nZXROYW1lKQogI2RlZmluZSB1Y3NkZXRfZ2V0VUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y3NkZXRfZ2V0VUNoYXJzKQogI2RlZmluZSB1Y3NkZXRfaXNJbnB1dEZpbHRlckVuYWJs
ZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9pc0lucHV0RmlsdGVyRW5hYmxlZCkK
ICNkZWZpbmUgdWNzZGV0X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9vcGVu
KQogI2RlZmluZSB1Y3NkZXRfc2V0RGVjbGFyZWRFbmNvZGluZyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNzZGV0X3NldERlY2xhcmVkRW5jb2RpbmcpCisjZGVmaW5lIHVjc2RldF9zZXREZXRl
Y3RhYmxlQ2hhcnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldERldGVjdGFi
bGVDaGFyc2V0KQogI2RlZmluZSB1Y3NkZXRfc2V0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNzZGV0X3NldFRleHQpCiAjZGVmaW5lIHVjdXJyX2NvdW50Q3VycmVuY2llcyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfY291bnRDdXJyZW5jaWVzKQogI2RlZmluZSB1Y3Vycl9m
b3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2ZvckxvY2FsZSkKQEAgLTgx
OCw4ICs4MTksMTAgQEAKICNkZWZpbmUgdWN1cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMpCiAj
ZGVmaW5lIHVjdXJyX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjdXJyX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUpCiAjZGVmaW5lIHVjdXJyX2dl
dE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldE5hbWUpCisjZGVmaW5lIHVj
dXJyX2dldE51bWVyaWNDb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXROdW1l
cmljQ29kZSkKICNkZWZpbmUgdWN1cnJfZ2V0UGx1cmFsTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWN1cnJfZ2V0UGx1cmFsTmFtZSkKICNkZWZpbmUgdWN1cnJfZ2V0Um91bmRpbmdJbmNy
ZW1lbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldFJvdW5kaW5nSW5jcmVtZW50
KQorI2RlZmluZSB1Y3Vycl9pc0F2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1
cnJfaXNBdmFpbGFibGUpCiAjZGVmaW5lIHVjdXJyX29wZW5JU09DdXJyZW5jaWVzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9vcGVuSVNPQ3VycmVuY2llcykKICNkZWZpbmUgdWN1cnJf
cmVnaXN0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX3JlZ2lzdGVyKQogI2RlZmlu
ZSB1Y3Vycl91bnJlZ2lzdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl91bnJlZ2lz
dGVyKQpAQCAtODMzLDYgKzgzNiw3IEBACiAjZGVmaW5lIHVkYXRfZ2V0MkRpZ2l0WWVhclN0YXJ0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldDJEaWdpdFllYXJTdGFydCkKICNkZWZp
bmUgdWRhdF9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0QXZh
aWxhYmxlKQogI2RlZmluZSB1ZGF0X2dldENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1ZGF0X2dldENhbGVuZGFyKQorI2RlZmluZSB1ZGF0X2dldENvbnRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVkYXRfZ2V0Q29udGV4dCkKICNkZWZpbmUgdWRhdF9nZXRMb2NhbGVCeVR5
cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0TG9jYWxlQnlUeXBlKQogI2RlZmlu
ZSB1ZGF0X2dldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRO
dW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRfZ2V0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdF9nZXRTeW1ib2xzKQpAQCAtODQwLDggKzg0NCwxMCBAQAogI2RlZmluZSB1ZGF0
X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfb3BlbikKICNkZWZpbmUgdWRhdF9w
YXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9wYXJzZSkKICNkZWZpbmUgdWRhdF9w
YXJzZUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3BhcnNlQ2FsZW5kYXIp
CisjZGVmaW5lIHVkYXRfcmVnaXN0ZXJPcGVuZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRfcmVnaXN0ZXJPcGVuZXIpCiAjZGVmaW5lIHVkYXRfc2V0MkRpZ2l0WWVhclN0YXJ0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldDJEaWdpdFllYXJTdGFydCkKICNkZWZpbmUgdWRh
dF9zZXRDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRDYWxlbmRhcikK
KyNkZWZpbmUgdWRhdF9zZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3Nl
dENvbnRleHQpCiAjZGVmaW5lIHVkYXRfc2V0TGVuaWVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWRhdF9zZXRMZW5pZW50KQogI2RlZmluZSB1ZGF0X3NldE51bWJlckZvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRfc2V0
U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRTeW1ib2xzKQpAQCAtODQ5
LDYgKzg1NSw3IEBACiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGF0X3RvUGF0dGVybikKICNkZWZpbmUgdWRhdF90b1BhdHRlcm5SZWxhdGl2ZURhdGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRlKQogI2Rl
ZmluZSB1ZGF0X3RvUGF0dGVyblJlbGF0aXZlVGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWRhdF90b1BhdHRlcm5SZWxhdGl2ZVRpbWUpCisjZGVmaW5lIHVkYXRfdW5yZWdpc3Rlck9wZW5l
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF91bnJlZ2lzdGVyT3BlbmVyKQogI2RlZmlu
ZSB1ZGF0YV9jaGVja0NvbW1vbkRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2No
ZWNrQ29tbW9uRGF0YSkKICNkZWZpbmUgdWRhdGFfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkYXRhX2Nsb3NlKQogI2RlZmluZSB1ZGF0YV9jbG9zZVN3YXBwZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVkYXRhX2Nsb3NlU3dhcHBlcikKQEAgLTg5MiwxMiArODk5LDE3IEBACiAj
ZGVmaW5lIHVkYXRwZ19zZXRBcHBlbmRJdGVtTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWRhdHBnX3NldEFwcGVuZEl0ZW1OYW1lKQogI2RlZmluZSB1ZGF0cGdfc2V0RGF0ZVRpbWVGb3Jt
YXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19zZXREYXRlVGltZUZvcm1hdCkKICNk
ZWZpbmUgdWRhdHBnX3NldERlY2ltYWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19z
ZXREZWNpbWFsKQorI2RlZmluZSB1ZGljdF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZGljdF9zd2FwKQorI2RlZmluZSB1ZHRpdHZmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkdGl0dmZtdF9jbG9zZSkKKyNkZWZpbmUgdWR0aXR2Zm10X2Zvcm1hdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X2Zvcm1hdCkKKyNkZWZpbmUgdWR0aXR2Zm10X29wZW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkdGl0dmZtdF9vcGVuKQogI2RlZmluZSB1ZW51bV9j
bG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fY2xvc2UpCiAjZGVmaW5lIHVlbnVt
X2NvdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9jb3VudCkKICNkZWZpbmUgdWVu
dW1fbmV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fbmV4dCkKICNkZWZpbmUgdWVu
dW1fbmV4dERlZmF1bHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX25leHREZWZhdWx0
KQogI2RlZmluZSB1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRpb24pCiAjZGVmaW5lIHVl
bnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVl
bnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24pCisjZGVmaW5lIHVlbnVtX29wZW5VQ2hhclN0
cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3BlblVDaGFy
U3RyaW5nc0VudW1lcmF0aW9uKQogI2RlZmluZSB1ZW51bV9yZXNldCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWVudW1fcmVzZXQpCiAjZGVmaW5lIHVlbnVtX3VuZXh0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZW51bV91bmV4dCkKICNkZWZpbmUgdWVudW1fdW5leHREZWZhdWx0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91bmV4dERlZmF1bHQpCkBAIC05MDgsMzQgKzkyMCw0
OSBAQAogI2RlZmluZSB1ZmlsZV9nZXRjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZpbGVf
Z2V0Y2gpCiAjZGVmaW5lIHVmaWxlX2dldGNoMzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVm
aWxlX2dldGNoMzIpCiAjZGVmaW5lIHVmbXRfNjR0b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVmbXRfNjR0b3UpCisjZGVmaW5lIHVmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVmbXRfY2xvc2UpCiAjZGVmaW5lIHVmbXRfZGVmYXVsdENQVG9Vbmljb2RlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Zm10X2RlZmF1bHRDUFRvVW5pY29kZSkKICNkZWZpbmUgdWZtdF9kaWdp
dHZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2RpZ2l0dmFsdWUpCisjZGVmaW5l
IHVmbXRfZ2V0QXJyYXlJdGVtQnlJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9n
ZXRBcnJheUl0ZW1CeUluZGV4KQorI2RlZmluZSB1Zm10X2dldEFycmF5TGVuZ3RoIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldEFycmF5TGVuZ3RoKQorI2RlZmluZSB1Zm10X2dldERh
dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RGF0ZSkKKyNkZWZpbmUgdWZtdF9n
ZXREZWNOdW1DaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXREZWNOdW1DaGFy
cykKKyNkZWZpbmUgdWZtdF9nZXREb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRf
Z2V0RG91YmxlKQorI2RlZmluZSB1Zm10X2dldEludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Zm10X2dldEludDY0KQorI2RlZmluZSB1Zm10X2dldExvbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVmbXRfZ2V0TG9uZykKKyNkZWZpbmUgdWZtdF9nZXRPYmplY3QgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVmbXRfZ2V0T2JqZWN0KQorI2RlZmluZSB1Zm10X2dldFR5cGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0VHlwZSkKKyNkZWZpbmUgdWZtdF9nZXRVQ2hhcnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0VUNoYXJzKQorI2RlZmluZSB1Zm10X2lz
TnVtZXJpYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9pc051bWVyaWMpCiAjZGVmaW5l
IHVmbXRfaXNkaWdpdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9pc2RpZ2l0KQorI2Rl
ZmluZSB1Zm10X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfb3BlbikKICNkZWZp
bmUgdWZtdF9wdG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X3B0b3UpCiAjZGVmaW5l
IHVmbXRfdXRvNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfdXRvNjQpCiAjZGVmaW5l
IHVmbXRfdXRvcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF91dG9wKQorI2RlZmluZSB1
Z2VuZGVyX2dldEluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Z2VuZGVyX2dldElu
c3RhbmNlKQorI2RlZmluZSB1Z2VuZGVyX2dldExpc3RHZW5kZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVnZW5kZXJfZ2V0TGlzdEdlbmRlcikKICNkZWZpbmUgdWhhc2hfY2xvc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Nsb3NlKQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2Fz
ZWxlc3NVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJl
Q2FzZWxlc3NVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2hhcnMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVDaGFycykKICNkZWZpbmUgdWhhc2hfY29t
cGFyZUlDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUlDaGFycykK
ICNkZWZpbmUgdWhhc2hfY29tcGFyZUxvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNo
X2NvbXBhcmVMb25nKQorI2RlZmluZSB1aGFzaF9jb21wYXJlU2NyaXB0U2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9jb21w
YXJlVUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlVUNoYXJzKQog
I2RlZmluZSB1aGFzaF9jb21wYXJlVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWhhc2hfY29tcGFyZVVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2NvdW50IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb3VudCkKICNkZWZpbmUgdWhhc2hfZGVsZXRlSGFz
aHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9kZWxldGVIYXNodGFibGUpCi0j
ZGVmaW5lIHVoYXNoX2RlbGV0ZVVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNo
X2RlbGV0ZVVPYmplY3QpCi0jZGVmaW5lIHVoYXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcpCisjZGVmaW5lIHVo
YXNoX2RlbGV0ZVNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRl
U2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2VxdWFscykKKyNkZWZpbmUgdWhhc2hfZXF1YWxzU2NyaXB0U2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1aGFzaF9lcXVhbHNTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2ZpbmQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2ZpbmQpCi0jZGVmaW5lIHVoYXNoX2ZyZWVC
bG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZnJlZUJsb2NrKQogI2RlZmluZSB1
aGFzaF9nZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2dldCkKICNkZWZpbmUgdWhh
c2hfZ2V0aSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZ2V0aSkKICNkZWZpbmUgdWhh
c2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhh
c2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfaGFzaENoYXJzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2hh
c2hJQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hJQ2hhcnMpCiAjZGVm
aW5lIHVoYXNoX2hhc2hMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoTG9u
ZykKKyNkZWZpbmUgdWhhc2hfaGFzaFNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWhhc2hfaGFzaFNjcmlwdFNldCkKICNkZWZpbmUgdWhhc2hfaGFzaFVDaGFycyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVDaGFycykKLSNkZWZpbmUgdWhhc2hfaGFzaFVDaGFy
c04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hVQ2hhcnNOKQogI2RlZmluZSB1
aGFzaF9oYXNoVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFz
aFVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2lnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVoYXNoX2lnZXQpCiAjZGVmaW5lIHVoYXNoX2lnZXRpIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1aGFzaF9pZ2V0aSkKQEAgLTk4NSw2ICsxMDEyLDcgQEAKICNkZWZpbmUgdWl0ZXJfc2V0
VVRGMTZCRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGMTZCRSkKICNkZWZp
bmUgdWl0ZXJfc2V0VVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGOCkK
ICNkZWZpbmUgdWxkbl9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9jbG9zZSkK
KyNkZWZpbmUgdWxkbl9nZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dl
dENvbnRleHQpCiAjZGVmaW5lIHVsZG5fZ2V0RGlhbGVjdEhhbmRsaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bGRuX2dldERpYWxlY3RIYW5kbGluZykKICNkZWZpbmUgdWxkbl9nZXRMb2Nh
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fZ2V0TG9jYWxlKQogI2RlZmluZSB1bGRu
X2tleURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2tleURpc3BsYXlO
YW1lKQpAQCAtOTkyLDYgKzEwMjAsNyBAQAogI2RlZmluZSB1bGRuX2xhbmd1YWdlRGlzcGxheU5h
bWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fbGFuZ3VhZ2VEaXNwbGF5TmFtZSkKICNk
ZWZpbmUgdWxkbl9sb2NhbGVEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxk
bl9sb2NhbGVEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9vcGVuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bGRuX29wZW4pCisjZGVmaW5lIHVsZG5fb3BlbkZvckNvbnRleHQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVsZG5fb3BlbkZvckNvbnRleHQpCiAjZGVmaW5lIHVsZG5fcmVnaW9u
RGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fcmVnaW9uRGlzcGxheU5h
bWUpCiAjZGVmaW5lIHVsZG5fc2NyaXB0Q29kZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bGRuX3NjcmlwdENvZGVEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9zY3JpcHRE
aXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9zY3JpcHREaXNwbGF5TmFt
ZSkKQEAgLTEwMjgsNiArMTA1Nyw3IEBACiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheUxhbmd1YWdl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlMYW5ndWFnZSkKICNkZWZp
bmUgdWxvY19nZXREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRE
aXNwbGF5TmFtZSkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5U2NyaXB0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlTY3JpcHQpCisjZGVmaW5lIHVsb2NfZ2V0RGlzcGxh
eVNjcmlwdEluQ29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5
U2NyaXB0SW5Db250ZXh0KQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlWYXJpYW50IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlWYXJpYW50KQogI2RlZmluZSB1bG9jX2dl
dElTTzNDb3VudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldElTTzNDb3VudHJ5
KQogI2RlZmluZSB1bG9jX2dldElTTzNMYW5ndWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWxvY19nZXRJU08zTGFuZ3VhZ2UpCkBAIC0xMDc1LDE4ICsxMTA1LDIxIEBACiAjZGVmaW5lIHVt
c2dfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3RvUGF0dGVybikKICNk
ZWZpbmUgdW1zZ192Zm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3Zmb3JtYXQp
CiAjZGVmaW5lIHVtc2dfdnBhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3ZwYXJz
ZSkKLSNkZWZpbmUgdW10eF9hdG9taWNfZGVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4
X2F0b21pY19kZWMpCi0jZGVmaW5lIHVtdHhfYXRvbWljX2luYyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW10eF9hdG9taWNfaW5jKQotI2RlZmluZSB1bXR4X2NsZWFudXAgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVtdHhfY2xlYW51cCkKLSNkZWZpbmUgdW10eF9kZXN0cm95IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bXR4X2Rlc3Ryb3kpCi0jZGVmaW5lIHVtdHhfaW5pdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW10eF9pbml0KQogI2RlZmluZSB1bXR4X2xvY2sgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVtdHhfbG9jaykKICNkZWZpbmUgdW10eF91bmxvY2sgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVtdHhfdW5sb2NrKQogI2RlZmluZSB1bmlzZXRfZ2V0VW5pY29kZTMy
SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVuaXNldF9nZXRVbmljb2RlMzJJbnN0
YW5jZSkKICNkZWZpbmUgdW5vcm0yX2FwcGVuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5v
cm0yX2FwcGVuZCkKICNkZWZpbmUgdW5vcm0yX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bm9ybTJfY2xvc2UpCisjZGVmaW5lIHVub3JtMl9jb21wb3NlUGFpciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW5vcm0yX2NvbXBvc2VQYWlyKQorI2RlZmluZSB1bm9ybTJfZ2V0Q29tYmlu
aW5nQ2xhc3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRDb21iaW5pbmdDbGFz
cykKICNkZWZpbmUgdW5vcm0yX2dldERlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVub3JtMl9nZXREZWNvbXBvc2l0aW9uKQogI2RlZmluZSB1bm9ybTJfZ2V0SW5zdGFuY2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRJbnN0YW5jZSkKKyNkZWZpbmUgdW5v
cm0yX2dldE5GQ0luc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZD
SW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRORkRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW5vcm0yX2dldE5GREluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZLQ0Nh
c2Vmb2xkSW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktDQ2Fz
ZWZvbGRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0NJbnN0YW5jZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GS0NJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dl
dE5GS0RJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GS0RJbnN0
YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uKQogI2RlZmluZSB1bm9ybTJfaGFz
Qm91bmRhcnlBZnRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5
QWZ0ZXIpCiAjZGVmaW5lIHVub3JtMl9oYXNCb3VuZGFyeUJlZm9yZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5QmVmb3JlKQogI2RlZmluZSB1bm9ybTJfaXNJbmVy
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2lzSW5lcnQpCkBAIC0xMTAwLDcgKzEx
MzMsNyBAQAogI2RlZmluZSB1bm9ybV9jbG9zZUl0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtX2Nsb3NlSXRlcikKICNkZWZpbmUgdW5vcm1fY29tcGFyZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW5vcm1fY29tcGFyZSkKICNkZWZpbmUgdW5vcm1fY29uY2F0ZW5hdGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2NvbmNhdGVuYXRlKQotI2RlZmluZSB1bm9ybV9nZXRG
Q0RUcmllSW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldEZDRFRyaWVJbmRl
eCkKKyNkZWZpbmUgdW5vcm1fZ2V0RkNEMTYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3Jt
X2dldEZDRDE2KQogI2RlZmluZSB1bm9ybV9nZXRRdWlja0NoZWNrIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bm9ybV9nZXRRdWlja0NoZWNrKQogI2RlZmluZSB1bm9ybV9pc05vcm1hbGl6ZWQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2lzTm9ybWFsaXplZCkKICNkZWZpbmUgdW5v
cm1faXNOb3JtYWxpemVkV2l0aE9wdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3Jt
X2lzTm9ybWFsaXplZFdpdGhPcHRpb25zKQpAQCAtMTEyMCw2ICsxMTUzLDcgQEAKICNkZWZpbmUg
dW51bV9mb3JtYXREb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0RG91
YmxlKQogI2RlZmluZSB1bnVtX2Zvcm1hdERvdWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtX2Zvcm1hdERvdWJsZUN1cnJlbmN5KQogI2RlZmluZSB1bnVtX2Zvcm1hdElu
dDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdEludDY0KQorI2RlZmluZSB1
bnVtX2Zvcm1hdFVGb3JtYXR0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9mb3Jt
YXRVRm9ybWF0dGFibGUpCiAjZGVmaW5lIHVudW1fZ2V0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtX2dldEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9nZXRBdmFpbGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1bnVt
X2dldERvdWJsZUF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9nZXREb3Vi
bGVBdHRyaWJ1dGUpCkBAIC0xMTMyLDExICsxMTY2LDI0IEBACiAjZGVmaW5lIHVudW1fcGFyc2VE
b3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VEb3VibGUpCiAjZGVmaW5l
IHVudW1fcGFyc2VEb3VibGVDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9w
YXJzZURvdWJsZUN1cnJlbmN5KQogI2RlZmluZSB1bnVtX3BhcnNlSW50NjQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVudW1fcGFyc2VJbnQ2NCkKKyNkZWZpbmUgdW51bV9wYXJzZVRvVUZvcm1h
dHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGUp
CiAjZGVmaW5lIHVudW1fc2V0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVt
X3NldEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9zZXREb3VibGVBdHRyaWJ1dGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVudW1fc2V0RG91YmxlQXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3Nl
dFN5bWJvbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRTeW1ib2wpCiAjZGVmaW5l
IHVudW1fc2V0VGV4dEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRU
ZXh0QXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW51bV90b1BhdHRlcm4pCisjZGVmaW5lIHVudW1zeXNfY2xvc2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVudW1zeXNfY2xvc2UpCisjZGVmaW5lIHVudW1zeXNfZ2V0RGVzY3JpcHRp
b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0RGVzY3JpcHRpb24pCisjZGVm
aW5lIHVudW1zeXNfZ2V0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19nZXRO
YW1lKQorI2RlZmluZSB1bnVtc3lzX2dldFJhZGl4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bnVtc3lzX2dldFJhZGl4KQorI2RlZmluZSB1bnVtc3lzX2lzQWxnb3JpdGhtaWMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVudW1zeXNfaXNBbGdvcml0aG1pYykKKyNkZWZpbmUgdW51bXN5c19v
cGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW4pCisjZGVmaW5lIHVudW1z
eXNfb3BlbkF2YWlsYWJsZU5hbWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29w
ZW5BdmFpbGFibGVOYW1lcykKKyNkZWZpbmUgdW51bXN5c19vcGVuQnlOYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW5CeU5hbWUpCisjZGVmaW5lIHVwbHJ1bGVzX2Nsb3Nl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxydWxlc19jbG9zZSkKKyNkZWZpbmUgdXBscnVs
ZXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfb3BlbikKKyNkZWZpbmUg
dXBscnVsZXNfb3BlbkZvclR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX29w
ZW5Gb3JUeXBlKQorI2RlZmluZSB1cGxydWxlc19zZWxlY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwbHJ1bGVzX3NlbGVjdCkKICNkZWZpbmUgdXBsdWdfY2xvc2VMaWJyYXJ5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19jbG9zZUxpYnJhcnkpCiAjZGVmaW5lIHVwbHVnX2ZpbmRM
aWJyYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19maW5kTGlicmFyeSkKICNkZWZp
bmUgdXBsdWdfZ2V0Q29uZmlndXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdf
Z2V0Q29uZmlndXJhdGlvbikKQEAgLTExNjAsMTIgKzEyMDcsMTIgQEAKICNkZWZpbmUgdXBsdWdf
c2V0UGx1Z0xldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTGV2ZWwp
CiAjZGVmaW5lIHVwbHVnX3NldFBsdWdOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1
Z19zZXRQbHVnTmFtZSkKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z05vVW5sb2FkIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTm9VbmxvYWQpCi0jZGVmaW5lIHVwbmFtZV9zd2Fw
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cG5hbWVfc3dhcCkKICNkZWZpbmUgdXByb3BzX2dl
dFNvdXJjZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXByb3BzX2dldFNvdXJjZSkKICNkZWZp
bmUgdXByb3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMpCiAjZGVmaW5lIHVwcnZfYWVzdHJuY3B5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Flc3RybmNweSkKICNkZWZpbmUgdXBydl9hc2NpaUZy
b21FYmNkaWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYXNjaWlGcm9tRWJjZGljKQog
I2RlZmluZSB1cHJ2X2FzY2lpdG9sb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9h
c2NpaXRvbG93ZXIpCisjZGVmaW5lIHVwcnZfY2FsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2NhbGxvYykKICNkZWZpbmUgdXBydl9jZWlsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2NlaWwpCiAjZGVmaW5lIHVwcnZfY250dGFiX2FkZENvbnRyYWN0aW9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NudHRhYl9hZGRDb250cmFjdGlvbikKICNkZWZpbmUgdXBy
dl9jbnR0YWJfY2hhbmdlQ29udHJhY3Rpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
Y250dGFiX2NoYW5nZUNvbnRyYWN0aW9uKQpAQCAtMTIwMiw3ICsxMjQ5LDYgQEAKICNkZWZpbmUg
dXBydl9kZWNDb250ZXh0U2V0U3RhdHVzRnJvbVN0cmluZ1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNGcm9tU3RyaW5nUXVpZXQpCiAjZGVmaW5l
IHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNRdWlldCkKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U3Rh
dHVzVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFN0YXR1
c1RvU3RyaW5nKQotI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRUZXN0RW5kaWFuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRUZXN0RW5kaWFuKQogI2RlZmluZSB1cHJ2X2Rl
Y0NvbnRleHRUZXN0U2F2ZWRTdGF0dXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVj
Q29udGV4dFRlc3RTYXZlZFN0YXR1cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0VGVzdFN0YXR1
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0VGVzdFN0YXR1cykKICNk
ZWZpbmUgdXBydl9kZWNDb250ZXh0WmVyb1N0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9kZWNDb250ZXh0WmVyb1N0YXR1cykKQEAgLTEyNjgsMTIgKzEzMTQsMTQgQEAKICNkZWZp
bmUgdXBydl9kZWNOdW1iZXJWZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Rl
Y051bWJlclZlcnNpb24pCiAjZGVmaW5lIHVwcnZfZGVjTnVtYmVyWG9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclhvcikKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJaZXJv
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclplcm8pCisjZGVmaW5lIHVw
cnZfZGVsZXRlVU9iamVjdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWxldGVVT2Jq
ZWN0KQogI2RlZmluZSB1cHJ2X2RlbGV0ZV9jb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWxldGVfY29sbEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfZGxfY2xvc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfY2xvc2UpCiAjZGVmaW5lIHVwcnZfZGxfb3Bl
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9vcGVuKQotI2RlZmluZSB1cHJ2X2Rs
X3N5bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9zeW0pCisjZGVmaW5lIHVwcnZf
ZGxzeW1fZnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbHN5bV9mdW5jKQogI2Rl
ZmluZSB1cHJ2X2Vhc3RybmNweSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYXN0cm5j
cHkpCiAjZGVmaW5lIHVwcnZfZWJjZGljRnJvbUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2ViY2RpY0Zyb21Bc2NpaSkKKyNkZWZpbmUgdXBydl9lYmNkaWNUb0xvd2VyY2FzZUFz
Y2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ViY2RpY1RvTG93ZXJjYXNlQXNjaWkp
CiAjZGVmaW5lIHVwcnZfZWJjZGljdG9sb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9lYmNkaWN0b2xvd2VyKQogI2RlZmluZSB1cHJ2X2ZhYnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfZmFicykKICNkZWZpbmUgdXBydl9mbG9vciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBydl9mbG9vcikKQEAgLTEyOTUsMTMgKzEzNDMsMTMgQEAKICNkZWZpbmUgdXBydl9pbml0
X2NvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2luaXRfY29sbEl0ZXJh
dGUpCiAjZGVmaW5lIHVwcnZfaW5pdF9wY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
aW5pdF9wY2UpCiAjZGVmaW5lIHVwcnZfaW50MzJDb21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2ludDMyQ29tcGFyYXRvcikKKyNkZWZpbmUgdXBydl9pc0FTQ0lJTGV0dGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzQVNDSUlMZXR0ZXIpCiAjZGVmaW5lIHVw
cnZfaXNJbmZpbml0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0luZmluaXRlKQog
I2RlZmluZSB1cHJ2X2lzSW52YXJpYW50U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2lzSW52YXJpYW50U3RyaW5nKQogI2RlZmluZSB1cHJ2X2lzSW52YXJpYW50VVN0cmluZyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0ludmFyaWFudFVTdHJpbmcpCiAjZGVmaW5l
IHVwcnZfaXNOYU4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNOYU4pCiAjZGVmaW5l
IHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lz
TmVnYXRpdmVJbmZpbml0eSkKICNkZWZpbmUgdXBydl9pc1Bvc2l0aXZlSW5maW5pdHkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5KQotI2RlZmluZSB1cHJ2
X2lzUnVsZVdoaXRlU3BhY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNSdWxlV2hp
dGVTcGFjZSkKICNkZWZpbmUgdXBydl9pdG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X2l0b3UpCiAjZGVmaW5lIHVwcnZfbG9nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2xv
ZykKICNkZWZpbmUgdXBydl9tYWxsb2MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWFs
bG9jKQpAQCAtMTMxMiw3ICsxMzYwLDYgQEAKICNkZWZpbmUgdXBydl9taW4gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfbWluKQogI2RlZmluZSB1cHJ2X21vZGYgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfbW9kZikKICNkZWZpbmUgdXBydl9uZXdfY29sbEl0ZXJhdGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbmV3X2NvbGxJdGVyYXRlKQotI2RlZmluZSB1cHJ2X29w
ZW5SdWxlV2hpdGVTcGFjZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9vcGVuUnVs
ZVdoaXRlU3BhY2VTZXQpCiAjZGVmaW5lIHVwcnZfcGFyc2VDdXJyZW5jeSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9wYXJzZUN1cnJlbmN5KQogI2RlZmluZSB1cHJ2X3BhdGhJc0Fic29s
dXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3BhdGhJc0Fic29sdXRlKQogI2RlZmlu
ZSB1cHJ2X3BvdyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wb3cpCkBAIC0xMzIwLDkg
KzEzNjcsMTIgQEAKICNkZWZpbmUgdXBydl9yZWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X3JlYWxsb2MpCiAjZGVmaW5lIHVwcnZfcm91bmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfcm91bmQpCiAjZGVmaW5lIHVwcnZfc29ydEFycmF5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X3NvcnRBcnJheSkKKyNkZWZpbmUgdXBydl9zdGFibGVCaW5hcnlTZWFyY2gg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RhYmxlQmluYXJ5U2VhcmNoKQogI2RlZmlu
ZSB1cHJ2X3N0ckNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyQ29tcGFy
ZSkKICNkZWZpbmUgdXBydl9zdHJkdXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3Ry
ZHVwKQorI2RlZmluZSB1cHJ2X3N0cmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
c3RyaWNtcCkKICNkZWZpbmUgdXBydl9zdHJuZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X3N0cm5kdXApCisjZGVmaW5lIHVwcnZfc3RybmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfc3RybmljbXApCiAjZGVmaW5lIHVwcnZfc3ludGF4RXJyb3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfc3ludGF4RXJyb3IpCiAjZGVmaW5lIHVwcnZfdGltZXpvbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfdGltZXpvbmUpCiAjZGVmaW5lIHVwcnZfdG91cHBl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl90b3VwcGVyKQpAQCAtMTM4Niw2ICsxNDM2
LDcgQEAKICNkZWZpbmUgdXJlZ2V4X29wZW5VVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXJlZ2V4X29wZW5VVGV4dCkKICNkZWZpbmUgdXJlZ2V4X3BhdHRlcm4gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVyZWdleF9wYXR0ZXJuKQogI2RlZmluZSB1cmVnZXhfcGF0dGVyblVUZXh0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcGF0dGVyblVUZXh0KQorI2RlZmluZSB1cmVn
ZXhfcmVmcmVzaFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVmcmVzaFVU
ZXh0KQogI2RlZmluZSB1cmVnZXhfcmVnaW9uRW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnZXhfcmVnaW9uRW5kKQogI2RlZmluZSB1cmVnZXhfcmVnaW9uRW5kNjQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25FbmQ2NCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvblN0
YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVnaW9uU3RhcnQpCkBAIC0xNDE0
LDYgKzE0NjUsMTkgQEAKICNkZWZpbmUgdXJlZ2V4X3VzZUFuY2hvcmluZ0JvdW5kcyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3VzZUFuY2hvcmluZ0JvdW5kcykKICNkZWZpbmUgdXJl
Z2V4X3VzZVRyYW5zcGFyZW50Qm91bmRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhf
dXNlVHJhbnNwYXJlbnRCb3VuZHMpCiAjZGVmaW5lIHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFy
QXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFyQXQp
CisjZGVmaW5lIHVyZWdpb25fYXJlRXF1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdp
b25fYXJlRXF1YWwpCisjZGVmaW5lIHVyZWdpb25fY29udGFpbnMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdpb25fY29udGFpbnMpCisjZGVmaW5lIHVyZWdpb25fZ2V0QXZhaWxhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldEF2YWlsYWJsZSkKKyNkZWZpbmUgdXJl
Z2lvbl9nZXRDb250YWluZWRSZWdpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9u
X2dldENvbnRhaW5lZFJlZ2lvbnMpCisjZGVmaW5lIHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9u
c09mVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250YWluZWRSZWdp
b25zT2ZUeXBlKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb24gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmluZ1JlZ2lvbikKKyNkZWZpbmUgdXJl
Z2lvbl9nZXRDb250YWluaW5nUmVnaW9uT2ZUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb25PZlR5cGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0TnVt
ZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0TnVtZXJpY0NvZGUp
CisjZGVmaW5lIHVyZWdpb25fZ2V0UHJlZmVycmVkVmFsdWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnaW9uX2dldFByZWZlcnJlZFZhbHVlcykKKyNkZWZpbmUgdXJlZ2lvbl9nZXRSZWdp
b25Db2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkNvZGUpCisj
ZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJvbUNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVyZWdpb25fZ2V0UmVnaW9uRnJvbUNvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJv
bU51bWVyaWNDb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkZy
b21OdW1lcmljQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVnaW9uX2dldFR5cGUpCiAjZGVmaW5lIHVyZXNfY2xvc2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZXNfY2xvc2UpCiAjZGVmaW5lIHVyZXNfY29weVJlc2IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVyZXNfY29weVJlc2IpCiAjZGVmaW5lIHVyZXNfY291bnRBcnJheUl0
ZW1zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX2NvdW50QXJyYXlJdGVtcykKQEAgLTE0
NTcsMTMgKzE1MjEsMTkgQEAKICNkZWZpbmUgdXJlc19vcGVuVSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXJlc19vcGVuVSkKICNkZWZpbmUgdXJlc19yZXNldEl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVzX3Jlc2V0SXRlcmF0b3IpCiAjZGVmaW5lIHVyZXNfc3dhcCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19zd2FwKQorI2RlZmluZSB1c2NyaXB0X2JyZWFrc0Jl
dHdlZW5MZXR0ZXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2JyZWFrc0JldHdl
ZW5MZXR0ZXJzKQogI2RlZmluZSB1c2NyaXB0X2Nsb3NlUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c2NyaXB0X2Nsb3NlUnVuKQogI2RlZmluZSB1c2NyaXB0X2dldENvZGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0Q29kZSkKICNkZWZpbmUgdXNjcmlwdF9nZXROYW1l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldE5hbWUpCisjZGVmaW5lIHVzY3Jp
cHRfZ2V0U2FtcGxlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNh
bXBsZVN0cmluZykKKyNkZWZpbmUgdXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3RyaW5nIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcpCiAjZGVm
aW5lIHVzY3JpcHRfZ2V0U2NyaXB0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dl
dFNjcmlwdCkKICNkZWZpbmUgdXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lvbnMpCiAjZGVmaW5lIHVzY3Jp
cHRfZ2V0U2hvcnROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNob3J0
TmFtZSkKKyNkZWZpbmUgdXNjcmlwdF9nZXRVc2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXNjcmlwdF9nZXRVc2FnZSkKICNkZWZpbmUgdXNjcmlwdF9oYXNTY3JpcHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzY3JpcHRfaGFzU2NyaXB0KQorI2RlZmluZSB1c2NyaXB0X2lzQ2FzZWQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfaXNDYXNlZCkKKyNkZWZpbmUgdXNjcmlw
dF9pc1JpZ2h0VG9MZWZ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lzUmlnaHRU
b0xlZnQpCiAjZGVmaW5lIHVzY3JpcHRfbmV4dFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXNjcmlwdF9uZXh0UnVuKQogI2RlZmluZSB1c2NyaXB0X29wZW5SdW4gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzY3JpcHRfb3BlblJ1bikKICNkZWZpbmUgdXNjcmlwdF9yZXNldFJ1biBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9yZXNldFJ1bikKQEAgLTE1NjcsNiArMTYzNywx
MSBAQAogI2RlZmluZSB1c3Bvb2ZfZ2V0QWxsb3dlZExvY2FsZXMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9nZXRBbGxvd2VkTG9jYWxlcykKICNkZWZpbmUgdXNwb29mX2dldEFsbG93
ZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0QWxsb3dlZFVu
aWNvZGVTZXQpCiAjZGVmaW5lIHVzcG9vZl9nZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzcG9vZl9nZXRDaGVja3MpCisjZGVmaW5lIHVzcG9vZl9nZXRJbmNsdXNpb25TZXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRJbmNsdXNpb25TZXQpCisjZGVmaW5lIHVz
cG9vZl9nZXRJbmNsdXNpb25Vbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bv
b2ZfZ2V0SW5jbHVzaW9uVW5pY29kZVNldCkKKyNkZWZpbmUgdXNwb29mX2dldFJlY29tbWVuZGVk
U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRTZXQpCisj
ZGVmaW5lIHVzcG9vZl9nZXRSZWNvbW1lbmRlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9nZXRSZWNvbW1lbmRlZFVuaWNvZGVTZXQpCisjZGVmaW5lIHVzcG9vZl9n
ZXRSZXN0cmljdGlvbkxldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0UmVz
dHJpY3Rpb25MZXZlbCkKICNkZWZpbmUgdXNwb29mX2dldFNrZWxldG9uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0b24pCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRv
blVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVURjgpCiAj
ZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvblVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVuaWNvZGVTdHJpbmcpCkBAIC0xNTc4LDIzICsxNjUz
LDI1IEBACiAjZGVmaW5lIHVzcG9vZl9zZXRBbGxvd2VkTG9jYWxlcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXNwb29mX3NldEFsbG93ZWRMb2NhbGVzKQogI2RlZmluZSB1c3Bvb2Zfc2V0QWxs
b3dlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRBbGxvd2Vk
VW5pY29kZVNldCkKICNkZWZpbmUgdXNwb29mX3NldENoZWNrcyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXNwb29mX3NldENoZWNrcykKKyNkZWZpbmUgdXNwb29mX3NldFJlc3RyaWN0aW9uTGV2
ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRSZXN0cmljdGlvbkxldmVsKQog
I2RlZmluZSB1c3Bvb2Zfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3N3YXAp
CiAjZGVmaW5lIHVzcHJlcF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX2Ns
b3NlKQogI2RlZmluZSB1c3ByZXBfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVw
X29wZW4pCiAjZGVmaW5lIHVzcHJlcF9vcGVuQnlUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c3ByZXBfb3BlbkJ5VHlwZSkKICNkZWZpbmUgdXNwcmVwX3ByZXBhcmUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzcHJlcF9wcmVwYXJlKQogI2RlZmluZSB1c3ByZXBfc3dhcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX3N3YXApCi0jZGVmaW5lIHVzdHJfZm9sZENhc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfZm9sZENhc2UpCi0jZGVmaW5lIHVzdHJfdG9Mb3dl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90b0xvd2VyKQotI2RlZmluZSB1c3RyX3Rv
VGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfdG9UaXRsZSkKLSNkZWZpbmUgdXN0
cl90b1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvVXBwZXIpCi0jZGVmaW5l
IHV0ZXh0X2Nhc2VDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jYXNlQ29t
cGFyZSkKLSNkZWZpbmUgdXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdCkKKyNkZWZpbmUgdXN0cl9o
YXNoQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2hhc2hDaGFyc04pCisjZGVm
aW5lIHVzdHJfaGFzaElDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFzaElD
aGFyc04pCisjZGVmaW5lIHVzdHJfaGFzaFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzdHJfaGFzaFVDaGFyc04pCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsRm9sZCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJuYWxGb2xkKQorI2RlZmluZSB1c3RyY2Fz
ZV9pbnRlcm5hbFRvTG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVy
bmFsVG9Mb3dlcikKKyNkZWZpbmUgdXN0cmNhc2VfaW50ZXJuYWxUb1RpdGxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5hbFRvVGl0bGUpCisjZGVmaW5lIHVzdHJjYXNl
X2ludGVybmFsVG9VcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJu
YWxUb1VwcGVyKQorI2RlZmluZSB1c3RyY2FzZV9tYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzdHJjYXNlX21hcCkKKyNkZWZpbmUgdXN0cmNhc2Vfc2V0VGVtcENhc2VNYXBMb2NhbGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX3NldFRlbXBDYXNlTWFwTG9jYWxlKQogI2Rl
ZmluZSB1dGV4dF9jaGFyMzJBdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2hhcjMy
QXQpCiAjZGVmaW5lIHV0ZXh0X2Nsb25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9j
bG9uZSkKICNkZWZpbmUgdXRleHRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0
X2Nsb3NlKQotI2RlZmluZSB1dGV4dF9jb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
dGV4dF9jb21wYXJlKQotI2RlZmluZSB1dGV4dF9jb21wYXJlTmF0aXZlTGltaXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvbXBhcmVOYXRpdmVMaW1pdCkKICNkZWZpbmUgdXRleHRf
Y29weSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY29weSkKICNkZWZpbmUgdXRleHRf
Y3VycmVudDMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jdXJyZW50MzIpCiAjZGVm
aW5lIHV0ZXh0X2VxdWFscyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfZXF1YWxzKQpA
QCAtMTc0Myw0OTkgKzE4MjAsNiBAQAogI2RlZmluZSB6dHJhbnNfc2V0VGltZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoenRyYW5zX3NldFRpbWUpCiAjZGVmaW5lIHp0cmFuc19zZXRUbyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5zX3NldFRvKQogCi0KLS8qIEMrKyBjbGFzcyBuYW1l
cyByZW5hbWluZyBkZWZpbmVzICovCi0KLSNpZmRlZiBYUF9DUExVU1BMVVMKLSNpZiAhVV9IQVZF
X05BTUVTUEFDRQotCi0jZGVmaW5lIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24pCi0jZGVmaW5lIEFsdGVy
bmF0ZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbHRlcm5h
dGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEFuY2hvclRhYmxlKQotI2RlZmluZSBBbmRDb25zdHJhaW50IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShBbmRDb25zdHJhaW50KQotI2RlZmluZSBBbm51YWxUaW1lWm9uZVJ1
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFubnVhbFRpbWVab25lUnVsZSkKLSNkZWZpbmUg
QW55VHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFueVRyYW5zbGl0ZXJh
dG9yKQotI2RlZmluZSBBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEFyYWJpY1NoYXBp
bmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFyYWJpY1NoYXBpbmcpCi0jZGVmaW5lIEFyZ0V4
dHJhY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJnRXh0cmFjdG9yKQotI2RlZmluZSBC
TVBTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJNUFNldCkKLSNkZWZpbmUgQmFja3dhcmRV
VHJpZTJTdHJpbmdJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFja3dhcmRVVHJp
ZTJTdHJpbmdJdGVyYXRvcikKLSNkZWZpbmUgQmFkQ2hhcmFjdGVyVGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEJhZENoYXJhY3RlclRhYmxlKQotI2RlZmluZSBCYXNpY0NhbGVuZGFyRmFj
dG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFzaWNDYWxlbmRhckZhY3RvcnkpCi0jZGVm
aW5lIEJhc2ljVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhc2ljVGltZVpvbmUp
Ci0jZGVmaW5lIEJpbmFyeVNlYXJjaExvb2t1cFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShCaW5hcnlTZWFyY2hMb29rdXBUYWJsZSkKLSNkZWZpbmUgQm95ZXJNb29yZVNlYXJjaCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQm95ZXJNb29yZVNlYXJjaCkKLSNkZWZpbmUgQnJlYWtJdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgQnJl
YWtUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnJlYWtUcmFuc2xpdGVy
YXRvcikKLSNkZWZpbmUgQnVkZGhpc3RDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QnVkZGhpc3RDYWxlbmRhcikKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZUhvcml6b250YWxOb2Rl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBhY3RUcmllSG9yaXpvbnRhbE5vZGUp
Ci0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShC
dWlsZENvbXBhY3RUcmllTm9kZSkKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9k
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9kZSkK
LSNkZWZpbmUgQnVpbGRlclNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRl
clNjcmlwdFNldCkKLSNkZWZpbmUgQnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ5
dGVTaW5rKQotI2RlZmluZSBDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VCdWZm
ZXIpCi0jZGVmaW5lIENFQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFQ2FsZW5k
YXIpCi0jZGVmaW5lIENFTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VMaXN0KQotI2Rl
ZmluZSBDRVRvU3RyaW5nc01hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VUb1N0cmluZ3NN
YXApCi0jZGVmaW5lIENGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDRmFjdG9yeSkK
LSNkZWZpbmUgQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyKQotI2Rl
ZmluZSBDYWxlbmRhckFzdHJvbm9tZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFy
QXN0cm9ub21lcikKLSNkZWZpbmUgQ2FsZW5kYXJDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2FsZW5kYXJDYWNoZSkKLSNkZWZpbmUgQ2FsZW5kYXJEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDYWxlbmRhckRhdGEpCi0jZGVmaW5lIENhbGVuZGFyU2VydmljZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2FsZW5kYXJTZXJ2aWNlKQotI2RlZmluZSBDYW5vbkl0ZXJEYXRhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRhKQotI2RlZmluZSBDYW5vbkl0ZXJE
YXRhU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRhU2luZ2xl
dG9uKQotI2RlZmluZSBDYW5vbk1hcmtGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENh
bm9uTWFya0ZpbHRlcikKLSNkZWZpbmUgQ2Fub25TaGFwaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDYW5vblNoYXBpbmcpCi0jZGVmaW5lIENhbm9uaWNhbEl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDYW5vbmljYWxJdGVyYXRvcikKLSNkZWZpbmUgQ2FzZU1hcFRyYW5zbGl0
ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYXNlTWFwVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0
MVN1YnRhYmxlKQotI2RlZmluZSBDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQy
U3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0
aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3Rp
dHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0Nv
bnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29u
dGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFp
bmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ2hhclN0cmluZyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhclN0cmluZykKLSNkZWZpbmUgQ2hhclN1YnN0aXR1
dGlvbkZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhclN1YnN0aXR1dGlvbkZpbHRl
cikKLSNkZWZpbmUgQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBDaGFyYWN0ZXJOb2RlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyYWN0ZXJOb2RlKQotI2RlZmluZSBDaGFyc2V0RGV0ZWN0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXREZXRlY3RvcikKLSNkZWZpbmUgQ2hhcnNldE1hdGNoIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0TWF0Y2gpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z18yMDIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMikKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzIwMjJDTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nXzIwMjJDTikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJKUCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJKUCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJL
UiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJLUikKLSNkZWZpbmUg
Q2hhcnNldFJlY29nXzg4NTlfMSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfMSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9kYSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9kYSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4
NTlfMV9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9kZSkK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9lbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcnNldFJlY29nXzg4NTlfMV9lbikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9lcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9lcykKLSNkZWZpbmUg
Q2hhcnNldFJlY29nXzg4NTlfMV9mciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJl
Y29nXzg4NTlfMV9mcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9pdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9pdCkKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfMV9ubCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
MV9ubCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9ubyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9ubykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
MV9wdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9wdCkKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9zdiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfMV9zdikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMikKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfMl9jcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
Ml9jcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9odSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9odSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
Ml9wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9wbCkKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9ybyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfMl9ybykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNSkKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfNV9ydSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
NV9ydSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfNikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNl9hciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNl9hcikKLSNkZWZpbmUg
Q2hhcnNldFJlY29nXzg4NTlfNyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfNykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfN19lbCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfN19lbCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4
NTlfOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOCkKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfODg1OV84X0lfaGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzhfaGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzhfaGUpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184
ODU5XzkpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzlfdHIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzlfdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00
MjBfYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXIpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBfYXJfbHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX2x0cikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQy
MF9hcl9ydGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXJf
cnRsKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0X2hlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0
X2hlX2x0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9s
dHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjRfaGVfcnRsIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX3J0bCkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X0tPSThfUiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0tPSThfUikKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nX1VURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ19VVEY4KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzE2X0JFIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzE2X0JFKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
VVRGXzE2X0xFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzE2X0xF
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGFyc2V0UmVjb2dfVVRGXzMyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0JFIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyX0JFKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfVVRGXzMyX0xFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
VVRGXzMyX0xFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVW5pY29kZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nX1VuaWNvZGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19iaWc1
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfYmlnNSkKLSNkZWZpbmUgQ2hh
cnNldFJlY29nX2V1YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1YykK
LSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19qcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nX2V1Y19qcCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19rciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1Y19rcikKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X2diXzE4MDMwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZ2JfMTgwMzAp
Ci0jZGVmaW5lIENoYXJzZXRSZWNvZ19tYmNzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfbWJjcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3NiY3MgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ19zYmNzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfc2ppcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3NqaXMpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ193aW5kb3dzXzEyNTEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z193aW5kb3dzXzEyNTEpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ25pemVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2duaXpl
cikKLSNkZWZpbmUgQ2hlY2tlZEFycmF5Qnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoZWNrZWRBcnJheUJ5dGVTaW5rKQotI2RlZmluZSBDaGluZXNlQ2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoaW5lc2VDYWxlbmRhcikKLSNkZWZpbmUgQ2hvaWNlRm9ybWF0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaG9pY2VGb3JtYXQpCi0jZGVmaW5lIENsYXNzRGVmRm9y
bWF0MVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFzc0RlZkZvcm1hdDFUYWJsZSkK
LSNkZWZpbmUgQ2xhc3NEZWZGb3JtYXQyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENs
YXNzRGVmRm9ybWF0MlRhYmxlKQotI2RlZmluZSBDbGFzc0RlZmluaXRpb25UYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZpbml0aW9uVGFibGUpCi0jZGVmaW5lIENsb2NrTWF0
aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xvY2tNYXRoKQotI2RlZmluZSBDb2xsRGF0YSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGEpCi0jZGVmaW5lIENvbGxEYXRhQ2FjaGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxEYXRhQ2FjaGUpCi0jZGVmaW5lIENvbGxEYXRh
Q2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGFDYWNoZUVudHJ5KQot
I2RlZmluZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcikKLSNkZWZpbmUgQ29sbGF0aW9uS2V5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb2xsYXRpb25LZXkpCi0jZGVmaW5lIENvbGxhdGlvbkxvY2FsZUxp
c3RFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uTG9jYWxlTGlz
dEVudW1lcmF0aW9uKQotI2RlZmluZSBDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q29sbGF0b3IpCi0jZGVmaW5lIENvbGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ29sbGF0b3JGYWN0b3J5KQotI2RlZmluZSBDb21wYWN0VHJpZURpY3Rpb25hcnkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvbXBhY3RUcmllRGljdGlvbmFyeSkKLSNkZWZpbmUgQ29tcGFj
dFRyaWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRyaWVFbnVt
ZXJhdGlvbikKLSNkZWZpbmUgQ29tcG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb21wb3NlTm9ybWFsaXplcjIpCi0jZGVmaW5lIENvbXBvdW5kVHJhbnNsaXRlcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBvdW5kVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5l
IENvbmZ1c2FibGVkYXRhQnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29uZnVzYWJs
ZWRhdGFCdWlsZGVyKQotI2RlZmluZSBDb250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNz
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblBy
b2Nlc3NvcikKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1dGlvbkJhc2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25CYXNlKQotI2RlZmluZSBDb250ZXh0
dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFs
U3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250
ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vi
c3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0
dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3Rp
dHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0
dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ29wdGljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENvcHRpY0NhbGVuZGFyKQotI2RlZmluZSBDb3ZlcmFnZUZvcm1hdDFUYWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VGb3JtYXQxVGFibGUpCi0jZGVmaW5lIENvdmVy
YWdlRm9ybWF0MlRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZvcm1hdDJU
YWJsZSkKLSNkZWZpbmUgQ292ZXJhZ2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292
ZXJhZ2VUYWJsZSkKLSNkZWZpbmUgQ3VycmVuY3lBbW91bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEN1cnJlbmN5QW1vdW50KQotI2RlZmluZSBDdXJyZW5jeUZvcm1hdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ3VycmVuY3lGb3JtYXQpCi0jZGVmaW5lIEN1cnJlbmN5UGx1cmFsSW5mbyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lQbHVyYWxJbmZvKQotI2RlZmluZSBDdXJy
ZW5jeVVuaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5VW5pdCkKLSNkZWZpbmUg
Q3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3Vyc2l2
ZUF0dGFjaG1lbnRTdWJ0YWJsZSkKLSNkZWZpbmUgRFRSZWR1bmRhbnRFbnVtZXJhdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoRFRSZWR1bmRhbnRFbnVtZXJhdGlvbikKLSNkZWZpbmUgRFRT
a2VsZXRvbkVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEVFNrZWxldG9uRW51
bWVyYXRpb24pCi0jZGVmaW5lIERhdGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERh
dGVGb3JtYXQpCi0jZGVmaW5lIERhdGVGb3JtYXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShEYXRlRm9ybWF0U3ltYm9scykKLSNkZWZpbmUgRGF0ZUludGVydmFsIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWwpCi0jZGVmaW5lIERhdGVJbnRlcnZhbEZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZUludGVydmFsRm9ybWF0KQotI2RlZmluZSBEYXRl
SW50ZXJ2YWxJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxJbmZvKQot
I2RlZmluZSBEYXRlVGltZU1hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1l
TWF0Y2hlcikKLSNkZWZpbmUgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IpCi0jZGVmaW5lIERhdGVUaW1lUnVs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZVRpbWVSdWxlKQotI2RlZmluZSBEZWNpbWFs
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWNpbWFsRm9ybWF0KQotI2RlZmluZSBE
ZWNpbWFsRm9ybWF0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1hbEZvcm1h
dFN5bWJvbHMpCi0jZGVmaW5lIERlY29tcG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShEZWNvbXBvc2VOb3JtYWxpemVyMikKLSNkZWZpbmUgRGVmYXVsdENhbGVuZGFyRmFj
dG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVmYXVsdENhbGVuZGFyRmFjdG9yeSkKLSNk
ZWZpbmUgRGVmYXVsdENoYXJNYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlZmF1bHRD
aGFyTWFwcGVyKQotI2RlZmluZSBEZXZpY2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RGV2aWNlVGFibGUpCi0jZGVmaW5lIERpY3Rpb25hcnlCcmVha0VuZ2luZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRGljdGlvbmFyeUJyZWFrRW5naW5lKQotI2RlZmluZSBEaWdpdExpc3QgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERpZ2l0TGlzdCkKLSNkZWZpbmUgRGlzdGFuY2VJbmZvIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEaXN0YW5jZUluZm8pCi0jZGVmaW5lIEVudW1Ub09mZnNl
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRW51bVRvT2Zmc2V0KQotI2RlZmluZSBFcnJvckNv
ZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEVycm9yQ29kZSkKLSNkZWZpbmUgRXNjYXBlVHJh
bnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEVzY2FwZVRyYW5zbGl0ZXJhdG9y
KQotI2RlZmluZSBFdGhpb3BpY0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFdGhp
b3BpY0NhbGVuZGFyKQotI2RlZmluZSBFdmVudExpc3RlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShFdmVudExpc3RlbmVyKQotI2RlZmluZSBFeHRlbnNpb25TdWJ0YWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoRXh0ZW5zaW9uU3VidGFibGUpCi0jZGVmaW5lIEZDRE5vcm1hbGl6ZXIy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGQ0ROb3JtYWxpemVyMikKLSNkZWZpbmUgRkNEVHJp
ZVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRkNEVHJpZVNpbmdsZXRvbikKLSNk
ZWZpbmUgRmVhdHVyZUxpc3RUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmVhdHVyZUxp
c3RUYWJsZSkKLSNkZWZpbmUgRmllbGRQb3NpdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RmllbGRQb3NpdGlvbikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkhhbmRsZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25IYW5kbGVyKQotI2RlZmluZSBGaWVsZFBvc2l0aW9u
SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25JdGVyYXRvcikK
LSNkZWZpbmUgRmllbGRQb3NpdGlvbkl0ZXJhdG9ySGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRmllbGRQb3NpdGlvbkl0ZXJhdG9ySGFuZGxlcikKLSNkZWZpbmUgRmllbGRQb3NpdGlv
bk9ubHlIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uT25seUhh
bmRsZXIpCi0jZGVmaW5lIEZpbHRlcmVkTm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZpbHRlcmVkTm9ybWFsaXplcjIpCi0jZGVmaW5lIEZvbnRSdW5zIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGb250UnVucykKLSNkZWZpbmUgRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShGb3JtYXQpCi0jZGVmaW5lIEZvcm1hdDFBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRm9ybWF0MUFuY2hvclRhYmxlKQotI2RlZmluZSBGb3JtYXQyQW5jaG9yVGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdDJBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9y
bWF0M0FuY2hvclRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQzQW5jaG9yVGFi
bGUpCi0jZGVmaW5lIEZvcm1hdE5hbWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRm9ybWF0TmFtZUVudW1lcmF0aW9uKQotI2RlZmluZSBGb3JtYXRQYXJzZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEZvcm1hdFBhcnNlcikKLSNkZWZpbmUgRm9ybWF0dGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdHRhYmxlKQotI2RlZmluZSBGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
cikKLSNkZWZpbmUgRm9yd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShGb3J3YXJkVVRyaWUyU3RyaW5nSXRlcmF0b3IpCi0jZGVmaW5lIEZyYWN0aW9uYWxQ
YXJ0U3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGcmFjdGlvbmFsUGFydFN1
YnN0aXR1dGlvbikKLSNkZWZpbmUgRnVuY3Rpb25SZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRnVuY3Rpb25SZXBsYWNlcikKLSNkZWZpbmUgR0RFRk1hcmtGaWx0ZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEdERUZNYXJrRmlsdGVyKQotI2RlZmluZSBHWExheW91dEVuZ2luZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR1hMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEdseXBoRGVm
aW5pdGlvblRhYmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaERlZmluaXRp
b25UYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoR2x5cGhJdGVyYXRvcikKLSNkZWZpbmUgR2x5cGhMb29rdXBUYWJsZUhlYWRlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhMb29rdXBUYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5
cGhQb3NpdGlvbkFkanVzdG1lbnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0
aW9uQWRqdXN0bWVudHMpCi0jZGVmaW5lIEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3Ip
Ci0jZGVmaW5lIEdseXBoUG9zaXRpb25pbmdUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoR2x5cGhQb3NpdGlvbmluZ1RhYmxlSGVhZGVyKQotI2RlZmluZSBHbHlwaFN1YnN0aXR1
dGlvbkxvb2t1cFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhTdWJzdGl0
dXRpb25Mb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFk
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFkZXIp
Ci0jZGVmaW5lIEdvb2RTdWZmaXhUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR29vZFN1
ZmZpeFRhYmxlKQotI2RlZmluZSBHcmVnbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR3JlZ28p
Ci0jZGVmaW5lIEdyZWdvcmlhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHcmVn
b3JpYW5DYWxlbmRhcikKLSNkZWZpbmUgSGFuT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEhhbk9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBIYW5ndWxP
cGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSGFuZ3VsT3BlblR5
cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEhlYnJld0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShIZWJyZXdDYWxlbmRhcikKLSNkZWZpbmUgSUNVQnJlYWtJdGVyYXRvckZhY3Rvcnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5KQotI2RlZmlu
ZSBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQnJl
YWtJdGVyYXRvclNlcnZpY2UpCi0jZGVmaW5lIElDVUNvbGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoSUNVQ29sbGF0b3JGYWN0b3J5KQotI2RlZmluZSBJQ1VDb2xsYXRvclNl
cnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUNvbGxhdG9yU2VydmljZSkKLSNkZWZp
bmUgSUNVRGF0YVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VEYXRhVGFibGUpCi0j
ZGVmaW5lIElDVUxhbmd1YWdlQnJlYWtGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJ
Q1VMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZpbmUgSUNVTG9jYWxlU2VydmljZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoSUNVTG9jYWxlU2VydmljZSkKLSNkZWZpbmUgSUNVTm90aWZpZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVU5vdGlmaWVyKQotI2RlZmluZSBJQ1VOdW1iZXJG
b3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRGYWN0
b3J5KQotI2RlZmluZSBJQ1VOdW1iZXJGb3JtYXRTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShJQ1VOdW1iZXJGb3JtYXRTZXJ2aWNlKQotI2RlZmluZSBJQ1VSZXNvdXJjZUJ1bmRsZUZh
Y3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSkK
LSNkZWZpbmUgSUNVU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVU2VydmljZSkK
LSNkZWZpbmUgSUNVU2VydmljZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNl
cnZpY2VGYWN0b3J5KQotI2RlZmluZSBJQ1VTZXJ2aWNlS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShJQ1VTZXJ2aWNlS2V5KQotI2RlZmluZSBJQ1VfVXRpbGl0eSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoSUNVX1V0aWxpdHkpCi0jZGVmaW5lIElETkEgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElETkEpCi0jZGVmaW5lIEluZGlhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShJbmRpYW5DYWxlbmRhcikKLSNkZWZpbmUgSW5kaWNDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShJbmRpY0NsYXNzVGFibGUpCi0jZGVmaW5lIEluZGljT3BlblR5cGVMYXlvdXRF
bmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljT3BlblR5cGVMYXlvdXRFbmdpbmUp
Ci0jZGVmaW5lIEluZGljUmVhcnJhbmdlbWVudFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoSW5kaWNSZWFycmFuZ2VtZW50UHJvY2Vzc29yKQotI2RlZmluZSBJbmRpY1Jlb3JkZXJp
bmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljUmVvcmRlcmluZykKLSNkZWZpbmUgSW5p
dGlhbFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5pdGlhbFRpbWVab25l
UnVsZSkKLSNkZWZpbmUgSW5wdXRUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbnB1dFRl
eHQpCi0jZGVmaW5lIEludGVncmFsUGFydFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uKQotI2RlZmluZSBJc2xhbWljQ2FsZW5kYXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElzbGFtaWNDYWxlbmRhcikKLSNkZWZpbmUgSXRlcmF0
ZWRDaGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJdGVyYXRlZENoYXIpCi0jZGVmaW5lIEph
cGFuZXNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEphcGFuZXNlQ2FsZW5kYXIp
Ci0jZGVmaW5lIEtlcm5UYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2VyblRhYmxlKQot
I2RlZmluZSBLZXl3b3JkRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtleXdv
cmRFbnVtZXJhdGlvbikKLSNkZWZpbmUgS2htZXJDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShLaG1lckNsYXNzVGFibGUpCi0jZGVmaW5lIEtobWVyT3BlblR5cGVMYXlvdXRFbmdp
bmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0j
ZGVmaW5lIEtobWVyUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2htZXJSZW9y
ZGVyaW5nKQotI2RlZmluZSBMRUNoYXJNYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExF
Q2hhck1hcHBlcikKLSNkZWZpbmUgTEVGb250SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExFRm9udEluc3RhbmNlKQotI2RlZmluZSBMRUdseXBoRmlsdGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShMRUdseXBoRmlsdGVyKQotI2RlZmluZSBMRUdseXBoU3RvcmFnZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTEVHbHlwaFN0b3JhZ2UpCi0jZGVmaW5lIExFSW5zZXJ0aW9uQ2Fs
bGJhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFSW5zZXJ0aW9uQ2FsbGJhY2spCi0jZGVm
aW5lIExFSW5zZXJ0aW9uTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNlcnRpb25M
aXN0KQotI2RlZmluZSBMWFV0aWxpdGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTFhVdGls
aXRpZXMpCi0jZGVmaW5lIExhbmd1YWdlQnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExhbmd1YWdlQnJlYWtFbmdpbmUpCi0jZGVmaW5lIExhbmd1YWdlQnJlYWtGYWN0b3J5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZpbmUgTGF5
b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYXlvdXRFbmdpbmUpCi0jZGVmaW5l
IExpZ2F0dXJlU3Vic3RpdHV0aW9uUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShM
aWdhdHVyZVN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgTGlnYXR1cmVTdWJzdGl0dXRp
b25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGlnYXR1cmVTdWJzdGl0dXRpb25T
dWJ0YWJsZSkKLSNkZWZpbmUgTG9jRGF0YVBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TG9jRGF0YVBhcnNlcikKLSNkZWZpbmUgTG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShM
b2NhbGUpCi0jZGVmaW5lIExvY2FsZUJhc2VkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2Nh
bGVCYXNlZCkKLSNkZWZpbmUgTG9jYWxlRGlzcGxheU5hbWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMb2NhbGVEaXNwbGF5TmFtZXMpCi0jZGVmaW5lIExvY2FsZURpc3BsYXlOYW1lc0ltcGwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZURpc3BsYXlOYW1lc0ltcGwpCi0jZGVmaW5l
IExvY2FsZUtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlS2V5KQotI2RlZmluZSBM
b2NhbGVLZXlGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVLZXlGYWN0b3J5
KQotI2RlZmluZSBMb2NhbGVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVSdW5z
KQotI2RlZmluZSBMb2NhbGVVdGlsaXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVV
dGlsaXR5KQotI2RlZmluZSBMb2NhbGl6YXRpb25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMb2NhbGl6YXRpb25JbmZvKQotI2RlZmluZSBMb29rdXBMaXN0VGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKExvb2t1cExpc3RUYWJsZSkKLSNkZWZpbmUgTG9va3VwUHJvY2Vzc29yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIExvb2t1cFN1
YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBTdWJ0YWJsZSkKLSNkZWZpbmUg
TG9va3VwVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cFRhYmxlKQotI2RlZmlu
ZSBMb3dlcmNhc2VUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG93ZXJj
YXNlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE1QcmVGaXh1cHMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE1QcmVGaXh1cHMpCi0jZGVmaW5lIE1hcmtBcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTWFya0FycmF5KQotI2RlZmluZSBNYXJrVG9CYXNlUG9zaXRpb25pbmdTdWJ0YWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvQmFzZVBvc2l0aW9uaW5nU3VidGFibGUpCi0j
ZGVmaW5lIE1hcmtUb0xpZ2F0dXJlUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTWFya1RvTGlnYXR1cmVQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBNYXJr
VG9NYXJrUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1Rv
TWFya1Bvc2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIE1lYXN1cmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE1lYXN1cmUpCi0jZGVmaW5lIE1lYXN1cmVGb3JtYXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE1lYXN1cmVGb3JtYXQpCi0jZGVmaW5lIE1lYXN1cmVVbml0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShNZWFzdXJlVW5pdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTWVzc2FnZUZvcm1hdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdEFk
YXB0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lc3NhZ2VGb3JtYXRBZGFwdGVyKQotI2Rl
ZmluZSBNb2R1bHVzU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb2R1bHVz
U3Vic3RpdHV0aW9uKQotI2RlZmluZSBNb29uUmlzZVNldENvb3JkRnVuYyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTW9vblJpc2VTZXRDb29yZEZ1bmMpCi0jZGVmaW5lIE1vb25UaW1lQW5nbGVG
dW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb29uVGltZUFuZ2xlRnVuYykKLSNkZWZpbmUg
TW9ycGhTdWJ0YWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhTdWJ0YWJs
ZUhlYWRlcikKLSNkZWZpbmUgTW9ycGhUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTW9ycGhUYWJsZUhlYWRlcikKLSNkZWZpbmUgTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkK
LSNkZWZpbmUgTXVsdGlwbGllclN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TXVsdGlwbGllclN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTXV0YWJsZVRyaWVEaWN0aW9uYXJ5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdXRhYmxlVHJpZURpY3Rpb25hcnkpCi0jZGVmaW5lIE11
dGFibGVUcmllRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11dGFibGVUcmll
RW51bWVyYXRpb24pCi0jZGVmaW5lIE5GRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TkZGYWN0b3J5KQotI2RlZmluZSBORktEQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
RktEQnVmZmVyKQotI2RlZmluZSBORlJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5GUnVs
ZSkKLSNkZWZpbmUgTkZSdWxlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1bGVTZXQp
Ci0jZGVmaW5lIE5GU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlN1YnN0
aXR1dGlvbikKLSNkZWZpbmUgTkdyYW1QYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5H
cmFtUGFyc2VyKQotI2RlZmluZSBOYW1lVG9FbnVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
YW1lVG9FbnVtKQotI2RlZmluZSBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb25Db250
ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KE5vbkNvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgTm9uQ29u
dGlndW91c0VudW1Ub09mZnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9uQ29udGlndW91
c0VudW1Ub09mZnNldCkKLSNkZWZpbmUgTm9vcE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShOb29wTm9ybWFsaXplcjIpCi0jZGVmaW5lIE5vcm0yQWxsTW9kZXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE5vcm0yQWxsTW9kZXMpCi0jZGVmaW5lIE5vcm1hbGl6YXRpb25UcmFu
c2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXphdGlvblRyYW5zbGl0
ZXJhdG9yKQotI2RlZmluZSBOb3JtYWxpemVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3Jt
YWxpemVyKQotI2RlZmluZSBOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9y
bWFsaXplcjIpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTm9ybWFsaXplcjJGYWN0b3J5KQotI2RlZmluZSBOb3JtYWxpemVyMkltcGwgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIySW1wbCkKLSNkZWZpbmUgTm9ybWFsaXplcjJX
aXRoSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJXaXRoSW1wbCkKLSNk
ZWZpbmUgTnVsbFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVsbFN1YnN0
aXR1dGlvbikKLSNkZWZpbmUgTnVsbFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShOdWxsVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE51bWJlckZvcm1hdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTnVtYmVyRm9ybWF0KQotI2RlZmluZSBOdW1iZXJGb3JtYXRGYWN0b3J5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBO
dW1iZXJpbmdTeXN0ZW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bWJlcmluZ1N5c3RlbSkK
LSNkZWZpbmUgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
dW1lcmF0b3JTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE9sc29uVGltZVpvbmUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE9sc29uVGltZVpvbmUpCi0jZGVmaW5lIE9wZW5UeXBlTGF5b3V0RW5naW5l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUg
T3BlblR5cGVVdGlsaXRpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9wZW5UeXBlVXRpbGl0
aWVzKQotI2RlZmluZSBPckNvbnN0cmFpbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9yQ29u
c3RyYWludCkKLSNkZWZpbmUgUENFQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQQ0VC
dWZmZXIpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUGFpclBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBQ
YWlyUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBh
aXJQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgUGFpclBvc2l0aW9uaW5nU3Vi
dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ1N1YnRhYmxlKQot
I2RlZmluZSBQYXJhZ3JhcGhMYXlvdXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhcmFncmFw
aExheW91dCkKLSNkZWZpbmUgUGFyc2VEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJz
ZURhdGEpCi0jZGVmaW5lIFBhcnNlUG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBh
cnNlUG9zaXRpb24pCi0jZGVmaW5lIFBhdHRlcm5NYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFBhdHRlcm5NYXApCi0jZGVmaW5lIFBhdHRlcm5NYXBJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUGF0dGVybk1hcEl0ZXJhdG9yKQotI2RlZmluZSBQZXJzaWFuQ2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFBlcnNpYW5DYWxlbmRhcikKLSNkZWZpbmUgUGx1cmFsRm9y
bWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQbHVyYWxGb3JtYXQpCi0jZGVmaW5lIFBsdXJh
bEtleXdvcmRFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsS2V5d29y
ZEVudW1lcmF0aW9uKQotI2RlZmluZSBQbHVyYWxSdWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUGx1cmFsUnVsZXMpCi0jZGVmaW5lIFByb3BlcnR5QWxpYXNlcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUHJvcGVydHlBbGlhc2VzKQotI2RlZmluZSBQdG5FbGVtIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShQdG5FbGVtKQotI2RlZmluZSBQdG5Ta2VsZXRvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUHRuU2tlbGV0b24pCi0jZGVmaW5lIFF1YW50aWZpZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFF1YW50aWZpZXIpCi0jZGVmaW5lIFJCQklEYXRhV3JhcHBlciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUkJCSURhdGFXcmFwcGVyKQotI2RlZmluZSBSQkJJTm9kZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUkJCSU5vZGUpCi0jZGVmaW5lIFJCQklSdWxlQnVpbGRlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVJ1bGVCdWlsZGVyKQotI2RlZmluZSBSQkJJUnVsZVNj
YW5uZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklSdWxlU2Nhbm5lcikKLSNkZWZpbmUg
UkJCSVNldEJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTZXRCdWlsZGVyKQot
I2RlZmluZSBSQkJJU3RhdGVEZXNjcmlwdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJ
U3RhdGVEZXNjcmlwdG9yKQotI2RlZmluZSBSQkJJU3ltYm9sVGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJCQklTeW1ib2xUYWJsZSkKLSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxlRW50cnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTeW1ib2xUYWJsZUVudHJ5KQotI2RlZmluZSBS
QkJJVGFibGVCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJVGFibGVCdWlsZGVy
KQotI2RlZmluZSBSQ0VCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJDRUJ1ZmZlcikK
LSNkZWZpbmUgUmFuZ2VEZXNjcmlwdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSYW5nZURl
c2NyaXB0b3IpCi0jZGVmaW5lIFJlZ2V4Q29tcGlsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UmVnZXhDb21waWxlKQotI2RlZmluZSBSZWdleE1hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJlZ2V4TWF0Y2hlcikKLSNkZWZpbmUgUmVnZXhQYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShSZWdleFBhdHRlcm4pCi0jZGVmaW5lIFJlZ2V4U3RhdGljU2V0cyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUmVnZXhTdGF0aWNTZXRzKQotI2RlZmluZSBSZWd1bGFyRXhwcmVzc2lv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVndWxhckV4cHJlc3Npb24pCi0jZGVmaW5lIFJl
bGF0aXZlRGF0ZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVsYXRpdmVEYXRlRm9y
bWF0KQotI2RlZmluZSBSZW1vdmVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUmVtb3ZlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFJlb3JkZXJpbmdCdWZmZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFJlb3JkZXJpbmdCdWZmZXIpCi0jZGVmaW5lIFJlcGxhY2VhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXBsYWNlYWJsZSkKLSNkZWZpbmUgUmVwbGFjZWFi
bGVHbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXBsYWNlYWJsZUdsdWUpCi0jZGVmaW5l
IFJlc291cmNlQnVuZGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXNvdXJjZUJ1bmRsZSkK
LSNkZWZpbmUgUmlzZVNldENvb3JkRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmlzZVNl
dENvb3JkRnVuYykKLSNkZWZpbmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgUnVsZUJhc2VkQ29s
bGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZENvbGxhdG9yKQotI2RlZmlu
ZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNl
ZE51bWJlckZvcm1hdCkKLSNkZWZpbmUgUnVsZUJhc2VkVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJ1bGVCYXNlZFRpbWVab25lKQotI2RlZmluZSBSdWxlQmFzZWRUcmFuc2xpdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIFJ1bGVDaGFpbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUNoYWluKQotI2Rl
ZmluZSBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVD
aGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgUnVsZUhhbGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJ1bGVIYWxmKQotI2RlZmluZSBSdWxlUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSdWxlUGFyc2VyKQotI2RlZmluZSBSdW5BcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UnVuQXJyYXkpCi0jZGVmaW5lIFNQVVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU1BV
U3RyaW5nKQotI2RlZmluZSBTUFVTdHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
UFVTdHJpbmdQb29sKQotI2RlZmluZSBTYWZlWm9uZVN0cmluZ0Zvcm1hdFB0ciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoU2FmZVpvbmVTdHJpbmdGb3JtYXRQdHIpCi0jZGVmaW5lIFNhbWVWYWx1
ZVN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2FtZVZhbHVlU3Vic3RpdHV0
aW9uKQotI2RlZmluZSBTY3JpcHRMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNj
cmlwdExpc3RUYWJsZSkKLSNkZWZpbmUgU2NyaXB0UnVuSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFNjcmlwdFJ1bkl0ZXJhdG9yKQotI2RlZmluZSBTY3JpcHRTZXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNjcmlwdFNldCkKLSNkZWZpbmUgU2NyaXB0VGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNjcmlwdFRhYmxlKQotI2RlZmluZSBTZWFyY2hJdGVyYXRvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VhcmNoSXRlcmF0b3IpCi0jZGVmaW5lIFNlZ21lbnRBcnJh
eVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VnbWVudEFycmF5UHJvY2Vzc29y
KQotI2RlZmluZSBTZWdtZW50U2luZ2xlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTZWdtZW50U2luZ2xlUHJvY2Vzc29yKQotI2RlZmluZSBTZWxlY3RGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNlbGVjdEZvcm1hdCkKLSNkZWZpbmUgU2VydmljZUVudW1lcmF0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZXJ2aWNlRW51bWVyYXRpb24pCi0jZGVmaW5lIFNl
cnZpY2VMaXN0ZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VydmljZUxpc3RlbmVyKQot
I2RlZmluZSBTaW1wbGVBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2lt
cGxlQXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFNpbXBsZURhdGVGb3JtYXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNpbXBsZURhdGVGb3JtYXQpCi0jZGVmaW5lIFNpbXBsZUZhY3RvcnkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZUxvY2Fs
ZUtleUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZUxvY2FsZUtleUZhY3Rv
cnkpCi0jZGVmaW5lIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZVNpbmdsZXRv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlU2luZ2xldG9uKQotI2RlZmluZSBTaW1w
bGVUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlVGltZVpvbmUpCi0jZGVm
aW5lIFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTaW5nbGVQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlUG9z
aXRpb25pbmdGb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBv
c2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVQb3NpdGlvbmluZ1N1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmluZ1N1YnRhYmxlKQot
I2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2lu
Z2xlU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
aW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0aXR1
dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25T
dWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlVGFibGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFNpbmdsZVRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBTcG9vZkRhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNwb29mRGF0YSkKLSNkZWZpbmUgU3Bvb2ZJbXBsIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTcG9vZkltcGwpCi0jZGVmaW5lIFN0YXRlVGFibGVQcm9jZXNzb3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0YXRlVGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFN0cmlu
Z0NoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvcikKLSNkZWZpbmUgU3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN0cmluZ0VudW1lcmF0aW9uKQotI2RlZmluZSBTdHJpbmdMaXN0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTdHJpbmdMaXN0KQotI2RlZmluZSBTdHJpbmdMb2NhbGl6YXRpb25JbmZv
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdMb2NhbGl6YXRpb25JbmZvKQotI2RlZmlu
ZSBTdHJpbmdNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdNYXRjaGVyKQot
I2RlZmluZSBTdHJpbmdQYWlyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdQYWlyKQot
I2RlZmluZSBTdHJpbmdQaWVjZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUGllY2Up
Ci0jZGVmaW5lIFN0cmluZ1JlcGxhY2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdS
ZXBsYWNlcikKLSNkZWZpbmUgU3RyaW5nU2VhcmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
dHJpbmdTZWFyY2gpCi0jZGVmaW5lIFN0cmluZ1RvQ0VzTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTdHJpbmdUb0NFc01hcCkKLSNkZWZpbmUgU3R5bGVSdW5zIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTdHlsZVJ1bnMpCi0jZGVmaW5lIFN1YnN0aXR1dGlvbkxvb2t1cCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoU3Vic3RpdHV0aW9uTG9va3VwKQotI2RlZmluZSBTdWJ0YWJsZVByb2Nl
c3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3VidGFibGVQcm9jZXNzb3IpCi0jZGVmaW5l
IFN1blRpbWVBbmdsZUZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN1blRpbWVBbmdsZUZ1
bmMpCi0jZGVmaW5lIFN5bWJvbFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTeW1ib2xU
YWJsZSkKLSNkZWZpbmUgVFpFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVFpF
bnVtZXJhdGlvbikKLSNkZWZpbmUgVGFpd2FuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFRhaXdhbkNhbGVuZGFyKQotI2RlZmluZSBUYXJnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFRhcmdldCkKLSNkZWZpbmUgVGVybmFyeU5vZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRlcm5hcnlOb2RlKQotI2RlZmluZSBUZXh0VHJpZU1hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVGV4dFRyaWVNYXApCi0jZGVmaW5lIFRleHRUcmllTWFwU2VhcmNoUmVzdWx0SGFuZGxlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGV4dFRyaWVNYXBTZWFyY2hSZXN1bHRIYW5kbGVyKQot
I2RlZmluZSBUaGFpQnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlCcmVh
a0VuZ2luZSkKLSNkZWZpbmUgVGhhaUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVGhhaUxheW91dEVuZ2luZSkKLSNkZWZpbmUgVGhhaVNoYXBpbmcgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRoYWlTaGFwaW5nKQotI2RlZmluZSBUaWJldGFuQ2xhc3NUYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbkNsYXNzVGFibGUpCi0jZGVmaW5lIFRpYmV0YW5PcGVu
VHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbk9wZW5UeXBl
TGF5b3V0RW5naW5lKQotI2RlZmluZSBUaWJldGFuUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVGliZXRhblJlb3JkZXJpbmcpCi0jZGVmaW5lIFRpbWVBcnJheVRpbWVab25lUnVs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZUFycmF5VGltZVpvbmVSdWxlKQotI2RlZmlu
ZSBUaW1lVW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVVuaXQpCi0jZGVmaW5lIFRp
bWVVbml0QW1vdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lVW5pdEFtb3VudCkKLSNk
ZWZpbmUgVGltZVVuaXRGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVVbml0Rm9y
bWF0KQotI2RlZmluZSBUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmUp
Ci0jZGVmaW5lIFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmVS
dWxlKQotI2RlZmluZSBUaW1lWm9uZVRyYW5zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRpbWVab25lVHJhbnNpdGlvbikKLSNkZWZpbmUgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBU
cmFuc2xpdGVyYXRpb25SdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRp
b25SdWxlKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlRGF0YSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVHJhbnNsaXRlcmF0aW9uUnVsZURhdGEpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlv
blJ1bGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQp
Ci0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xp
dGVyYXRvcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JBbGlhcyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVHJhbnNsaXRlcmF0b3JBbGlhcykKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JFbnRyeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JFbnRyeSkKLSNkZWZpbmUgVHJh
bnNsaXRlcmF0b3JJRFBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0
b3JJRFBhcnNlcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JQYXJzZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yUGFyc2VyKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclJl
Z2lzdHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5KQot
I2RlZmluZSBUcmFuc2xpdGVyYXRvclNwZWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5z
bGl0ZXJhdG9yU3BlYykKLSNkZWZpbmUgVHJpU3RhdGVTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRyaVN0YXRlU2luZ2xldG9uKQotI2RlZmluZSBUcmllV29yZERpY3Rpb25hcnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyaWVXb3JkRGljdGlvbmFyeSkKLSNkZWZpbmUgVHJp
bW1lZEFycmF5UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmltbWVkQXJyYXlQ
cm9jZXNzb3IpCi0jZGVmaW5lIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IpCi0jZGVmaW5lIFVDb2xsYXRpb25QQ0Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDb2xsYXRpb25QQ0UpCi0jZGVmaW5lIFVEYXRhUGF0
aEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVRGF0YVBhdGhJdGVyYXRvcikKLSNk
ZWZpbmUgVUxvY1J1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVMb2NSdW5zKQotI2RlZmlu
ZSBVTWVtb3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVTWVtb3J5KQotI2RlZmluZSBVT2Jq
ZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVT2JqZWN0KQotI2RlZmluZSBVU3RhY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFVTdGFjaykKLSNkZWZpbmUgVVN0cmluZ0VudW1lcmF0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVU3RyaW5nRW51bWVyYXRpb24pCi0jZGVmaW5lIFVU
UzQ2IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVFM0NikKLSNkZWZpbmUgVVRyaWUyU2luZ2xl
dG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVHJpZTJTaW5nbGV0b24pCi0jZGVmaW5lIFVW
ZWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3IpCi0jZGVmaW5lIFVWZWN0b3Iz
MiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3RvcjMyKQotI2RlZmluZSBVVmVjdG9yNjQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3I2NCkKLSNkZWZpbmUgVW5lc2NhcGVUcmFu
c2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5lc2NhcGVUcmFuc2xpdGVyYXRv
cikKLSNkZWZpbmUgVW5oYW5kbGVkRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmhh
bmRsZWRFbmdpbmUpCi0jZGVmaW5lIFVuaWNvZGVBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5l
KQotI2RlZmluZSBVbmljb2RlRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2Rl
RmlsdGVyKQotI2RlZmluZSBVbmljb2RlRnVuY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VW5pY29kZUZ1bmN0b3IpCi0jZGVmaW5lIFVuaWNvZGVNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVbmljb2RlTWF0Y2hlcikKLSNkZWZpbmUgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcikKLSNk
ZWZpbmUgVW5pY29kZVJlcGxhY2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlUmVw
bGFjZXIpCi0jZGVmaW5lIFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNv
ZGVTZXQpCi0jZGVmaW5lIFVuaWNvZGVTZXRJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVW5pY29kZVNldEl0ZXJhdG9yKQotI2RlZmluZSBVbmljb2RlU2V0U3RyaW5nU3BhbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVNldFN0cmluZ1NwYW4pCi0jZGVmaW5lIFVuaWNv
ZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVTdHJpbmcpCi0jZGVmaW5l
IFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVcHBlcmNh
c2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVlRaUmVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShWVFpSZWFkZXIpCi0jZGVmaW5lIFZUWldyaXRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVlRaV3JpdGVyKQotI2RlZmluZSBWVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFZUaW1lWm9uZSkKLSNkZWZpbmUgVmFsdWVSZWNvcmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFZhbHVlUmVjb3JkKQotI2RlZmluZSBWYWx1ZVJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFZhbHVlUnVucykKLSNkZWZpbmUgWlNGQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpT
RkNhY2hlKQotI2RlZmluZSBaU0ZDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSha
U0ZDYWNoZUVudHJ5KQotI2RlZmluZSBaU0ZTdHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShaU0ZTdHJpbmdQb29sKQotI2RlZmluZSBaU0ZTdHJpbmdQb29sQ2h1bmsgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFpTRlN0cmluZ1Bvb2xDaHVuaykKLSNkZWZpbmUgWm9uZU1ldGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVNZXRhKQotI2RlZmluZSBab25lU3RyaW5nRm9ybWF0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3RyaW5nRm9ybWF0KQotI2RlZmluZSBab25l
U3RyaW5nSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ0luZm8pCi0jZGVm
aW5lIFpvbmVTdHJpbmdTZWFyY2hSZXN1bHRIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShab25lU3RyaW5nU2VhcmNoUmVzdWx0SGFuZGxlcikKLSNkZWZpbmUgWm9uZVN0cmluZ3MgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdzKQotI2RlZmluZSBjb2xsSXRlcmF0ZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY29sbEl0ZXJhdGUpCi0jZGVmaW5lIGxvY2FsZV9zZXRf
ZGVmYXVsdF9pbnRlcm5hbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUobG9jYWxlX3NldF9kZWZh
dWx0X2ludGVybmFsKQotI2RlZmluZSB1dGlsNjRfZnJvbURvdWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXRpbDY0X2Zyb21Eb3VibGUpCi0jZGVmaW5lIHV0aWw2NF9wb3cgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHV0aWw2NF9wb3cpCi0jZGVmaW5lIHV0aWw2NF90b3UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHV0aWw2NF90b3UpCi0KLSNlbmRpZgotI2VuZGlmCi0KICNlbmRpZgog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VzY3Jp
cHQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRleCBlZTIx
Yzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRhZmFiNTNm
ZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3Uv
dW5pY29kZS91c2NyaXB0LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXNj
cmlwdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgIENvcHlyaWdo
dCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENv
cHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAg
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKICAqCkBAIC00NCwxODIgKzQ0LDM2OSBAQAogICogQHN0YWJsZSBJQ1UgMi4yCiAg
Ki8KIHR5cGVkZWYgZW51bSBVU2NyaXB0Q29kZSB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBVU2Ny
aXB0Q29kZSBjb25zdGFudHMgYW5kIHRoZWlyIElTTyBzY3JpcHQgY29kZSBjb21tZW50cworICAg
ICAqIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5l
cyBsaWtlCisgICAgICogICAgIFVTQ1JJUFRfPFVuaWNvZGUgU2NyaXB0IHZhbHVlIG5hbWU+ID0g
PGludGVnZXI+LCAgLyAqIDxJU08gc2NyaXB0IGNvZGU+ICogLworICAgICAqLworCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0lOVkFMSURfQ09ERSA9IC0xLAor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DT01NT04gICAgICAg
PSAgMCwgIC8qIFp5eXkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVT
Q1JJUFRfSU5IRVJJVEVEICAgID0gIDEsICAvKiBaaW5oICovIC8qICJDb2RlIGZvciBpbmhlcml0
ZWQgc2NyaXB0IiwgZm9yIG5vbi1zcGFjaW5nIGNvbWJpbmluZyBtYXJrczsgYWxzbyBRYWFpICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0FSQUJJQyAgICAg
ICA9ICAyLCAgLyogQXJhYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9BUk1FTklBTiAgICAgPSAgMywgIC8qIEFybW4gKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQkVOR0FMSSAgICAgID0gIDQsICAvKiBCZW5nICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0JPUE9NT0ZPICAg
ICA9ICA1LCAgLyogQm9wbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9DSEVST0tFRSAgICAgPSAgNiwgIC8qIENoZXIgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09QVElDICAgICAgID0gIDcsICAvKiBDb3B0ICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0NZUklMTElDICAg
ICA9ICA4LCAgLyogQ3lybCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9ERVNFUkVUICAgICAgPSAgOSwgIC8qIERzcnQgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfREVWQU5BR0FSSSAgID0gMTAsICAvKiBEZXZhICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0VUSElPUElDICAg
ICA9IDExLCAgLyogRXRoaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9HRU9SR0lBTiAgICAgPSAxMiwgIC8qIEdlb3IgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR09USElDICAgICAgID0gMTMsICAvKiBHb3RoICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0dSRUVLICAgICAg
ICA9IDE0LCAgLyogR3JlayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9HVUpBUkFUSSAgICAgPSAxNSwgIC8qIEd1anIgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1VSTVVLSEkgICAgID0gMTYsICAvKiBHdXJ1ICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0hBTiAgICAgICAg
ICA9IDE3LCAgLyogSGFuaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9IQU5HVUwgICAgICAgPSAxOCwgIC8qIEhhbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEVCUkVXICAgICAgID0gMTksICAvKiBIZWJyICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0hJUkFHQU5BICAg
ICA9IDIwLCAgLyogSGlyYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9LQU5OQURBICAgICAgPSAyMSwgIC8qIEtuZGEgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0FUQUtBTkEgICAgID0gMjIsICAvKiBLYW5hICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0tITUVSICAgICAg
ICA9IDIzLCAgLyogS2htciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9MQU8gICAgICAgICAgPSAyNCwgIC8qIExhb28gKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU4gICAgICAgID0gMjUsICAvKiBMYXRuICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX01BTEFZQUxBTSAg
ICA9IDI2LCAgLyogTWx5bSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9NT05HT0xJQU4gICAgPSAyNywgIC8qIE1vbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTVlBTk1BUiAgICAgID0gMjgsICAvKiBNeW1yICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX09HSEFNICAgICAg
ICA9IDI5LCAgLyogT2dhbSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9PTERfSVRBTElDICAgPSAzMCwgIC8qIEl0YWwgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT1JJWUEgICAgICAgID0gMzEsICAvKiBPcnlhICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1JVTklDICAgICAg
ICA9IDMyLCAgLyogUnVuciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9TSU5IQUxBICAgICAgPSAzMywgIC8qIFNpbmggKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfU1lSSUFDICAgICAgID0gMzQsICAvKiBTeXJjICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBTUlMICAgICAg
ICA9IDM1LCAgLyogVGFtbCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9URUxVR1UgICAgICAgPSAzNiwgIC8qIFRlbHUgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEhBQU5BICAgICAgID0gMzcsICAvKiBUaGFhICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RIQUkgICAgICAg
ICA9IDM4LCAgLyogVGhhaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAg
VVNDUklQVF9USUJFVEFOICAgICAgPSAzOSwgIC8qIFRpYnQgKi8KICAgICAgIC8qKiBDYW5hZGlh
bl9BYm9yaWdpbmFsIHNjcmlwdC4gQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX0NB
TkFESUFOX0FCT1JJR0lOQUwgPSA0MCwgIC8qIENhbnMgKi8KICAgICAgIC8qKiBDYW5hZGlhbl9B
Ym9yaWdpbmFsIHNjcmlwdCAoYWxpYXMpLiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfVUNBUyAgICAgICAgID0gVVNDUklQVF9DQU5BRElBTl9BQk9SSUdJTkFMLAorICAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ZSSAgICAgICAgICAgPSA0MSwgIC8q
IFlpaWkgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgMy4yICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBR0FMT0cgICAgICA9IDQyLCAg
LyogVGdsZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9I
QU5VTk9PICAgICAgPSA0MywgIC8qIEhhbm8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIg
Ki8KICAgICAgIFVTQ1JJUFRfQlVISUQgICAgICAgID0gNDQsICAvKiBCdWhkICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBR0JBTldBICAgICA9IDQ1LCAg
LyogVGFnYiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQgQHN0YWJsZSBJ
Q1UgMi42ICovCisgICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfQlJBSUxMRSAgICAgID0gNDYsICAv
KiBCcmFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX0NZ
UFJJT1QgICAgICA9IDQ3LCAgLyogQ3BydCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAq
LwogICAgICAgVVNDUklQVF9MSU1CVSAgICAgICAgPSA0OCwgIC8qIExpbWIgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfTElORUFSX0IgICAgID0gNDksICAv
KiBMaW5iICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX09T
TUFOWUEgICAgICA9IDUwLCAgLyogT3NtYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAq
LwogICAgICAgVVNDUklQVF9TSEFWSUFOICAgICAgPSA1MSwgIC8qIFNoYXcgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfVEFJX0xFICAgICAgID0gNTIsICAv
KiBUYWxlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX1VH
QVJJVElDICAgICA9IDUzLCAgLyogVWdhciAqLwogCiAgICAgICAvKiogTmV3IHNjcmlwdCBjb2Rl
IGluIFVuaWNvZGUgNC4wLjEgQHN0YWJsZSBJQ1UgMy4wICovCiAgICAgICBVU0NSSVBUX0tBVEFL
QU5BX09SX0hJUkFHQU5BID0gNTQsLypIcmt0ICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHRzIGlu
IFVuaWNvZGUgNC4xIEBzdGFibGUgSUNVIDMuNCAqLworICAgICAgLyogTmV3IHNjcmlwdHMgaW4g
VW5pY29kZSA0LjEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJ
UFRfQlVHSU5FU0UgICAgICA9IDU1LCAvKiBCdWdpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My40ICovCiAgICAgICBVU0NSSVBUX0dMQUdPTElUSUMgICAgPSA1NiwgLyogR2xhZyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQVF9LSEFST1NIVEhJICAgID0g
NTcsIC8qIEtoYXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJ
UFRfU1lMT1RJX05BR1JJICA9IDU4LCAvKiBTeWxvICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My40ICovCiAgICAgICBVU0NSSVBUX05FV19UQUlfTFVFICAgPSA1OSwgLyogVGFsdSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQVF9USUZJTkFHSCAgICAgID0g
NjAsIC8qIFRmbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJ
UFRfT0xEX1BFUlNJQU4gICA9IDYxLCAvKiBYcGVvICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHQg
Y29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgMy42ICovCisgICAgICAvKiBOZXcgc2Ny
aXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX0JBTElORVNFICAgICAgICAgICAgICAgICAgICAgID0gNjIsIC8qIEJh
bGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQkFUQUsg
ICAgICAgICAgICAgICAgICAgICAgICAgPSA2MywgLyogQmF0ayAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9CTElTU1lNQk9MUyAgICAgICAgICAgICAgICAg
ICA9IDY0LCAvKiBCbGlzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX0JSQUhNSSAgICAgICAgICAgICAgICAgICAgICAgID0gNjUsIC8qIEJyYWggKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ0hBTSAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSA2NiwgLyogQ2hhbSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9DSVJUSCAgICAgICAgICAgICAgICAgICAgICAgICA9IDY3LCAv
KiBDaXJ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX09M
RF9DSFVSQ0hfU0xBVk9OSUNfQ1lSSUxMSUMgID0gNjgsIC8qIEN5cnMgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfREVNT1RJQ19FR1lQVElBTiAgICAgICAg
ICAgICAgPSA2OSwgLyogRWd5ZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9ISUVSQVRJQ19FR1lQVElBTiAgICAgICAgICAgICA9IDcwLCAvKiBFZ3loICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0VHWVBUSUFOX0hJ
RVJPR0xZUEhTICAgICAgICAgID0gNzEsIC8qIEVneXAgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0hVVFNVUkkgICAgICAgICAgICAgICAgICAgICAgPSA3
MiwgLyogR2VvayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9TSU1QTElGSUVEX0hBTiAgICAgICAgICAgICAgICA9IDczLCAvKiBIYW5zICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1RSQURJVElPTkFMX0hBTiAgICAg
ICAgICAgICAgID0gNzQsIC8qIEhhbnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfUEFIQVdIX0hNT05HICAgICAgICAgICAgICAgICAgPSA3NSwgLyogSG1u
ZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9PTERfSFVO
R0FSSUFOICAgICAgICAgICAgICAgICA9IDc2LCAvKiBIdW5nICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0hBUkFQUEFOX0lORFVTICAgICAgICAgICAgICAg
ID0gNzcsIC8qIEluZHMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfSkFWQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA3OCwgLyogSmF2YSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9LQVlBSF9MSSAgICAgICAg
ICAgICAgICAgICAgICA9IDc5LCAvKiBLYWxpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0ZSQUtUVVIgICAgICAgICAgICAgICAgID0gODAsIC8q
IExhdGYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTEFU
SU5fR0FFTElDICAgICAgICAgICAgICAgICAgPSA4MSwgLyogTGF0ZyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9MRVBDSEEgICAgICAgICAgICAgICAgICAg
ICAgICA9IDgyLCAvKiBMZXBjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAg
ICBVU0NSSVBUX0xJTkVBUl9BICAgICAgICAgICAgICAgICAgICAgID0gODMsIC8qIExpbmEgKi8K
ICAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUFOREFJQyAgICAg
ICAgICAgICAgICAgICAgICAgPSA4NCwgLyogTWFuZCAqLwogICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuNiAqLwogICAgICAgVVNDUklQVF9NQU5EQUVBTiAgICAgICAgICAgICAgICAgICAgICA9IFVT
Q1JJUFRfTUFOREFJQywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfTUFZQU5fSElFUk9HTFlQSFMgICAgICAgICAgICAgPSA4NSwgLyogTWF5YSAqLwogICAgICAg
LyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRVJPSVRJQ19ISUVST0dMWVBI
UyAgICAgICAgICA9IDg2LCAvKiBNZXJvICovCiAgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX01FUk9JVElDICAgICAgICAgICAgICAgICAgICAgID0gVVNDUklQVF9N
RVJPSVRJQ19ISUVST0dMWVBIUywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAg
IFVTQ1JJUFRfTktPICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA4NywgLyogTmtvbyAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9PUktIT04gICAgICAg
ICAgICAgICAgICAgICAgICA9IDg4LCAvKiBPcmtoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My42ICovCiAgICAgICBVU0NSSVBUX09MRF9QRVJNSUMgICAgICAgICAgICAgICAgICAgID0gODks
IC8qIFBlcm0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRf
UEhBR1NfUEEgICAgICAgICAgICAgICAgICAgICAgPSA5MCwgLyogUGhhZyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9QSE9FTklDSUFOICAgICAgICAgICAg
ICAgICAgICA9IDkxLCAvKiBQaG54ICovCi0gICAgICBVU0NSSVBUX1BIT05FVElDX1BPTExBUkQg
ICAgICAgICAgICAgID0gOTIsIC8qIFBscmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA1MiAq
LworICAgICAgVVNDUklQVF9NSUFPICAgICAgICAgICAgICAgICAgICAgICAgICA9IDkyLCAvKiBQ
bHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCisgICAgICBVU0NSSVBUX1BIT05F
VElDX1BPTExBUkQgICAgICAgICAgICAgID0gVVNDUklQVF9NSUFPLAorICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ST05HT1JPTkdPICAgICAgICAgICAgICAgICAg
ICA9IDkzLCAvKiBSb3JvICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX1NBUkFUSSAgICAgICAgICAgICAgICAgICAgICAgID0gOTQsIC8qIFNhcmEgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfRVNUUkFOR0VMT19TWVJJ
QUMgICAgICAgICAgICAgPSA5NSwgLyogU3lyZSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9XRVNURVJOX1NZUklBQyAgICAgICAgICAgICAgICA9IDk2LCAv
KiBTeXJqICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0VB
U1RFUk5fU1lSSUFDICAgICAgICAgICAgICAgID0gOTcsIC8qIFN5cm4gKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVEVOR1dBUiAgICAgICAgICAgICAgICAg
ICAgICAgPSA5OCwgLyogVGVuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9WQUkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDk5LCAvKiBWYWlpICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1ZJU0lCTEVfU1BF
RUNIICAgICAgICAgICAgICAgID0gMTAwLC8qIFZpc3AgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ1VORUlGT1JNICAgICAgICAgICAgICAgICAgICAgPSAx
MDEsLyogWHN1eCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9VTldSSVRURU5fTEFOR1VBR0VTICAgICAgICAgICA9IDEwMiwvKiBaeHh4ICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1VOS05PV04gICAgICAgICAgICAg
ICAgICAgICAgID0gMTAzLC8qIFp6enogKi8gLyogVW5rbm93bj0iQ29kZSBmb3IgdW5jb2RlZCBz
Y3JpcHQiLCBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyAqLwogCi0gICAgICAvKiBOZXcgc2Ny
aXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDMuOCAqLworICAgICAgLyogTmV3
IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
OCAqLwogICAgICAgVVNDUklQVF9DQVJJQU4gICAgICAgICAgICAgICAgICAgICAgICA9IDEwNCwv
KiBDYXJpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX0pB
UEFORVNFICAgICAgICAgICAgICAgICAgICAgID0gMTA1LC8qIEpwYW4gKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTEFOTkEgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMDYsLyogTGFuYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAg
ICAgVVNDUklQVF9MWUNJQU4gICAgICAgICAgICAgICAgICAgICAgICA9IDEwNywvKiBMeWNpICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX0xZRElBTiAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTA4LC8qIEx5ZGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjggKi8KICAgICAgIFVTQ1JJUFRfT0xfQ0hJS0kgICAgICAgICAgICAgICAgICAgICAgPSAx
MDksLyogT2xjayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQ
VF9SRUpBTkcgICAgICAgICAgICAgICAgICAgICAgICA9IDExMCwvKiBSam5nICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX1NBVVJBU0hUUkEgICAgICAgICAg
ICAgICAgICAgID0gMTExLC8qIFNhdXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8K
ICAgICAgIFVTQ1JJUFRfU0lHTl9XUklUSU5HICAgICAgICAgICAgICAgICAgPSAxMTIsLyogU2du
dyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9TVU5EQU5F
U0UgICAgICAgICAgICAgICAgICAgICA9IDExMywvKiBTdW5kICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01PT04gICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTE0LC8qIE1vb24gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVT
Q1JJUFRfTUVJVEVJX01BWUVLICAgICAgICAgICAgICAgICAgPSAxMTUsLyogTXRlaSAqLwogCi0g
ICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDQuMCAq
LworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTVBFUklBTF9BUkFNQUlDICAgICAg
ICAgICAgICA9IDExNiwvKiBBcm1pICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAg
ICAgICBVU0NSSVBUX0FWRVNUQU4gICAgICAgICAgICAgICAgICAgICAgID0gMTE3LC8qIEF2c3Qg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQ0hBS01BICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMTgsLyogQ2FrbSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LT1JFQU4gICAgICAgICAgICAgICAgICAgICAgICA9
IDExOSwvKiBLb3JlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NS
SVBUX0tBSVRISSAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwLC8qIEt0aGkgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfTUFOSUNIQUVBTiAgICAgICAg
ICAgICAgICAgICAgPSAxMjEsLyogTWFuaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAq
LwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBSExBVkkgICAgICAgICA9IDEyMiwvKiBQ
aGxpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1BTQUxU
RVJfUEFITEFWSSAgICAgICAgICAgICAgID0gMTIzLC8qIFBobHAgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQk9PS19QQUhMQVZJICAgICAgICAgICAgICAg
ICAgPSAxMjQsLyogUGhsdiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAg
VVNDUklQVF9JTlNDUklQVElPTkFMX1BBUlRISUFOICAgICAgICA9IDEyNSwvKiBQcnRpICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1NBTUFSSVRBTiAgICAg
ICAgICAgICAgICAgICAgID0gMTI2LC8qIFNhbXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
LjAgKi8KICAgICAgIFVTQ1JJUFRfVEFJX1ZJRVQgICAgICAgICAgICAgICAgICAgICAgPSAxMjcs
LyogVGF2dCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9N
QVRIRU1BVElDQUxfTk9UQVRJT04gICAgICAgICA9IDEyOCwvKiBabXRoICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1NZTUJPTFMgICAgICAgICAgICAgICAg
ICAgICAgID0gMTI5LC8qIFpzeW0gKi8KIAotICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9t
IElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMg
ZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAgICAgIFVT
Q1JJUFRfQkFNVU0gICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAsLyogQmFtdSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAgVVNDUklQVF9MSVNVICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzMSwvKiBMaXN1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40
ICovCiAgICAgICBVU0NSSVBUX05BS0hJX0dFQkEgICAgICAgICAgICAgICAgICAgID0gMTMyLC8q
IE5rZ2IgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfT0xE
X1NPVVRIX0FSQUJJQU4gICAgICAgICAgICAgPSAxMzMsLyogU2FyYiAqLwogCi0gICAgICAvKiBO
ZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDQuNiAqLworICAgICAg
LyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9CQVNTQV9WQUggICAgICAgICAgICAgICAgICAgICA9
IDEzNCwvKiBCYXNzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NS
SVBUX0RVUExPWUFOX1NIT1JUQU5EICAgICAgICAgICAgID0gMTM1LC8qIER1cGwgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfRUxCQVNBTiAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMzYsLyogRWxiYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAq
LwogICAgICAgVVNDUklQVF9HUkFOVEhBICAgICAgICAgICAgICAgICAgICAgICA9IDEzNywvKiBH
cmFuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0tQRUxM
RSAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LC8qIEtwZWwgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTE9NQSAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMzksLyogTG9tYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAg
VVNDUklQVF9NRU5ERSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE0MCwvKiBNZW5kICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElDX0NVUlNJ
VkUgICAgICAgICAgICAgID0gMTQxLC8qIE1lcmMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
LjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX05PUlRIX0FSQUJJQU4gICAgICAgICAgICAgPSAxNDIs
LyogTmFyYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9O
QUJBVEFFQU4gICAgICAgICAgICAgICAgICAgICA9IDE0MywvKiBOYmF0ICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX1BBTE1ZUkVORSAgICAgICAgICAgICAg
ICAgICAgID0gMTQ0LC8qIFBhbG0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAg
ICAgIFVTQ1JJUFRfU0lOREhJICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDUsLyogU2luZCAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9XQVJBTkdfQ0lU
SSAgICAgICAgICAgICAgICAgICA9IDE0NiwvKiBXYXJhICovCiAKKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfQUZBS0EgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxNDcsLyogQWZhayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVND
UklQVF9KVVJDSEVOICAgICAgICAgICAgICAgICAgICAgICA9IDE0OCwvKiBKdXJjICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX01STyAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTQ5LC8qIE1yb28gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0Ljgg
Ki8KKyAgICAgIFVTQ1JJUFRfTlVTSFUgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNTAsLyog
TnNodSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9TSEFS
QURBICAgICAgICAgICAgICAgICAgICAgICA9IDE1MSwvKiBTaHJkICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1NPUkFfU09NUEVORyAgICAgICAgICAgICAg
ICAgID0gMTUyLC8qIFNvcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAg
IFVTQ1JJUFRfVEFLUkkgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNTMsLyogVGFrciAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9UQU5HVVQgICAgICAg
ICAgICAgICAgICAgICAgICA9IDE1NCwvKiBUYW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC44ICovCisgICAgICBVU0NSSVBUX1dPTEVBSSAgICAgICAgICAgICAgICAgICAgICAgID0gMTU1
LC8qIFdvbGUgKi8KKworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBVU0NSSVBU
X0FOQVRPTElBTl9ISUVST0dMWVBIUyAgICAgICAgID0gMTU2LC8qIEhsdXcgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQVF9LSE9KS0kgICAgICAgICAgICAgICAg
ICAgICAgICA9IDE1NywvKiBLaG9qICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICAgIFVTQ1JJUFRfVElSSFVUQSAgICAgICAgICAgICAgICAgICAgICAgPSAxNTgsLyogVGlyaCAq
LworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAgIFVTQ1JJUFRfQ0FVQ0FTSUFO
X0FMQkFOSUFOICAgICAgICAgICAgPSAxNTksLyogQWdoYiAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDUyICovCisgICAgICBVU0NSSVBUX01BSEFKQU5JICAgICAgICAgICAgICAgICAgICAgID0g
MTYwLC8qIE1haGogKi8KKwogICAgICAgLyogUHJpdmF0ZSB1c2UgY29kZXMgZnJvbSBRYWFhIC0g
UWFieCBhcmUgbm90IHN1cHBvcnRlZCAqLwotICAgICAgVVNDUklQVF9DT0RFX0xJTUlUICAgID0g
MTQ3CisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KKyAgICAgIFVTQ1JJUFRfQ09ERV9M
SU1JVCAgICA9IDE2MQogfSBVU2NyaXB0Q29kZTsKIAogLyoqCkBAIC0yNzcsOSArNDY0LDkgQEAg
VV9TVEFCTEUgVVNjcmlwdENvZGUgIFVfRVhQT1JUMgogdXNjcmlwdF9nZXRTY3JpcHQoVUNoYXIz
MiBjb2RlcG9pbnQsIFVFcnJvckNvZGUgKmVycik7CiAKIC8qKgotICogSXMgY29kZSBwb2ludCBj
IHVzZWQgaW4gc2NyaXB0IHNjPwotICogVGhhdCBpcywgZG9lcyBjb2RlIHBvaW50IGMgaGF2ZSB0
aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLAotICogb3IgZG8gY29kZSBwb2ludCBjJ3MgU2Ny
aXB0X0V4dGVuc2lvbnMgaW5jbHVkZSBzY3JpcHQgY29kZSBzYz8KKyAqIERvIHRoZSBTY3JpcHRf
RXh0ZW5zaW9ucyBvZiBjb2RlIHBvaW50IGMgY29udGFpbiBzY3JpcHQgc2M/CisgKiBJZiBjIGRv
ZXMgbm90IGhhdmUgZXhwbGljaXQgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhpcyB0ZXN0cyB3
aGV0aGVyCisgKiBjIGhhcyB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLgogICoKICAqIFNv
bWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRzLgogICog
Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3Jn
L3JlcG9ydHMvdHIyNC8uCkBAIC0yODgsMTUgKzQ3NSwyMiBAQCB1c2NyaXB0X2dldFNjcmlwdChV
Q2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJyKTsKICAqIGluIGZ1dHVyZSB2ZXJzaW9u
cyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRodXMgaW4gSUNVLgogICogQHBhcmFtIGMg
Y29kZSBwb2ludAogICogQHBhcmFtIHNjIHNjcmlwdCBjb2RlCi0gKiBAcmV0dXJuIFRSVUUgaWYg
U2NyaXB0KGMpPT1zYyBvciBzYyBpcyBpbiBTY3JpcHRfRXh0ZW5zaW9ucyhjKQotICogQGRyYWZ0
IElDVSA0LjYKKyAqIEByZXR1cm4gVFJVRSBpZiBzYyBpcyBpbiBTY3JpcHRfRXh0ZW5zaW9ucyhj
KQorICogQHN0YWJsZSBJQ1UgNDkKICAqLwotVV9EUkFGVCBVQm9vbCBVX0VYUE9SVDIKK1VfU1RB
QkxFIFVCb29sIFVfRVhQT1JUMgogdXNjcmlwdF9oYXNTY3JpcHQoVUNoYXIzMiBjLCBVU2NyaXB0
Q29kZSBzYyk7CiAKIC8qKgogICogV3JpdGVzIGNvZGUgcG9pbnQgYydzIFNjcmlwdF9FeHRlbnNp
b25zIGFzIGEgbGlzdCBvZiBVU2NyaXB0Q29kZSB2YWx1ZXMKLSAqIHRvIHRoZSBvdXRwdXQgc2Ny
aXB0cyBhcnJheS4KKyAqIHRvIHRoZSBvdXRwdXQgc2NyaXB0cyBhcnJheSBhbmQgcmV0dXJucyB0
aGUgbnVtYmVyIG9mIHNjcmlwdCBjb2Rlcy4KKyAqIC0gSWYgYyBkb2VzIGhhdmUgU2NyaXB0X0V4
dGVuc2lvbnMsIHRoZW4gdGhlIFNjcmlwdCBwcm9wZXJ0eSB2YWx1ZQorICogICAobm9ybWFsbHkg
Q29tbW9uIG9yIEluaGVyaXRlZCkgaXMgbm90IGluY2x1ZGVkLgorICogLSBJZiBjIGRvZXMgbm90
IGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIG9uZSBTY3JpcHQgY29kZSBpcyB3cml0
dGVuIHRvIHRoZSBvdXRwdXQgYXJyYXkuCisgKiAtIElmIGMgaXMgbm90IGEgdmFsaWQgY29kZSBw
b2ludCwgdGhlbiB0aGUgb25lIFVTQ1JJUFRfVU5LTk9XTiBjb2RlIGlzIHdyaXR0ZW4uCisgKiBJ
biBvdGhlciB3b3JkcywgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyAxLAorICogdGhlbiB0aGUgb3V0
cHV0IGFycmF5IGNvbnRhaW5zIGV4YWN0bHkgYydzIHNpbmdsZSBTY3JpcHQgY29kZS4KKyAqIElm
IHRoZSByZXR1cm4gdmFsdWUgaXMgbj49MiwgdGhlbiB0aGUgb3V0cHV0IGFycmF5IGNvbnRhaW5z
IGMncyBuIFNjcmlwdF9FeHRlbnNpb25zIHNjcmlwdCBjb2Rlcy4KICAqCiAgKiBTb21lIGNoYXJh
Y3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAqIEZvciBtb3Jl
IGluZm9ybWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRz
L3RyMjQvLgpAQCAtMzE0LDEzICs1MDgsMTIwIEBAIHVzY3JpcHRfaGFzU2NyaXB0KFVDaGFyMzIg
YywgVVNjcmlwdENvZGUgc2MpOwogICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBVX1NVQ0NF
U1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCiAgKiAgICAgICAgICAgICAg
ICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3
aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3Vp
ZGUgZm9yIGRldGFpbHMuKQotICogQHJldHVybiBudW1iZXIgb2Ygc2NyaXB0IGNvZGVzIGluIGMn
cyBTY3JpcHRfRXh0ZW5zaW9ucywKKyAqIEByZXR1cm4gbnVtYmVyIG9mIHNjcmlwdCBjb2RlcyBp
biBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMsIG9yIDEgZm9yIHRoZSBzaW5nbGUgU2NyaXB0IHZhbHVl
LAogICogICAgICAgICB3cml0dGVuIHRvIHNjcmlwdHMgdW5sZXNzIFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SIGluZGljYXRlcyBpbnN1ZmZpY2llbnQgY2FwYWNpdHkKLSAqIEBkcmFmdCBJQ1UgNC42
CisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zKFVDaGFy
MzIgYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0Q29kZSAqc2NyaXB0cywg
aW50MzJfdCBjYXBhY2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpl
cnJvckNvZGUpOworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKworLyoqCisgKiBTY3JpcHQg
dXNhZ2UgY29uc3RhbnRzLgorICogU2VlIFVBWCAjMzEgVW5pY29kZSBJZGVudGlmaWVyIGFuZCBQ
YXR0ZXJuIFN5bnRheC4KKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjMxLyNU
YWJsZV9DYW5kaWRhdGVfQ2hhcmFjdGVyc19mb3JfRXhjbHVzaW9uX2Zyb21fSWRlbnRpZmllcnMK
KyAqCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK3R5cGVkZWYgZW51bSBVU2NyaXB0VXNhZ2Ugewor
ICAgIC8qKiBOb3QgZW5jb2RlZCBpbiBVbmljb2RlLiBAZHJhZnQgSUNVIDUxICovCisgICAgVVND
UklQVF9VU0FHRV9OT1RfRU5DT0RFRCwKKyAgICAvKiogVW5rbm93biBzY3JpcHQgdXNhZ2UuIEBk
cmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1VOS05PV04sCisgICAgLyoqIENhbmRp
ZGF0ZSBmb3IgRXhjbHVzaW9uIGZyb20gSWRlbnRpZmllcnMuIEBkcmFmdCBJQ1UgNTEgKi8KKyAg
ICBVU0NSSVBUX1VTQUdFX0VYQ0xVREVELAorICAgIC8qKiBMaW1pdGVkIFVzZSBzY3JpcHQuIEBk
cmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0xJTUlURURfVVNFLAorICAgIC8qKiBB
c3BpcmF0aW9uYWwgVXNlIHNjcmlwdC4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNB
R0VfQVNQSVJBVElPTkFMLAorICAgIC8qKiBSZWNvbW1lbmRlZCBzY3JpcHQuIEBkcmFmdCBJQ1Ug
NTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1JFQ09NTUVOREVECit9IFVTY3JpcHRVc2FnZTsKKwor
LyoqCisgKiBXcml0ZXMgdGhlIHNjcmlwdCBzYW1wbGUgY2hhcmFjdGVyIHN0cmluZy4KKyAqIFRo
aXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9uZSBjb2RlIHBvaW50IGJ1dCBtaWdodCBi
ZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5IGlmIHRoZSBzY3JpcHQgaXMgbm90IGVu
Y29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHBhcmFtIGRlc3Qg
b3V0cHV0IHN0cmluZyBhcnJheQorICogQHBhcmFtIGNhcGFjaXR5IG51bWJlciBvZiBVQ2hhcnMg
aW4gdGhlIGRlc3QgYXJyYXkKKyAqIEBwYXJhbSBwRXJyb3JDb2RlIHN0YW5kYXJkIElDVSBpbi9v
dXQgZXJyb3IgY29kZSwgbXVzdCBwYXNzIFVfU1VDQ0VTUygpIG9uIGlucHV0CisgKiBAcmV0dXJu
IHRoZSBzdHJpbmcgbGVuZ3RoLCBldmVuIGlmIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SCisgKiBA
ZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0
U2FtcGxlU3RyaW5nKFVTY3JpcHRDb2RlIHNjcmlwdCwgVUNoYXIgKmRlc3QsIGludDMyX3QgY2Fw
YWNpdHksIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19B
UEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KK2NsYXNzIFVuaWNvZGVTdHJpbmc7CitVX05BTUVTUEFD
RV9FTkQKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHQgc2FtcGxlIGNoYXJhY3RlciBzdHJp
bmcuCisgKiBUaGlzIHN0cmluZyBub3JtYWxseSBjb25zaXN0cyBvZiBvbmUgY29kZSBwb2ludCBi
dXQgbWlnaHQgYmUgbG9uZ2VyLgorICogVGhlIHN0cmluZyBpcyBlbXB0eSBpZiB0aGUgc2NyaXB0
IGlzIG5vdCBlbmNvZGVkLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEBy
ZXR1cm4gdGhlIHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5nCisgKiBAZHJhZnQgSUNVIDUxCisgKi8K
K1VfQ09NTU9OX0FQSSBpY3U6OlVuaWNvZGVTdHJpbmcgVV9FWFBPUlQyCit1c2NyaXB0X2dldFNh
bXBsZVVuaWNvZGVTdHJpbmcoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworI2VuZGlmCisKKy8qKgor
ICogUmV0dXJucyB0aGUgc2NyaXB0IHVzYWdlIGFjY29yZGluZyB0byBVQVggIzMxIFVuaWNvZGUg
SWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXguCisgKiBSZXR1cm5zIFVTQ1JJUFRfVVNBR0Vf
Tk9UX0VOQ09ERUQgaWYgdGhlIHNjcmlwdCBpcyBub3QgZW5jb2RlZCBpbiBVbmljb2RlLgorICoK
KyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gc2NyaXB0IHVzYWdlCisg
KiBAc2VlIFVTY3JpcHRVc2FnZQorICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVTY3Jp
cHRVc2FnZSBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0VXNhZ2UoVVNjcmlwdENvZGUgc2NyaXB0KTsK
KworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRv
LWxlZnQuCisgKiBGb3IgZXhhbXBsZSwgQXJhYiBhbmQgSGVici4KKyAqCisgKiBAcGFyYW0gc2Ny
aXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyByaWdodC10
by1sZWZ0CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1
c2NyaXB0X2lzUmlnaHRUb0xlZnQoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisgKiBSZXR1
cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGluZSBicmVha3MgYmV0d2VlbiBsZXR0ZXJz
IChleGNsdWRpbmcgaHlwaGVuYXRpb24pLgorICogU3VjaCBhIHNjcmlwdCB0eXBpY2FsbHkgcmVx
dWlyZXMgZGljdGlvbmFyeS1iYXNlZCBsaW5lIGJyZWFraW5nLgorICogRm9yIGV4YW1wbGUsIEhh
bmkgYW5kIFRoYWkuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHJldHVy
biBUUlVFIGlmIHRoZSBzY3JpcHQgYWxsb3dzIGxpbmUgYnJlYWtzIGJldHdlZW4gbGV0dGVycwor
ICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9i
cmVha3NCZXR3ZWVuTGV0dGVycyhVU2NyaXB0Q29kZSBzY3JpcHQpOworCisvKioKKyAqIFJldHVy
bnMgVFJVRSBpZiBpbiBtb2Rlcm4gKG9yIG1vc3QgcmVjZW50KSB1c2FnZSBvZiB0aGUgc2NyaXB0
IGNhc2UgZGlzdGluY3Rpb25zIGFyZSBjdXN0b21hcnkuCisgKiBGb3IgZXhhbXBsZSwgTGF0biBh
bmQgQ3lybC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIFRS
VUUgaWYgdGhlIHNjcmlwdCBpcyBjYXNlZAorICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZU
IFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9pc0Nhc2VkKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisK
KyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VzdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L2ljdS91bmljb2RlL3VzdHJpbmcuaAppbmRleCAyZWUxNmU5OWNmM2MwMDdhYjc1ZWMxZjZiZDQx
YzE1YWVhZDkyOTUyLi5kMmVhMzFjNjc0N2Y4ZjFjMWViMDM3MGUyODQzYzNmNjQ0OThiMGYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91c3RyaW5nLmgKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXN0cmluZy5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEyLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0yMCw5ICsyMCwxNCBA
QAogI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VpdGVyLmgi
CiAKLS8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRvIGF2b2lkIGlu
Y2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KKy8qKgorICogXGRlZiBV
QlJLX1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCisgKiBAaW50ZXJuYWwgCisgKi8KKwogI2lmbmRl
ZiBVQlJLX1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCiAjICAgZGVmaW5lIFVCUktfVFlQRURFRl9V
QlJFQUtfSVRFUkFUT1IKKy8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgp
IHRvIGF2b2lkIGluY2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KICAg
ICB0eXBlZGVmIHN0cnVjdCBVQnJlYWtJdGVyYXRvciBVQnJlYWtJdGVyYXRvcjsKICNlbmRpZgog
CkBAIC0xNDYsOCArMTUxLDggQEAgdV9zdHJjYXQoVUNoYXIgICAgICpkc3QsCiAgKiBJZiA8Y29k
ZT5uJmx0Oz0wPC9jb2RlPiB0aGVuIGRzdCBpcyBub3QgbW9kaWZpZWQuCiAgKgogICogQHBhcmFt
IGRzdCBUaGUgZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0
cmluZy4KLSAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFw
cGVuZC4KKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFs
aWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVy
cyB0byBhcHBlbmQ7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2Rl
PmRzdDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNTUwLDkgKzU1NSw5IEBA
IHVfc3RyQ2FzZUNvbXBhcmUoY29uc3QgVUNoYXIgKnMxLCBpbnQzMl90IGxlbmd0aDEsCiAgKiBD
b21wYXJlIHR3byB1c3RyaW5ncyBmb3IgYml0d2lzZSBlcXVhbGl0eS4gCiAgKiBDb21wYXJlcyBh
dCBtb3N0IDxjb2RlPm48L2NvZGU+IGNoYXJhY3RlcnMuCiAgKgotICogQHBhcmFtIHVjczEgQSBz
dHJpbmcgdG8gY29tcGFyZS4KLSAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUuCi0g
KiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb21wYXJlLgor
ICogQHBhcmFtIHVjczEgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52YWxpZCBp
ZiBuPD0wKS4KKyAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBiZSBOVUxM
L2ludmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hh
cmFjdGVycyB0byBjb21wYXJlOyBhbHdheXMgcmV0dXJucyAwIGlmIG48PTAuCiAgKiBAcmV0dXJu
IDAgaWYgPGNvZGU+czE8L2NvZGU+IGFuZCA8Y29kZT5zMjwvY29kZT4gYXJlIGJpdHdpc2UgZXF1
YWw7IGEgbmVnYXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9jb2RlPiBpcyBiaXR3aXNlIGxl
c3MgdGhhbiA8Y29kZT5zMjwvY29kZT47IGEgcG9zaXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMx
PC9jb2RlPiBpcyBiaXR3aXNlIGdyZWF0ZXIgdGhhbiA8Y29kZT5zMjwvY29kZT4uCkBAIC02Njcs
OCArNjcyLDggQEAgdV9zdHJjcHkoVUNoYXIgICAgICpkc3QsCiAgKiBpZiB0aGUgbGVuZ3RoIG9m
IDxjb2RlPnNyYzwvY29kZT4gaXMgbGVzcyB0aGFuIDxjb2RlPm48L2NvZGU+LgogICoKICAqIEBw
YXJhbSBkc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJj
ZSBzdHJpbmcuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0
byBjb3B5LgorICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52
YWxpZCBpZiBuPD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0
ZXJzIHRvIGNvcHk7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2Rl
PmRzdDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNzQyLDggKzc0Nyw4IEBA
IFVfU1RBQkxFIGNoYXIqIFVfRVhQT1JUMiB1X2F1c3RybmNweShjaGFyICpkc3QsCiAvKioKICAq
IFN5bm9ueW0gZm9yIG1lbWNweSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBwYXJhbSBk
ZXN0IFRoZSBkZXN0aW5hdGlvbiBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJp
bmcKLSAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weQorICog
QHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBjb3Vu
dDw9MCkKKyAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weTsg
bm8tb3AgaWYgPD0wCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9jb2RlPgog
ICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTc1Myw4ICs3NTgsOCBAQCB1X21lbWNweShVQ2hh
ciAqZGVzdCwgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBjb3VudCk7CiAvKioKICAqIFN5bm9u
eW0gZm9yIG1lbW1vdmUoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBAcGFyYW0gZGVzdCBU
aGUgZGVzdGluYXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nCi0g
KiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmUKKyAqIEBwYXJh
bSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgY291bnQ8PTAp
CisgKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmU7IG5vLW9w
IGlmIDw9MAogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwvY29kZT4KICAqIEBz
dGFibGUgSUNVIDIuMAogICovCkBAIC05MTgsNyArOTIzLDcgQEAgdV9tZW1yY2hyMzIoY29uc3Qg
VUNoYXIgKnMsIFVDaGFyMzIgYywgaW50MzJfdCBjb3VudCk7CiAgKiAgICB9CiAgKiA8L3ByZT4K
ICAqIAotICogTm90ZSB0aGF0IHRoZSBtYWNyb3Mgd2lsbCBOT1QgY29uc2lzdGVudGx5IHdvcmsg
aWYgdGhlaXIgYXJndW1lbnQgaXMgYW5vdGhlciAjZGVmaW5lLiAKKyAqIE5vdGUgdGhhdCB0aGUg
bWFjcm9zIHdpbGwgTk9UIGNvbnNpc3RlbnRseSB3b3JrIGlmIHRoZWlyIGFyZ3VtZW50IGlzIGFu
b3RoZXIgPGNvZGU+I2RlZmluZTwvY29kZT4uIAogICogIFRoZSBmb2xsb3dpbmcgd2lsbCBub3Qg
d29yayBvbiBhbGwgcGxhdGZvcm1zLCBkb24ndCB1c2UgaXQuCiAgKiAKICAqIDxwcmU+CkBAIC05
MzQsNyArOTM5LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVDaGFyMzIgYywgaW50
MzJfdCBjb3VudCk7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQoVV9ERUNM
QVJFX1VURjE2KQotIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3Rh
dGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1VX0RFQ0xBUkVfVVRGMTYoY3MpCisjICAg
ZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIg
KnZhcj0oY29uc3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpCiAgICAgLyoqQHN0YWJsZSBJ
Q1UgMi4wICovCiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3RoKQogI2Vs
aWYgVV9TSVpFT0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNFVF9GQU1JTFk9
PVVfQVNDSUlfRkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmluZWQoVV9XQ0hB
Ul9JU19VVEYxNikpKQpAQCAtOTQyLDcgKzk0Nyw3IEBAIHVfbWVtcmNocjMyKGNvbnN0IFVDaGFy
ICpzLCBVQ2hhcjMyIGMsIGludDMyX3QgY291bnQpOwogICAgIC8qKkBzdGFibGUgSUNVIDIuMCAq
LwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0aCkKICNlbGlmIFVfU0la
RU9GX1VDSEFSPT0xICYmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0jICAgZGVm
aW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgdmFy
WyhsZW5ndGgpKzFdPXsgKGNvbnN0IFVDaGFyICopY3MgfQorIyAgIGRlZmluZSBVX1NUUklOR19E
RUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1j
cwogICAgIC8qKkBzdGFibGUgSUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZh
ciwgY3MsIGxlbmd0aCkKICNlbHNlCkBAIC0xMTU0LDEwICsxMTU5LDEyIEBAIHVfc3RyVG9UaXRs
ZShVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAjZW5kaWYKIAogLyoqCi0gKiBD
YXNlLWZvbGQgdGhlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuCisgKiBDYXNlLWZvbGRzIHRoZSBj
aGFyYWN0ZXJzIGluIGEgc3RyaW5nLgorICoKICAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5k
ZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKICAqIGJ1dCB0aGVyZSBpcyBhbiBv
cHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0
ZWQgSQotICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZv
bGRpbmcudHh0LgorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4g
Q2FzZUZvbGRpbmcudHh0LgorICoKICAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9y
dGVyIHRoYW4gdGhlIG9yaWdpbmFsLgogICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0
aW5hdGlvbiBidWZmZXIgYXJlIGFsbG93ZWQgdG8gb3ZlcmxhcC4KICAqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dGYuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2lj
dS91bmljb2RlL3V0Zi5oCmluZGV4IGY3OTQ3OTkzNWQ0YTFkNmIxYmVmY2Q0MDVjZDA0ZjUyMzgx
YjkzZTcuLmY1OTU0ZmU5ZmU2OTk4OTNiZDMxOGUyNDc3MjkyNmMxNzVhMjBjNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0Zi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL3V0Zi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDExLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yMiwxNSAr
MjIsMjAgQEAKICAqIGEgc3Vycm9nYXRlIG9yIGEgbm9uLWNoYXJhY3RlciBldGMuCiAgKgogICog
VGhlIFVDaGFyIGFuZCBVQ2hhcjMyIGRhdGEgdHlwZXMgZm9yIFVuaWNvZGUgY29kZSB1bml0cyBh
bmQgY29kZSBwb2ludHMKLSAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lcy5oIGJlY2F1c2UgdGhl
eSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCisgKiBhcmUgZGVmaW5lZCBpbiB1bWFjaGluZS5o
IGJlY2F1c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCiAgKgotICogdXRmLmggaXMg
aW5jbHVkZWQgYnkgdXR5cGVzLmggYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4LmggYW5kIHV0ZjE2
LmggYWZ0ZXIgc29tZQotICogY29tbW9uIGRlZmluaXRpb25zLiBUaG9zZSBmaWxlcyBkZWZpbmUg
bWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCisgKiBJZiBVX05PX0RF
RkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyBpcyAwIHRoZW4gdXRmLmggaXMgaW5jbHVkZWQgYnkg
dXR5cGVzLmgKKyAqIGFuZCBpdHNlbGYgaW5jbHVkZXMgdXRmOC5oIGFuZCB1dGYxNi5oIGFmdGVy
IHNvbWUKKyAqIGNvbW1vbiBkZWZpbml0aW9ucy4KKyAqIElmIFVfTk9fREVGQVVMVF9JTkNMVURF
X1VURl9IRUFERVJTIGlzIDEgdGhlbiBlYWNoIG9mIHRoZXNlIGhlYWRlcnMgbXVzdCBiZQorICog
aW5jbHVkZWQgZXhwbGljaXRseSBpZiB0aGVpciBkZWZpbml0aW9ucyBhcmUgdXNlZC4KKyAqCisg
KiB1dGY4LmggYW5kIHV0ZjE2LmggZGVmaW5lIG1hY3JvcyBmb3IgZWZmaWNpZW50bHkgZ2V0dGlu
ZyBjb2RlIHBvaW50cwogICogaW4gYW5kIG91dCBvZiBVVEYtOC8xNiBzdHJpbmdzLgogICogdXRm
MTYuaCBtYWNyb3MgaGF2ZSAiVTE2XyIgcHJlZml4ZXMuCiAgKiB1dGY4LmggZGVmaW5lcyBzaW1p
bGFyIG1hY3JvcyB3aXRoICJVOF8iIHByZWZpeGVzIGZvciBVVEYtOCBzdHJpbmcgaGFuZGxpbmcu
CiAgKgotICogSUNVIHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdzLgorICogSUNVIG1v
c3RseSBwcm9jZXNzZXMgMTYtYml0IFVuaWNvZGUgc3RyaW5ncy4KICAqIE1vc3Qgb2YgdGhlIHRp
bWUsIHN1Y2ggc3RyaW5ncyBhcmUgd2VsbC1mb3JtZWQgVVRGLTE2LgogICogU2luZ2xlLCB1bnBh
aXJlZCBzdXJyb2dhdGVzIG11c3QgYmUgaGFuZGxlZCBhcyB3ZWxsLCBhbmQgYXJlIHRyZWF0ZWQg
aW4gSUNVCiAgKiBsaWtlIHJlZ3VsYXIgY29kZSBwb2ludHMgd2hlcmUgcG9zc2libGUuCkBAIC00
MiwxNSArNDcsMTYgQEAKICAqIElDVSBmdW5jdGlvbnMgaGFuZGxlIHN1cHBsZW1lbnRhcnkgY29k
ZSBwb2ludHMgKFUrMTAwMDAuLlUrMTBmZmZmKQogICogYnV0IGFyZSBvcHRpbWl6ZWQgZm9yIHRo
ZSBtdWNoIG1vcmUgZnJlcXVlbnRseSBvY2N1cnJpbmcgQk1QIGNvZGUgcG9pbnRzLgogICoKLSAq
IHV0Zi5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIuIElm
IHRoaXMgbWF0Y2hlcyB3Y2hhcl90LCB0aGVuCi0gKiBVQ2hhciBpcyBkZWZpbmVkIHRvIGJlIGV4
YWN0bHkgd2NoYXJfdCwgb3RoZXJ3aXNlIHVpbnQxNl90LgorICogdW1hY2hpbmUuaCBkZWZpbmVz
IFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgorICogV2hlcmUgYXZhaWxh
YmxlLCBVQ2hhciBpcyBkZWZpbmVkIHRvIGJlIGEgY2hhcjE2X3QKKyAqIG9yIGEgd2NoYXJfdCAo
aWYgdGhhdCBpcyBhbiB1bnNpZ25lZCAxNi1iaXQgdHlwZSksIG90aGVyd2lzZSB1aW50MTZfdC4K
ICAqCiAgKiBVQ2hhcjMyIGlzIGRlZmluZWQgdG8gYmUgYSBzaWduZWQgMzItYml0IGludGVnZXIg
KGludDMyX3QpLCBsYXJnZSBlbm91Z2ggZm9yIGEgMjEtYml0CiAgKiBVbmljb2RlIGNvZGUgcG9p
bnQgKFVuaWNvZGUgc2NhbGFyIHZhbHVlLCAwLi4weDEwZmZmZikuCiAgKiBCZWZvcmUgSUNVIDIu
NCwgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIzMiB3YXMgc2ltaWxhcmx5IHBsYXRmb3JtLWRlcGVu
ZGVudCBhcwogICogdGhlIGRlZmluaXRpb24gb2YgVUNoYXIuIEZvciBkZXRhaWxzIHNlZSB0aGUg
ZG9jdW1lbnRhdGlvbiBmb3IgVUNoYXIzMiBpdHNlbGYuCiAgKgotICogdXRmLmggYWxzbyBkZWZp
bmVzIGEgc21hbGwgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBzaW5nbGUgVW5pY29kZSBjb2RlIHBv
aW50cy4KKyAqIHV0Zi5oIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIHNp
bmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgogICogVGhlc2UgYXJlIHNpbXBsZSBjaGVja3MgZm9y
IHN1cnJvZ2F0ZXMgYW5kIG5vbi1jaGFyYWN0ZXJzLgogICogRm9yIGFjdHVhbCBVbmljb2RlIGNo
YXJhY3RlciBwcm9wZXJ0aWVzIHNlZSB1Y2hhci5oLgogICoKQEAgLTU5LDkgKzY1LDYgQEAKICAq
IFRoZSBtYWNyb3Mgd2lsbCBkZXRlY3QgaWYgYSBzdXJyb2dhdGUgY29kZSB1bml0IGlzIHVucGFp
cmVkCiAgKiAobGVhZCB1bml0IHdpdGhvdXQgdHJhaWwgdW5pdCBvciB2aWNlIHZlcnNhKSBhbmQg
anVzdCByZXR1cm4gdGhlIHVuaXQgaXRzZWxmCiAgKiBhcyB0aGUgY29kZSBwb2ludC4KLSAqIChJ
dCBpcyBhbiBhY2NpZGVudGFsIHByb3BlcnR5IG9mIFVuaWNvZGUgYW5kIFVURi0xNiB0aGF0IGFs
bAotICogbWFsZm9ybWVkIHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIHVuYW1iaWd1b3VzbHkg
d2l0aCBhIGRpc3RpbmN0IHN1YnJhbmdlCi0gKiBvZiBVbmljb2RlIGNvZGUgcG9pbnRzLikKICAq
CiAgKiBUaGUgcmVndWxhciAic2FmZSIgbWFjcm9zIHJlcXVpcmUgdGhhdCB0aGUgaW5pdGlhbCwg
cGFzc2VkLWluIHN0cmluZyBpbmRleAogICogaXMgd2l0aGluIGJvdW5kcy4gVGhleSBvbmx5IGNo
ZWNrIHRoZSBpbmRleCB3aGVuIHRoZXkgcmVhZCBtb3JlIHRoYW4gb25lCkBAIC05NSw3ICs5OCw3
IEBACiAgKiBjb2RlIHBvaW50IHZhbHVlcyAoMC4uVSsxMGZmZmYpLiBUaGV5IGFyZSBpbmRpY2F0
ZWQgd2l0aCBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4KICAqCiAgKiBGb3IgbW9yZSBpbmZvcm1h
dGlvbiBzZWUgdGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICogKGh0dHA6Ly9p
Y3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0cDovL3VzZXJn
dWlkZS5pY3UtcHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdlOjwvZW0+CiAg
KiBJQ1UgY29kaW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91bGQgYmUgZm9s
bG93ZWQgd2hlbiB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0xMDgsMzIgKzExMSwxMiBAQAogI2lm
bmRlZiBfX1VURl9IX18KICNkZWZpbmUgX19VVEZfSF9fCiAKLSNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hpbmUuaCIKIC8qIGluY2x1ZGUgdGhlIHV0
ZlhYLmggYWZ0ZXIgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyAqLwogCiAvKiBzaW5nbGUtY29k
ZSBwb2ludCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwogCiAvKioKLSAqIFRoaXMgdmFsdWUgaXMgaW50ZW5kZWQgZm9yIHNlbnRpbmVs
IHZhbHVlcyBmb3IgQVBJcyB0aGF0Ci0gKiAodGFrZSBvcikgcmV0dXJuIHNpbmdsZSBjb2RlIHBv
aW50cyAoVUNoYXIzMikuCi0gKiBJdCBpcyBvdXRzaWRlIG9mIHRoZSBVbmljb2RlIGNvZGUgcG9p
bnQgcmFuZ2UgMC4uMHgxMGZmZmYuCi0gKiAKLSAqIEZvciBleGFtcGxlLCBhICJkb25lIiBvciAi
ZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQotICogY291bGQgYmUgaW5kaWNhdGVkIHdpdGggVV9T
RU5USU5FTC4KLSAqCi0gKiBJQ1UgQVBJcyBkZXNpZ25lZCBiZWZvcmUgSUNVIDIuNCB1c3VhbGx5
IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgotICogdmFsdWVzLCBtb3N0bHkgMHhmZmZm
LgotICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tCi0gKiBhY3R1YWwg
VStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5jdGlvbnMgbGlrZQotICogQ2hhcmFj
dGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3RyaW5nOjpsZW5ndGgoKS4KLSAqCi0g
KiBAcmV0dXJuIC0xCi0gKiBAc2VlIFVDaGFyMzIKLSAqIEBzdGFibGUgSUNVIDIuNAotICovCi0j
ZGVmaW5lIFVfU0VOVElORUwgKC0xKQotCi0vKioKICAqIElzIHRoaXMgY29kZSBwb2ludCBhIFVu
aWNvZGUgbm9uY2hhcmFjdGVyPwogICogQHBhcmFtIGMgMzItYml0IGNvZGUgcG9pbnQKICAqIEBy
ZXR1cm4gVFJVRSBvciBGQUxTRQpAQCAtMjI3LDEwICsyMTAsMTQgQEAKIAogLyogaW5jbHVkZSB0
aGUgdXRmWFguaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKi8KIAorI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUworCiAj
aW5jbHVkZSAidW5pY29kZS91dGY4LmgiCiAjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgogCiAv
KiB1dGZfb2xkLmggY29udGFpbnMgZGVwcmVjYXRlZCwgcHJlLUlDVSAyLjQgZGVmaW5pdGlvbnMg
Ki8KICNpbmNsdWRlICJ1bmljb2RlL3V0Zl9vbGQuaCIKIAotI2VuZGlmCisjZW5kaWYgIC8qICFV
X05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAqLworCisjZW5kaWYgIC8qIF9fVVRGX0hf
XyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXRmMTYuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0ZjE2LmgKaW5kZXggNTA3OWMxMTQ2YjNk
MzQ3MjMwY2Q2OThhMGUxMzk2ODk3ZTQ4NDVhZC4uYmRkODhhOGI5YzRmMDBlYTBkZjI3MmFjMDJm
Njk2N2VmNjEwODliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUv
dXRmMTYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dGYxNi5oCkBAIC0x
LDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQg
KEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHly
aWdodCAoQykgMTk5OS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCkBAIC0xOSwxMSArMTksOSBAQAogICogXGJyaWVmIEMgQVBJOiAxNi1i
aXQgVW5pY29kZSBoYW5kbGluZyBtYWNyb3MKICAqIAogICogVGhpcyBmaWxlIGRlZmluZXMgbWFj
cm9zIHRvIGRlYWwgd2l0aCAxNi1iaXQgVW5pY29kZSAoVVRGLTE2KSBjb2RlIHVuaXRzIGFuZCBz
dHJpbmdzLgotICogdXRmMTYuaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3Vt
YWNoaW5lLmgKLSAqIGFuZCBzb21lIGNvbW1vbiBkZWZpbml0aW9ucy4KICAqCiAgKiBGb3IgbW9y
ZSBpbmZvcm1hdGlvbiBzZWUgdXRmLmggYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBTdHJpbmdzIGNo
YXB0ZXIKLSAqIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9zdHJpbmdzLmh0bWwp
LgorICogKGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL3N0cmluZ3MpLgogICoKICAq
IDxlbT5Vc2FnZTo8L2VtPgogICogSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRl
bWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgpAQCAtMzQs
NyArMzIsNyBAQAogI2lmbmRlZiBfX1VURjE2X0hfXwogI2RlZmluZSBfX1VURjE2X0hfXwogCi0v
KiB1dGYuaCBtdXN0IGJlIGluY2x1ZGVkIGZpcnN0LiAqLworI2luY2x1ZGUgInVuaWNvZGUvdW1h
Y2hpbmUuaCIKICNpZm5kZWYgX19VVEZfSF9fCiAjICAgaW5jbHVkZSAidW5pY29kZS91dGYuaCIK
ICNlbmRpZgpAQCAtMTgyLDYgKzE4MCw5IEBACiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byBl
aXRoZXIgdGhlIGxlYWQgb3IgdHJhaWwgc3Vycm9nYXRlIHVuaXQKICAqIGZvciBhIHN1cHBsZW1l
bnRhcnkgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkCiAgKiB0
aGUgYWRqYWNlbnQgbWF0Y2hpbmcgc3Vycm9nYXRlIGFzIHdlbGwuCisgKgorICogVGhlIGxlbmd0
aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIElm
IHRoZSBvZmZzZXQgcG9pbnRzIHRvIGEgc2luZ2xlLCB1bnBhaXJlZCBzdXJyb2dhdGUsIHRoZW4g
dGhhdCBpdHNlbGYKICAqIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhlIGNvZGUgcG9pbnQuCiAgKiBJ
dGVyYXRpb24gdGhyb3VnaCBhIHN0cmluZyBpcyBtb3JlIGVmZmljaWVudCB3aXRoIFUxNl9ORVhU
X1VOU0FGRSBvciBVMTZfTkVYVC4KQEAgLTE5OSw3ICsyMDAsNyBAQAogICAgIGlmKFUxNl9JU19T
VVJST0dBVEUoYykpIHsgXAogICAgICAgICB1aW50MTZfdCBfX2MyOyBcCiAgICAgICAgIGlmKFUx
Nl9JU19TVVJST0dBVEVfTEVBRChjKSkgeyBcCi0gICAgICAgICAgICBpZigoaSkrMTwobGVuZ3Ro
KSAmJiBVMTZfSVNfVFJBSUwoX19jMj0ocylbKGkpKzFdKSkgeyBcCisgICAgICAgICAgICBpZigo
aSkrMSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAogICAg
ICAgICAgICAgICAgIChjKT1VMTZfR0VUX1NVUFBMRU1FTlRBUlkoKGMpLCBfX2MyKTsgXAogICAg
ICAgICAgICAgfSBcCiAgICAgICAgIH0gZWxzZSB7IFwKQEAgLTI0NCw2ICsyNDUsOCBAQAogICog
KFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywg
aGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3VuZGFy
aWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5h
dGVkIHN0cmluZy4KKyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVhZCBzdXJy
b2dhdGUgdW5pdAogICogZm9yIGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50LCBpbiB3aGljaCBj
YXNlIHRoZSBtYWNybyB3aWxsIHJlYWQKICAqIHRoZSBmb2xsb3dpbmcgdHJhaWwgc3Vycm9nYXRl
IGFzIHdlbGwuCkBAIC0yNjIsNyArMjY1LDcgQEAKICAgICAoYyk9KHMpWyhpKSsrXTsgXAogICAg
IGlmKFUxNl9JU19MRUFEKGMpKSB7IFwKICAgICAgICAgdWludDE2X3QgX19jMjsgXAotICAgICAg
ICBpZigoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKV0pKSB7IFwKKyAg
ICAgICAgaWYoKGkpIT0obGVuZ3RoKSAmJiBVMTZfSVNfVFJBSUwoX19jMj0ocylbKGkpXSkpIHsg
XAogICAgICAgICAgICAgKysoaSk7IFwKICAgICAgICAgICAgIChjKT1VMTZfR0VUX1NVUFBMRU1F
TlRBUlkoKGMpLCBfX2MyKTsgXAogICAgICAgICB9IFwKQEAgLTM0MCw2ICszNDMsOCBAQAogICog
KFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMg
dW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAq
CisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJp
bmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgVUNoYXIgKiBzdHJpbmcKICAqIEBwYXJhbSBpIHN0
cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKICAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxl
bmd0aApAQCAtMzQ3LDcgKzM1Miw3IEBACiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmlu
ZSBVMTZfRldEXzEocywgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZihVMTZfSVNfTEVBRCgocylbKGkp
KytdKSAmJiAoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKChzKVtpXSkpIHsgXAorICAgIGlm
KFUxNl9JU19MRUFEKChzKVsoaSkrK10pICYmIChpKSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlM
KChzKVtpXSkpIHsgXAogICAgICAgICArKyhpKTsgXAogICAgIH0gXAogfQpAQCAtMzc4LDE2ICsz
ODMsMTggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1h
Y3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJv
dW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRl
cm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3RyaW5nCi0g
KiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFyYW0gbGVu
Z3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVz
dCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAq
IEBwYXJhbSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBza2lwCiAgKiBAc2VlIFUxNl9GV0Rf
Tl9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9GV0RfTihzLCBp
LCBsZW5ndGgsIG4pIHsgXAogICAgIGludDMyX3QgX19OPShuKTsgXAotICAgIHdoaWxlKF9fTj4w
ICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgd2hpbGUoX19OPjAgJiYgKChpKTwobGVuZ3RoKSB8
fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFUxNl9GV0RfMShzLCBp
LCBsZW5ndGgpOyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBcCkBAIC01OTgsMTUgKzYwNSwx
NyBAQAogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0cmluZyBs
ZW5ndGguCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQg
Y2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBu
ZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29u
c3QgVUNoYXIgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0
ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBzdGFydDw9aTw9bGVuZ3Ro
Ci0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90
IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qg
c3RyaW5nIG9mZnNldCwgc3RhcnQ8PWk8PWxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90
IHN0cmluZyBsZW5ndGgKICAqIEBzZWUgVTE2X1NFVF9DUF9MSU1JVF9VTlNBRkUKICAqIEBzdGFi
bGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9TRVRfQ1BfTElNSVQocywgc3RhcnQsIGksIGxl
bmd0aCkgeyBcCi0gICAgaWYoKHN0YXJ0KTwoaSkgJiYgKGkpPChsZW5ndGgpICYmIFUxNl9JU19M
RUFEKChzKVsoaSktMV0pICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKKyAgICBpZigoc3Rh
cnQpPChpKSAmJiAoKGkpPChsZW5ndGgpIHx8IChsZW5ndGgpPDApICYmIFUxNl9JU19MRUFEKChz
KVsoaSktMV0pICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKICAgICAgICAgKysoaSk7IFwK
ICAgICB9IFwKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0
ZjguaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0ZjguaAppbmRleCA2NDA1Nzk1
YTVhMWM1MzY5ODg0NmQxMTAxNTY5OWI2MWMzMTAyMjI0Li4yMWU1ZjNkMDQ3OTA1MzE1NWYyOTRj
NDI4ODRmNDI3NGRhNTQ0ZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5p
Y29kZS91dGY4LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXRmOC5oCkBA
IC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCkBAIC0xOSwxMSArMTksOSBAQAogICogXGJyaWVmIEMgQVBJOiA4
LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1hY3JvcwogICogCiAgKiBUaGlzIGZpbGUgZGVmaW5lcyBt
YWNyb3MgdG8gZGVhbCB3aXRoIDgtYml0IFVuaWNvZGUgKFVURi04KSBjb2RlIHVuaXRzIChieXRl
cykgYW5kIHN0cmluZ3MuCi0gKiB1dGY4LmggaXMgaW5jbHVkZWQgYnkgdXRmLmggYWZ0ZXIgdW5p
Y29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCiAgKgogICog
Rm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUgSUNVIFVzZXIgR3VpZGUgU3Ry
aW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5n
cy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4K
ICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYo
KSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4K
QEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19VVEY4X0hfXwogI2RlZmluZSBfX1VURjhfSF9f
CiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVkZWQgZmlyc3QuICovCisjaW5jbHVkZSAidW5pY29k
ZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VURl9IX18KICMgICBpbmNsdWRlICJ1bmljb2RlL3V0
Zi5oIgogI2VuZGlmCkBAIC02MiwxMyArNjAsNDEgQEAgVV9DRlVOQyBVX0lNUE9SVCBjb25zdCB1
aW50OF90IC8qIFVfSU1QT1JUMj8gKi8gLypVX0lNUE9SVCovCiB1dGY4X2NvdW50VHJhaWxCeXRl
c1syNTZdOwogCiAvKioKLSAqIENvdW50IHRoZSB0cmFpbCBieXRlcyBmb3IgYSBVVEYtOCBsZWFk
IGJ5dGUuCisgKiBDb3VudHMgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4K
KyAqIFJldHVybnMgMCBmb3IgMC4uMHhiZiBhcyB3ZWxsIGFzIGZvciAweGZlIGFuZCAweGZmLgog
ICoKICAqIFRoaXMgaXMgaW50ZXJuYWwgc2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxl
ZCBkaXJlY3RseSBieSBleHRlcm5hbCBjbGllbnRzOwogICogaG93ZXZlciBpdCBpcyBjYWxsZWQg
YnkgcHVibGljIG1hY3JvcyBpbiB0aGlzIGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxl
LgorICoKKyAqIE5vdGU6IEJlZ2lubmluZyB3aXRoIElDVSA1MCwgdGhlIGltcGxlbWVudGF0aW9u
IHVzZXMgYSBtdWx0aS1jb25kaXRpb24gZXhwcmVzc2lvbgorICogd2hpY2ggd2FzIHNob3duIGlu
IDIwMTIgKG9uIHg4Ni02NCkgdG8gY29tcGlsZSB0byBmYXN0LCBicmFuY2gtZnJlZSBjb2RlLgor
ICogbGVhZEJ5dGUgaXMgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgorICoKKyAqIFRoZSBwcmUt
SUNVIDUwIGltcGxlbWVudGF0aW9uIHVzZWQgdGhlIGV4cG9ydGVkIGFycmF5IHV0ZjhfY291bnRU
cmFpbEJ5dGVzOgorICogI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgKHV0
ZjhfY291bnRUcmFpbEJ5dGVzW2xlYWRCeXRlXSkKKyAqIGxlYWRCeXRlIHdhcyBldmFsdWF0ZWQg
ZXhhY3RseSBvbmNlLgorICoKKyAqIEBwYXJhbSBsZWFkQnl0ZSBUaGUgZmlyc3QgYnl0ZSBvZiBh
IFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4ZmYuCiAgKiBAaW50ZXJuYWwKICAqLwotI2Rl
ZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVz
Wyh1aW50OF90KWxlYWRCeXRlXSkKKyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVMobGVhZEJ5
dGUpIFwKKyAgICAoKGxlYWRCeXRlKTwweGYwID8gXAorICAgICAgICAoKGxlYWRCeXRlKT49MHhj
MCkrKChsZWFkQnl0ZSk+PTB4ZTApIDogXAorICAgICAgICAobGVhZEJ5dGUpPDB4ZmUgPyAzKygo
bGVhZEJ5dGUpPj0weGY4KSsoKGxlYWRCeXRlKT49MHhmYykgOiAwKQorCisvKioKKyAqIENvdW50
cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlIG9mIGEgdmFsaWQgVVRGLTgg
c2VxdWVuY2UuCisgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgbGVhZCBieXRlIGlzIDB4ZjQgY29y
cmVzcG9uZGluZyB0byBVKzEwRkZGRi4KKyAqIGxlYWRCeXRlIG1pZ2h0IGJlIGV2YWx1YXRlZCBt
dWx0aXBsZSB0aW1lcy4KKyAqCisgKiBUaGlzIGlzIGludGVybmFsIHNpbmNlIGl0IGlzIG5vdCBt
ZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgZXh0ZXJuYWwgY2xpZW50czsKKyAqIGhvd2V2
ZXIgaXQgaXMgY2FsbGVkIGJ5IHB1YmxpYyBtYWNyb3MgaW4gdGhpcyBmaWxlIGFuZCB0aHVzIG11
c3QgcmVtYWluIHN0YWJsZS4KKyAqCisgKiBAcGFyYW0gbGVhZEJ5dGUgVGhlIGZpcnN0IGJ5dGUg
b2YgYSBVVEYtOCBzZXF1ZW5jZS4gTXVzdCBiZSAwLi4weGZmLgorICogQGludGVybmFsCisgKi8K
KyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVNfVU5TQUZFKGxlYWRCeXRlKSBcCisgICAgKCgo
bGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkrKChsZWFkQnl0ZSk+PTB4ZjApKQog
CiAvKioKICAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2VyIGJp
dHMgdGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCkBAIC0yMDYsMjQgKzIz
Miw2MCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFy
dCwgaW50MzJfdCBpKTsKICAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0aGUgbGVh
ZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKICAqIGZvciBhIGNvZGUgcG9pbnQsIGlu
IHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwgb2YgdGhlIGJ5dGVzCiAgKiBmb3Ig
dGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEg
TlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIElmIHRoZSBvZmZzZXQgcG9pbnRzIHRvIGFu
IGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgogICogYyBpcyBzZXQgdG8gYSBuZWdh
dGl2ZSB2YWx1ZS4KICAqIEl0ZXJhdGlvbiB0aHJvdWdoIGEgc3RyaW5nIGlzIG1vcmUgZWZmaWNp
ZW50IHdpdGggVThfTkVYVF9VTlNBRkUgb3IgVThfTkVYVC4KICAqCiAgKiBAcGFyYW0gcyBjb25z
dCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgc3RyaW5nIG9mZnNl
dAotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDw9aTxsZW5ndGgKLSAq
IEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3Rh
cnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBt
dXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBs
ZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4g
Y2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9HRVRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwogI2RlZmluZSBVOF9HRVQocywgc3RhcnQsIGksIGxlbmd0aCwgYykgeyBcCi0gICAg
aW50MzJfdCBfdThfZ2V0X2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIGludDMyX3QgX3U4X2dl
dF9pbmRleD0oaSk7IFwKICAgICBVOF9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIF91OF9nZXRfaW5k
ZXgpOyBcCiAgICAgVThfTkVYVChzLCBfdThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBcCiB9CiAK
KyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2RlIHBvaW50IGZyb20g
YSBzdHJpbmcgYXQgYSByYW5kb20tYWNjZXNzIG9mZnNldCwKKyAqIHdpdGhvdXQgY2hhbmdpbmcg
dGhlIG9mZnNldC4KKyAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0aGUgbGVhZCBi
eXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKKyAqIGZvciBhIGNvZGUgcG9pbnQsIGluIHdo
aWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwgb2YgdGhlIGJ5dGVzCisgKiBmb3IgdGhl
IGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVM
LXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKKyAqIElmIHRoZSBvZmZzZXQgcG9pbnRzIHRvIGFuIGls
bGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgorICogYyBpcyBzZXQgdG8gVStGRkZELgor
ICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9O
RVhUX1VOU0FGRSBvciBVOF9ORVhUX09SX0ZGRkQuCisgKgorICogVGhpcyBtYWNybyBkb2VzIG5v
dCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBVK0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBV
K0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3JtZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfR0VU
KCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFtIHMgY29u
c3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3Ry
aW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0
YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKKyAq
IEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gVStGRkZEIGluIGNhc2Ug
b2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfR0VUCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZp
bmUgVThfR0VUX09SX0ZGRkQocywgc3RhcnQsIGksIGxlbmd0aCwgYykgeyBcCisgICAgaW50MzJf
dCBfdThfZ2V0X2luZGV4PShpKTsgXAorICAgIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgX3U4
X2dldF9pbmRleCk7IFwKKyAgICBVOF9ORVhUX09SX0ZGRkQocywgX3U4X2dldF9pbmRleCwgbGVu
Z3RoLCBjKTsgXAorfQorI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKwogLyogZGVmaW5p
dGlvbnMgd2l0aCBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yNDUsMTkgKzMwNywxNiBAQCB1dGY4X2JhY2sxU2Fm
ZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqLwog
I2RlZmluZSBVOF9ORVhUX1VOU0FGRShzLCBpLCBjKSB7IFwKICAgICAoYyk9KHVpbnQ4X3QpKHMp
WyhpKSsrXTsgXAotICAgIGlmKCh1aW50OF90KSgoYyktMHhjMCk8MHgzNSkgeyBcCi0gICAgICAg
IHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJTF9CWVRFUyhjKTsgXAotICAgICAgICBVOF9N
QVNLX0xFQURfQllURShjLCBfX2NvdW50KTsgXAotICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBc
Ci0gICAgICAgIC8qIGVhY2ggZm9sbG93aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBu
ZXh0IG9uZSAqLyBcCi0gICAgICAgIGNhc2UgMzogXAotICAgICAgICAgICAgKGMpPSgoYyk8PDYp
fCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIGNhc2UgMjogXAotICAgICAgICAgICAgKGMp
PSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIGNhc2UgMTogXAotICAgICAg
ICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIC8qIG5vIG90
aGVyIGJyYW5jaGVzIHRvIG9wdGltaXplIHN3aXRjaCgpICovIFwKLSAgICAgICAgICAgIGJyZWFr
OyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMpPDB4ZTApIHsgXAorICAg
ICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXwoKHMpWyhpKSsrXSYweDNmKTsgXAorICAgICAg
ICB9IGVsc2UgaWYoKGMpPDB4ZjApIHsgXAorICAgICAgICAgICAgLyogbm8gbmVlZCBmb3IgKGMm
MHhmKSBiZWNhdXNlIHRoZSB1cHBlciBiaXRzIGFyZSB0cnVuY2F0ZWQgYWZ0ZXIgPDwxMiBpbiB0
aGUgY2FzdCB0byAoVUNoYXIpICovIFwKKyAgICAgICAgICAgIChjKT0oVUNoYXIpKCgoYyk8PDEy
KXwoKChzKVtpXSYweDNmKTw8Nil8KChzKVsoaSkrMV0mMHgzZikpOyBcCisgICAgICAgICAgICAo
aSkrPTI7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjcpPDwx
OCl8KCgocylbaV0mMHgzZik8PDEyKXwoKChzKVsoaSkrMV0mMHgzZik8PDYpfCgocylbKGkpKzJd
JjB4M2YpOyBcCisgICAgICAgICAgICAoaSkrPTM7IFwKICAgICAgICAgfSBcCiAgICAgfSBcCiB9
CkBAIC0yNjgsMTQgKzMyNywxNiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAq
cywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3
YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1
ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBi
ZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogVGhlIG9mZnNl
dCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsCiAg
KiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQgdGhlIHdob2xlIHNlcXVlbmNlLgog
ICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBieXRlIG9yIGFuIGlsbGVnYWwgVVRG
LTggc2VxdWVuY2UsIHRoZW4KICAqIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUuCiAgKgog
ICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9m
ZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisg
KiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBw
YXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAcGFyYW0gYyBvdXRwdXQgVUNo
YXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ugb2YgYW4gZXJyb3IKICAqIEBzZWUgVThf
TkVYVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAtMjg2LDcgKzM0Nyw3IEBAIHV0Zjhf
YmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkp
OwogICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKICAgICAgICAgaWYoIC8qIGhhbmRsZSBV
KzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAogICAgICAgICAgICAgKDB4ZTA8KGMpICYmIChjKTw9
MHhlYykgJiYgXAotICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkpICYmIFwKKyAgICAgICAg
ICAgICgoKGkpKzEpPChsZW5ndGgpIHx8IChsZW5ndGgpPDApICYmIFwKICAgICAgICAgICAgIChf
X3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0weDNmICYmIFwKICAgICAgICAgICAgIChfX3Qy
PSh1aW50OF90KSgocylbKGkpKzFdLTB4ODApKTw9IDB4M2YgXAogICAgICAgICApIHsgXApAQCAt
Mjk1LDE5ICszNTYsNzAgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGlu
dDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgICAgICAoaSkrPTI7IFwKICAgICAgICAg
fSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYgaW5saW5lICovIFwKICAgICAgICAg
ICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKLSAgICAgICAgICAgICgoaSk8KGxlbmd0
aCkpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShsZW5ndGgpKSAmJiBcCiAgICAgICAgICAgICAo
X190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiBcCiAgICAgICAgICkgeyBcCi0gICAg
ICAgICAgICAoYyk9KFVDaGFyKSgoKChjKSYweDFmKTw8Nil8X190MSk7IFwKKyAgICAgICAgICAg
IChjKT0oKChjKSYweDFmKTw8Nil8X190MTsgXAogICAgICAgICAgICAgKysoaSk7IFwKLSAgICAg
ICAgfSBlbHNlIGlmKFU4X0lTX0xFQUQoYykpIHsgXAorICAgICAgICB9IGVsc2UgeyBcCiAgICAg
ICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAiY29tcGxpY2F0ZWQiIGFuZCBlcnJvciBjYXNl
cyAqLyBcCi0gICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50
OF90ICopcywgJihpKSwgKGludDMyX3QpKGxlbmd0aCksIGMsIC0xKTsgXAorICAgICAgICAgICAg
KGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsICYoaSksIChsZW5n
dGgpLCBjLCAtMSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKyNpZm5kZWYgVV9ISURF
X0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2RlIHBvaW50IGZyb20gYSBzdHJpbmcgYXQgYSBj
b2RlIHBvaW50IGJvdW5kYXJ5IG9mZnNldCwKKyAqIGFuZCBhZHZhbmNlIHRoZSBvZmZzZXQgdG8g
dGhlIG5leHQgY29kZSBwb2ludCBib3VuZGFyeS4KKyAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3
YXJkIGl0ZXJhdGlvbi4pCisgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1
ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBi
ZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgorICogVGhlIG9mZnNl
dCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsCisg
KiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQgdGhlIHdob2xlIHNlcXVlbmNlLgor
ICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBieXRlIG9yIGFuIGlsbGVnYWwgVVRG
LTggc2VxdWVuY2UsIHRoZW4KKyAqIGMgaXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1h
Y3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4
dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAq
IFVzZSBVOF9ORVhUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICog
QHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIGkgaW50MzJfdCBzdHJp
bmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3Ry
aW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0byBV
K0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBVOF9ORVhUCisgKiBAZHJhZnQgSUNV
IDUxCisgKi8KKyNkZWZpbmUgVThfTkVYVF9PUl9GRkZEKHMsIGksIGxlbmd0aCwgYykgeyBcCisg
ICAgKGMpPSh1aW50OF90KShzKVsoaSkrK107IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAg
ICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKKyAgICAgICAgaWYoIC8qIGhhbmRsZSBVKzEwMDAu
LlUrQ0ZGRiBpbmxpbmUgKi8gXAorICAgICAgICAgICAgKDB4ZTA8KGMpICYmIChjKTw9MHhlYykg
JiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkgfHwgKGxlbmd0aCk8MCkgJiYgXAor
ICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2YgJiYgXAorICAg
ICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0tMHg4MCkpPD0gMHgzZiBcCisgICAg
ICAgICkgeyBcCisgICAgICAgICAgICAvKiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhl
IHVwcGVyIGJpdHMgYXJlIHRydW5jYXRlZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hh
cikgKi8gXAorICAgICAgICAgICAgKGMpPShVQ2hhcikoKChjKTw8MTIpfChfX3QxPDw2KXxfX3Qy
KTsgXAorICAgICAgICAgICAgKGkpKz0yOyBcCisgICAgICAgIH0gZWxzZSBpZiggLyogaGFuZGxl
IFUrMDA4MC4uVSswN0ZGIGlubGluZSAqLyBcCisgICAgICAgICAgICAoKGMpPDB4ZTAgJiYgKGMp
Pj0weGMyKSAmJiBcCisgICAgICAgICAgICAoKGkpIT0obGVuZ3RoKSkgJiYgXAorICAgICAgICAg
ICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2YgXAorICAgICAgICApIHsgXAor
ICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxfX3QxOyBcCisgICAgICAgICAgICArKyhp
KTsgXAogICAgICAgICB9IGVsc2UgeyBcCi0gICAgICAgICAgICAoYyk9VV9TRU5USU5FTDsgXAor
ICAgICAgICAgICAgLyogZnVuY3Rpb24gY2FsbCBmb3IgImNvbXBsaWNhdGVkIiBhbmQgZXJyb3Ig
Y2FzZXMgKi8gXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgoY29uc3Qg
dWludDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBjLCAtMyk7IFwKICAgICAgICAgfSBcCiAgICAg
fSBcCiB9CisjZW5kaWYgLyogVV9ISURFX0RSQUZUX0FQSSAqLwogCiAvKioKICAqIEFwcGVuZCBh
IGNvZGUgcG9pbnQgdG8gYSBzdHJpbmcsIG92ZXJ3cml0aW5nIDEgdG8gNCBieXRlcy4KQEAgLTM1
MSw5ICs0NjMsOSBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJf
dCBzdGFydCwgaW50MzJfdCBpKTsKICAqIHRoZW4gaXNFcnJvciBpcyBzZXQgdG8gVFJVRS4KICAq
CiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nIGJ1ZmZlcgotICogQHBhcmFtIGkg
c3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFjaXR5Ci0gKiBAcGFyYW0gY2FwYWNpdHkgc2l6
ZSBvZiB0aGUgc3RyaW5nIGJ1ZmZlcgotICogQHBhcmFtIGMgY29kZSBwb2ludCB0byBhcHBlbmQK
KyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFjaXR5Cisg
KiBAcGFyYW0gY2FwYWNpdHkgaW50MzJfdCBzaXplIG9mIHRoZSBzdHJpbmcgYnVmZmVyCisgKiBA
cGFyYW0gYyBVQ2hhcjMyIGNvZGUgcG9pbnQgdG8gYXBwZW5kCiAgKiBAcGFyYW0gaXNFcnJvciBv
dXRwdXQgVUJvb2wgc2V0IHRvIFRSVUUgaWYgYW4gZXJyb3Igb2NjdXJzLCBvdGhlcndpc2Ugbm90
IG1vZGlmaWVkCiAgKiBAc2VlIFU4X0FQUEVORF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApA
QCAtMzY5LDcgKzQ4MSw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBp
bnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgo
KChjKT4+NikmMHgzZil8MHg4MCk7IFwKICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChj
KSYweDNmKXwweDgwKTsgXAogICAgIH0gZWxzZSB7IFwKLSAgICAgICAgKGkpPXV0ZjhfYXBwZW5k
Q2hhclNhZmVCb2R5KHMsIChpbnQzMl90KShpKSwgKGludDMyX3QpKGNhcGFjaXR5KSwgYywgJihp
c0Vycm9yKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYXBwZW5kQ2hhclNhZmVCb2R5KHMsIChpKSwg
KGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwKICAgICB9IFwKIH0KIApAQCAtMzg0LDcgKzQ5
Niw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0
LCBpbnQzMl90IGkpOwogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfRldEXzFf
VU5TQUZFKHMsIGkpIHsgXAotICAgIChpKSs9MStVOF9DT1VOVF9UUkFJTF9CWVRFUygocylbaV0p
OyBcCisgICAgKGkpKz0xK1U4X0NPVU5UX1RSQUlMX0JZVEVTX1VOU0FGRSgodWludDhfdCkocylb
aV0pOyBcCiB9CiAKIC8qKgpAQCAtMzkyLDkgKzUwNCwxMSBAQCB1dGY4X2JhY2sxU2FmZUJvZHko
Y29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWlu
Y3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVn
YWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0
aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBw
YXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQs
IG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBh
cmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0g
bGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHNlZSBVOF9GV0RfMV9VTlNBRkUKICAq
IEBzdGFibGUgSUNVIDIuNAogICovCkBAIC00MDIsNyArNTE2LDcgQEAgdXRmOF9iYWNrMVNhZmVC
b2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgdWlu
dDhfdCBfX2I9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAogICAgIGlmKFU4X0lTX0xFQUQoX19iKSkg
eyBcCiAgICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJTF9CWVRFUyhfX2IpOyBc
Ci0gICAgICAgIGlmKChpKStfX2NvdW50PihsZW5ndGgpKSB7IFwKKyAgICAgICAgaWYoKGkpK19f
Y291bnQ+KGxlbmd0aCkgJiYgKGxlbmd0aCk+PTApIHsgXAogICAgICAgICAgICAgX19jb3VudD0o
dWludDhfdCkoKGxlbmd0aCktKGkpKTsgXAogICAgICAgICB9IFwKICAgICAgICAgd2hpbGUoX19j
b3VudD4wICYmIFU4X0lTX1RSQUlMKChzKVtpXSkpIHsgXApAQCAtNDM4LDE2ICs1NTIsMTggQEAg
dXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMy
X3QgaSk7CiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNy
bywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVz
LgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVk
IHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFy
YW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFyYW0gbGVuZ3RoIHN0
cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBp
PGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBwYXJh
bSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBza2lwCiAgKiBAc2VlIFU4X0ZXRF9OX1VOU0FG
RQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfRldEX04ocywgaSwgbGVuZ3Ro
LCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7IFwKLSAgICB3aGlsZShfX04+MCAmJiAoaSk8
KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4wICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5n
dGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVOF9GV0RfMShzLCBpLCBsZW5ndGgp
OyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBcCkBAIC00NzksMTQgKzU5NSwxNCBAQCB1dGY4
X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBp
KTsKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9y
IHN0cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJp
bmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0g
KiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pCisgKiBAcGFyYW0gc3Rh
cnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0g
aSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWkKICAqIEBzZWUgVThfU0VU
X0NQX1NUQVJUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfU0VU
X0NQX1NUQVJUKHMsIHN0YXJ0LCBpKSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylbKGkpXSkp
IHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNhZmVCb2R5KHMsIHN0YXJ0LCAoaW50MzJfdCko
aSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpKSk7IFwK
ICAgICB9IFwKIH0KIApAQCAtNTQ3LDggKzY2Myw4IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25z
dCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogSWYgdGhlIG9mZnNl
dCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbiBjIGlzIHNldCB0byBh
IG5lZ2F0aXZlIHZhbHVlLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcK
LSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBA
cGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBp
bnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGlu
dDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAcGFyYW0gYyBvdXRwdXQg
VUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ugb2YgYW4gZXJyb3IKICAqIEBzZWUg
VThfUFJFVl9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAtNTU2LDEzICs2NzIsNDIgQEAg
dXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMy
X3QgaSk7CiAjZGVmaW5lIFU4X1BSRVYocywgc3RhcnQsIGksIGMpIHsgXAogICAgIChjKT0odWlu
dDhfdCkocylbLS0oaSldOyBcCiAgICAgaWYoKGMpPj0weDgwKSB7IFwKLSAgICAgICAgaWYoKGMp
PD0weGJmKSB7IFwKLSAgICAgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkoKGNvbnN0
IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBcCi0gICAgICAgIH0gZWxzZSB7IFwK
LSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBcCi0gICAgICAgIH0gXAorICAgICAgICAoYyk9
dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgc3RhcnQsICYoaSksIGMs
IC0xKTsgXAorICAgIH0gXAorfQorCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8qKgorICog
TW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBvaW50IGJvdW5kYXJ5IHRvIHRo
ZSBwcmV2aW91cyBvbmUKKyAqIGFuZCBnZXQgdGhlIGNvZGUgcG9pbnQgYmV0d2VlbiB0aGVtLgor
ICogKFByZS1kZWNyZW1lbnRpbmcgYmFja3dhcmQgaXRlcmF0aW9uLikKKyAqICJTYWZlIiBtYWNy
bywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVz
LgorICoKKyAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcg
bGVuZ3RoLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYSBtdWx0aS1ieXRlIHNlcXVlbmNl
LCB0aGVuIHRoZSBtYWNybyB3aWxsIHJlYWQKKyAqIHRoZSB3aG9sZSBzZXF1ZW5jZS4KKyAqIElm
IHRoZSBvZmZzZXQgaXMgYmVoaW5kIGEgbGVhZCBieXRlLCB0aGVuIHRoYXQgaXRzZWxmCisgKiB3
aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBvaW50LgorICogSWYgdGhlIG9mZnNldCBpcyBi
ZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbiBjIGlzIHNldCB0byBVK0ZGRkQu
CisgKgorICogVGhpcyBtYWNybyBkb2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBV
K0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3Jt
ZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfUFJFVigpIGlmIHRoYXQgZGlzdGluY3Rpb24gaXMgaW1w
b3J0YW50LgorICoKKyAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKKyAqIEBwYXJh
bSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBw
YXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCisgKiBAcGFyYW0g
YyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9mIGFuIGVy
cm9yCisgKiBAc2VlIFU4X1BSRVYKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9Q
UkVWX09SX0ZGRkQocywgc3RhcnQsIGksIGMpIHsgXAorICAgIChjKT0odWludDhfdCkocylbLS0o
aSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgKGMpPXV0ZjhfcHJldkNoYXJT
YWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAmKGkpLCBjLCAtMyk7IFwKICAgICB9
IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRfQVBJICovCiAKIC8qKgogICogTW92ZSB0aGUg
c3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBvaW50IGJvdW5kYXJ5IHRvIHRoZSBwcmV2aW91
cyBvbmUuCkBAIC01ODYsMTQgKzczMSwxNCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWlu
dDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqICJTYWZlIiBtYWNybywgY2hl
Y2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoK
ICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFy
dGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0
LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmlu
ZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBzdGFydDxpCiAgKiBAc2VlIFU4X0JBQ0tfMV9VTlNBRkUKICAqIEBzdGFibGUgSUNV
IDIuNAogICovCiAjZGVmaW5lIFU4X0JBQ0tfMShzLCBzdGFydCwgaSkgeyBcCiAgICAgaWYoVThf
SVNfVFJBSUwoKHMpWy0tKGkpXSkpIHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNhZmVCb2R5
KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJv
ZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwKIH0KIApAQCAtNjI2LDggKzc3MSw4IEBAIHV0
ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90
IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBm
b3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0
cmluZwotICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nCi0g
KiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFy
dCBpbnQzMl90IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nCisgKiBAcGFyYW0gaSBp
bnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQogICogQHBhcmFtIG4gbnVtYmVy
IG9mIGNvZGUgcG9pbnRzIHRvIHNraXAKICAqIEBzZWUgVThfQkFDS19OX1VOU0FGRQogICogQHN0
YWJsZSBJQ1UgMi40CkBAIC02NjYsMTUgKzgxMSwxNyBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIFRoZSBpbnB1dCBv
ZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgogICogIlNhZmUiIG1h
Y3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJp
ZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0
ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBw
YXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0g
aSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKLSAqIEBwYXJhbSBsZW5n
dGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5n
IG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBt
dXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcg
bGVuZ3RoCiAgKiBAc2VlIFU4X1NFVF9DUF9MSU1JVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIu
NAogICovCiAjZGVmaW5lIFU4X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSB7IFwK
LSAgICBpZigoc3RhcnQpPChpKSAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIGlmKChzdGFydCk8
KGkpICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAog
ICAgICAgICBVOF9CQUNLXzEocywgc3RhcnQsIGkpOyBcCiAgICAgICAgIFU4X0ZXRF8xKHMsIGks
IGxlbmd0aCk7IFwKICAgICB9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91
bmljb2RlL3V0Zl9vbGQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0Zl9vbGQu
aAppbmRleCA4NTA0YTAzMGRkZmM0ZGJhZTM2M2U1YjVmYTZjNWQxNThiYjdjY2UzLi5mOTEyNWIx
ZGQyZWQ3ZTFjNjg0ZGExNjU0ZjVlNDdkZDdjZDVmYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9pY3UvdW5pY29kZS91dGZfb2xkLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1
L3VuaWNvZGUvdXRmX29sZC5oCkBAIC0xICsxLDExNjkgQEAKLS8qIFRoaXMgZmlsZSBpcyBpbnRl
bnRpb25hbGx5IGxlZnQgYmxhbmsuICovCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdXRmX29sZC5oCisqICAg
ZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBp
bmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMnNlcDIxCisqICAgY3JlYXRlZCBi
eTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQyBB
UEk6IERlcHJlY2F0ZWQgbWFjcm9zIGZvciBVbmljb2RlIHN0cmluZyBoYW5kbGluZworICovCisK
Ky8qKgorICogCisgKiBUaGUgbWFjcm9zIGluIHV0Zl9vbGQuaCBhcmUgYWxsIGRlcHJlY2F0ZWQg
YW5kIHRoZWlyIHVzZSBkaXNjb3VyYWdlZC4KKyAqIFNvbWUgb2YgdGhlIGRlc2lnbiBwcmluY2lw
bGVzIGJlaGluZCB0aGUgc2V0IG9mIFVURiBtYWNyb3MKKyAqIGhhdmUgY2hhbmdlZCBvciBwcm92
ZWQgaW1wcmFjdGljYWwuCisgKiBBbG1vc3QgYWxsIG9mIHRoZSBvbGQgIlVURiBtYWNyb3MiIGFy
ZSBhdCBsZWFzdCByZW5hbWVkLgorICogSWYgeW91IGFyZSBsb29raW5nIGZvciBhIG5ldyBlcXVp
dmFsZW50IHRvIGFuIG9sZCBtYWNybywgcGxlYXNlIHNlZSB0aGUKKyAqIGNvbW1lbnQgYXQgdGhl
IG9sZCBvbmUuCisgKgorICogQnJpZWYgc3VtbWFyeSBvZiByZWFzb25zIGZvciBkZXByZWNhdGlv
bjoKKyAqIC0gU3dpdGNoIG9uIFVURl9TSVpFIChzZWxlY3Rpb24gb2YgVVRGLTgvMTYvMzIgZGVm
YXVsdCBzdHJpbmcgcHJvY2Vzc2luZykKKyAqICAgd2FzIGltcHJhY3RpY2FsLgorICogLSBTd2l0
Y2ggb24gVVRGX1NBRkUgZXRjLiAoc2VsZWN0aW9uIG9mIHVuc2FmZS9zYWZlL3N0cmljdCBkZWZh
dWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgb2YgbGl0dGxlIHVzZSBhbmQgaW1wcmFj
dGljYWwuCisgKiAtIFdob2xlIGNsYXNzZXMgb2YgbWFjcm9zIGJlY2FtZSBvYnNvbGV0ZSBvdXRz
aWRlIG9mIHRoZSBVVEZfU0laRS9VVEZfU0FGRQorICogICBzZWxlY3Rpb24gZnJhbWV3b3JrOiBV
VEYzMl8gbWFjcm9zIChhbGwgdHJpdmlhbCkKKyAqICAgYW5kIFVURl8gZGVmYXVsdCBhbmQgaW50
ZXJtZWRpYXRlIG1hY3JvcyAoYWxsIGFsaWFzZXMpLgorICogLSBUaGUgc2VsZWN0aW9uIGZyYW1l
d29yayBhbHNvIGNhdXNlZCBtYW55IG1hY3JvIGFsaWFzZXMuCisgKiAtIENoYW5nZSBpbiBVbmlj
b2RlIHN0YW5kYXJkOiAiaXJyZWd1bGFyIiBzZXF1ZW5jZXMgKDMuMCkgYmVjYW1lIGlsbGVnYWwg
KDMuMikuCisgKiAtIENoYW5nZSBvZiBsYW5ndWFnZSBpbiBVbmljb2RlIHN0YW5kYXJkOgorICog
ICBHcm93aW5nIGRpc3RpbmN0aW9uIGJldHdlZW4gaW50ZXJuYWwgeC1iaXQgVW5pY29kZSBzdHJp
bmdzIGFuZCBleHRlcm5hbCBVVEYteAorICogICBmb3Jtcywgd2l0aCB0aGUgZm9ybWVyIG1vcmUg
bGVuaWVudC4KKyAqICAgU3VnZ2VzdHMgcmVuYW1pbmcgb2YgVVRGMTZfIG1hY3JvcyB0byBVMTZf
LgorICogLSBUaGUgcHJlZml4ICJVVEZfIiB3aXRob3V0IGEgd2lkdGggbnVtYmVyIGNvbmZ1c2Vk
IHNvbWUgdXNlcnMuCisgKiAtICJTYWZlIiBhcHBlbmQgbWFjcm9zIG5lZWRlZCB0aGUgYWRkaXRp
b24gb2YgYW4gZXJyb3IgaW5kaWNhdG9yIG91dHB1dC4KKyAqIC0gIlNhZmUiIFVURi04IG1hY3Jv
cyB1c2VkIGxlZ2l0aW1hdGUgKGlmIHJhcmVseSB1c2VkKSBjb2RlIHBvaW50IHZhbHVlcworICog
ICB0byBpbmRpY2F0ZSBlcnJvciBjb25kaXRpb25zLgorICogLSBUaGUgdXNlIG9mIHRoZSAiX0NI
QVIiIGluZml4IGZvciBjb2RlIHBvaW50IG9wZXJhdGlvbnMgY29uZnVzZWQgc29tZSB1c2Vycy4K
KyAqCisgKiBNb3JlIGRldGFpbHM6CisgKgorICogVW50aWwgSUNVIDIuMiwgdXRmLmggdGhlb3Jl
dGljYWxseSBhbGxvd2VkIHRvIGNob29zZSBhbW9uZyBVVEYtOC8xNi8zMgorICogZm9yIHN0cmlu
ZyBwcm9jZXNzaW5nLCBhbmQgYW1vbmcgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1bHQgbWFjcm9z
IGZvciB0aGF0LgorICoKKyAqIEl0IHByb3ZlZCBuZWFybHkgaW1wb3NzaWJsZSB0byB3cml0ZSBu
b24tdHJpdmlhbCwgaGlnaC1wZXJmb3JtYW5jZSBjb2RlCisgKiB0aGF0IGlzIFVURi1nZW5lcmlj
LgorICogVW5zYWZlIGRlZmF1bHQgbWFjcm9zIHdvdWxkIGJlIGRhbmdlcm91cyBmb3IgZGVmYXVs
dCBzdHJpbmcgcHJvY2Vzc2luZywKKyAqIGFuZCB0aGUgbWFpbiByZWFzb24gZm9yIHRoZSAic3Ry
aWN0IiB2ZXJzaW9ucyBkaXNhcHBlYXJlZDoKKyAqIEJldHdlZW4gVW5pY29kZSAzLjAgYW5kIDMu
MiBhbGwgImlycmVndWxhciIgVVRGLTggc2VxdWVuY2VzIGJlY2FtZSBpbGxlZ2FsLgorICogVGhl
IG9ubHkgb3RoZXIgY29uZGl0aW9ucyB0aGF0ICJzdHJpY3QiIGNoZWNrZWQgZm9yIHdlcmUgbm9u
LWNoYXJhY3RlcnMsCisgKiB3aGljaCBhcmUgdmFsaWQgZHVyaW5nIHByb2Nlc3NpbmcuIE9ubHkg
ZHVyaW5nIHRleHQgaW5wdXQvb3V0cHV0IHNob3VsZCB0aGV5CisgKiBiZSBjaGVja2VkLCBhbmQg
YXQgdGhhdCB0aW1lIG90aGVyIHdlbGwtZm9ybWVkbmVzcyBjaGVja3MgbWF5IGJlCisgKiBuZWNl
c3Nhcnkgb3IgdXNlZnVsIGFzIHdlbGwuCisgKiBUaGlzIGNhbiBzdGlsbCBiZSBkb25lIGJ5IHVz
aW5nIFUxNl9ORVhUIGFuZCBVX0lTX1VOSUNPREVfTk9OQ0hBUgorICogb3IgVV9JU19VTklDT0RF
X0NIQVIuCisgKgorICogVGhlIG9sZCBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBhbHNvIHVzZWQgc29t
ZSBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cworICogdG8gaW5kaWNhdGUgbWFsZm9ybWVkIHNl
cXVlbmNlcy4KKyAqIFRoZSBuZXcgVVRGOF8gbWFjcm9zIHdpdGhvdXQgc3VmZml4IHVzZSBuZWdh
dGl2ZSB2YWx1ZXMgaW5zdGVhZC4KKyAqCisgKiBUaGUgZW50aXJlIGNvbnRlbnRzIG9mIHV0ZjMy
Lmggd2FzIG1vdmVkIGhlcmUgd2l0aG91dCByZXBsYWNlbWVudAorICogYmVjYXVzZSBhbGwgdGhv
c2UgbWFjcm9zIHdlcmUgdHJpdmlhbCBhbmQKKyAqIHdlcmUgbWVhbmluZ2Z1bCBvbmx5IGluIHRo
ZSBmcmFtZXdvcmsgb2YgY2hvb3NpbmcgdGhlIFVURiBzaXplLgorICoKKyAqIFNlZSBKaXR0ZXJi
dWcgMjE1MCBhbmQgaXRzIGRpc2N1c3Npb24gb24gdGhlIElDVSBtYWlsaW5nIGxpc3QKKyAqIGlu
IFNlcHRlbWJlciAyMDAyLgorICoKKyAqIDxocj4KKyAqCisgKiA8ZW0+T2Jzb2xldGUgcGFydDwv
ZW0+IG9mIHByZS1JQ1UgMi40IHV0Zi5oIGZpbGUgZG9jdW1lbnRhdGlvbjoKKyAqCisgKiA8cD5U
aGUgb3JpZ2luYWwgY29uY2VwdCBmb3IgdGhlc2UgZmlsZXMgd2FzIGZvciBJQ1UgdG8gYWxsb3cK
KyAqIGluIHByaW5jaXBsZSB0byBzZXQgd2hpY2ggVVRGIChVVEYtOC8xNi8zMikgaXMgdXNlZCBp
bnRlcm5hbGx5CisgKiBieSBkZWZpbmluZyBVVEZfU0laRSB0byBlaXRoZXIgOCwgMTYsIG9yIDMy
LiB1dGYuaCB3b3VsZCB0aGVuIGRlZmluZSB0aGUgVUNoYXIgdHlwZQorICogYWNjb3JkaW5nbHku
IFVURi0xNiB3YXMgdGhlIGRlZmF1bHQuPC9wPgorICoKKyAqIDxwPlRoaXMgY29uY2VwdCBoYXMg
YmVlbiBhYmFuZG9uZWQuCisgKiBBIGxvdCBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFzc3VtZXMg
VUNoYXIgc3RyaW5ncyBhcmUgaW4gVVRGLTE2LgorICogVGhpcyBpcyBlc3BlY2lhbGx5IHRydWUg
Zm9yIGxvdy1sZXZlbCBjb2RlIGxpa2UKKyAqIGNvbnZlcnNpb24sIG5vcm1hbGl6YXRpb24sIGFu
ZCBjb2xsYXRpb24uCisgKiBUaGUgdXRmLmggaGVhZGVyIGVuZm9yY2VzIHRoZSBkZWZhdWx0IG9m
IFVURi0xNi4KKyAqIFRoZSBVVEYtOCBhbmQgVVRGLTMyIG1hY3JvcyByZW1haW4gZm9yIG5vdyBm
b3IgY29tcGxldGVuZXNzIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LjwvcD4KKyAqCisgKiA8
cD5BY2NvcmRpbmdseSwgdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25lZCAxNi1i
aXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KKyAqIFVDaGFyIGlzIGRl
ZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2X3QuPC9wPgorICoK
KyAqIDxwPlVDaGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAo
aW50MzJfdCksIGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQKKyAqIFVuaWNvZGUgY29kZSBwb2lu
dCAoVW5pY29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KKyAqIEJlZm9yZSBJQ1UgMi40
LCB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5k
ZW50IGFzCisgKiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBk
b2N1bWVudGF0aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi48L3A+CisgKgorICogPHA+dXRmLmggYWxz
byBkZWZpbmVzIGEgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBoYW5kbGluZyBzaW5nbGUgVW5pY29k
ZSBjb2RlIHBvaW50cyBhbmQKKyAqIGZvciB1c2luZyBVVEYgVW5pY29kZSBzdHJpbmdzLiBJdCBp
bmNsdWRlcyB1dGY4LmgsIHV0ZjE2LmgsIGFuZCB1dGYzMi5oIGZvciB0aGUgYWN0dWFsCisgKiBp
bXBsZW1lbnRhdGlvbnMgb2YgdGhvc2UgbWFjcm9zIGFuZCB0aGVuIGFsaWFzZXMgb25lIHNldCBv
ZiB0aGVtIChmb3IgVVRGLTE2KSBmb3IgZ2VuZXJhbCB1c2UuCisgKiBUaGUgVVRGLXNwZWNpZmlj
IG1hY3JvcyBoYXZlIHRoZSBVVEYgc2l6ZSBpbiB0aGUgbWFjcm8gbmFtZSBwcmVmaXhlcyAoVVRG
MTZfLi4uKSwgd2hpbGUKKyAqIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhbHdheXMgYmVnaW4g
d2l0aCBVVEZfLi4uPC9wPgorICoKKyAqIDxwPk1hbnkgc3RyaW5nIG9wZXJhdGlvbnMgY2FuIGJl
IGRvbmUgd2l0aCBvciB3aXRob3V0IGVycm9yIGNoZWNraW5nLgorICogV2hlcmUgc3VjaCBhIGRp
c3RpbmN0aW9uIGlzIHVzZWZ1bCwgdGhlcmUgYXJlIHR3byB2ZXJzaW9ucyBvZiB0aGUgbWFjcm9z
LCAidW5zYWZlIiBhbmQgInNhZmUiCisgKiBvbmVzIHdpdGggLi4uX1VOU0FGRSBhbmQgLi4uX1NB
RkUgc3VmZml4ZXMuIFRoZSB1bnNhZmUgbWFjcm9zIGFyZSBmYXN0IGJ1dCBtYXkgY2F1c2UKKyAq
IHByb2dyYW0gZmFpbHVyZXMgaWYgdGhlIHN0cmluZ3MgYXJlIG5vdCB3ZWxsLWZvcm1lZC4gVGhl
IHNhZmUgbWFjcm9zIGhhdmUgYW4gYWRkaXRpb25hbCwgYm9vbGVhbgorICogcGFyYW1ldGVyICJz
dHJpY3QiLiBJZiBzdHJpY3QgaXMgRkFMU0UsIHRoZW4gb25seSBpbGxlZ2FsIHNlcXVlbmNlcyBh
cmUgZGV0ZWN0ZWQuCisgKiBPdGhlcndpc2UsIGlycmVndWxhciBzZXF1ZW5jZXMgYW5kIG5vbi1j
aGFyYWN0ZXJzIGFyZSBkZXRlY3RlZCBhcyB3ZWxsIChsaWtlIHNpbmdsZSBzdXJyb2dhdGVzKS4K
KyAqIFNhZmUgbWFjcm9zIHJldHVybiBzcGVjaWFsIGVycm9yIGNvZGUgcG9pbnRzIGZvciBpbGxl
Z2FsL2lycmVndWxhciBzZXF1ZW5jZXM6CisgKiBUeXBpY2FsbHksIFUrZmZmZiwgb3IgdmFsdWVz
IHRoYXQgd291bGQgcmVzdWx0IGluIGEgY29kZSB1bml0IHNlcXVlbmNlIG9mIHRoZSBzYW1lIGxl
bmd0aAorICogYXMgdGhlIGVycm9uZW91cyBpbnB1dCBzZXF1ZW5jZS48YnI+CisgKiBOb3RlIHRo
YXQgX1VOU0FGRSBtYWNyb3MgaGF2ZSBmZXdlciBwYXJhbWV0ZXJzOiBUaGV5IGRvIG5vdCBoYXZl
IHRoZSBzdHJpY3RuZXNzIHBhcmFtZXRlciwgYW5kCisgKiB0aGV5IGRvIG5vdCBoYXZlIHN0YXJ0
L2xlbmd0aCBwYXJhbWV0ZXJzIGZvciBib3VuZGFyeSBjaGVja2luZy48L3A+CisgKgorICogPHA+
SGVyZSwgdGhlIG1hY3JvcyBhcmUgYWxpYXNlZCBpbiB0d28gc3RlcHM6CisgKiBJbiB0aGUgZmly
c3Qgc3RlcCwgdGhlIFVURi1zcGVjaWZpYyBtYWNyb3Mgd2l0aCBVVEYxNl8gcHJlZml4IGFuZCBf
VU5TQUZFIGFuZCBfU0FGRSBzdWZmaXhlcyBhcmUKKyAqIGFsaWFzZWQgYWNjb3JkaW5nIHRvIHRo
ZSBVVEZfU0laRSB0byBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgdGhlIHNhbWUgc3VmZml4
ZXMgYW5kIHNpZ25hdHVyZXMuCisgKiBUaGVuLCBpbiBhIHNlY29uZCBzdGVwLCB0aGUgZGVmYXVs
dCwgZ2VuZXJhbCBhbGlhcyBtYWNyb3MgYXJlIHNldCB0byB1c2UgZWl0aGVyIHRoZSB1bnNhZmUg
b3IKKyAqIHRoZSBzYWZlL25vdCBzdHJpY3QgKGRlZmF1bHQpIG9yIHRoZSBzYWZlL3N0cmljdCBt
YWNybzsKKyAqIHRoZXNlIGdlbmVyYWwgbWFjcm9zIGRvIG5vdCBoYXZlIGEgc3RyaWN0bmVzcyBw
YXJhbWV0ZXIuPC9wPgorICoKKyAqIDxwPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgZGVm
YXVsdCBjaG9pY2UgZm9yIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyB0byBiZSB1bnNhZmUsIHNh
ZmUvbm90IHN0cmljdCBvciBzYWZlL3N0cmljdC4KKyAqIFRoZSBkZWZhdWx0IGlzIHNhZmUvbm90
IHN0cmljdC4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNlbGVjdCB0aGUgdW5zYWZlIG1hY3Jv
cyBhcyB0aGUgYmFzaXMgZm9yCisgKiBVbmljb2RlIHN0cmluZyBoYW5kbGluZyBpbiBJQ1UhIFRv
IHNlbGVjdCB0aGlzLCBkZWZpbmUgVVRGX1NBRkUsIFVURl9TVFJJQ1QsIG9yIFVURl9VTlNBRkUu
PC9wPgorICoKKyAqIDxwPkZvciBnZW5lcmFsIHVzZSwgb25lIHNob3VsZCB1c2UgdGhlIGRlZmF1
bHQsIGdlbmVyYWwgbWFjcm9zIHdpdGggVVRGXyBwcmVmaXggYW5kIG5vIF9TQUZFL19VTlNBRkUg
c3VmZml4LgorICogT25seSBpbiBzb21lIGNhc2VzIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY29u
dHJvbCB0aGUgY2hvaWNlIG9mIG1hY3JvIGRpcmVjdGx5IGFuZCB1c2UgYSBsZXNzIGdlbmVyaWMg
YWxpYXMuCisgKiBGb3IgZXhhbXBsZSwgaWYgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCBhIHN0cmlu
ZyBpcyB3ZWxsLWZvcm1lZCBhbmQgdGhlIGluZGV4IHdpbGwgc3RheSB3aXRoaW4gdGhlIGJvdW5k
cywKKyAqIHRoZW4gdGhlIF9VTlNBRkUgdmVyc2lvbiBtYXkgYmUgdXNlZC4KKyAqIElmIGEgVVRG
LTggc3RyaW5nIGlzIHRvIGJlIHByb2Nlc3NlZCwgdGhlbiB0aGUgbWFjcm9zIHdpdGggVVRGOF8g
cHJlZml4ZXMgbmVlZCB0byBiZSB1c2VkLjwvcD4KKyAqCisgKiA8aHI+CisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIHRoZSBtYWNyb3MgaW4gdXRmLmgsIHV0ZjE2LmgsIHV0ZjguaCBp
bnN0ZWFkLgorICovCisKKyNpZm5kZWYgX19VVEZfT0xEX0hfXworI2RlZmluZSBfX1VURl9PTERf
SF9fCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0Zi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRmOC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRm
MTYuaCIKKworLyogRm9ybWVybHkgdXRmLmgsIHBhcnQgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmZGVmIFVfVVNFX1VURl9ERVBS
RUNBVEVTCisvKioKKyAqIFVuaWNvZGUgc3RyaW5nIGFuZCBhcnJheSBvZmZzZXQgYW5kIGluZGV4
IHR5cGUuCisgKiBJQ1UgYWx3YXlzIGNvdW50cyBVbmljb2RlIGNvZGUgdW5pdHMgKFVDaGFycykg
Zm9yCisgKiBzdHJpbmcgb2Zmc2V0cywgaW5kZXhlcywgYW5kIGxlbmd0aHMsIG5vdCBVbmljb2Rl
IGNvZGUgcG9pbnRzLgorICoKKyAqIEBvYnNvbGV0ZSBJQ1UgMi42LiBVc2UgaW50MzJfdCBkaXJl
Y3RseSBpbnN0ZWFkIHNpbmNlIHRoaXMgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGF0IHJlbGVh
c2UuCisgKi8KK3R5cGVkZWYgaW50MzJfdCBVVGV4dE9mZnNldDsKKyNlbmRpZgorCisvKiogTnVt
YmVyIG9mIGJpdHMgaW4gYSBVbmljb2RlIHN0cmluZyBjb2RlIHVuaXQgLSBJQ1UgdXNlcyAxNi1i
aXQgVW5pY29kZS4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9TSVpFIDE2CisKKy8qKgorICogVGhlIGRlZmF1bHQgY2hvaWNlIGZv
ciBnZW5lcmFsIFVuaWNvZGUgc3RyaW5nIG1hY3JvcyBpcyB0byB1c2UgdGhlIC4uLl9TQUZFIG1h
Y3JvIGltcGxlbWVudGF0aW9ucworICogd2l0aCBzdHJpY3Q9RkFMU0UuCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X1NBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyN1bmRlZiBVVEZfVU5TQUZFCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUs
IHNlZSB1dGZfb2xkLmguICovCisjdW5kZWYgVVRGX1NUUklDVAorCisvKioKKyAqIFVURjhfRVJS
T1JfVkFMVUVfMSBhbmQgVVRGOF9FUlJPUl9WQUxVRV8yIGFyZSBzcGVjaWFsIGVycm9yIHZhbHVl
cyBmb3IgVVRGLTgsCisgKiB3aGljaCBuZWVkIDEgb3IgMiBieXRlcyBpbiBVVEYtODoKKyAqIFxj
b2RlCisgKiBVKzAwMTUgPSBOQUsgPSBOZWdhdGl2ZSBBY2tub3dsZWRnZSwgQzAgY29udHJvbCBj
aGFyYWN0ZXIKKyAqIFUrMDA5ZiA9IGhpZ2hlc3QgQzEgY29udHJvbCBjaGFyYWN0ZXIKKyAqIFxl
bmRjb2RlCisgKgorICogVGhlc2UgYXJlIHVzZWQgYnkgVVRGOF8uLi5fU0FGRSBtYWNyb3Mgc28g
dGhhdCB0aGV5IGNhbiByZXR1cm4gYW4gZXJyb3IgdmFsdWUKKyAqIHRoYXQgbmVlZHMgdGhlIHNh
bWUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgKGJ5dGVzKSBhcyB3ZXJlIHNlZW4gYnkKKyAqIGEgbWFj
cm8uIFRoZXkgc2hvdWxkIGJlIHRlc3RlZCB3aXRoIFVURl9JU19FUlJPUigpIG9yIFVURl9JU19W
QUxJRCgpLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURjhfRVJST1JfVkFMVUVfMSAweDE1CisKKy8qKgorICogU2Vl
IGRvY3VtZW50YXRpb24gb24gVVRGOF9FUlJPUl9WQUxVRV8xIGZvciBkZXRhaWxzLgorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURjhfRVJST1JfVkFMVUVfMiAweDlmCisKKy8qKgorICogRXJyb3IgdmFsdWUgZm9yIGFs
bCBVVEZzLiBUaGlzIGNvZGUgcG9pbnQgdmFsdWUgd2lsbCBiZSBzZXQgYnkgbWFjcm9zIHdpdGgg
ZXJyb3IKKyAqIGNoZWNraW5nIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLgorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
Rl9FUlJPUl9WQUxVRSAweGZmZmYKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCBjb2RlIGFu
IGVycm9yIHZhbHVlCisgKiBhcyByZXR1cm5lZCBieSBvbmUgb2YgdGhlIG1hY3JvcyBmb3IgYW55
IFVURj8KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQu
aC4KKyAqLworI2RlZmluZSBVVEZfSVNfRVJST1IoYykgXAorICAgICgoKGMpJjB4ZmZmZSk9PTB4
ZmZmZSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVfMSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVf
MikKKworLyoqCisgKiBUaGlzIGlzIGEgY29tYmluZWQgbWFjcm86IElzIGMgYSB2YWxpZCBVbmlj
b2RlIHZhbHVlIF9hbmRfIG5vdCBhbiBlcnJvciBjb2RlPworICoKKyAqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19WQUxJ
RChjKSBcCisgICAgKFVURl9JU19VTklDT0RFX0NIQVIoYykgJiYgXAorICAgICAoYykhPVVURjhf
RVJST1JfVkFMVUVfMSAmJiAoYykhPVVURjhfRVJST1JfVkFMVUVfMikKKworLyoqCisgKiBJcyB0
aGlzIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGEgc3Vycm9nYXRlIChVK2Q4MDAuLlUrZGZmZik/
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRFIGFuZCBV
MTZfSVNfU1VSUk9HQVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19TVVJS
T0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmODAwKT09MHhkODAwKQorCisvKioKKyAqIElz
IGEgZ2l2ZW4gMzItYml0IGNvZGUgcG9pbnQgYSBVbmljb2RlIG5vbmNoYXJhY3Rlcj8KKyAqCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9OT05DSEFSLCBz
ZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX05PTkNIQVIoYykgXAor
ICAgICgoYyk+PTB4ZmRkMCAmJiBcCisgICAgICgodWludDMyX3QpKGMpPD0weGZkZWYgfHwgKChj
KSYweGZmZmUpPT0weGZmZmUpICYmIFwKKyAgICAgKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpCisK
Ky8qKgorICogSXMgYSBnaXZlbiAzMi1iaXQgdmFsdWUgYSBVbmljb2RlIGNvZGUgcG9pbnQgdmFs
dWUgKDAuLlUrMTBmZmZmKQorICogdGhhdCBjYW4gYmUgYXNzaWduZWQgYSBjaGFyYWN0ZXI/Cisg
KgorICogQ29kZSBwb2ludHMgdGhhdCBhcmUgbm90IGNoYXJhY3RlcnMgaW5jbHVkZToKKyAqIC0g
c2luZ2xlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyAoVStkODAwLi5VK2RmZmYsIDIwNDggY29kZSBw
b2ludHMpCisgKiAtIHRoZSBsYXN0IHR3byBjb2RlIHBvaW50cyBvbiBlYWNoIHBsYW5lIChVK19f
ZmZmZSBhbmQgVStfX2ZmZmYsIDM0IGNvZGUgcG9pbnRzKQorICogLSBVK2ZkZDAuLlUrZmRlZiAo
bmV3IHdpdGggVW5pY29kZSAzLjEsIDMyIGNvZGUgcG9pbnRzKQorICogLSB0aGUgaGlnaGVzdCBV
bmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgaXMgVSsxMGZmZmYKKyAqCisgKiBUaGlzIG1lYW5zIHRo
YXQgYWxsIGNvZGUgcG9pbnRzIGJlbG93IFUrZDgwMCBhcmUgY2hhcmFjdGVyIGNvZGUgcG9pbnRz
LAorICogYW5kIHRoYXQgYm91bmRhcnkgaXMgdGVzdGVkIGZpcnN0IGZvciBwZXJmb3JtYW5jZS4K
KyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9DSEFS
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX0NIQVIoYykgXAor
ICAgICgodWludDMyX3QpKGMpPDB4ZDgwMCB8fCBcCisgICAgICAgICgodWludDMyX3QpKGMpPjB4
ZGZmZiAmJiBcCisgICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiAmJiBcCisgICAgICAg
ICAhVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihjKSkpCisKKy8qIEZvcm1lcmx5IHV0ZjguaCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CisKKy8qKgorICogQ291bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4K
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQ09VTlRfVFJBSUxfQllURVMs
IHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFk
Qnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKworLyoqCisg
KiBNYXNrIGEgVVRGLTggbGVhZCBieXRlLCBsZWF2ZSBvbmx5IHRoZSBsb3dlciBiaXRzIHRoYXQg
Zm9ybSBwYXJ0IG9mIHRoZSBjb2RlIHBvaW50IHZhbHVlLgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9NQVNLX0xFQURfQllURSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2Rl
ZmluZSBVVEY4X01BU0tfTEVBRF9CWVRFKGxlYWRCeXRlLCBjb3VudFRyYWlsQnl0ZXMpICgobGVh
ZEJ5dGUpJj0oMTw8KDYtKGNvdW50VHJhaWxCeXRlcykpKS0xKQorCisvKiogSXMgdGhpcyB0aGlz
IGNvZGUgcG9pbnQgYSBzaW5nbGUgY29kZSB1bml0IChieXRlKT8gQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjhfSVNfU0lOR0xFKHVjaGFyKSAoKCh1Y2hhcikmMHg4MCk9PTApCisvKiogSXMgdGhpcyB0aGlz
IGNvZGUgdW5pdCB0aGUgbGVhZCBjb2RlIHVuaXQgKGJ5dGUpIG9mIGEgY29kZSBwb2ludD8gQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19MRUFELCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEY4X0lTX0xFQUQodWNoYXIpICgodWludDhfdCkoKHVjaGFyKS0weGMwKTww
eDNlKQorLyoqIElzIHRoaXMgdGhpcyBjb2RlIHVuaXQgYSB0cmFpbGluZyBjb2RlIHVuaXQgKGJ5
dGUpIG9mIGEgY29kZSBwb2ludD8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9J
U19UUkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9JU19UUkFJTCh1Y2hhcikg
KCgodWNoYXIpJjB4YzApPT0weDgwKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2RlIHZh
bHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFU4X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4N2YpIGluc3RlYWQs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAo
KHVpbnQzMl90KShjKT4weDdmKQorCisvKioKKyAqIEdpdmVuIHRoZSBsZWFkIGNoYXJhY3Rlciwg
aG93IG1hbnkgYnl0ZXMgYXJlIHRha2VuIGJ5IHRoaXMgY29kZSBwb2ludC4KKyAqIElDVSBkb2Vz
IG5vdCBkZWFsIHdpdGggY29kZSBwb2ludHMgPjB4MTBmZmZmCisgKiB1bmxlc3MgbmVjZXNzYXJ5
IGZvciBhZHZhbmNpbmcgaW4gdGhlIGJ5dGUgc3RyZWFtLgorICoKKyAqIFRoZXNlIGxlbmd0aCBt
YWNyb3MgdGFrZSBpbnRvIGFjY291bnQgdGhhdCBmb3IgdmFsdWVzID4weDEwZmZmZgorICogdGhl
IFVURjhfQVBQRU5EX0NIQVJfU0FGRSBtYWNyb3Mgd291bGQgd3JpdGUgdGhlIGVycm9yIGNvZGUg
cG9pbnQgMHhmZmZmCisgKiB3aXRoIDMgYnl0ZXMuCisgKiBDb2RlIHBvaW50IGNvbXBhcmlzb25z
IG5lZWQgdG8gYmUgaW4gdWludDMyX3QgYmVjYXVzZSBVQ2hhcjMyCisgKiBtYXkgYmUgYSBzaWdu
ZWQgdHlwZSwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBtdXN0IGJlIHJlY29nbml6ZWQuCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0xFTkdUSCBpbnN0ZWFkLCBzZWUgdXRmLmguCisg
Ki8KKyNpZiAxCisjICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVp
bnQzMl90KShjKTw9MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3
ZmYgPyAyIDogXAorICAgICAgICAgICAgICAgICgodWludDMyX3QpKChjKS0weDEwMDAwKT4weGZm
ZmZmID8gMyA6IDQpIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZWxzZQorIyAgIGRl
ZmluZSBVVEY4X0NIQVJfTEVOR1RIKGMpIFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2Yg
PyAxIDogXAorICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmID8gMiA6IFwKKyAgICAg
ICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMyA6IFwKKyAgICAgICAgICAgICAg
ICAgICAgKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmID8gNCA6IFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICgodWludDMyX3QpKGMpPD0weDNmZmZmZmYgPyA1IDogXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDdmZmZmZmZmID8gNiA6IDMpIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgICAgICAgICApIFwKKyAgICAgICAg
ICAgICAgICApIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZW5kaWYKKworLyoqIFRo
ZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBwZXIgY29kZSBwb2ludC4gQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVOF9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X01BWF9DSEFSX0xFTkdUSCA0CisKKy8qKiBBdmVyYWdlIG51bWJlciBvZiBjb2RlIHVu
aXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVJSQVlfU0laRShzaXplKSAoKDUqKHNpemUp
KS8yKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9HRVRfVU5TQUZF
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFSX1VOU0FGRShzLCBpLCBj
KSB7IFwKKyAgICBpbnQzMl90IF91dGY4X2dldF9jaGFyX3Vuc2FmZV9pbmRleD0oaW50MzJfdCko
aSk7IFwKKyAgICBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBfdXRmOF9nZXRfY2hhcl91
bnNhZmVfaW5kZXgpOyBcCisgICAgVVRGOF9ORVhUX0NIQVJfVU5TQUZFKHMsIF91dGY4X2dldF9j
aGFyX3Vuc2FmZV9pbmRleCwgYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVz
ZSBVOF9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9HRVRfQ0hB
Ul9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgaW50MzJfdCBf
dXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIFVURjhfU0VUX0NI
QVJfU1RBUlRfU0FGRShzLCBzdGFydCwgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCk7IFwKKyAg
ICBVVEY4X05FWFRfQ0hBUl9TQUZFKHMsIF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXgsIGxlbmd0
aCwgYywgc3RyaWN0KTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9ORVhUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORVhUX0NI
QVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoKHVp
bnQ4X3QpKChjKS0weGMwKTwweDM1KSB7IFwKKyAgICAgICAgdWludDhfdCBfX2NvdW50PVVURjhf
Q09VTlRfVFJBSUxfQllURVMoYyk7IFwKKyAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShjLCBf
X2NvdW50KTsgXAorICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBcCisgICAgICAgIC8qIGVhY2gg
Zm9sbG93aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBcCisgICAg
ICAgIGNhc2UgMzogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2Yp
OyBcCisgICAgICAgIGNhc2UgMjogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkp
KytdJjB4M2YpOyBcCisgICAgICAgIGNhc2UgMTogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYp
fCgocylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVzIHRvIG9w
dGltaXplIHN3aXRjaCgpICovIFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAgIH0gXAor
ICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9BUFBF
TkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1VO
U0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAg
ICAgKHMpWyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIGlm
KCh1aW50MzJfdCkoYyk8PTB4N2ZmKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4
X3QpKCgoYyk+PjYpfDB4YzApOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIGlm
KCh1aW50MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgICAgICAgICAgKHMpWyhpKSsrXT0o
dWludDhfdCkoKChjKT4+MTIpfDB4ZTApOyBcCisgICAgICAgICAgICB9IGVsc2UgeyBcCisgICAg
ICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChjKT4+MTgpfDB4ZjApOyBcCisgICAg
ICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKCgoYyk+PjEyKSYweDNmKXwweDgwKTsg
XAorICAgICAgICAgICAgfSBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChj
KT4+NikmMHgzZil8MHg4MCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIChzKVsoaSkrK109KHVp
bnQ4X3QpKCgoYykmMHgzZil8MHg4MCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVThfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKSB7IFwKKyAgICAoaSkrPTErVVRGOF9DT1VO
VF9UUkFJTF9CWVRFUygocylbaV0pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFU4X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBfX049KG4pOyBcCisgICAg
d2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorICAg
ICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lT
X1RSQUlMKChzKVtpXSkpIHsgLS0oaSk7IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFU4X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9O
RVhUX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVso
aSkrK107IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICBpZihVVEY4X0lTX0xFQUQo
YykpIHsgXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keShzLCAmKGkpLCAo
aW50MzJfdCkobGVuZ3RoKSwgYywgc3RyaWN0KTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAg
ICAgICAgICAoYyk9VVRGOF9FUlJPUl9WQUxVRV8xOyBcCisgICAgICAgIH0gXAorICAgIH0gXAor
fQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0FQUEVORCBpbnN0ZWFkLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1NBRkUocywgaSwgbGVuZ3Ro
LCBjKSAgeyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZikgeyBcCisgICAgICAgIChzKVso
aSkrK109KHVpbnQ4X3QpKGMpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAoaSk9dXRmOF9h
cHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50MzJfdCkobGVuZ3RoKSwgYywg
TlVMTCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVThfRldEXzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfRldEXzFfU0FGRShz
LCBpLCBsZW5ndGgpIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVThfRldEX04sIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjhfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIFU4X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfU0VUX0NQX1NUQVJULCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3Rh
cnQsIGkpIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVThfUFJFVl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjhfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkp
XTsgXAorICAgIGlmKFVURjhfSVNfVFJBSUwoYykpIHsgXAorICAgICAgICB1aW50OF90IF9fYiwg
X19jb3VudD0xLCBfX3NoaWZ0PTY7IFwKK1wKKyAgICAgICAgLyogYyBpcyBhIHRyYWlsIGJ5dGUg
Ki8gXAorICAgICAgICAoYykmPTB4M2Y7IFwKKyAgICAgICAgZm9yKDs7KSB7IFwKKyAgICAgICAg
ICAgIF9fYj0ocylbLS0oaSldOyBcCisgICAgICAgICAgICBpZihfX2I+PTB4YzApIHsgXAorICAg
ICAgICAgICAgICAgIFVURjhfTUFTS19MRUFEX0JZVEUoX19iLCBfX2NvdW50KTsgXAorICAgICAg
ICAgICAgICAgIChjKXw9KFVDaGFyMzIpX19iPDxfX3NoaWZ0OyBcCisgICAgICAgICAgICAgICAg
YnJlYWs7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgICAgICAoYyl8PShV
Q2hhcjMyKShfX2ImMHgzZik8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICArK19fY291bnQ7
IFwKKyAgICAgICAgICAgICAgICBfX3NoaWZ0Kz02OyBcCisgICAgICAgICAgICB9IFwKKyAgICAg
ICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS18x
X1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lTX1RSQUlMKChzKVstLShpKV0pKSB7
fSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTl9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1VOU0FGRShzLCBp
LCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisg
ICAgICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1Bf
TElNSVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX0xJ
TUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBVVEY4X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAg
ICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFU4X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9Q
UkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWy0t
KGkpXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKChjKTw9MHhiZikgeyBc
CisgICAgICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KHMsIHN0YXJ0LCAmKGkpLCBj
LCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEY4X0VS
Uk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgVThfQkFDS18xKHMsIHN0YXJ0LCBpKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9CQUNLX04sIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pIFU4X0JB
Q0tfTihzLCBzdGFydCwgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVThfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9D
SEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkgVThfU0VUX0NQX0xJTUlUKHMsIHN0
YXJ0LCBpLCBsZW5ndGgpCisKKy8qIEZvcm1lcmx5IHV0ZjE2LmggLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBJcyB1Y2hh
ciBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
Rl9JU19GSVJTVF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmYzAwKT09MHhkODAw
KQorCisvKiogSXMgdWNoYXIgYSBzZWNvbmQvdHJhaWwgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFy
KSYweGZmZmZmYzAwKT09MHhkYzAwKQorCisvKiogQXNzdW1pbmcgYyBpcyBhIHN1cnJvZ2F0ZSwg
aXMgaXQgYSBmaXJzdC9sZWFkIHN1cnJvZ2F0ZT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVX0lTX1NVUlJPR0FURV9MRUFEIGFuZCBVMTZfSVNfU1VSUk9HQVRFX0xFQUQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9JU19TVVJST0dBVEVfRklSU1QoYykgKCgoYykmMHg0
MDApPT0wKQorCisvKiogSGVscGVyIGNvbnN0YW50IGZvciBVVEYxNl9HRVRfUEFJUl9WQUxVRS4g
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU1VSUk9HQVRFX09GRlNFVCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NVUlJPR0FURV9PRkZTRVQgKCgweGQ4MDA8PDEw
VUwpKzB4ZGMwMC0weDEwMDAwKQorCisvKiogR2V0IHRoZSBVVEYtMzIgdmFsdWUgZnJvbSB0aGUg
c3Vycm9nYXRlIGNvZGUgdW5pdHMuIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0dFVF9TVVBQTEVNRU5UQVJZLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9HRVRf
UEFJUl9WQUxVRShmaXJzdCwgc2Vjb25kKSBcCisgICAgKCgoZmlyc3QpPDwxMFVMKSsoc2Vjb25k
KS1VVEZfU1VSUk9HQVRFX09GRlNFVCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9GSVJTVF9TVVJS
T0dBVEUoc3VwcGxlbWVudGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpPj4xMCkrMHhkN2Mw
KQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfVFJBSUwsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRUNPTkRfU1VSUk9HQVRFKHN1cHBsZW1lbnRhcnkp
IChVQ2hhcikoKChzdXBwbGVtZW50YXJ5KSYweDNmZil8MHhkYzAwKQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGMTZfTEVBRChzdXBwbGVtZW50YXJ5KSBVVEZfRklSU1RfU1VSUk9HQVRFKHN1cHBsZW1l
bnRhcnkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfVFJBSUwoc3VwcGxlbWVudGFyeSkgVVRG
X1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMTZfSVNfU0lOR0xFKHVjaGFyKSAhVVRGX0lTX1NVUlJPR0FURSh1Y2hhcikKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X0lTX0xFQUQodWNoYXIpIFVURl9JU19GSVJTVF9TVVJST0dBVEUo
dWNoYXIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9JU19UUkFJ
TCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfVFJBSUwodWNoYXIpIFVURl9J
U19TRUNPTkRfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2Rl
IHZhbHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGlu
c3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FRURfTVVMVElQTEVfVUNI
QVIoYykgKCh1aW50MzJfdCkoYyk+MHhmZmZmKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9D
SEFSX0xFTkdUSChjKSAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMSA6IDIpCisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEYxNl9NQVhfQ0hBUl9MRU5HVEggMgorCisvKiogQXZlcmFnZSBudW1i
ZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYuIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9BUlJBWV9TSVpFKHNp
emUpIChzaXplKQorCisvKioKKyAqIEdldCBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gYW4gb2Zm
c2V0IHRoYXQgcG9pbnRzIHRvIGFueQorICogb2YgdGhlIGNvZGUgdW5pdHMgdGhhdCBiZWxvbmcg
dG8gdGhhdCBjb2RlIHBvaW50LgorICogQXNzdW1lIDA8PWk8bGVuZ3RoLgorICoKKyAqIFRoaXMg
Y291bGQgYmUgdXNlZCBmb3IgaXRlcmF0aW9uIHRvZ2V0aGVyIHdpdGgKKyAqIFVURjE2X0NIQVJf
TEVOR1RIKCkgYW5kIFVURl9JU19FUlJPUigpLAorICogYnV0IHRoZSB1c2Ugb2YgVVRGMTZfTkVY
VF9DSEFSW19VTlNBRkVdKCkgYW5kCisgKiBVVEYxNl9QUkVWX0NIQVJbX1VOU0FGRV0oKSBpcyBt
b3JlIGVmZmljaWVudCBmb3IgdGhhdC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGMTZfR0VU
X0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZf
SVNfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NVUlJPR0FURV9GSVJTVChj
KSkgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCAocylbKGkp
KzFdKTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BB
SVJfVkFMVUUoKHMpWyhpKS0xXSwgKGMpKTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjE2X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwg
Yywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCisgICAgaWYoVVRGX0lTX1NVUlJPR0FU
RShjKSkgeyBcCisgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NV
UlJPR0FURV9GSVJTVChjKSkgeyBcCisgICAgICAgICAgICBpZigoaSkrMTwobGVuZ3RoKSAmJiBV
VEZfSVNfU0VDT05EX1NVUlJPR0FURShfX2MyPShzKVsoaSkrMV0pKSB7IFwKKyAgICAgICAgICAg
ICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCBfX2MyKTsgXAorICAgICAgICAgICAg
ICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19F
UlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAgfSBlbHNl
IGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9n
YXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAg
ICAgICB9IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYoKGkpLTE+PShzdGFy
dCkgJiYgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURShfX2MyPShzKVsoaSktMV0pKSB7IFwKKyAgICAg
ICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoX19jMiwgKGMpKTsgXAorICAgICAg
ICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVU
Rl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAg
fSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgc2Vjb25k
IHN1cnJvZ2F0ZSAqLyBcCisgICAgICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAor
ICAgICAgICAgICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3RyaWN0KSAmJiAh
VVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJf
VU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoVVRGX0lT
X0ZJUlNUX1NVUlJPR0FURShjKSkgeyBcCisgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxV
RSgoYyksIChzKVsoaSkrK10pOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9BUFBFTkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYxNl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgaWYoKHVpbnQz
Ml90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKGMpOyBc
CisgICAgfSBlbHNlIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKT4+MTAp
KzB4ZDdjMCk7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYykmMHgzZmYpfDB4
ZGMwMCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0ZXRF8xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldE
XzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoKHMpWyhp
KSsrXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYxNl9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBf
X049KG4pOyBcCisgICAgd2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEYxNl9GV0RfMV9VTlNB
RkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwK
KyAgICBpZihVVEZfSVNfU0VDT05EX1NVUlJPR0FURSgocylbaV0pKSB7IFwKKyAgICAgICAgLS0o
aSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfTkVY
VCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJfU0FG
RShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAg
ICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19j
MjsgXAorICAgICAgICBpZigoaSk8KGxlbmd0aCkgJiYgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUo
X19jMj0ocylbKGkpXSkpIHsgXAorICAgICAgICAgICAgKysoaSk7IFwKKyAgICAgICAgICAgIChj
KT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAvKiBzdHJp
Y3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNhdWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQg
VVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAgICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wK
KyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAg
ICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0
cmljdCkgJiYgIVVURl9JU19VTklDT0RFX0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1bm1hdGNo
ZWQgc2Vjb25kIHN1cnJvZ2F0ZSBvciBvdGhlciBub24tY2hhcmFjdGVyICovIFwKKyAgICAgICAg
KGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFUxNl9BUFBFTkQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpIHsgXAorICAgIGlmKCh1aW50
MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KShjKTsg
XAorICAgIH0gZWxzZSBpZigodWludDMyX3QpKGMpPD0weDEwZmZmZikgeyBcCisgICAgICAgIGlm
KChpKSsxPChsZW5ndGgpKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgo
KGMpPj4xMCkrMHhkN2MwKTsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgo
YykmMHgzZmYpfDB4ZGMwMCk7IFwKKyAgICAgICAgfSBlbHNlIC8qIG5vdCBlbm91Z2ggc3BhY2Ug
Ki8geyBcCisgICAgICAgICAgICAocylbKGkpKytdPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAg
ICB9IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgZXJyb3IgdmFsdWUgKi8geyBc
CisgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShz
LCBpLCBsZW5ndGgpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9G
V0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEX05fU0FGRShzLCBpLCBs
ZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1Bf
U1RBUlQocywgc3RhcnQsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFUxNl9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfUFJFVl9D
SEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVU
Rl9JU19TRUNPTkRfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlS
X1ZBTFVFKChzKVstLShpKV0sIChjKSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX1NF
Q09ORF9TVVJST0dBVEUoKHMpWy0tKGkpXSkpIHsgXAorICAgICAgICAtLShpKTsgXAorICAgIH0g
XAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OX1VO
U0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19OX1VOU0FGRShzLCBp
LCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisg
ICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAg
ICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9D
UF9MSU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFS
X0xJTUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKChz
KVsoaSktMV0pKSB7IFwKKyAgICAgICAgKysoaSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEYxNl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwK
KyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKGMp
KSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZigoaSk+KHN0YXJ0KSAm
JiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAgICAgICAg
ICAgLS0oaSk7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAo
YykpOyBcCisgICAgICAgICAgICAvKiBzdHJpY3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNh
dWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQgVVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAg
ICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNv
bmQgc3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFVVEZfSVNfVU5JQ09ERV9DSEFS
KGMpKSB7IFwKKyAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSBvciBvdGhlciBu
b24tY2hhcmFjdGVyICovIFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0g
XAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkg
VTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19O
X1NBRkUocywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04ocywgc3RhcnQsIGksIG4pCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGks
IGxlbmd0aCkgVTE2X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKQorCisvKiBGb3Jt
ZXJseSB1dGYzMi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLworCisvKgorKiBPbGQgZG9jdW1lbnRhdGlvbjoKKyoKKyogICBUaGlz
IGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIFVURi0zMiBjb2RlIHVuaXRzIGFuZCBj
b2RlIHBvaW50cy4KKyogICBTaWduYXR1cmVzIGFuZCBzZW1hbnRpY3MgYXJlIHRoZSBzYW1lIGFz
IGZvciB0aGUgc2ltaWxhcmx5IG5hbWVkIG1hY3JvcworKiAgIGluIHV0ZjE2LmguCisqICAgdXRm
MzIuaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmg8L3A+Cisq
ICAgYW5kIHNvbWUgY29tbW9uIGRlZmluaXRpb25zLgorKiAgIDxwPjxiPlVzYWdlOjwvYj4gIElD
VSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dl
ZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KKyogICAgICAgICAgICAgICAgICBDb21wb3VuZCBz
dGF0ZW1lbnRzIChjdXJseSBicmFjZXMge30pIG11c3QgYmUgdXNlZCAgZm9yIGlmLWVsc2Utd2hp
bGUuLi4KKyogICAgICAgICAgICAgICAgICBib2RpZXMgYW5kIGFsbCBtYWNybyBzdGF0ZW1lbnRz
IHNob3VsZCBiZSB0ZXJtaW5hdGVkIHdpdGggc2VtaWNvbG9uLjwvcD4KKyovCisKKy8qIGludGVy
bmFsIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpIFwKKyAgICAo
IShzdHJpY3QpID8gXAorICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiA6IFwKKyAgICAg
ICAgVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkKKworLyoKKyAqIEZvciB0aGUgc2VtYW50aWNzIG9m
IGFsbCBvZiB0aGVzZSBtYWNyb3MsIHNlZSB1dGYxNi5oLgorICogVGhlIFVURi0zMiB2ZXJzaW9u
cyBhcmUgdHJpdmlhbCBiZWNhdXNlIGFueSBjb2RlIHBvaW50IGlzCisgKiBlbmNvZGVkIHVzaW5n
IGV4YWN0bHkgb25lIGNvZGUgdW5pdC4KKyAqLworCisvKiBzaW5nbGUtY29kZSBwb2ludCBkZWZp
bml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
CisvKiBjbGFzc2VzIG9mIGNvZGUgdW5pdCB2YWx1ZXMgKi8KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TSU5H
TEUodWNoYXIpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfTEVBRCh1Y2hhcikgMAorLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19U
UkFJTCh1Y2hhcikgMAorCisvKiBudW1iZXIgb2YgY29kZSB1bml0cyBwZXIgY29kZSBwb2ludCAq
LworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjMyX05FRURfTVVMVElQTEVfVUNIQVIoYykgMAorLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9DSEFS
X0xFTkdUSChjKSAxCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjMyX01BWF9DSEFSX0xFTkdUSCAxCisKKy8qIGF2ZXJhZ2Ug
bnVtYmVyIG9mIGNvZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2ICovCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJf
QVJSQVlfU0laRShzaXplKSAoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9HRVRfQ0hBUl9VTlNBRkUocywg
aSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1NB
RkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBc
CisgICAgaWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZf
RVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30KKworLyogZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJk
IGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYzMl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkp
KytdOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAor
ICAgIChzKVsoaSkrK109KGMpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEXzFfVU5TQUZFKHMsIGkp
IHsgXAorICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEX05fVU5TQUZFKHMsIGksIG4p
IHsgXAorICAgIChpKSs9KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfU1RBUlRfVU5T
QUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0
aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKCFVVEYzMl9J
U19TQUZFKGMsIHN0cmljdCkpIHsgXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMp
IHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhp
KSsrXT0oYyk7IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgMHhmZmZkICovIHsg
XAorICAgICAgICAocylbKGkpKytdPTB4ZmZmZDsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMy
X0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSB7IFwKKyAgICArKyhpKTsgXAorfQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjMyX0ZXRF9OX1NBRkUocywgaSwgbGVuZ3RoLCBuKSB7IFwKKyAgICBpZigoKGkpKz0obikpPihs
ZW5ndGgpKSB7IFwKKyAgICAgICAgKGkpPShsZW5ndGgpOyBcCisgICAgfSBcCit9CisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMzJfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgeyBcCit9CisKKy8qIGRlZmlu
aXRpb25zIHdpdGggYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7
IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9VTlNBRkUo
cywgaSkgeyBcCisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fVU5TQUZFKHMs
IGksIG4pIHsgXAorICAgIChpKS09KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElN
SVRfVU5TQUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX1BSRVZfQ0hBUl9TQUZFKHMsIHN0
YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoIVVU
RjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgeyBc
CisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwg
bikgeyBcCisgICAgKGkpLT0obik7IFwKKyAgICBpZigoaSk8KHN0YXJ0KSkgeyBcCisgICAgICAg
IChpKT0oc3RhcnQpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElNSVRf
U0FGRShzLCBpLCBsZW5ndGgpIHsgXAorfQorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAyIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisv
KioKKyAqIEVzdGltYXRlIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBmb3IgYSBzdHJpbmcgYmFz
ZWQgb24gdGhlIG51bWJlciBvZiBVVEYtMTYgY29kZSB1bml0cy4KKyAqCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQVJS
QVlfU0laRShzaXplKSBVVEYxNl9BUlJBWV9TSVpFKHNpemUpCisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFUxNl9HRVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEZfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgICBVVEYxNl9H
RVRfQ0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBV
MTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUl9T
QUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgVVRGMTZfR0VUX0NIQVJfU0FGRShz
LCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEZfTkVYVF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgICBVVEYxNl9ORVhU
X0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2
X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX05FWFRfQ0hBUl9T
QUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSAgVVRGMTZfTkVYVF9DSEFSX1NBRkUocywgaSwg
bGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9BUFBF
TkRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgIFVURjE2X0FQUEVORF9DSEFSX1VO
U0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9BUFBFTkQg
aW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSX1NBRkUo
cywgaSwgbGVuZ3RoLCBjKSAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5n
dGgsIGMpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8x
X1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF8xX1VOU0FGRShzLCBp
KSAgICAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldEXzFfVU5TQUZFKHMsIGkpCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSAgICAgICAgICAgICAgICAg
VVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGX0ZXRF9OX1VOU0FGRShzLCBpLCBuKSAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldE
X05fVU5TQUZFKHMsIGksIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFUxNl9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF9OX1NBRkUocywg
aSwgbGVuZ3RoLCBuKSAgICAgICAgICAgICAgVVRGMTZfRldEX05fU0FGRShzLCBpLCBsZW5ndGgs
IG4pCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9T
VEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFS
VF9VTlNBRkUocywgaSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShz
LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NU
QVJULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfU1RBUlRfU0FGRShz
LCBzdGFydCwgaSkgICAgICAgICBVVEYxNl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBp
KQorCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9QUkVWX1VOU0FG
RSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9VTlNBRkUocywgaSwg
YykgICAgICAgICAgICAgICAgVVRGMTZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSAg
IFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpCisKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLXzFfVU5TQUZFKHMsIGkpICAgICAgICAgICAgICAg
ICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS18xX1NB
RkUocywgc3RhcnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0JBQ0tfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLX05f
VU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgIFVURjE2X0JBQ0tfTl9VTlNBRkUocywg
aSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0LCBpLCBu
KSAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pCisKKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVF9VTlNBRkUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9VTlNBRkUocywg
aSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwg
bGVuZ3RoKSBVVEYxNl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisK
Ky8qIERlZmluZSBkZWZhdWx0IG1hY3JvcyAoVVRGLTE2ICJzYWZlIikgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICogRG9lcyB0aGlzIGNvZGUgdW5pdCBh
bG9uZSBlbmNvZGUgYSBjb2RlIHBvaW50IChCTVAsIG5vdCBhIHN1cnJvZ2F0ZSk/CisgKiBTYW1l
IGFzIFVURjE2X0lTX1NJTkdMRS4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VV9JU19TSU5HTEUgYW5kIFUxNl9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX0lTX1NJTkdMRSh1Y2hhcikgVTE2X0lTX1NJTkdMRSh1Y2hhcikKKworLyoqCisgKiBJ
cyB0aGlzIGNvZGUgdW5pdCB0aGUgZmlyc3Qgb25lIG9mIHNldmVyYWwgKGEgbGVhZCBzdXJyb2dh
dGUpPworICogU2FtZSBhcyBVVEYxNl9JU19MRUFELgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVX0lTX0xFQUQgYW5kIFUxNl9JU19MRUFELCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9JU19MRUFEKHVjaGFyKSBVMTZfSVNfTEVBRCh1Y2hhcikKKworLyoqCisg
KiBJcyB0aGlzIGNvZGUgdW5pdCBvbmUgb2Ygc2V2ZXJhbCBidXQgbm90IHRoZSBmaXJzdCBvbmUg
KGEgdHJhaWwgc3Vycm9nYXRlKT8KKyAqIFNhbWUgYXMgVVRGMTZfSVNfVFJBSUwuCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwg
c2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfSVNfVFJBSUwodWNoYXIpIFUxNl9JU19U
UkFJTCh1Y2hhcikKKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSBwb2ludCByZXF1aXJlIG11bHRp
cGxlIGNvZGUgdW5pdHMgKGlzIGl0IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50KT8KKyAqIFNh
bWUgYXMgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hBUi4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFVzZSBVMTZfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHhmZmZmKSBpbnN0ZWFkLgor
ICovCisjZGVmaW5lIFVURl9ORUVEX01VTFRJUExFX1VDSEFSKGMpIFVURjE2X05FRURfTVVMVElQ
TEVfVUNIQVIoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIHRvIGVu
Y29kZSB0aGlzIGNvZGUgcG9pbnQgKDEgb3IgMik/CisgKiBTYW1lIGFzIFVURjE2X0NIQVJfTEVO
R1RILgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9DSEFSX0xFTkdUSChjKSBVMTZfTEVOR1RIKGMp
CisKKy8qKgorICogSG93IG1hbnkgY29kZSB1bml0cyBhcmUgdXNlZCBhdCBtb3N0IGZvciBhbnkg
VW5pY29kZSBjb2RlIHBvaW50ICgyKT8KKyAqIFNhbWUgYXMgVVRGMTZfTUFYX0NIQVJfTEVOR1RI
LgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTUFYX0xFTkdUSCwgc2Vl
IHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTUFYX0NIQVJfTEVOR1RIIFUxNl9NQVhfTEVO
R1RICisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBjb250YWlucyB0aGUg
Y29kZSB1bml0IGkuCisgKiBpIGNvdWxkIHBvaW50IHRvIHRoZSBsZWFkIG9yIHRoZSB0cmFpbCBz
dXJyb2dhdGUgZm9yIHRoZSBjb2RlIHBvaW50LgorICogaSBpcyBub3QgbW9kaWZpZWQuCisgKiBT
YW1lIGFzIFVURjE2X0dFVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLwor
I2RlZmluZSBVVEZfR0VUX0NIQVIocywgc3RhcnQsIGksIGxlbmd0aCwgYykgVTE2X0dFVChzLCBz
dGFydCwgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRo
YXQgc3RhcnRzIGF0IGNvZGUgdW5pdCBpCisgKiBhbmQgYWR2YW5jZSBpIHRvIGJleW9uZCB0aGUg
Y29kZSB1bml0cyBvZiB0aGlzIGNvZGUgcG9pbnQgKHBvc3QtaW5jcmVtZW50KS4KKyAqIGkgbXVz
dCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIGEgY29kZSBwb2ludC4KKyAqIE90aGVy
d2lzZSBjIGlzIHNldCB0byB0aGUgdHJhaWwgdW5pdCAoc3Vycm9nYXRlKSBpdHNlbGYuCisgKiBT
YW1lIGFzIFVURjE2X05FWFRfQ0hBUi4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8
aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVY
VCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSKHMsIGksIGxlbmd0
aCwgYykgVTE2X05FWFQocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFwcGVuZCB0aGUgY29k
ZSB1bml0cyBvZiBjb2RlIHBvaW50IGMgdG8gdGhlIHN0cmluZyBhdCBpbmRleCBpCisgKiBhbmQg
YWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgbmV3IGNvZGUgdW5pdHMgKHBvc3QtaW5jcmVtZW50KS4K
KyAqIFRoZSBjb2RlIHVuaXRzIGJlZ2lubmluZyBhdCBpbmRleCBpIHdpbGwgYmUgb3ZlcndyaXR0
ZW4uCisgKiBTYW1lIGFzIFVURjE2X0FQUEVORF9DSEFSLgorICogXHByZSAwPD1jPD0weDEwZmZm
ZgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxpPD1sZW5ndGgKKyAqCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9BUFBFTkRfQ0hBUihzLCBpLCBsZW5ndGgsIGMpIFVURjE2X0FQUEVO
RF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFkdmFuY2UgaSB0byBiZXlv
bmQgdGhlIGNvZGUgdW5pdHMgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBiZWdpbnMgYXQgaS4KKyAq
IEkuZS4sIGFkdmFuY2UgaSBieSBvbmUgY29kZSBwb2ludC4KKyAqIFNhbWUgYXMgVVRGMTZfRldE
XzEuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9GV0RfMShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShzLCBpLCBsZW5n
dGgpCisKKy8qKgorICogQWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1bml0cyBvZiB0aGUg
biBjb2RlIHBvaW50cyB3aGVyZSB0aGUgZmlyc3Qgb25lIGJlZ2lucyBhdCBpLgorICogSS5lLiwg
YWR2YW5jZSBpIGJ5IG4gY29kZSBwb2ludHMuCisgKiBTYW1lIGFzIFVUMTZfRldEX04uCisgKiBc
cHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4p
CisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBpIGFuZCBhZGp1c3QgaXQg
c28gdGhhdCBpdCBwb2ludHMgdG8gdGhlIGJlZ2lubmluZworICogb2YgYSBjb2RlIHBvaW50Lgor
ICogVGhlIGlucHV0IGluZGV4IHBvaW50cyB0byBhbnkgY29kZSB1bml0IG9mIGEgY29kZSBwb2lu
dCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgdG8KKyAqIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhl
IHNhbWUgY29kZSBwb2ludC4gaSBpcyBuZXZlciBpbmNyZW1lbnRlZC4KKyAqIEluIG90aGVyIHdv
cmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHByZWNlZGVkIGJ5
IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgZGVjcmVtZW50ZWQuIE90
aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0YXJ0
IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9ORVhUX0NIQVIoKSBmcm9tIGEgcmFuZG9tIGluZGV4Lgor
ICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9TVEFSVC4KKyAqIFxwcmUgc3RhcnQ8PWk8bGVuZ3Ro
CisgKiBccG9zdCBzdGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUg
VVRGX1NFVF9DSEFSX1NUQVJUKHMsIHN0YXJ0LCBpKSBVMTZfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0
LCBpKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRoYXQgaGFzIGNvZGUgdW5p
dHMgYmVmb3JlIGkKKyAqIGFuZCBtb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGlzIGNvZGUg
cG9pbnQgKHByZS1pbmNyZW1lbnQpLgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2Rl
IHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBh
bGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfUFJFVl9DSEFSLgorICogXHByZSBzdGFydDxpPD1s
ZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X1BSRVYsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X1BSRVZfQ0hBUihzLCBzdGFydCwgaSwgYykgVTE2X1BSRVYocywgc3RhcnQsIGksIGMpCisKKy8q
KgorICogTW92ZSBpIGJhY2t3YXJkICh0b3dhcmRzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmlu
ZykKKyAqIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMg
Y29kZSB1bml0cyBiZWZvcmUgaS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBvbmUgY29k
ZSBwb2ludC4KKyAqIGkgbXVzdCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IGFmdGVyIHRo
ZSBsYXN0IHVuaXQgb2YgYSBjb2RlIHBvaW50IChpPT1sZW5ndGggaXMgYWxsb3dlZCkuCisgKiBT
YW1lIGFzIFVURjE2X0JBQ0tfMS4KKyAqIFxwcmUgc3RhcnQ8aTw9bGVuZ3RoCisgKiBccG9zdCBz
dGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9CQUNLXzEsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMShzLCBzdGFy
dCwgaSkgVTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqCisgKiBNb3ZlIGkgYmFja3dhcmQg
KHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNv
ZGUgdW5pdCBvZiB0aGUgbiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgY29kZSB1bml0cyBiZWZvcmUg
aS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBuIGNvZGUgcG9pbnRzLgorICogaSBtdXN0
IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNv
ZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfQkFDS19O
LgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoK
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9v
bGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKSBVMTZfQkFDS19O
KHMsIHN0YXJ0LCBpLCBuKQorCisvKioKKyAqIFRha2UgdGhlIHJhbmRvbS1hY2Nlc3MgaW5kZXgg
aSBhbmQgYWRqdXN0IGl0IHNvIHRoYXQgaXQgcG9pbnRzIGJleW9uZAorICogYSBjb2RlIHBvaW50
LiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIGJleW9uZCBhbnkgY29kZSB1bml0CisgKiBvZiBhIGNv
ZGUgcG9pbnQgYW5kIGlzIG1vdmVkIHRvIHBvaW50IGJleW9uZCB0aGUgbGFzdCBjb2RlIHVuaXQg
b2YgdGhlIHNhbWUKKyAqIGNvZGUgcG9pbnQuIGkgaXMgbmV2ZXIgZGVjcmVtZW50ZWQuCisgKiBJ
biBvdGhlciB3b3JkcywgaWYgaSBwb2ludHMgdG8gYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBpcyBw
cmVjZWRlZCBieSBhIG1hdGNoaW5nCisgKiBsZWFkIHN1cnJvZ2F0ZSwgdGhlbiBpIGlzIGluY3Jl
bWVudGVkLiBPdGhlcndpc2UgaXQgaXMgbm90IG1vZGlmaWVkLgorICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBzdGFydCBhbiBpdGVyYXRpb24gd2l0aCBVVEZfUFJFVl9DSEFSKCkgZnJvbSBhIHJhbmRv
bSBpbmRleC4KKyAqIFNhbWUgYXMgVVRGMTZfU0VUX0NIQVJfTElNSVQuCisgKiBccHJlIHN0YXJ0
PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSBVMTZfU0VU
X0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVD
QVRFRF9BUEkgKi8KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2lj
dS91bmljb2RlL3V0eXBlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXR5cGVz
LmgKaW5kZXggMDBiZjE0Y2U4ZTZlNWQ2ZWM4ZWQ4N2Q4ZTk1NjE3MGNhNTc3ODdiMi4uOGY5MjRj
OWQxNDI0MTc5Mjg0NjRiNzk0NDc5NjEyMTc2MDEwMjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvaWN1L3VuaWNvZGUvdXR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1
L3VuaWNvZGUvdXR5cGVzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAg
IENvcHlyaWdodCAoQykgMTk5Ni0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICoKQEAgLTM0LDkgKzM0LDEzIEBACiAKIAogI2luY2x1ZGUgInVuaWNv
ZGUvdW1hY2hpbmUuaCIKLSNpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2luY2x1ZGUgInVuaWNv
ZGUvdXZlcnNpb24uaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vjb25maWcuaCIKKyNpbmNsdWRlIDxm
bG9hdC5oPgorCisjaWYgIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTCisjICAgaW5j
bHVkZSAidW5pY29kZS91dGYuaCIKKyNlbmRpZgogCiAvKiEKICAqIFxmaWxlCkBAIC01Myw5ICs1
Nyw5IEBACiAgKiBcZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJCiAgKiBAaW50ZXJuYWwKICAqLwot
I2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAjICAgaWZuZGVmIFVfU0hP
V19DUExVU1BMVVNfQVBJCi0jICAgICAgIGRlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisj
ICAgICAgIGRlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAwCiAjICAgZW5kaWYKICNlbHNlCiAj
ICAgdW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKQEAgLTY3LDYgKzcxLDEyIEBACiAvKioKICAq
IFxkZWYgVV9ISURFX0RSQUZUX0FQSQogICogRGVmaW5lIHRoaXMgdG8gMSB0byByZXF1ZXN0IHRo
YXQgZHJhZnQgQVBJIGJlICJoaWRkZW4iCisgKiBAaW50ZXJuYWwKKyAqLworLyoqCisgKiBcZGVm
IFVfSElERV9JTlRFUk5BTF9BUEkKKyAqIERlZmluZSB0aGlzIHRvIDEgdG8gcmVxdWVzdCB0aGF0
IGludGVybmFsIEFQSSBiZSAiaGlkZGVuIgorICogQGludGVybmFsCiAgKi8KICNpZiAhVV9ERUZB
VUxUX1NIT1dfRFJBRlQgJiYgIWRlZmluZWQoVV9TSE9XX0RSQUZUX0FQSSkKICNkZWZpbmUgVV9I
SURFX0RSQUZUX0FQSSAxCkBAIC03NSwxMTYgKzg1LDggQEAKICNkZWZpbmUgVV9ISURFX0lOVEVS
TkFMX0FQSSAxCiAjZW5kaWYKIAotI2lmZGVmIFVfSElERV9EUkFGVF9BUEkKLSNpbmNsdWRlICJ1
bmljb2RlL3VkcmFmdC5oIgotI2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkK
LSNpbmNsdWRlICJ1bmljb2RlL3VkZXByY3RkLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9E
RVBSRUNBVEVEX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdW9ic2xldGUuaCIKLSNlbmRpZgotCi0j
aWZkZWYgVV9ISURFX0lOVEVSTkFMX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdWludHJuYWwuaCIK
LSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX1NZU1RFTV9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3Vz
eXN0ZW0uaCIKLSNlbmRpZgotCiAvKiogQH0gKi8KIAotCi0vKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
Ci0vKiBjaGFyIENoYXJhY3RlciBzZXQgZmFtaWx5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KLS8qKgot
ICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhlIHBsYXRm
b3JtIGlzIGFuIEFTQ0lJIGJhc2VkIHBsYXRmb3JtLgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8K
LSNkZWZpbmUgVV9BU0NJSV9GQU1JTFkgMAotCi0vKioKLSAqIFVfQ0hBUlNFVF9GQU1JTFkgaXMg
ZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBFQkNESUMgYmFzZWQg
cGxhdGZvcm0uCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2RlZmluZSBVX0VCQ0RJQ19GQU1J
TFkgMQotCi0vKioKLSAqIFxkZWYgVV9DSEFSU0VUX0ZBTUlMWQotICoKLSAqIDxwPlRoZXNlIGRl
ZmluaXRpb25zIGFsbG93IHRvIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHRleHQKLSAqIGluIHRo
ZSBjaGFyIGRhdGEgdHlwZSBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybSBhbmQgdGhlIGNvbXBp
bGVyLgotICogSXQgaXMgZW5vdWdoIHRvIGRldGVybWluZSB0aGUgY29kZSBwb2ludCB2YWx1ZXMg
b2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiwKLSAqIHdoaWNoIGFyZSB0aGUgb25lcyBzaGFyZWQg
YnkgYWxsIGVuY29kaW5ncyB0aGF0IGFyZSBpbiB1c2UKLSAqIG9uIGEgZ2l2ZW4gcGxhdGZvcm0u
PC9wPgotICoKLSAqIDxwPlRob3NlICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgc2hvdWxkIGJlIGFs
bCB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UKLSAqIGxhdGluIGxldHRlcnMsIHRoZSBkaWdp
dHMsIHRoZSBzcGFjZSwgYW5kICJiYXNpYyBwdW5jdHVhdGlvbiIuCi0gKiBBbHNvLCAnXFxuJywg
J1xccicsICdcXHQnIHNob3VsZCBiZSBhdmFpbGFibGUuPC9wPgotICoKLSAqIDxwPlRoZSBsaXN0
IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgaXM6PGJyPgotICogXGNvZGUKLSAqICAgIEEtWiAg
YS16ICAwLTkgIFNQQUNFICAiICAlICAmYW1wOyAgJyAgKCAgKSAgKiAgKyAgLCAgLSAgLiAgLyAg
OiAgOyAgPCAgPSAgPiAgPyAgXwotICogXGVuZGNvZGUKLSAqIDxicj4KLSAqICg1MiBsZXR0ZXJz
ICsgMTAgbnVtYmVycyArIDIwIHB1bmMvc3ltL3NwYWNlID0gODIgdG90YWwpPC9wPgotICoKLSAq
IDxwPlRoaXMgbWF0Y2hlcyB0aGUgSUJNIFN5bnRhY3RpYyBDaGFyYWN0ZXIgU2V0IChDUyA2NDAp
LjwvcD4KLSAqCi0gKiA8cD5JbiBvdGhlciB3b3JkcywgYWxsIHRoZSBncmFwaGljIGNoYXJhY3Rl
cnMgaW4gNy1iaXQgQVNDSUkgc2hvdWxkCi0gKiBiZSBzYWZlbHkgYWNjZXNzaWJsZSBleGNlcHQg
dGhlIGZvbGxvd2luZzo8L3A+Ci0gKgotICogXGNvZGUKLSAqICAgICdcJyA8YmFja3NsYXNoPgot
ICogICAgJ1snIDxsZWZ0IGJyYWNrZXQ+Ci0gKiAgICAnXScgPHJpZ2h0IGJyYWNrZXQ+Ci0gKiAg
ICAneycgPGxlZnQgYnJhY2U+Ci0gKiAgICAnfScgPHJpZ2h0IGJyYWNlPgotICogICAgJ14nIDxj
aXJjdW1mbGV4PgotICogICAgJ34nIDx0aWxkZT4KLSAqICAgICchJyA8ZXhjbGFtYXRpb24gbWFy
az4KLSAqICAgICcjJyA8bnVtYmVyIHNpZ24+Ci0gKiAgICAnfCcgPHZlcnRpY2FsIGxpbmU+Ci0g
KiAgICAnJCcgPGRvbGxhciBzaWduPgotICogICAgJ0AnIDxjb21tZXJjaWFsIGF0PgotICogICAg
J2AnIDxncmF2ZSBhY2NlbnQ+Ci0gKiBcZW5kY29kZQotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8K
LQotI2lmbmRlZiBVX0NIQVJTRVRfRkFNSUxZCi0jICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkg
MAotI2VuZGlmCi0KLS8qKgotICogXGRlZiBVX0NIQVJTRVRfSVNfVVRGOAotICoKLSAqIEhhcmRj
b2RlIHRoZSBkZWZhdWx0IGNoYXJzZXQgdG8gVVRGLTguCi0gKgotICogSWYgdGhpcyBpcyBzZXQg
dG8gMSwgdGhlbgotICogLSBJQ1Ugd2lsbCBhc3N1bWUgdGhhdCBhbGwgbm9uLWludmFyaWFudCBj
aGFyKiwgU3RyaW5nUGllY2UsIHN0ZDo6c3RyaW5nIGV0Yy4KLSAqICAgY29udGFpbiBVVEYtOCB0
ZXh0LCByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHN5c3RlbSBBUEkgdXNlcwotICogLSBzb21lIElD
VSBjb2RlIHdpbGwgdXNlIGZhc3QgZnVuY3Rpb25zIGxpa2UgdV9zdHJGcm9tVVRGOCgpCi0gKiAg
IHJhdGhlciB0aGFuIHRoZSBtb3JlIGdlbmVyYWwgYW5kIG1vcmUgaGVhdnktd2VpZ2h0IGNvbnZl
cnNpb24gQVBJICh1Y252LmgpCi0gKiAtIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBhbHdheXMgcmV0
dXJucyAiVVRGLTgiCi0gKiAtIHVjbnZfc2V0RGVmYXVsdE5hbWUoKSBpcyBkaXNhYmxlZCBhbmQg
d2lsbCBub3QgY2hhbmdlIHRoZSBkZWZhdWx0IGNoYXJzZXQKLSAqIC0gc3RhdGljIGJ1aWxkcyBv
ZiBJQ1UgYXJlIHNtYWxsZXIKLSAqIC0gbW9yZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSB3
aXRoIHRoZSBVQ09ORklHX05PX0NPTlZFUlNJT04gYnVpbGQtdGltZQotICogICBjb25maWd1cmF0
aW9uIG9wdGlvbiAoc2VlIHVuaWNvZGUvdWNvbmZpZy5oKQotICogLSB0aGUgVUNPTkZJR19OT19D
T05WRVJTSU9OIGJ1aWxkIG9wdGlvbiBpbiB1Y29uZmlnLmggaXMgbW9yZSB1c2FibGUKLSAqCi0g
KiBAc3RhYmxlIElDVSA0LjIKLSAqIEBzZWUgVUNPTkZJR19OT19DT05WRVJTSU9OCi0gKi8KLSNp
Zm5kZWYgVV9DSEFSU0VUX0lTX1VURjgKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0lTX1VURjggMAot
I2VuZGlmCi0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIElDVURBVEEgbmFtaW5nIHNjaGVt
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
IC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTIzMiw5ICsxMzQsMTEgQEAKICAqIElDVSAxLjgu
eCBvbiBFQkNESUMsIGV0Yy4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwotI2RlZmluZSBVX0lD
VURBVEFfTkFNRSAgICAiaWN1ZHQiIFVfSUNVX1ZFUlNJT05fU0hPUlQgVV9JQ1VEQVRBX1RZUEVf
TEVUVEVSICAvKio8IEBpbnRlcm5hbCAqLworI2RlZmluZSBVX0lDVURBVEFfTkFNRSAgICAiaWN1
ZHQiIFVfSUNVX1ZFUlNJT05fU0hPUlQgVV9JQ1VEQVRBX1RZUEVfTEVUVEVSCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKICNkZWZpbmUgVV9VU1JEQVRBX05BTUUgICAgInVzcmR0IiBVX0lD
VV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUiAgLyoqPCBAaW50ZXJuYWwgKi8K
LSNkZWZpbmUgVV9VU0VfVVNSREFUQSAgICAgMCAgLyoqPCBAaW50ZXJuYWwgKi8KKyNkZWZpbmUg
VV9VU0VfVVNSREFUQSAgICAgMSAgLyoqPCBAaW50ZXJuYWwgKi8KKyNlbmRpZiAgLyogVV9ISURF
X0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqICBVX0lDVV9FTlRSWV9QT0lOVCBpcyB0aGUgbmFt
ZSBvZiB0aGUgRExMIGVudHJ5IHBvaW50IHRvIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LgpAQCAtMjQ3
LDM4ICsxNTEsMjggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwjZGVm
aW5lIFVfSUNVX0VOVFJZX1BPSU5UIGljdWR0MTlfZGF0CiAgKiBAc3RhYmxlIElDVSAyLjQKICAq
LwotI2RlZmluZSBVX0lDVURBVEFfRU5UUllfUE9JTlQgIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BP
SU5UKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNLCBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSkKKyNk
ZWZpbmUgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UICBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChV
X0lDVV9WRVJTSU9OX01BSk9SX05VTSxVX0xJQl9TVUZGSVhfQ19OQU1FKQogCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKIC8qKgotICogRG8gbm90IHVzZS4KKyAqIERvIG5vdCB1c2UuIE5v
dGUgdGhhdCBpdCdzIE9LIGZvciB0aGUgMm5kIGFyZ3VtZW50IHRvIGJlIHVuZGVmaW5lZCAobGl0
ZXJhbCkuCiAgKiBAaW50ZXJuYWwKICAqLwotI2RlZmluZSBVX0RFRjJfSUNVREFUQV9FTlRSWV9Q
T0lOVChtYWpvciwgbWlub3IpIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9y
KQorI2RlZmluZSBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvcixzdWZmKSBVX0RFRl9J
Q1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLHN1ZmYpCisKIC8qKgogICogRG8gbm90IHVzZS4KICAq
IEBpbnRlcm5hbAogICovCiAjaWZuZGVmIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQKIC8qIGFm
ZmVjdGVkIGJ5IHN5bWJvbCByZW5hbWluZy4gU2VlIHBsYXRmb3JtLmggKi8KLSNkZWZpbmUgVV9E
RUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwgbWlub3IpIGljdWR0IyNtYWpvciMjbWlub3Ij
I19kYXQKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9DQUxMQ09OVgotICogU2ltaWxhciB0byBV
X0NERUNMX0JFR0lOL1VfQ0RFQ0xfRU5ELCB0aGlzIHF1YWxpZmllciBpcyBuZWNlc3NhcnkKLSAq
IGluIGNhbGxiYWNrIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjYWxs
aW5nIGNvbnZlbnRpb24KLSAqIGlzIGNvbXBhdGlibGUuCi0gKgotICogVGhpcyBpcyBvbmx5IHVz
ZWQgZm9yIG5vbi1JQ1UtQVBJIGZ1bmN0aW9ucy4KLSAqIFdoZW4gYSBmdW5jdGlvbiBpcyBhIHB1
YmxpYyBJQ1UgQVBJLAotICogeW91IG11c3QgdXNlIHRoZSBVX0NBUEkgYW5kIFVfRVhQT1JUMiBx
dWFsaWZpZXJzLgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNpZiBkZWZpbmVkKE9TMzkwKSAm
JiBkZWZpbmVkKFhQX0NQTFVTUExVUykKLSMgICAgZGVmaW5lIFVfQ0FMTENPTlYgX19jZGVjbAor
I2lmbmRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FCisjZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllf
UE9JTlQobWFqb3IsIHN1ZmYpIGljdWR0IyNtYWpvciMjX2RhdAogI2Vsc2UKLSMgICAgZGVmaW5l
IFVfQ0FMTENPTlYgVV9FWFBPUlQyCisjZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQo
bWFqb3IsIHN1ZmYpIGljdWR0IyNzdWZmICMjIG1ham9yIyNfZGF0CisjZW5kaWYKICNlbmRpZgor
I2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogXGRlZiBOVUxMCkBA
IC0yODYsNyArMTgwLDcgQEAKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiAjaWZuZGVmIE5VTEwK
LSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBOVUxMICAg
IDAKICNlbHNlCiAjZGVmaW5lIE5VTEwgICAgKCh2b2lkICopMCkKQEAgLTMxNSw1NCArMjA5LDE3
IEBAIHR5cGVkZWYgZG91YmxlIFVEYXRlOwogLyoqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRz
IHBlciBkYXkgQHN0YWJsZSBJQ1UgMi4wICovCiAjZGVmaW5lIFVfTUlMTElTX1BFUl9EQVkgICAg
ICAgKDg2NDAwMDAwKQogCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qIFVDbGFzc0lELWJh
c2VkIFJUVEkgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiAKKyAqIE1heGltdW0gVURh
dGUgdmFsdWUgCisgKiBAc3RhYmxlIElDVSA0LjggCisgKi8gCisjZGVmaW5lIFVfREFURV9NQVgg
REJMX01BWAogCiAvKioKLSAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xhc3NlcyB3
aXRob3V0IHVzaW5nIFJUVEksIHNpbmNlIFJUVEkKLSAqIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5
IGFsbCBDKysgY29tcGlsZXJzLiAgRWFjaCBjbGFzcyBoaWVyYXJjaHkgd2hpY2ggbmVlZHMKLSAq
IHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgpIG9yIG9wZXJhdG9yPT0oKSBkZWZpbmVz
IHR3byBtZXRob2RzLAotICogZGVzY3JpYmVkIGluIGRldGFpbCBiZWxvdy4gIFVDbGFzc0lEIHZh
bHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKLSAqIG9wZXJhdG9yPT0oKS4gTm90aGluZyBlbHNl
IHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KLSAqCi0gKiBccGFyCi0gKiBnZXREeW5hbWljQ2xh
c3NJRCgpIGlzIGRlY2xhcmVkIGluIHRoZSBiYXNlIGNsYXNzIG9mIHRoZSBoaWVyYXJjaHkgYXMK
LSAqIGEgcHVyZSB2aXJ0dWFsLiAgRWFjaCBjb25jcmV0ZSBzdWJjbGFzcyBpbXBsZW1lbnRzIGl0
IGluIHRoZSBzYW1lIHdheToKLSAqCi0gKiBcY29kZQotICogICAgICBjbGFzcyBCYXNlIHsKLSAq
ICAgICAgcHVibGljOgotICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xh
c3NJRCgpIGNvbnN0ID0gMDsKLSAqICAgICAgfQotICoKLSAqICAgICAgY2xhc3MgRGVyaXZlZCB7
Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAgICAgICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1p
Y0NsYXNzSUQoKSBjb25zdAotICogICAgICAgICAgICB7IHJldHVybiBEZXJpdmVkOjpnZXRTdGF0
aWNDbGFzc0lEKCk7IH0KLSAqICAgICAgfQotICogXGVuZGNvZGUKLSAqCi0gKiBFYWNoIGNvbmNy
ZXRlIGNsYXNzIGltcGxlbWVudHMgZ2V0U3RhdGljQ2xhc3NJRCgpIGFzIHdlbGwsIHdoaWNoIGFs
bG93cwotICogY2xpZW50cyB0byB0ZXN0IGZvciBhIHNwZWNpZmljIHR5cGUuCi0gKgotICogXGNv
ZGUKLSAqICAgICAgY2xhc3MgRGVyaXZlZCB7Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAgICAgICAg
IHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCgpOwotICogICAgICBw
cml2YXRlOgotICogICAgICAgICAgc3RhdGljIGNoYXIgZmdDbGFzc0lEOwotICogICAgICB9Ci0g
KgotICogICAgICAvLyBJbiBEZXJpdmVkLmNwcDoKLSAqICAgICAgVUNsYXNzSUQgRGVyaXZlZDo6
Z2V0U3RhdGljQ2xhc3NJRCgpCi0gKiAgICAgICAgeyByZXR1cm4gKFVDbGFzc0lEKSZEZXJpdmVk
OjpmZ0NsYXNzSUQ7IH0KLSAqICAgICAgY2hhciBEZXJpdmVkOjpmZ0NsYXNzSUQgPSAwOyAvLyBW
YWx1ZSBpcyBpcnJlbGV2YW50Ci0gKiBcZW5kY29kZQotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8K
LXR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CisgKiBNaW5pbXVtIFVEYXRlIHZhbHVlIAorICogQHN0
YWJsZSBJQ1UgNC44IAorICovIAorI2RlZmluZSBVX0RBVEVfTUlOIC1VX0RBVEVfTUFYCiAKIC8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNoYXJlZCBsaWJyYXJ5L0RMTCBpbXBvcnQtZXhwb3J0
IEFQSSBjb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTM3Myw3ICsy
MzAsNyBAQCB0eXBlZGVmIHZvaWQqIFVDbGFzc0lEOwogICogSUNVIGlzIHNlcGFyYXRlZCBpbnRv
IHRocmVlIGxpYnJhcmllcy4KICAqLwogCi0vKgorLyoqCiAgKiBcZGVmIFVfQ09NQklORURfSU1Q
TEVNRU5UQVRJT04KICAqIFNldCB0byBleHBvcnQgbGlicmFyeSBzeW1ib2xzIGZyb20gaW5zaWRl
IHRoZSBJQ1UgbGlicmFyeQogICogd2hlbiBhbGwgb2YgSUNVIGlzIGluIGEgc2luZ2xlIGxpYnJh
cnkuCkBAIC01NDAsOSArMzk3LDkgQEAgdHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKICAqCiAgKiBO
b3RlOiBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IGRvbmUgb24gV2luZG93cyBiZWNhdXNlCiAgKiBz
b21lIExpbnV4L1VuaXggY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBkZWZpbmluZyBnbG9i
YWwgbmV3L2RlbGV0ZS4KLSAqIE9uIFdpbmRvd3MsIFVfV0lORE9XUyBpcyBkZWZpbmVkLCBhbmQg
aXQgaXMgX01TQ19WRVI+PTEyMDAgZm9yIE1TVkMgNi4wIGFuZCBoaWdoZXIuCisgKiBPbiBXaW5k
b3dzLCBpdCBpcyBfTVNDX1ZFUj49MTIwMCBmb3IgTVNWQyA2LjAgYW5kIGhpZ2hlci4KICAqLwot
I2lmIGRlZmluZWQoWFBfQ1BMVVNQTFVTKSAmJiBkZWZpbmVkKFdJTjMyKSAmJiBVX0RFQlVHICYm
IFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gJiYgKF9NU0NfVkVSPj0xMjAwKSAmJiAhZGVmaW5l
ZChVX1NUQVRJQ19JTVBMRU1FTlRBVElPTikgJiYgKGRlZmluZWQoVV9DT01NT05fSU1QTEVNRU5U
QVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfSU9f
SU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5UQVRJT04pIHx8IGRl
ZmluZWQoVV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikpCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1
cykgJiYgVV9ERUJVRyAmJiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OICYmIChfTVNDX1ZFUj49
MTIwMCkgJiYgIWRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5UQVRJT04pICYmIChkZWZpbmVkKFVf
Q09NTU9OX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikg
fHwgZGVmaW5lZChVX0lPX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VUX0lNUExF
TUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJT04pKQogCiAjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgpAQCAtNzQzLDYgKzYwMCw3IEBAIHR5cGVkZWYg
ZW51bSBVRXJyb3JDb2RlIHsKICAgICBVX1VOREVGSU5FRF9LRVlXT1JELCAgICAgICAgICAgICAg
LyoqPCBVbmRlZmluZWQgUGx1cmFsIGtleXdvcmQgKi8KICAgICBVX0RFRkFVTFRfS0VZV09SRF9N
SVNTSU5HLCAgICAgICAgLyoqPCBNaXNzaW5nIERFRkFVTFQgcnVsZSBpbiBwbHVyYWwgcnVsZXMg
Ki8KICAgICBVX0RFQ0lNQUxfTlVNQkVSX1NZTlRBWF9FUlJPUiwgICAgLyoqPCBEZWNpbWFsIG51
bWJlciBzeW50YXggZXJyb3IgKi8KKyAgICBVX0ZPUk1BVF9JTkVYQUNUX0VSUk9SLCAgICAgICAg
ICAgLyoqPCBDYW5ub3QgZm9ybWF0IGEgbnVtYmVyIGV4YWN0bHkgYW5kIHJvdW5kaW5nIG1vZGUg
aXMgUk9VTkRfVU5ORUNFU1NBUlkgQHN0YWJsZSBJQ1UgNC44ICovCiAgICAgVV9GTVRfUEFSU0Vf
RVJST1JfTElNSVQsICAgICAgICAgIC8qKjwgVGhlIGxpbWl0IGZvciBmb3JtYXQgbGlicmFyeSBl
cnJvcnMgKi8KIAogICAgIC8qCkBAIC04MjYsNyArNjg0LDcgQEAgdHlwZWRlZiBlbnVtIFVFcnJv
ckNvZGUgewogLyogVXNlIHRoZSBmb2xsb3dpbmcgdG8gZGV0ZXJtaW5lIGlmIGFuIFVFcnJvckNv
ZGUgcmVwcmVzZW50cyAqLwogLyogb3BlcmF0aW9uYWwgc3VjY2VzcyBvciBmYWlsdXJlLiAqLwog
Ci0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICAgICAvKioKICAgICAg
KiBEb2VzIHRoZSBlcnJvciBjb2RlIGluZGljYXRlIHN1Y2Nlc3M/CiAgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dmVybnVt
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dmVybnVtLmgKaW5kZXggNzIyMTYx
MjkyMDkyZGE2MDYyODljMDZlYzIzNjEzMDg1MzkxYzQxOC4uYmQwYjBjOTg5OGEyMzU3OWU4ZmI4
MTE5ZjZjZDE2MzlhYzJhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3Vu
aWNvZGUvdXZlcm51bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V2ZXJu
dW0uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29w
eXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgogKgpAQCAtMTIsNTcgKzEyLDY2IEBACiAqICAgQ3JlYXRlZCBi
eTogVmxhZGltaXIgV2VpbnN0ZWluCiAqICAgVXBkYXRlZCBieTogU3RldmVuIFIuIExvb21pcwog
KgotKiAgR2V0cyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4KLSoKLSog
SU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhpbmdzIG5l
ZWQgdG8gYmUgZG9uZToKLSogc291cmNlL2NvbW1vbi91bmljb2RlL3V2ZXJudW0uaCAtIHRoaXMg
ZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKLSogICAgICAgIHBhdGNobGV2ZWwsIHN1ZmZpeCwg
dmVyc2lvbiwgc2hvcnQgdmVyc2lvbiBjb25zdGFudHMsIG5hbWVzcGFjZSwKLSogICAgICAgICAg
ICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0Ci0qCi0qIFRoZSBmb2xsb3dp
bmcgZmlsZXMgbmVlZCB0byBiZSB1cGRhdGVkIGFzIHdlbGwsIHdoaWNoIGNhbiBiZSBkb25lCi0q
ICBieSBydW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRvd3MtbWFr
ZWZpbGVzJyBpbiBpY3Uvc291cmNlLgotKgotKgotKiBzb3VyY2UvY29tbW9uL2NvbW1vbi52Y3By
b2ogLSB1cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbwotKiAgICAg
ICAgICAgICAgICAgICB0aGF0IGl0IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmlu
YXRpb24KLSogc291cmNlL2kxOG4vaTE4bi52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9u
LnZjcHJvagotKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUg
Y29tbW9uLnZjcHJvagotKiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQot
KiBzb3VyY2Uvc3R1YmRhdGEvc3R1YmRhdGEudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1v
bi52Y3Byb2oKLSogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24u
dmNwcm9qCi0qIHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFN
RSBzbyB0aGF0IGl0IGNvbnRhaW5zCi0qICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBu
ZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24gYW5kIHRoZSBVbmljb2RlIHZlcnNpb24uCiAqLwog
CisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IGRlZmluaXRpb25zIG9mIElDVSB2ZXJz
aW9uIG51bWJlcnMKKyAqCisgKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgYnkgdXZlcnNpb24uaCBh
bmQgb3RoZXIgZmlsZXMuIFRoaXMgZmlsZSBjb250YWlucyBvbmx5CisgKiBtYWNyb3MgYW5kIGRl
ZmluaXRpb25zLiBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVycyBhcmUgZGVmaW5lZCBoZXJlLgor
ICovCisKKyAvKgorICAqIElNUE9SVEFOVDogV2hlbiB1cGRhdGluZyB2ZXJzaW9uLCB0aGUgZm9s
bG93aW5nIHRoaW5ncyBuZWVkIHRvIGJlIGRvbmU6CisgICogc291cmNlL2NvbW1vbi91bmljb2Rl
L3V2ZXJudW0uaCAtIHRoaXMgZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKKyAgKiAgICAgICAg
cGF0Y2hsZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50cywgbmFt
ZXNwYWNlLAorICAqICAgICAgICAgICAgICAgICAgICByZW5hbWluZyBtYWNybywgYW5kIGNvcHly
aWdodAorICAqCisgICogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMg
d2VsbCwgd2hpY2ggY2FuIGJlIGRvbmUKKyAgKiAgYnkgcnVubmluZyB0aGUgVU5JWCBtYWtlZmls
ZSB0YXJnZXQgJ3VwZGF0ZS13aW5kb3dzLW1ha2VmaWxlcycgaW4gaWN1L3NvdXJjZS4KKyAgKgor
ICAqCisgICogc291cmNlL2NvbW1vbi9jb21tb24udmNwcm9qIC0gdXBkYXRlICdPdXRwdXQgZmls
ZSBuYW1lJyBvbiB0aGUgbGluayB0YWIgc28KKyAgKiAgICAgICAgICAgICAgICAgICB0aGF0IGl0
IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24KKyAgKiBzb3VyY2UvaTE4
bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNl
L2xheW91dC9sYXlvdXQudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAg
KiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQorICAqIHNvdXJjZS9zdHVi
ZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAq
IHNvdXJjZS9pby9pby52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAq
IHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFNRSBzbyB0aGF0
IGl0IGNvbnRhaW5zCisgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBtYWpv
ci9taW5vciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KKyAgKi8KKwogI2lm
bmRlZiBVVkVSTlVNX0gKICNkZWZpbmUgVVZFUk5VTV9ICiAKLS8qKiBUaGUgc3RhbmRhcmQgY29w
eXJpZ2h0IG5vdGljZSB0aGF0IGdldHMgY29tcGlsZWQgaW50byBlYWNoIGxpYnJhcnkuIAorLyoq
IFRoZSBzdGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVh
Y2ggbGlicmFyeS4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50
IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFVfQ09Q
WVJJR0hUX1NUUklORyBcCi0gICIgQ29weXJpZ2h0IChDKSAyMDExLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuICIKKyAgIiBDb3B5cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIgogCi0v
KiogVGhlIGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisvKiogVGhl
IGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVl
IHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFi
bGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNIDQKKyNkZWZp
bmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNTIKIAotLyoqIFRoZSBjdXJyZW50IElDVSBtaW5v
ciB2ZXJzaW9uIGFzIGFuIGludGVnZXIuIAorLyoqIFRoZSBjdXJyZW50IElDVSBtaW5vciB2ZXJz
aW9uIGFzIGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vi
c2VxdWVudCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmlu
ZSBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA2CisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlOT1Jf
TlVNIDEKIAotLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4gIAorLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVh
c2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJ
T05fUEFUQ0hMRVZFTF9OVU0gMQorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVN
IDAKIAotLyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFuIGludGVn
ZXIuICAKKy8qKiBUaGUgY3VycmVudCBJQ1UgYnVpbGQgbGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRl
Z2VyLgogICogIFRoaXMgdmFsdWUgaXMgZm9yIHVzZSBieSBJQ1UgY2xpZW50cy4gSXQgZGVmYXVs
dHMgdG8gMC4KICAqICBAc3RhYmxlIElDVSA0LjAKICAqLwpAQCAtNzAsMzkgKzc5LDU5IEBACiAj
ZGVmaW5lIFVfSUNVX1ZFUlNJT05fQlVJTERMRVZFTF9OVU0gMAogI2VuZGlmCiAKLS8qKiBHbHVl
ZCB2ZXJzaW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMgCisvKiogR2x1ZWQgdmVyc2lvbiBzdWZmaXgg
Zm9yIHJlbmFtZXJzCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVu
dCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmluZSBVX0lD
VV9WRVJTSU9OX1NVRkZJWCBfNDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TVUZGSVggXzUyCiAK
LS8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMgCisvKioKKyAq
IFxkZWYgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKKyAqIEBpbnRlcm5hbAorICovCisv
KioKKyAqIFxkZWYgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisg
Ki8KKy8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMKICAqICBU
aGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVS4K
ICAqICBJZiBhIGN1c3RvbSBzdWZmaXggKHN1Y2ggYXMgbWF0Y2hpbmcgbGlicmFyeSBzdWZmaXhl
cykgaXMgZGVzaXJlZCwgdGhpcyBjYW4gYmUgbW9kaWZpZWQuCiAgKiAgTm90ZSB0aGF0IGlmIHBy
ZXNlbnQsIHBsYXRmb3JtLmggbWF5IGNvbnRhaW4gYW4gZWFybGllciBkZWZpbml0aW9uIG9mIHRo
aXMgbWFjcm8uCisgKiAgXGRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICAqICBAc3RhYmxl
IElDVSA0LjIKICAqLworCiAjaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQotI2RlZmlu
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfNDYKKyNpZmRlZiBVX0hBVkVf
TElCX1NVRkZJWAorI2RlZmluZSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSx6KSB4
ICMjIHkgIyMgIHoKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHop
IFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopCisjZGVmaW5lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LFVfSUNV
X1ZFUlNJT05fU1VGRklYLFVfTElCX1NVRkZJWF9DX05BTUUpCisjZWxzZQorI2RlZmluZSBVX0RF
Rl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkgeCAjIyB5CisjZGVmaW5lIFVfREVGMl9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHgseSkgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkp
CisjZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh4LFVfSUNVX1ZFUlNJT05fU1VGRklYKQorI2VuZGlmCiAjZW5kaWYKIAog
LyoqIFRoZSBjdXJyZW50IElDVSBsaWJyYXJ5IHZlcnNpb24gYXMgYSBkb3R0ZWQtZGVjaW1hbCBz
dHJpbmcuIFRoZSBwYXRjaGxldmVsCi0gKiAgb25seSBhcHBlYXJzIGluIHRoaXMgc3RyaW5nIGlm
IGl0IG5vbi16ZXJvLiAKKyAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYgaXQgbm9u
LXplcm8uCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVudCByZWxl
YXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjQKICAqLwotI2RlZmluZSBVX0lDVV9WRVJT
SU9OICI0LjYuMSIKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTiAiNTIuMSIKIAotLyoqIFRoZSBjdXJy
ZW50IElDVSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBk
b3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLiAKKy8qKiBUaGUgY3VycmVudCBJQ1UgbGli
cmFyeSBtYWpvci9taW5vciB2ZXJzaW9uIGFzIGEgc3RyaW5nIHdpdGhvdXQgZG90cywgZm9yIGxp
YnJhcnkgbmFtZSBzdWZmaXhlcy4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBz
dWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVm
aW5lIFVfSUNVX1ZFUlNJT05fU0hPUlQgIjQ2IgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NIT1JU
ICI1MiIKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKiogRGF0YSB2ZXJzaW9uIGlu
IElDVTRDLgogICogQGludGVybmFsIElDVSA0LjQgSW50ZXJuYWwgVXNlIE9ubHkKICAqKi8KLSNk
ZWZpbmUgVV9JQ1VfREFUQV9WRVJTSU9OICI0LjYiCisjZGVmaW5lIFVfSUNVX0RBVEFfVkVSU0lP
TiAiNTIuMSIKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQogICogSUNVIGNvbGxhdGlvbiBmcmFtZXdvcmsgdmVyc2lvbiBpbmZvcm1hdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXZlcnNpb24uaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKaW5kZXggZTU0Y2Q1NWE2
N2NiYzRjYzY5MmU0ZTM2OTIxZGEyYjM2YWQxNWE1Zi4uNzRlMzA5MTA1NTE0YWRmMzgyMzdhM2I3
YTQwOTgwMWE4MTVhNWQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNv
ZGUvdXZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dmVyc2lv
bi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5
cmlnaHQgKEMpIDIwMDAtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMjAwMC0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAqCkBAIC02Nyw3ICs2Nyw4IEBAIHR5cGVkZWYgdWludDhfdCBV
VmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwogICogV2hlbiBjb21waWxpbmcgZm9y
IEMrKywgaXQgYmVnaW5zIGFuIGV4dGVybiAiQysrIiBsaW5rYWdlIGJsb2NrICh0byBwcm90ZWN0
CiAgKiBhZ2FpbnN0IGNhc2VzIGluIHdoaWNoIGFuIGV4dGVybmFsIGNsaWVudCBpbmNsdWRlcyBJ
Q1UgaGVhZGVyIGZpbGVzIGluc2lkZQogICogYW4gZXh0ZXJuICJDIiBsaW5rYWdlIGJsb2NrKS4K
LSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgbmFtZXNwYWNlcywgaXQgYWxzbyBiZWdp
bnMgYSBuYW1lc3BhY2UgYmxvY2suCisgKgorICogSXQgYWxzbyBiZWdpbnMgYSB2ZXJzaW9uZWQt
SUNVLW5hbWVzcGFjZSBibG9jay4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTc3LDgg
Kzc4LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdU
SF07CiAgKiBXaGVuIG5vdCBjb21waWxpbmcgZm9yIEMrKywgaXQgZG9lcyBub3RoaW5nLgogICog
V2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgZW5kcyB0aGUgZXh0ZXJuICJDKysiIGJsb2NrIGJl
Z3VuIGJ5CiAgKiBVX05BTUVTUEFDRV9CRUdJTi4KLSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3Vw
cG9ydHMgbmFtZXNwYWNlcywgaXQgYWxzbyBlbmRzIHRoZSBuYW1lc3BhY2UgYmxvY2sKLSAqIGJl
Z3VuIGJ5IFVfTkFNRVNQQUNFX0JFR0lOLgorICoKKyAqIEl0IGFsc28gZW5kcyB0aGUgdmVyc2lv
bmVkLUlDVS1uYW1lc3BhY2UgYmxvY2sgYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4uCiAgKiBA
c3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC04Niw3ICs4Nyw5IEBAIHR5cGVkZWYgdWludDhfdCBV
VmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwogICogXGRlZiBVX05BTUVTUEFDRV9V
U0UKICAqIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5IHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGNvZGUg
dXNlcyB0aGUKICAqIHB1YmxpYyBJQ1UgQysrIEFQSSBuYW1lc3BhY2UuCi0gKiBJZiB0aGUgY29t
cGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFjZXMsIHRoaXMgZG9lcyBub3RoaW5nLgorICog
VGhpcyBpcyBpbnZva2VkIGJ5IGRlZmF1bHQ7IHdlIHJlY29tbWVuZCB0aGF0IHlvdSB0dXJuIGl0
IG9mZjoKKyAqIFNlZSB0aGUgIlJlY29tbWVuZGVkIEJ1aWxkIE9wdGlvbnMiIHNlY3Rpb24gb2Yg
dGhlIElDVTRDIHJlYWRtZQorICogKGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9z
L2ljdS9pY3UvdHJ1bmsvcmVhZG1lLmh0bWwjUmVjQnVpbGQpCiAgKiBAc3RhYmxlIElDVSAyLjQK
ICAqLwogCkBAIC05NCwxMyArOTcsMTQgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tV
X01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1FVQUxJRklFUgogICog
VGhpcyBpcyB1c2VkIHRvIHF1YWxpZnkgdGhhdCBhIGZ1bmN0aW9uIG9yIGNsYXNzIGlzIHBhcnQg
b2YKICAqIHRoZSBwdWJsaWMgSUNVIEMrKyBBUEkgbmFtZXNwYWNlLgotICogSWYgdGhlIGNvbXBp
bGVyIGRvZXNuJ3Qgc3VwcG9ydCBuYW1lc3BhY2VzLCB0aGlzIGRvZXMgbm90aGluZy4KKyAqCisg
KiBUaGlzIG1hY3JvIGlzIHVubmVjZXNzYXJ5IHNpbmNlIElDVSA0OSByZXF1aXJlcyBuYW1lc3Bh
Y2Ugc3VwcG9ydC4KKyAqIFlvdSBjYW4ganVzdCB1c2UgImljdTo6IiBpbnN0ZWFkLgogICogQHN0
YWJsZSBJQ1UgMi40CiAgKi8KIAogLyogRGVmaW5lIG5hbWVzcGFjZSBzeW1ib2xzIGlmIHRoZSBj
b21waWxlciBzdXBwb3J0cyBpdC4gKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKLSNpZiBVX0hBVkVf
TkFNRVNQQUNFCisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBpZiBVX0RJU0FCTEVfUkVOQU1JTkcK
ICMgICAgICAgZGVmaW5lIFVfSUNVX05BTUVTUEFDRSBpY3UKICAgICAgICAgbmFtZXNwYWNlIFVf
SUNVX05BTUVTUEFDRSB7IH0KQEAgLTEyMiwxMiArMTI2LDYgQEAgdHlwZWRlZiB1aW50OF90IFVW
ZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgICAgICAgIFVfTkFNRVNQQUNFX1VT
RQogIyAgIGVuZGlmCiAjZWxzZQotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9CRUdJTiBleHRlcm4g
IkMrKyIgewotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9FTkQgfQotIyAgIGRlZmluZSBVX05BTUVT
UEFDRV9VU0UKLSMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfUVVBTElGSUVSCi0jZW5kaWYKLSNlbHNl
CiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0JFR0lOCiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0VO
RAogIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UKQEAgLTE4MCw3ICsxNzgsNyBAQCB1X3ZlcnNp
b25Gcm9tVVN0cmluZyhVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjb25zdCBVQ2hhciAqdmVy
c2lvblN0cmluZyk7CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogVV9TVEFCTEUgdm9pZCBVX0VY
UE9SVDIKLXVfdmVyc2lvblRvU3RyaW5nKFVWZXJzaW9uSW5mbyB2ZXJzaW9uQXJyYXksIGNoYXIg
KnZlcnNpb25TdHJpbmcpOwordV92ZXJzaW9uVG9TdHJpbmcoY29uc3QgVVZlcnNpb25JbmZvIHZl
cnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7CiAKIC8qKgogICogR2V0cyB0aGUgSUNV
IHJlbGVhc2UgdmVyc2lvbi4gIFRoZSB2ZXJzaW9uIGFycmF5IHN0b3JlcyB0aGUgdmVyc2lvbiBp
bmZvcm1hdGlvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271193</attachid>
            <date>2016-02-12 11:25:27 -0800</date>
            <delta_ts>2016-02-12 12:15:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-154160-20160212112810.patch</filename>
            <type>text/plain</type>
            <size>1551728</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MGI3YmMzOGEyMDIyY2Y2M2UwZmYzY2Q3YzgxZGZkN2Y1NTQ1ODZkLi5jNDk0YzkxNDVhZDg2NTZh
OTA3ZDFiMWE0Y2EwMTRmZmM1ZDAyNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxNi0wMi0xMiAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgSUNVIGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQxNjAK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFVwZGF0
ZSBJQ1UgaGVhZGVyIGZpbGVzIHRvIHZlcnNpb24gNTIgdG8gYWxsb3cgdGhlIHVzZSBvZiBuZXdl
ciBBUElzLgorCisgICAgICAgICogaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvcGxhdGZvcm0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9wdHlwZXMu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9wdXRpbC5oOgorICAgICAgICAqIGljdS91bmljb2Rl
L3VjYWwuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91Y2hhci5oOgorICAgICAgICAqIGljdS91
bmljb2RlL3VjbnYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91Y29sLmg6CisgICAgICAgICog
aWN1L3VuaWNvZGUvdWNvbmZpZy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VkYXQuaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS91ZGF0cGcuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGlz
cGxheWNvbnRleHQuaDogQWRkZWQuCisgICAgICAgICogaWN1L3VuaWNvZGUvdWVudW0uaDoKKyAg
ICAgICAgKiBpY3UvdW5pY29kZS91Zm9ybWF0dGFibGUuaDogQWRkZWQuCisgICAgICAgICogaWN1
L3VuaWNvZGUvdWl0ZXIuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bG9jLmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvdW1hY2hpbmUuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bm9ybTIu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUv
dXJlbmFtZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VzY3JpcHQuaDoKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS91c2V0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXN0cmluZy5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3V0Zi5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0ZjE2Lmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmOC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0
Zl9vbGQuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dHlwZXMuaDoKKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91dmVybnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXZlcnNpb24uaDoKKwog
MjAxNi0wMi0xMSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdGVJbnNwZWN0b3IncyBsaXN0aW5ncyBzaG91bGQgaW5jbHVkZSB3aGV0
aGVyIGFuIEF1dG9tYXRpb25UYXJnZXQgaXMgcGFpcmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJkNTI2ZWNmOTYzOWI1NzMx
Y2U3OGNjOWNiYTNhYzc4ZDVkZDhlY2QuLmIxZWUzZTEzZWVlZjIwMTEyZGMxMmFmY2VlYmU5OGQx
MDA3NzEwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTYtMDItMTIgIFN1a29sc2FrIFNha3No
dXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CisKKyAgICAgICAgVXBkYXRlIElDVSBoZWFkZXIg
ZmlsZXMgdG8gdmVyc2lvbiA1MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU0MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBVcGRhdGUgSUNVIGhlYWRlciBmaWxlcyB0byB2ZXJzaW9uIDUyIHRvIGFs
bG93IHRoZSB1c2Ugb2YgbmV3ZXIgQVBJcy4KKworICAgICAgICAqIGljdS91bmljb2RlL2J5dGVz
dHJlYW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaDoKKyAgICAgICAg
KiBpY3UvdW5pY29kZS9wbGF0Zm9ybS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3B0eXBlcy5o
OgorICAgICAgICAqIGljdS91bmljb2RlL3B1dGlsLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUv
cmVwLmg6CisgICAgICAgIChSZXBsYWNlYWJsZTo6UmVwbGFjZWFibGUpOgorICAgICAgICAqIGlj
dS91bmljb2RlL3N0ZF9zdHJpbmcuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zdHJlbnVtLmg6
CisgICAgICAgICogaWN1L3VuaWNvZGUvc3RyaW5ncGllY2UuaDoKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91Y2hhci5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VjbnYuaDoKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS91Y29sLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbmZpZy5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3VlbnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWl0ZXIu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bG9jLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUv
dW1hY2hpbmUuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91bmlzdHIuaDoKKyAgICAgICAgKFVu
aWNvZGVTdHJpbmc6OlVuaWNvZGVTdHJpbmcpOgorICAgICAgICAoVW5pY29kZVN0cmluZzo6b3Bl
cmF0b3I9PSApOgorICAgICAgICAoVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0aCk6CisgICAgICAg
IChVbmljb2RlU3RyaW5nOjpzZXRUbyk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpyZW1vdmUp
OgorICAgICAgICAoVW5pY29kZVN0cmluZzo6cmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChV
bmljb2RlU3RyaW5nOjpleHRyYWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6
OmNoYXIzMkF0KTogRGVsZXRlZC4KKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OmdldENoYXIzMlN0
YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OmdldENoYXIzMkxpbWl0KTog
RGVsZXRlZC4KKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OmdldFRlcm1pbmF0ZWRCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6YXBwZW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKFVuaWNvZGVTdHJpbmc6OnRydW5jYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91bm9ybTIuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91b2JqZWN0Lmg6CisgICAgICAg
ICogaWN1L3VuaWNvZGUvdXJlbmFtZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VzY3JpcHQu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91c2V0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUv
dXN0cmluZy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0Zi5oOgorICAgICAgICAqIGljdS91
bmljb2RlL3V0ZjE2Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmOC5oOgorICAgICAgICAq
IGljdS91bmljb2RlL3V0Zl9vbGQuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dHlwZXMuaDoK
KyAgICAgICAgKiBpY3UvdW5pY29kZS91dmVybnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUv
dXZlcnNpb24uaDoKKwogMjAxNi0wMi0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgTmVlZCBXVEZDcmFzaCB3b3JrYXJvdW5kIGZvciBzaGlwcGluZyBTYWZhcmlG
b3JXZWJLaXREZXZlbG9wbWVudCBiaW5hcmllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmODllZTAwZTYxYjcx
YzBjNzkxOWQ0NjFmNDU3MDY4ZDAxOWNmNGVhLi4zNjM1ODhiMmE1YWI2NWZkYmM1NTAzM2IzMjRl
ZDc4YzA4MmIyZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTYtMDItMTIgIFN1
a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0BnbWFpbC5jb20+CisKKyAgICAgICAgVXBkYXRl
IElDVSBoZWFkZXIgZmlsZXMgdG8gdmVyc2lvbiA1MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eCBDaHJpc3RlbnNlbi4KKworICAgICAgICBVcGRhdGUgSUNVIGhlYWRlciBmaWxlcyB0byB2ZXJz
aW9uIDUyIHRvIGFsbG93IHRoZSB1c2Ugb2YgbmV3ZXIgQVBJcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS9ieXRlc3RyZWFtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hhcml0ZXIu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaDoKKyAgICAgICAgKiBpY3Uv
dW5pY29kZS9wbGF0Zm9ybS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3B0eXBlcy5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3B1dGlsLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvcmVwLmg6
CisgICAgICAgIChSZXBsYWNlYWJsZTo6UmVwbGFjZWFibGUpOgorICAgICAgICAqIGljdS91bmlj
b2RlL3N0ZF9zdHJpbmcuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zdHJlbnVtLmg6CisgICAg
ICAgICogaWN1L3VuaWNvZGUvc3RyaW5ncGllY2UuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91
YnJrLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNoYXIuaDoKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91Y252Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbC5oOgorICAgICAgICAqIGlj
dS91bmljb2RlL3Vjb2xlaXRyLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWNvbmZpZy5oOgor
ICAgICAgICAqIGljdS91bmljb2RlL3Vjc2RldC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3Vl
bnVtLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWlkbmEuaDoKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS91aXRlci5oOgorICAgICAgICAqIGljdS91bmljb2RlL3Vsb2MuaDoKKyAgICAgICAgKiBp
Y3UvdW5pY29kZS91bWFjaGluZS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VuaXN0ci5oOgor
ICAgICAgICAoVW5pY29kZVN0cmluZzo6VW5pY29kZVN0cmluZyk6CisgICAgICAgIChVbmljb2Rl
U3RyaW5nOjpvcGVyYXRvcj09ICk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRo
KToKKyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OnNldFRvKToKKyAgICAgICAgKFVuaWNvZGVTdHJp
bmc6OnJlbW92ZSk6CisgICAgICAgIChVbmljb2RlU3RyaW5nOjpyZXBsYWNlKTogRGVsZXRlZC4K
KyAgICAgICAgKFVuaWNvZGVTdHJpbmc6OmV4dHJhY3QpOiBEZWxldGVkLgorICAgICAgICAoVW5p
Y29kZVN0cmluZzo6Y2hhcjMyQXQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6
Z2V0Q2hhcjMyU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0Q2hh
cjMyTGltaXQpOiBEZWxldGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6Z2V0VGVybWluYXRl
ZEJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChVbmljb2RlU3RyaW5nOjphcHBlbmQpOiBEZWxl
dGVkLgorICAgICAgICAoVW5pY29kZVN0cmluZzo6dHJ1bmNhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGljdS91bmljb2RlL3Vub3JtMi5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VvYmplY3Qu
aDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91cmVuYW1lLmg6CisgICAgICAgICogaWN1L3VuaWNv
ZGUvdXNjcmlwdC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3VzZWFyY2guaDoKKyAgICAgICAg
KiBpY3UvdW5pY29kZS91c2V0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXNoYXBlLmg6Cisg
ICAgICAgICogaWN1L3VuaWNvZGUvdXN0cmluZy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0
ZXh0Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmLmg6CisgICAgICAgICogaWN1L3VuaWNv
ZGUvdXRmMTYuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dGY4Lmg6CisgICAgICAgICogaWN1
L3VuaWNvZGUvdXRmX29sZC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0eXBlcy5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3V2ZXJudW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dmVy
c2lvbi5oOgorCiAyMDE2LTAyLTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIE9wdGltaXplIHRleHR1cmUtY29tcGxldGUgY2hlY2tzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYjAxOTI4MDM1NzhjNzdlOTdiNThhODgyMmIzZDQ5ODhhZGI0MjhjOC4uODRmNTdk
MDM0OWM1YWM5MjI1ZGE1YjIwZWNjM2Q4MzYxOWNkYmM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDE2LTAyLTEyICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtA
Z21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBJQ1UgaGVhZGVyIGZpbGVzIHRvIHZlcnNpb24g
NTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDE2
MAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVXBk
YXRlIElDVSBoZWFkZXIgZmlsZXMgdG8gdmVyc2lvbiA1MiB0byBhbGxvdyB0aGUgdXNlIG9mIG5l
d2VyIEFQSXMuCisKKyAgICAgICAgKiBpY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaDoKKyAgICAg
ICAgKiBpY3UvdW5pY29kZS9wbGF0Zm9ybS5oOgorICAgICAgICAqIGljdS91bmljb2RlL3B0eXBl
cy5oOgorICAgICAgICAqIGljdS91bmljb2RlL3B1dGlsLmg6CisgICAgICAgICogaWN1L3VuaWNv
ZGUvdWNoYXIuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91Y29uZmlnLmg6CisgICAgICAgICog
aWN1L3VuaWNvZGUvdWlkbmEuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91aXRlci5oOgorICAg
ICAgICAqIGljdS91bmljb2RlL3VtYWNoaW5lLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdW5v
cm0yLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXJlbmFtZS5oOgorICAgICAgICAqIGljdS91
bmljb2RlL3VzY3JpcHQuaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91c3RyaW5nLmg6CisgICAg
ICAgICogaWN1L3VuaWNvZGUvdXRmLmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRmMTYuaDoK
KyAgICAgICAgKiBpY3UvdW5pY29kZS91dGY4Lmg6CisgICAgICAgICogaWN1L3VuaWNvZGUvdXRm
X29sZC5oOgorICAgICAgICAqIGljdS91bmljb2RlL3V0eXBlcy5oOgorICAgICAgICAqIGljdS91
bmljb2RlL3V2ZXJudW0uaDoKKyAgICAgICAgKiBpY3UvdW5pY29kZS91dmVyc2lvbi5oOgorCiAy
MDE2LTAyLTExICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBFZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkRvY3VtZW50IGFuZCBOU1JhbmdlSXNSZWxhdGl2ZVRvOjpE
b2N1bWVudCBzaG91bGQgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3Vu
aWNvZGUvbG9jYWxwb2ludGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUv
bG9jYWxwb2ludGVyLmgKaW5kZXggYjc2YTFmODU2Mjk5MjNiZGRiODQ2ZTk4YTA4NDgzMzQ3Y2E0
ZWU0YS4uZTNjY2IyNTgxNTRjYzIxNjA5OGViYzI3MzlmYjdiNjgyMjA1OWM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL2xvY2FscG9pbnRlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaApAQCAtMSw3
ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmln
aHQgKEMpIDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgpAQCAtMTQ0LDYgKzE0NCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHB0cj1w
OwogICAgIH0KIHByb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBBY3R1YWwgcG9pbnRlci4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KICAgICBUICpwdHI7CiBwcml2YXRlOgogICAgIC8vIE5v
IGNvbXBhcmlzb24gb3BlcmF0b3JzIHdpdGggb3RoZXIgTG9jYWxQb2ludGVyQmFzZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oCmluZGV4IDNkZTQwZDI1
NjU1M2M0YWFmMWVjMDQ4MzFlOTljNTUzZmQ3YzQ2ZTkuLjFiMmFiMzA2ZWEzMzc4MjlmZDk5YjJj
MGYyODI3MGQyOWM3YmIyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3Uv
dW5pY29kZS9wbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29k
ZS9wbGF0Zm9ybS5oCkBAIC0xLDE1ICsxLDExIEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMywgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qIE5vdGU6IGF1dG9jb25mIGNy
ZWF0ZXMgcGxhdGZvcm0uaCBmcm9tIHBsYXRmb3JtLmguaW4gYXQgY29uZmlndXJlIHRpbWUuCi0q
Ci0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSoKICogIEZJTEUgTkFNRSA6IHBsYXRmb3JtLmgKICoK
ICogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgpAQCAtMjMsMzc5ICsxOSw3
MzcgQEAKICNpZm5kZWYgX1BMQVRGT1JNX0gKICNkZWZpbmUgX1BMQVRGT1JNX0gKIAorI2luY2x1
ZGUgInVuaWNvZGUvdWNvbmZpZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXZlcm51bS5oIgorCiAv
KioKLSAqIFxmaWxlIAotICogXGJyaWVmIEJhc2ljIHR5cGVzIGZvciB0aGUgcGxhdGZvcm0gCisg
KiBcZmlsZQorICogXGJyaWVmIEJhc2ljIHR5cGVzIGZvciB0aGUgcGxhdGZvcm0uCisgKgorICog
VGhpcyBmaWxlIHVzZWQgdG8gYmUgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mL2NvbmZpZ3VyZS4KKyAq
IFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCBwbGF0Zm9ybS5oIGlzIGEgbm9ybWFsIHNvdXJjZSBmaWxl
LAorICogdG8gc2ltcGxpZnkgY3Jvc3MtY29tcGlsaW5nIGFuZCB3b3JraW5nIHdpdGggbm9uLWF1
dG9jb25mL21ha2UgYnVpbGQgc3lzdGVtcy4KKyAqCisgKiBXaGVuIGEgdmFsdWUgaW4gdGhpcyBm
aWxlIGRvZXMgbm90IHdvcmsgb24gYSBwbGF0Zm9ybSwgdGhlbiBwbGVhc2UKKyAqIHRyeSB0byBk
ZXJpdmUgaXQgZnJvbSB0aGUgVV9QTEFURk9STSB2YWx1ZQorICogKGZvciB3aGljaCB3ZSBtaWdo
dCBuZWVkIGEgbmV3IHZhbHVlIGNvbnN0YW50IGluIHJhcmUgY2FzZXMpCisgKiBhbmQvb3IgZnJv
bSBvdGhlciBtYWNyb3MgdGhhdCBhcmUgcHJlZGVmaW5lZCBieSB0aGUgY29tcGlsZXIKKyAqIG9y
IGRlZmluZWQgaW4gc3RhbmRhcmQgKFBPU0lYIG9yIHBsYXRmb3JtIG9yIGNvbXBpbGVyKSBoZWFk
ZXJzLgorICoKKyAqIEFzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQsIHlvdSBjYW4gYWRkIGFuIGV4
cGxpY2l0IDxjb2RlPiNkZWZpbmU8L2NvZGU+IGZvciBzb21lIG1hY3JvcworICogYmVmb3JlIGl0
IGlzIGZpcnN0IHRlc3RlZCwgb3IgYWRkIGFuIGVxdWl2YWxlbnQgLUQgbWFjcm8gZGVmaW5pdGlv
bgorICogdG8gdGhlIGNvbXBpbGVyJ3MgY29tbWFuZCBsaW5lLgorICoKKyAqIE5vdGU6IFNvbWUg
Y29tcGlsZXJzIHByb3ZpZGUgd2F5cyB0byBzaG93IHRoZSBwcmVkZWZpbmVkIG1hY3Jvcy4KKyAq
IEZvciBleGFtcGxlLCB3aXRoIGdjYyB5b3UgY2FuIGNvbXBpbGUgYW4gZW1wdHkgLmMgZmlsZSBh
bmQgaGF2ZSB0aGUgY29tcGlsZXIKKyAqIHByaW50IHRoZSBwcmVkZWZpbmVkIG1hY3JvcyB3aXRo
CisgKiBcY29kZQorICogZ2NjIC1FIC1kTSAteCBjIC9kZXYvbnVsbCB8IHNvcnQKKyAqIFxlbmRj
b2RlCisgKiAoWW91IGNhbiBwcm92aWRlIGFuIGFjdHVhbCBlbXB0eSAuYyBmaWxlIHJhdGhlciB0
aGFuIC9kZXYvbnVsbC4KKyAqIDxjb2RlPi14IGMrKzwvY29kZT4gaXMgZm9yIEMrKy4pCiAgKi8K
IAotLyogVGhpcyBmaWxlIHNob3VsZCBiZSBpbmNsdWRlZCBiZWZvcmUgdXZlcm51bS5oLiAqLwot
I2lmIGRlZmluZWQoVVZFUk5VTV9IKQotIyBlcnJvciBEbyBub3QgaW5jbHVkZSB1bmljb2RlL3V2
ZXJudW0uaCBiZWZvcmUgI2luY2x1ZGluZyB1bmljb2RlL3BsYXRmb3JtLmguICBJbnN0ZWFkIG9m
IHVuaWNvZGUvdXZlcm51bS5oLCAjaW5jbHVkZSB1bmljb2RlL3V2ZXJzaW9uLmgKLSNlbmRpZgot
CiAvKioKLSAqIERldGVybWluZSB3aGV0ZXIgdG8gZW5hYmxlIGF1dG8gY2xlYW51cCBvZiBsaWJy
YXJpZXMuIAorICogRGVmaW5lIHNvbWUgdGhpbmdzIHNvIHRoYXQgdGhleSBjYW4gYmUgZG9jdW1l
bnRlZC4KICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVDTE5fTk9fQVVUT19DTEVBTlVQCi0j
ZGVmaW5lIFVDTE5fTk9fQVVUT19DTEVBTlVQIDEKLSNlbmRpZgotCi0vKiBOZWVkIHBsYXRmb3Jt
Lmggd2hlbiB1c2luZyBDWUdXSU5NU1ZDIHRvIGdldCBkZWZpbml0aW9ucyBhYm92ZS4gSWdub3Jl
IGV2ZXJ5dGhpbmcgZWxzZS4gKi8KLSNpZm5kZWYgQ1lHV0lOTVNWQworI2lmZGVmIFVfSU5fRE9Y
WUdFTgorLyoKKyAqIFByb2JsZW06ICJwbGF0Zm9ybS5oOjMzNTogd2FybmluZzogZG9jdW1lbnRh
dGlvbiBmb3IgdW5rbm93biBkZWZpbmUgVV9IQVZFX1NURF9TVFJJTkcgZm91bmQuIiBtZWFucyB0
aGF0IFVfSEFWRV9TVERfU1RSSU5HIGlzIG5vdCBkb2N1bWVudGVkLgorICogU29sdXRpb246ICNk
ZWZpbmUgYW55IGRlZmluZXMgZm9yIG5vbiBAaW50ZXJuYWwgQVBJIGhlcmUsIHNvIHRoYXQgdGhl
eSBhcmUgdmlzaWJsZSBpbiB0aGUgZG9jcy4gIElmIHlvdSBqdXN0IHNldCBQUkVERUZJTkVEIGlu
IERveHlmaWxlLmluLCAgdGhleSB3b24ndCBiZSBkb2N1bWVudGVkLgorICovCiAKLS8qKiBEZWZp
bmUgdGhlIHBsYXRmb3JtIHdlJ3JlIG9uLiAqLwotI2lmbmRlZiBVX0RBUldJTgotI2RlZmluZSBV
X0RBUldJTgorLyogTm9uZSBmb3Igbm93LiAqLwogI2VuZGlmCiAKIC8qKgotICogXGRlZiBVX0hB
VkVfRElSRU5UX0gKLSAqIERlZmluZSB3aGV0aGVyIGRpcmVudC5oIGlzIGF2YWlsYWJsZSAKKyAq
IFxkZWYgVV9QTEFURk9STQorICogVGhlIFVfUExBVEZPUk0gbWFjcm8gZGVmaW5lcyB0aGUgcGxh
dGZvcm0gd2UncmUgb24uCisgKgorICogV2UgdXNlZCB0byBkZWZpbmUgb25lIGRpZmZlcmVudCwg
dmFsdWUtbGVzcyBtYWNybyBwZXIgcGxhdGZvcm0uCisgKiBUaGF0IG1hZGUgaXQgaGFyZCB0byBr
bm93IHRoZSBzZXQgb2YgcmVsZXZhbnQgcGxhdGZvcm1zIGFuZCBtYWNyb3MsCisgKiBhbmQgaGFy
ZCB0byBkZWFsIHdpdGggdmFyaWFudHMgb2YgcGxhdGZvcm1zLgorICoKKyAqIFN0YXJ0aW5nIHdp
dGggSUNVIDQ5LCB3ZSBkZWZpbmUgcGxhdGZvcm1zIGFzIG51bWVyaWMgbWFjcm9zLAorICogd2l0
aCByYW5nZXMgb2YgdmFsdWVzIGZvciByZWxhdGVkIHBsYXRmb3JtcyBhbmQgdGhlaXIgdmFyaWFu
dHMuCisgKiBUaGUgVV9QTEFURk9STSBtYWNybyBpcyBzZXQgdG8gb25lIG9mIHRoZXNlIHZhbHVl
cy4KKyAqCisgKiBIaXN0b3JpY2FsIG5vdGUgZnJvbSB0aGUgU29sYXJpcyBXaWtpcGVkaWEgYXJ0
aWNsZToKKyAqIEFUJlQgYW5kIFN1biBjb2xsYWJvcmF0ZWQgb24gYSBwcm9qZWN0IHRvIG1lcmdl
IHRoZSBtb3N0IHBvcHVsYXIgVW5peCB2YXJpYW50cworICogb24gdGhlIG1hcmtldCBhdCB0aGF0
IHRpbWU6IEJTRCwgU3lzdGVtIFYsIGFuZCBYZW5peC4KKyAqIFRoaXMgYmVjYW1lIFVuaXggU3lz
dGVtIFYgUmVsZWFzZSA0IChTVlI0KS4KKyAqCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBV
X0hBVkVfRElSRU5UX0gKLSNkZWZpbmUgVV9IQVZFX0RJUkVOVF9IIDEKLSNlbmRpZgogCi0vKiog
RGVmaW5lIHdoZXRoZXIgaW50dHlwZXMuaCBpcyBhdmFpbGFibGUgKi8KLSNpZm5kZWYgVV9IQVZF
X0lOVFRZUEVTX0gKLSNkZWZpbmUgVV9IQVZFX0lOVFRZUEVTX0ggMQorLyoqIFVua25vd24gcGxh
dGZvcm0uIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1VOS05PV04gMAorLyoqIFdpbmRvd3Mg
QGludGVybmFsICovCisjZGVmaW5lIFVfUEZfV0lORE9XUyAxMDAwCisvKiogTWluR1cuIFdpbmRv
d3MsIGNhbGxzIHRvIFdpbjMyIEFQSSwgYnV0IHVzaW5nIEdOVSBnY2MgYW5kIGJpbnV0aWxzLiBA
aW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9NSU5HVyAxODAwCisvKioKKyAqIEN5Z3dpbi4gV2lu
ZG93cywgY2FsbHMgdG8gY3lnd2luMS5kbGwgZm9yIFBvc2l4IGZ1bmN0aW9ucywKKyAqIHVzaW5n
IE1TVkMgb3IgR05VIGdjYyBhbmQgYmludXRpbHMuCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmlu
ZSBVX1BGX0NZR1dJTiAxOTAwCisvKiBSZXNlcnZlIDIwMDAgZm9yIFVfUEZfVU5JWD8gKi8KKy8q
KiBIUC1VWCBpcyBiYXNlZCBvbiBVTklYIFN5c3RlbSBWLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUg
VV9QRl9IUFVYIDIxMDAKKy8qKiBTb2xhcmlzIGlzIGEgVW5peCBvcGVyYXRpbmcgc3lzdGVtIGJh
c2VkIG9uIFNWUjQuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1NPTEFSSVMgMjYwMAorLyoq
IEJTRCBpcyBhIFVOSVggb3BlcmF0aW5nIHN5c3RlbSBkZXJpdmF0aXZlLiBAaW50ZXJuYWwgKi8K
KyNkZWZpbmUgVV9QRl9CU0QgMzAwMAorLyoqIEFJWCBpcyBiYXNlZCBvbiBVTklYIFN5c3RlbSBW
IFJlbGVhc2VzIGFuZCA0LjMgQlNELiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9BSVggMzEw
MAorLyoqIElSSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gViB3aXRoIEJTRCBleHRlbnNpb25z
LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9JUklYIDMyMDAKKy8qKgorICogRGFyd2luIGlz
IGEgUE9TSVgtY29tcGxpYW50IG9wZXJhdGluZyBzeXN0ZW0sIGNvbXBvc2VkIG9mIGNvZGUgZGV2
ZWxvcGVkIGJ5IEFwcGxlLAorICogYXMgd2VsbCBhcyBjb2RlIGRlcml2ZWQgZnJvbSBOZVhUU1RF
UCwgQlNELCBhbmQgb3RoZXIgcHJvamVjdHMsCisgKiBidWlsdCBhcm91bmQgdGhlIE1hY2gga2Vy
bmVsLgorICogRGFyd2luIGZvcm1zIHRoZSBjb3JlIHNldCBvZiBjb21wb25lbnRzIHVwb24gd2hp
Y2ggTWFjIE9TIFgsIEFwcGxlIFRWLCBhbmQgaU9TIGFyZSBiYXNlZC4KKyAqIChPcmlnaW5hbCBk
ZXNjcmlwdGlvbiBtb2RpZmllZCBmcm9tIFdpa2lQZWRpYS4pCisgKiBAaW50ZXJuYWwKKyAqLwor
I2RlZmluZSBVX1BGX0RBUldJTiAzNTAwCisvKiogaVBob25lIE9TIChpT1MpIGlzIGEgZGVyaXZh
dGl2ZSBvZiBNYWMgT1MgWC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfSVBIT05FIDM1NTAK
Ky8qKiBRTlggaXMgYSBjb21tZXJjaWFsIFVuaXgtbGlrZSByZWFsLXRpbWUgb3BlcmF0aW5nIHN5
c3RlbSByZWxhdGVkIHRvIEJTRC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfUU5YIDM3MDAK
Ky8qKiBMaW51eCBpcyBhIFVuaXgtbGlrZSBvcGVyYXRpbmcgc3lzdGVtLiBAaW50ZXJuYWwgKi8K
KyNkZWZpbmUgVV9QRl9MSU5VWCA0MDAwCisvKiogQW5kcm9pZCBpcyBiYXNlZCBvbiBMaW51eC4g
QGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQU5EUk9JRCA0MDUwCisvKiogIkNsYXNzaWMiIE1h
YyBPUyAoMTk4NC0yMDAxKSBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9DTEFTU0lDX01BQ09T
IDgwMDAKKy8qKiB6L09TIGlzIHRoZSBzdWNjZXNzb3IgdG8gT1MvMzkwIHdoaWNoIHdhcyB0aGUg
c3VjY2Vzc29yIHRvIE1WUy4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfT1MzOTAgOTAwMAor
LyoqICJJQk0gaSIgaXMgdGhlIGN1cnJlbnQgbmFtZSBvZiB3aGF0IHVzZWQgdG8gYmUgaTUvT1Mg
YW5kIGVhcmxpZXIgT1MvNDAwLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9PUzQwMCA5NDAw
CisKKyNpZmRlZiBVX1BMQVRGT1JNCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAq
LworI2VsaWYgZGVmaW5lZChfX01JTkdXMzJfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BG
X01JTkdXCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0g
VV9QRl9DWUdXSU4KKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSB8fCBk
ZWZpbmVkKFdJTjY0KSB8fCBkZWZpbmVkKF9XSU42NCkKKyMgICBkZWZpbmUgVV9QTEFURk9STSBV
X1BGX1dJTkRPV1MKKyNlbGlmIGRlZmluZWQoX19BTkRST0lEX18pCisjICAgZGVmaW5lIFVfUExB
VEZPUk0gVV9QRl9BTkRST0lECisgICAgLyogQW5kcm9pZCB3Y2hhcl90IHN1cHBvcnQgZGVwZW5k
cyBvbiB0aGUgQVBJIGxldmVsLiAqLworIyAgIGluY2x1ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+
CisjZWxpZiBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf
X2xpbnV4KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfTElOVVgKKyNlbGlmIGRlZmluZWQo
X19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fTUFDSF9fKQorIyAgIGluY2x1ZGUgPFRhcmdldENvbmRp
dGlvbmFscy5oPgorIyAgIGlmIGRlZmluZWQoVEFSR0VUX09TX0lQSE9ORSkgJiYgVEFSR0VUX09T
X0lQSE9ORSAgLyogdmFyaWFudCBvZiBUQVJHRVRfT1NfTUFDICovCisjICAgICAgIGRlZmluZSBV
X1BMQVRGT1JNIFVfUEZfSVBIT05FCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9QTEFURk9S
TSBVX1BGX0RBUldJTgorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKEJTRCkgfHwgZGVmaW5lZChf
X0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19O
ZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX01pckJTRF9fKQor
IyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQlNECisjZWxpZiBkZWZpbmVkKHN1bikgfHwgZGVm
aW5lZChfX3N1bikKKyAgICAvKiBDaGVjayBkZWZpbmVkKF9fU1ZSNCkgfHwgZGVmaW5lZChfX3N2
cjRfXykgdG8gZGlzdGluZ3Vpc2ggU29sYXJpcyBmcm9tIFN1bk9TPyAqLworIyAgIGRlZmluZSBV
X1BMQVRGT1JNIFVfUEZfU09MQVJJUworIyAgIGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgICAg
IC8qIFNvbGFyaXMvR0NDIG5lZWRzIHRoaXMgaGVhZGVyIGZpbGUgdG8gZ2V0IHRoZSBwcm9wZXIg
ZW5kaWFubmVzcy4gTm9ybWFsbHksIHRoaXMKKyAgICAgICAgICogaGVhZGVyIGZpbGUgaXMgaW5j
bHVkZWQgd2l0aCBzdGRkZWYuaCBidXQgb24gU29sYWlycy9HQ0MsIHRoZSBHQ0MgdmVyc2lvbiBv
ZiBzdGRkZWYuaAorICAgICAgICAgKiAgaXMgaW5jbHVkZWQgd2hpY2ggZG9lcyBub3QgaW5jbHVk
ZSB0aGlzIGhlYWRlciBmaWxlLgorICAgICAgICAgKi8KKyMgICAgICAgaW5jbHVkZSA8c3lzL2lz
YV9kZWZzLmg+CisjICAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX0FJWCkgfHwgZGVmaW5lZChfX1RP
U19BSVhfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0FJWAorI2VsaWYgZGVmaW5lZChf
aHB1eCkgfHwgZGVmaW5lZChocHV4KSB8fCBkZWZpbmVkKF9faHB1eCkKKyMgICBkZWZpbmUgVV9Q
TEFURk9STSBVX1BGX0hQVVgKKyNlbGlmIGRlZmluZWQoc2dpKSB8fCBkZWZpbmVkKF9fc2dpKQor
IyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSVJJWAorI2VsaWYgZGVmaW5lZChtYWNpbnRvc2gp
CisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9DTEFTU0lDX01BQ09TCisjZWxpZiBkZWZpbmVk
KF9fUU5YX18pIHx8IGRlZmluZWQoX19RTlhOVE9fXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBV
X1BGX1FOWAorI2VsaWYgZGVmaW5lZChfX1RPU19NVlNfXykKKyMgICBkZWZpbmUgVV9QTEFURk9S
TSBVX1BGX09TMzkwCisjZWxpZiBkZWZpbmVkKF9fT1M0MDBfXykgfHwgZGVmaW5lZChfX1RPU19P
UzQwMF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfT1M0MDAKKyNlbHNlCisjICAgZGVm
aW5lIFVfUExBVEZPUk0gVV9QRl9VTktOT1dOCiAjZW5kaWYKIAogLyoqCi0gKiBEZWZpbmUgd2hh
dCBzdXBwb3J0IGZvciBDKysgc3RyZWFtcyBpcyBhdmFpbGFibGUuCi0gKiAgICAgSWYgVV9JT1NU
UkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5OTcxMSwgdGhlbiAmbHQ7aW9zdHJlYW0mZ3Q7IGlzIGF2
YWlsYWJsZQotICogKDE5OTc3MTEgaXMgdGhlIGRhdGUgdGhlIElTTy9JRUMgQysrIEZESVMgd2Fz
IHB1Ymxpc2hlZCksIGFuZCB0aGVuCi0gKiBvbmUgc2hvdWxkIHF1YWxpZnkgc3RyZWFtcyB1c2lu
ZyB0aGUgc3RkIG5hbWVzcGFjZSBpbiBJQ1UgaGVhZGVyCi0gKiBmaWxlcy4KLSAqICAgICBJZiBV
X0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2LCB0aGVuICZsdDtpb3N0cmVhbS5oJmd0
OyBpcwotICogYXZhaWxhYmxlIGluc3RlYWQgKDE5ODUwNiBpcyB0aGUgZGF0ZSB3aGVuIFN0cm91
c3RydXAgcHVibGlzaGVkCi0gKiAiQW4gRXh0ZW5zaWJsZSBJL08gRmFjaWxpdHkgZm9yIEMrKyIg
YXQgdGhlIHN1bW1lciBVU0VOSVggY29uZmVyZW5jZSkuCi0gKiAgICAgSWYgVV9JT1NUUkVBTV9T
T1VSQ0UgaXMgMCwgdGhlbiBDKysgc3RyZWFtcyBhcmUgbm90IGF2YWlsYWJsZSBhbmQKLSAqIHN1
cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRseSBzdXBwcmVzc2VkIGluIElDVS4KLSAqCisg
KiBcZGVmIENZR1dJTk1TVkMKKyAqIERlZmluZWQgaWYgdGhpcyBpcyBXaW5kb3dzIHdpdGggQ3ln
d2luLCBidXQgdXNpbmcgTVNWQyByYXRoZXIgdGhhbiBnY2MuCisgKiBPdGhlcndpc2UgdW5kZWZp
bmVkLgorICogQGludGVybmFsCiAgKi8KLQotI2lmbmRlZiBVX0lPU1RSRUFNX1NPVVJDRQotI2Rl
ZmluZSBVX0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKKy8qIENvbW1lbnRlZCBvdXQgYmVjYXVzZSB0
aGlzIGlzIGFscmVhZHkgc2V0IGluIG1oLWN5Z3dpbi1tc3ZjCisjaWYgVV9QTEFURk9STSA9PSBV
X1BGX0NZR1dJTiAmJiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmluZSBDWUdXSU5NU1ZDCiAj
ZW5kaWYKKyovCiAKIC8qKgotICogXGRlZiBVX0hBVkVfU1REX1NUUklORwotICogRGVmaW5lIHdo
ZXRoZXIgdGhlIHN0YW5kYXJkIEMrKyAoU1RMKSAmbHQ7c3RyaW5nJmd0OyBoZWFkZXIgaXMgYXZh
aWxhYmxlLgotICogRm9yIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCB1c2UgcGxhdGZvcm0uaCBhbmQg
ZG8gbm90IGRlZmluZSB0aGlzIGNvbnN0YW50Ci0gKiBpbiB0aGVpciBwbGF0Zm9ybS1zcGVjaWZp
YyBoZWFkZXJzLCBzdGRfc3RyaW5nLmggZGVmYXVsdHMKLSAqIFVfSEFWRV9TVERfU1RSSU5HIHRv
IDEuCisgKiBcZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorICogRGVmaW5lcyB3
aGV0aGVyIHRoZSBwbGF0Zm9ybSB1c2VzIG9ubHkgdGhlIFdpbjMyIEFQSS4KKyAqIFNldCB0byAx
IGZvciBXaW5kb3dzL01TVkMgYW5kIE1pbkdXIGJ1dCBub3QgQ3lnd2luLgogICogQGludGVybmFs
CiAgKi8KLSNpZm5kZWYgVV9IQVZFX1NURF9TVFJJTkcKLSNkZWZpbmUgVV9IQVZFX1NURF9TVFJJ
TkcgMQorI2lmZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIChVX1BGX1dJTkRPV1MgPD0gVV9QTEFURk9S
TSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfTUlOR1cpIHx8IGRlZmluZWQoQ1lHV0lOTVNWQykKKyMg
ICBkZWZpbmUgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJIDEKKyNlbHNlCisgICAgLyog
Q3lnd2luIGltcGxlbWVudHMgUE9TSVguICovCisjICAgZGVmaW5lIFVfUExBVEZPUk1fVVNFU19P
TkxZX1dJTjMyX0FQSSAwCiAjZW5kaWYKIAotLyoqIEB7IERldGVybWluZXMgd2hldGhlciBzcGVj
aWZpYyB0eXBlcyBhcmUgYXZhaWxhYmxlICovCi0jaWZuZGVmIFVfSEFWRV9JTlQ4X1QKLSNkZWZp
bmUgVV9IQVZFX0lOVDhfVCAxCisvKioKKyAqIFxkZWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJ
CisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIFdpbjMyIEFQSSBpcyBhdmFpbGFibGUgb24gdGhlIHBs
YXRmb3JtLgorICogU2V0IHRvIDEgZm9yIFdpbmRvd3MvTVNWQywgTWluR1cgYW5kIEN5Z3dpbi4K
KyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QRl9XSU5ET1dTIDw9IFVf
UExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0NZR1dJTgorIyAgIGRlZmluZSBVX1BMQVRG
T1JNX0hBU19XSU4zMl9BUEkgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9IQVNfV0lO
MzJfQVBJIDAKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9VSU5UOF9UCi0jZGVmaW5lIFVfSEFW
RV9VSU5UOF9UIDAKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lNUExFTUVOVFNfUE9TSVgKKyAq
IERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaW1wbGVtZW50cyAobW9zdCBvZikgdGhlIFBP
U0lYIEFQSS4KKyAqIFNldCB0byAxIGZvciBDeWd3aW4gYW5kIG1vc3Qgb3RoZXIgcGxhdGZvcm1z
LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX1BMQVRGT1JNX0lNUExFTUVOVFNfUE9TSVgK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VT
RVNfT05MWV9XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NMQVNTSUNfTUFDT1MKKyMg
ICBkZWZpbmUgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYIDAKKyNlbHNlCisjICAgZGVmaW5l
IFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAxCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVf
SU5UMTZfVAotI2RlZmluZSBVX0hBVkVfSU5UMTZfVCAxCisvKioKKyAqIFxkZWYgVV9QTEFURk9S
TV9JU19MSU5VWF9CQVNFRAorICogRGVmaW5lcyB3aGV0aGVyIHRoZSBwbGF0Zm9ybSBpcyBMaW51
eCBvciBvbmUgb2YgaXRzIGRlcml2YXRpdmVzLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBV
X1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VECisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgVV9QRl9MSU5VWCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9Q
Rl9BTkRST0lECisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQgMQorI2Vsc2UK
KyMgICBkZWZpbmUgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRCAwCiAjZW5kaWYKIAotI2lmbmRl
ZiBVX0hBVkVfVUlOVDE2X1QKLSNkZWZpbmUgVV9IQVZFX1VJTlQxNl9UIDAKKy8qKgorICogXGRl
ZiBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorICogRGVmaW5lcyB3aGV0aGVyIHRoZSBwbGF0
Zm9ybSBpcyBEYXJ3aW4gb3Igb25lIG9mIGl0cyBkZXJpdmF0aXZlcy4KKyAqIEBpbnRlcm5hbAor
ICovCisjaWZkZWYgVV9QTEFURk9STV9JU19EQVJXSU5fQkFTRUQKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX0RBUldJTiA8PSBVX1BMQVRGT1JNICYmIFVf
UExBVEZPUk0gPD0gVV9QRl9JUEhPTkUKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JU19EQVJXSU5f
QkFTRUQgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JU19EQVJXSU5fQkFTRUQgMAog
I2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDMyX1QKLSNkZWZpbmUgVV9IQVZFX0lOVDMyX1Qg
MQorLyoqCisgKiBcZGVmIFVfSEFWRV9TVERJTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIHN0ZGlu
dC5oIGlzIGF2YWlsYWJsZS4gSXQgaXMgYSBDOTkgc3RhbmRhcmQgaGVhZGVyLgorICogV2UgdXNl
ZCB0byBpbmNsdWRlIGludHR5cGVzLmggd2hpY2ggaW5jbHVkZXMgc3RkaW50LmggYnV0IHdlIHVz
dWFsbHkgZG8gbm90IG5lZWQKKyAqIHRoZSBhZGRpdGlvbmFsIGRlZmluaXRpb25zIGZyb20gaW50
dHlwZXMuaC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURElOVF9ICisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09O
TFlfV0lOMzJfQVBJCisjICAgaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pIHx8IFVfUExBVEZPUk0g
PT0gVV9QRl9NSU5HVyB8fCAoZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVI+PTE2MDApCisg
ICAgICAgIC8qIFdpbmRvd3MgVmlzdWFsIFN0dWRpbyA5IGFuZCBiZWxvdyBkbyBub3QgaGF2ZSBz
dGRpbnQuaCAmIGludHR5cGVzLmgsIGJ1dCBWUyAyMDEwIGFkZHMgdGhlbS4gKi8KKyMgICAgICAg
ZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAxCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9IQVZF
X1NURElOVF9IIDAKKyMgICBlbmRpZgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1NPTEFSSVMK
KyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAg
ZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYICYm
ICFkZWZpbmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9XRVIpCisgICAgLyogUFBDIEFJWCA8PSA0
LjMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZF
X1NURElOVF9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAxCiAjZW5kaWYK
IAotI2lmbmRlZiBVX0hBVkVfVUlOVDMyX1QKLSNkZWZpbmUgVV9IQVZFX1VJTlQzMl9UIDAKKy8q
KgorICogXGRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICogRGVmaW5lcyB3aGV0aGVyIGludHR5cGVz
LmggaXMgYXZhaWxhYmxlLiBJdCBpcyBhIEM5OSBzdGFuZGFyZCBoZWFkZXIuCisgKiBXZSBpbmNs
dWRlIGludHR5cGVzLmggd2hlcmUgaXQgaXMgYXZhaWxhYmxlIGJ1dCBzdGRpbnQuaCBpcyBub3Qu
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9JTlRUWVBFU19ICisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1NPTEFS
SVMKKyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisj
ICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9B
SVggJiYgIWRlZmluZWQoX0FJWDUxKSAmJiBkZWZpbmVkKF9QT1dFUikKKyAgICAvKiBQUEMgQUlY
IDw9IDQuMyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBV
X0hBVkVfSU5UVFlQRVNfSCAxCisjZWxzZQorICAgIC8qIE1vc3QgcGxhdGZvcm1zIGhhdmUgYm90
aCBpbnR0eXBlcy5oIGFuZCBzdGRpbnQuaCwgb3IgbmVpdGhlci4gKi8KKyMgICBkZWZpbmUgVV9I
QVZFX0lOVFRZUEVTX0ggVV9IQVZFX1NURElOVF9ICiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVf
SU5UNjRfVAotI2RlZmluZSBVX0hBVkVfSU5UNjRfVCAxCisvKioKKyAqIFxkZWYgVV9JT1NUUkVB
TV9TT1VSQ0UKKyAqIERlZmluZXMgd2hhdCBzdXBwb3J0IGZvciBDKysgc3RyZWFtcyBpcyBhdmFp
bGFibGUuCisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5OTcxMSwgdGhl
biAmbHQ7aW9zdHJlYW0mZ3Q7IGlzIGF2YWlsYWJsZQorICogKHRoZSBJU08vSUVDIEMrKyBGRElT
IHdhcyBwdWJsaXNoZWQgaW4gTm92ZW1iZXIgMTk5NyksIGFuZCB0aGVuCisgKiBvbmUgc2hvdWxk
IHF1YWxpZnkgc3RyZWFtcyB1c2luZyB0aGUgc3RkIG5hbWVzcGFjZSBpbiBJQ1UgaGVhZGVyCisg
KiBmaWxlcy4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCB0aGlzIGlzIHRoZSBvbmx5IHN1cHBv
cnRlZCB2ZXJzaW9uLgorICoKKyAqIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIHNldCB0byAxOTg1
MDYsIHRoZW4gJmx0O2lvc3RyZWFtLmgmZ3Q7IGlzCisgKiBhdmFpbGFibGUgaW5zdGVhZCAoaW4g
SnVuZSAxOTg1IFN0cm91c3RydXAgcHVibGlzaGVkCisgKiAiQW4gRXh0ZW5zaWJsZSBJL08gRmFj
aWxpdHkgZm9yIEMrKyIgYXQgdGhlIHN1bW1lciBVU0VOSVggY29uZmVyZW5jZSkuCisgKiBTdGFy
dGluZyB3aXRoIElDVSA0OSwgdGhpcyB2ZXJzaW9uIGlzIG5vdCBzdXBwb3J0ZWQgYW55IG1vcmUu
CisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgMCAob3IgYW55IHZhbHVlIGxlc3MgdGhh
biAxOTk3MTEpLAorICogdGhlbiBDKysgc3RyZWFtcyBhcmUgbm90IGF2YWlsYWJsZSBhbmQKKyAq
IHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRseSBzdXBwcmVzc2VkIGluIElDVS4KKyAq
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0lPU1RSRUFNX1NPVVJDRQorI2RlZmluZSBV
X0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9VSU5UNjRf
VAotI2RlZmluZSBVX0hBVkVfVUlOVDY0X1QgMAorLyoqCisgKiBcZGVmIFVfSEFWRV9TVERfU1RS
SU5HCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHN0YW5kYXJkIEMrKyAoU1RMKSAmbHQ7c3RyaW5n
Jmd0OyBoZWFkZXIgaXMgYXZhaWxhYmxlLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hB
VkVfU1REX1NUUklORworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNl
CisjICAgZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEKICNlbmRpZgogCi0vKiogQH0gKi8KLQog
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwogLyoqIEB7IENvbXBpbGVyIGFuZCBlbnZpcm9ubWVudCBm
ZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0qLwogCi0vKiBEZWZpbmUgd2hldGhlciBuYW1lc3BhY2UgaXMgc3VwcG9ydGVk
ICovCi0jaWZuZGVmIFVfSEFWRV9OQU1FU1BBQ0UKLSNkZWZpbmUgVV9IQVZFX05BTUVTUEFDRSAx
Ci0jZW5kaWYKLQotLyogRGV0ZXJtaW5lcyB0aGUgZW5kaWFubmVzcyBvZiB0aGUgcGxhdGZvcm0K
LSAgIEl0J3MgZG9uZSB0aGlzIHdheSBpbiBjYXNlIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgYXJl
IGJlaW5nIGJ1aWx0IGF0IG9uY2UuCi0gICBGb3IgZXhhbXBsZSwgRGFyd2luIHN1cHBvcnRzIGZh
dCBiaW5hcmllcywgd2hpY2ggY2FuIGJlIGJvdGggUFBDIGFuZCB4ODYgYmFzZWQuICovCi0jaWYg
ZGVmaW5lZChCWVRFX09SREVSKSAmJiBkZWZpbmVkKEJJR19FTkRJQU4pCi0jZGVmaW5lIFVfSVNf
QklHX0VORElBTiAoQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOKQorLyoqCisgKiBcZGVmIFVfR0ND
X01BSk9SX01JTk9SCisgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29tcGlsZXIgaXMgZ2NjICh0
ZXN0IGZvciAhPSAwKSwKKyAqIGFuZCBpZiBzbywgY29udGFpbnMgaXRzIG1ham9yICh0aW1lcyAx
MDApIGFuZCBtaW5vciB2ZXJzaW9uIG51bWJlcnMuCisgKiBJZiB0aGUgY29tcGlsZXIgaXMgbm90
IGdjYywgdGhlbiBVX0dDQ19NQUpPUl9NSU5PUiA9PSAwLgorICoKKyAqIEZvciBleGFtcGxlLCBm
b3IgdGVzdGluZyBmb3Igd2hldGhlciB3ZSBoYXZlIGdjYywgYW5kIHdoZXRoZXIgaXQncyA0LjYg
b3IgaGlnaGVyLAorICogdXNlICIjaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA2Ii4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZkZWYgX19HTlVDX18KKyMgICBkZWZpbmUgVV9HQ0NfTUFKT1JfTUlO
T1IgKF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9SX18pCiAjZWxzZQotI2RlZmluZSBVX0lT
X0JJR19FTkRJQU4gMQorIyAgIGRlZmluZSBVX0dDQ19NQUpPUl9NSU5PUiAwCiAjZW5kaWYKIAot
LyogMSBvciAwIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRocmVhZHMuICBJZiB1bmRlZmluZWQsIGRl
ZmF1bHQgaXM6IGVuYWJsZSB0aHJlYWRzLiAqLwotI2lmbmRlZiBJQ1VfVVNFX1RIUkVBRFMgCi0j
ZGVmaW5lIElDVV9VU0VfVEhSRUFEUyAxCi0jZW5kaWYKLQotLyogT24gc3Ryb25nIG1lbW9yeSBt
b2RlbCBDUFVzIChlLmcuIHg4NiBDUFVzKSwgd2UgdXNlIGEgc2FmZSAmIHF1aWNrIGRvdWJsZSBj
aGVjayBsb2NrLiAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChkZWZpbmVkKF9faTM4Nl9f
KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pKQotI2RlZmluZSBVTVRYX1NUUk9OR19NRU1PUllfTU9E
RUwgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9ERUJVRwotI2RlZmluZSBVX0RFQlVHIDAKLSNlbmRp
ZgotCi0jaWZuZGVmIFVfUkVMRUFTRQotI2RlZmluZSBVX1JFTEVBU0UgMQorLyoqCisgKiBcZGVm
IFVfSVNfQklHX0VORElBTgorICogRGV0ZXJtaW5lcyB0aGUgZW5kaWFubmVzcyBvZiB0aGUgcGxh
dGZvcm0uCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSVNfQklHX0VORElBTgorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoQllURV9PUkRFUikg
JiYgZGVmaW5lZChCSUdfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gKEJZVEVf
T1JERVIgPT0gQklHX0VORElBTikKKyNlbGlmIGRlZmluZWQoX19CWVRFX09SREVSX18pICYmIGRl
ZmluZWQoX19PUkRFUl9CSUdfRU5ESUFOX18pCisgICAgLyogZ2NjICovCisjICAgZGVmaW5lIFVf
SVNfQklHX0VORElBTiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9CSUdfRU5ESUFOX18pCisj
ZWxpZiBkZWZpbmVkKF9fQklHX0VORElBTl9fKSB8fCBkZWZpbmVkKF9CSUdfRU5ESUFOKQorIyAg
IGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU5f
XykgfHwgZGVmaW5lZChfTElUVExFX0VORElBTikKKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFO
IDAKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCB8fCBVX1BMQVRGT1JNID09IFVfUEZf
T1M0MDAgfHwgZGVmaW5lZChfX3MzOTBfXykgfHwgZGVmaW5lZChfX3MzOTB4X18pCisgICAgLyog
VGhlc2UgcGxhdGZvcm1zIGRvIG5vdCBhcHBlYXIgdG8gcHJlZGVmaW5lIGFueSBlbmRpYW5uZXNz
IG1hY3Jvcy4gKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQo
X1BBX1JJU0MxXzApIHx8IGRlZmluZWQoX1BBX1JJU0MxXzEpIHx8IGRlZmluZWQoX1BBX1JJU0My
XzApCisgICAgLyogSFBQQSBkbyBub3QgYXBwZWFyIHRvIHByZWRlZmluZSBhbnkgZW5kaWFubmVz
cyBtYWNyb3MuICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisjZWxpZiBkZWZpbmVk
KHNwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmMpIHx8IGRlZmluZWQoX19zcGFyY19fKQorICAgIC8q
IFNvbWUgc3BhcmMgYmFzZWQgc3lzdGVtcyAoZS5nLiBMaW51eCkgZG8gbm90IHByZWRlZmluZSBh
bnkgZW5kaWFubmVzcyBtYWNyb3MuICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisj
ZWxzZQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMAogI2VuZGlmCiAKLS8qIERldGVybWlu
ZSB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Igbm90LiBUaGlzIG92ZXJyaWRlcyB0aGUK
LSAgIHNldHRpbmcgaW4gdW1hY2hpbmUuaCB3aGljaCBpcyBmb3IgYWxsIHBsYXRmb3Jtcy4gKi8K
LSNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCi0jZGVmaW5lIFVfRElTQUJMRV9SRU5BTUlORyAx
CisvKioKKyAqIFxkZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKKyAqIERldGVybWluZXMgd2hldGhl
ciB0byBvdmVycmlkZSBwbGFjZW1lbnQgbmV3IGFuZCBkZWxldGUgZm9yIFNUTC4KKyAqIEBzdGFi
bGUgSUNVIDIuNgorICovCisjaWZkZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKKyAgICAvKiBVc2Ug
dGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKKyMg
ICBkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZF
X1BMQUNFTUVOVF9ORVcgMQogI2VuZGlmCiAKLS8qIERldGVybWluZSB3aGV0aGVyIHRvIG92ZXJy
aWRlIG5ldyBhbmQgZGVsZXRlLiAqLwotI2lmbmRlZiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9O
Ci0jZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gMQotI2VuZGlmCi0vKiBEZXRlcm1p
bmUgd2hldGhlciB0byBvdmVycmlkZSBwbGFjZW1lbnQgbmV3IGFuZCBkZWxldGUgZm9yIFNUTC4g
Ki8KLSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZpbmUgVV9IQVZFX1BMQUNFTUVO
VF9ORVcgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgCisgKiBEZWZp
bmUgdGhpcyB0byBkZWZpbmUgdGhlIE1GQyBkZWJ1ZyB2ZXJzaW9uIG9mIHRoZSBvcGVyYXRvciBu
ZXcuCisgKgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KKyNpZmRlZiBVX0hBVkVfREVCVUdfTE9D
QVRJT05fTkVXCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVm
aW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAxCisj
ZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIDAKICNlbmRpZgogCi0v
KiBEZXRlcm1pbmUgd2hldGhlciB0byBlbmFibGUgdHJhY2luZy4gKi8KLSNpZm5kZWYgVV9FTkFC
TEVfVFJBQ0lORwotI2RlZmluZSBVX0VOQUJMRV9UUkFDSU5HIDEKKy8qIENvbXBhdGliaWxpdHkg
d2l0aCBub24gY2xhbmcgY29tcGlsZXJzICovCisjaWZuZGVmIF9faGFzX2F0dHJpYnV0ZQorIyAg
ICBkZWZpbmUgX19oYXNfYXR0cmlidXRlKHgpIDAKICNlbmRpZgogCiAvKioKLSAqIFdoZXRoZXIg
dG8gZW5hYmxlIER5bmFtaWMgbG9hZGluZyBpbiBJQ1UKKyAqIFxkZWYgVV9NQUxMT0NfQVRUUgor
ICogQXR0cmlidXRlIHRvIG1hcmsgZnVuY3Rpb25zIGFzIG1hbGxvYy1saWtlCiAgKiBAaW50ZXJu
YWwKICAqLwotI2lmbmRlZiBVX0VOQUJMRV9EWUxPQUQKLSNkZWZpbmUgVV9FTkFCTEVfRFlMT0FE
IDEKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXz49MworIyAgICBkZWZpbmUgVV9N
QUxMT0NfQVRUUiBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpCisjZWxzZQorIyAgICBkZWZp
bmUgVV9NQUxMT0NfQVRUUgogI2VuZGlmCiAKIC8qKgotICogV2hldGhlciB0byB0ZXN0IER5bmFt
aWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmlsdHkKKyAqIFxkZWYgVV9BTExPQ19TSVpFX0FUVFIK
KyAqIEF0dHJpYnV0ZSB0byBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBhbGxvY2F0ZWQgYnVmZmVy
IGZvciBtYWxsb2MtbGlrZSBmdW5jdGlvbnMKICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVf
Q0hFQ0tfRFlMT0FECi0jZGVmaW5lIFVfQ0hFQ0tfRFlMT0FEIDEKLSNlbmRpZgotCi0KLS8qKiBE
byB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBBUElzIGJ5IGRlZmF1bHQ/ICov
Ci0jaWZuZGVmIFVfREVGQVVMVF9TSE9XX0RSQUZUCi0jZGVmaW5lIFVfREVGQVVMVF9TSE9XX0RS
QUZUIDEKKyNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVD
X18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAzKSkpIHx8IF9faGFzX2F0dHJpYnV0ZShhbGxv
Y19zaXplKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUihYKSBfX2F0dHJpYnV0ZV9fICgo
YWxsb2Nfc2l6ZShYKSkpCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSMihYLFkpIF9fYXR0
cmlidXRlX18gKChhbGxvY19zaXplKFgsWSkpKQorI2Vsc2UKKyMgICBkZWZpbmUgVV9BTExPQ19T
SVpFX0FUVFIoWCkKKyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIyKFgsWSkKICNlbmRpZgog
CiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IENoYXJhY3RlciBk
YXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KKy8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0eXBlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
IAotI2lmICgoZGVmaW5lZChPUzM5MCkgJiYgKCFkZWZpbmVkKF9fQ0hBUlNFVF9MSUIpIHx8ICFf
X0NIQVJTRVRfTElCKSkpIHx8IGRlZmluZWQoT1M0MDApCi0jICAgZGVmaW5lIFVfQ0hBUlNFVF9G
QU1JTFkgMQorLyoqCisgKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUg
d2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gQVNDSUkgYmFzZWQgcGxhdGZvcm0uCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLworI2RlZmluZSBVX0FTQ0lJX0ZBTUlMWSAwCisKKy8qKgorICogVV9DSEFS
U0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhlIHBsYXRmb3JtIGlzIGFu
IEVCQ0RJQyBiYXNlZCBwbGF0Zm9ybS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisjZGVmaW5l
IFVfRUJDRElDX0ZBTUlMWSAxCisKKy8qKgorICogXGRlZiBVX0NIQVJTRVRfRkFNSUxZCisgKgor
ICogPHA+VGhlc2UgZGVmaW5pdGlvbnMgYWxsb3cgdG8gc3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2Yg
dGV4dAorICogaW4gdGhlIGNoYXIgZGF0YSB0eXBlIGFzIGRlZmluZWQgYnkgdGhlIHBsYXRmb3Jt
IGFuZCB0aGUgY29tcGlsZXIuCisgKiBJdCBpcyBlbm91Z2ggdG8gZGV0ZXJtaW5lIHRoZSBjb2Rl
IHBvaW50IHZhbHVlcyBvZiAiaW52YXJpYW50IGNoYXJhY3RlcnMiLAorICogd2hpY2ggYXJlIHRo
ZSBvbmVzIHNoYXJlZCBieSBhbGwgZW5jb2RpbmdzIHRoYXQgYXJlIGluIHVzZQorICogb24gYSBn
aXZlbiBwbGF0Zm9ybS48L3A+CisgKgorICogPHA+VGhvc2UgImludmFyaWFudCBjaGFyYWN0ZXJz
IiBzaG91bGQgYmUgYWxsIHRoZSB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZQorICogbGF0aW4gbGV0
dGVycywgdGhlIGRpZ2l0cywgdGhlIHNwYWNlLCBhbmQgImJhc2ljIHB1bmN0dWF0aW9uIi4KKyAq
IEFsc28sICdcXG4nLCAnXFxyJywgJ1xcdCcgc2hvdWxkIGJlIGF2YWlsYWJsZS48L3A+CisgKgor
ICogPHA+VGhlIGxpc3Qgb2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiBpczo8YnI+CisgKiBcY29k
ZQorICogICAgQS1aICBhLXogIDAtOSAgU1BBQ0UgICIgICUgICZhbXA7ICAnICAoICApICAqICAr
ICAsICAtICAuICAvICA6ICA7ICA8ICA9ICA+ICA/ICBfCisgKiBcZW5kY29kZQorICogPGJyPgor
ICogKDUyIGxldHRlcnMgKyAxMCBudW1iZXJzICsgMjAgcHVuYy9zeW0vc3BhY2UgPSA4MiB0b3Rh
bCk8L3A+CisgKgorICogPHA+VGhpcyBtYXRjaGVzIHRoZSBJQk0gU3ludGFjdGljIENoYXJhY3Rl
ciBTZXQgKENTIDY0MCkuPC9wPgorICoKKyAqIDxwPkluIG90aGVyIHdvcmRzLCBhbGwgdGhlIGdy
YXBoaWMgY2hhcmFjdGVycyBpbiA3LWJpdCBBU0NJSSBzaG91bGQKKyAqIGJlIHNhZmVseSBhY2Nl
c3NpYmxlIGV4Y2VwdCB0aGUgZm9sbG93aW5nOjwvcD4KKyAqCisgKiBcY29kZQorICogICAgJ1wn
IDxiYWNrc2xhc2g+CisgKiAgICAnWycgPGxlZnQgYnJhY2tldD4KKyAqICAgICddJyA8cmlnaHQg
YnJhY2tldD4KKyAqICAgICd7JyA8bGVmdCBicmFjZT4KKyAqICAgICd9JyA8cmlnaHQgYnJhY2U+
CisgKiAgICAnXicgPGNpcmN1bWZsZXg+CisgKiAgICAnficgPHRpbGRlPgorICogICAgJyEnIDxl
eGNsYW1hdGlvbiBtYXJrPgorICogICAgJyMnIDxudW1iZXIgc2lnbj4KKyAqICAgICd8JyA8dmVy
dGljYWwgbGluZT4KKyAqICAgICckJyA8ZG9sbGFyIHNpZ24+CisgKiAgICAnQCcgPGNvbW1lcmNp
YWwgYXQ+CisgKiAgICAnYCcgPGdyYXZlIGFjY2VudD4KKyAqIFxlbmRjb2RlCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLworI2lmZGVmIFVfQ0hBUlNFVF9GQU1JTFkKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAgJiYgKCFk
ZWZpbmVkKF9fQ0hBUlNFVF9MSUIpIHx8ICFfX0NIQVJTRVRfTElCKQorIyAgIGRlZmluZSBVX0NI
QVJTRVRfRkFNSUxZIFVfRUJDRElDX0ZBTUlMWQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09T
NDAwICYmICFkZWZpbmVkKF9fVVRGMzJfXykKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSBV
X0VCQ0RJQ19GQU1JTFkKKyNlbHNlCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgVV9BU0NJ
SV9GQU1JTFkKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9DSEFSU0VUX0lTX1VURjgKKyAqCisg
KiBIYXJkY29kZSB0aGUgZGVmYXVsdCBjaGFyc2V0IHRvIFVURi04LgorICoKKyAqIElmIHRoaXMg
aXMgc2V0IHRvIDEsIHRoZW4KKyAqIC0gSUNVIHdpbGwgYXNzdW1lIHRoYXQgYWxsIG5vbi1pbnZh
cmlhbnQgY2hhciosIFN0cmluZ1BpZWNlLCBzdGQ6OnN0cmluZyBldGMuCisgKiAgIGNvbnRhaW4g
VVRGLTggdGV4dCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzeXN0ZW0gQVBJIHVzZXMKKyAqIC0g
c29tZSBJQ1UgY29kZSB3aWxsIHVzZSBmYXN0IGZ1bmN0aW9ucyBsaWtlIHVfc3RyRnJvbVVURjgo
KQorICogICByYXRoZXIgdGhhbiB0aGUgbW9yZSBnZW5lcmFsIGFuZCBtb3JlIGhlYXZ5LXdlaWdo
dCBjb252ZXJzaW9uIEFQSSAodWNudi5oKQorICogLSB1Y252X2dldERlZmF1bHROYW1lKCkgYWx3
YXlzIHJldHVybnMgIlVURi04IgorICogLSB1Y252X3NldERlZmF1bHROYW1lKCkgaXMgZGlzYWJs
ZWQgYW5kIHdpbGwgbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBjaGFyc2V0CisgKiAtIHN0YXRpYyBi
dWlsZHMgb2YgSUNVIGFyZSBzbWFsbGVyCisgKiAtIG1vcmUgZnVuY3Rpb25hbGl0eSBpcyBhdmFp
bGFibGUgd2l0aCB0aGUgVUNPTkZJR19OT19DT05WRVJTSU9OIGJ1aWxkLXRpbWUKKyAqICAgY29u
ZmlndXJhdGlvbiBvcHRpb24gKHNlZSB1bmljb2RlL3Vjb25maWcuaCkKKyAqIC0gdGhlIFVDT05G
SUdfTk9fQ09OVkVSU0lPTiBidWlsZCBvcHRpb24gaW4gdWNvbmZpZy5oIGlzIG1vcmUgdXNhYmxl
CisgKgorICogQHN0YWJsZSBJQ1UgNC4yCisgKiBAc2VlIFVDT05GSUdfTk9fQ09OVkVSU0lPTgor
ICovCisjaWZkZWYgVV9DSEFSU0VUX0lTX1VURjgKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQg
dmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JN
X0lTX0RBUldJTl9CQVNFRAorIyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAxCisjZWxzZQor
IyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAwCiAjZW5kaWYKIAogLyoqIEB9ICovCiAKIC8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBJbmZvcm1hdGlvbiBhYm91dCB3Y2hhciBzdXBw
b3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiogQHsg
SW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZm5kZWYgVV9IQVZF
X1dDSEFSX0gKLSNkZWZpbmUgVV9IQVZFX1dDSEFSX0ggICAgICAxCisvKioKKyAqIFxkZWYgVV9I
QVZFX1dDSEFSX0gKKyAqIEluZGljYXRlcyB3aGV0aGVyIDx3Y2hhci5oPiBpcyBhdmFpbGFibGUg
KDEpIG9yIG5vdCAoMCkuIFNldCB0byAxIGJ5IGRlZmF1bHQuCisgKgorICogQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KKyNpZmRlZiBVX0hBVkVfV0NIQVJfSAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5l
ZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lEICYmIF9fQU5EUk9J
RF9BUElfXyA8IDkKKyAgICAvKgorICAgICAqIEFuZHJvaWQgYmVmb3JlIEdpbmdlcmJyZWFkIChB
bmRyb2lkIDIuMywgQVBJIGxldmVsIDkpIGRpZCBub3Qgc3VwcG9ydCB3Y2hhcl90LgorICAgICAq
IFRoZSB0eXBlIGFuZCBoZWFkZXIgZXhpc3RlZCwgYnV0IHRoZSBsaWJyYXJ5IGZ1bmN0aW9ucyBk
aWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICogVGhlIHNpemUgb2Ygd2NoYXJfdCB3YXMg
MSBidXQgTCJ4eXoiIHN0cmluZyBsaXRlcmFscyBoYWQgMzItYml0IHVuaXRzIGFueXdheS4KKyAg
ICAgKi8KKyMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9I
QVZFX1dDSEFSX0ggMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9TSVpFT0ZfV0NIQVJfVAotI2RlZmlu
ZSBVX1NJWkVPRl9XQ0hBUl9UICAgIDQKKy8qKgorICogXGRlZiBVX1NJWkVPRl9XQ0hBUl9UCisg
KiBVX1NJWkVPRl9XQ0hBUl9UPT1zaXplb2Yod2NoYXJfdCkKKyAqCisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLworI2lmZGVmIFVfU0laRU9GX1dDSEFSX1QKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiAoVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgJiYgX19BTkRS
T0lEX0FQSV9fIDwgOSkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NMQVNTSUNfTUFDT1MKKyAgICAv
KgorICAgICAqIENsYXNzaWMgTWFjIE9TIGFuZCBNYWMgT1MgWCBiZWZvcmUgMTAuMyAoUGFudGhl
cikgZGlkIG5vdCBzdXBwb3J0IHdjaGFyX3Qgb3Igd3N0cmluZy4KKyAgICAgKiBOZXdlciBNYWMg
T1MgWCBoYXMgc2l6ZSA0LgorICAgICAqLworIyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDEK
KyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQ1lH
V0lOCisjICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMgorI2VsaWYgVV9QTEFURk9STSA9PSBV
X1BGX0FJWAorICAgIC8qCisgICAgICogQUlYIDYuMSBpbmZvcm1hdGlvbiwgc2VjdGlvbiAiV2lk
ZSBjaGFyYWN0ZXIgZGF0YSByZXByZXNlbnRhdGlvbiI6CisgICAgICogIi4uLiB0aGUgd2NoYXJf
dCBkYXRhdHlwZSBpcyAzMi1iaXQgaW4gdGhlIDY0LWJpdCBlbnZpcm9ubWVudCBhbmQKKyAgICAg
KiAxNi1iaXQgaW4gdGhlIDMyLWJpdCBlbnZpcm9ubWVudC4iCisgICAgICogYW5kCisgICAgICog
IkFsbCBsb2NhbGVzIHVzZSBVbmljb2RlIGZvciB0aGVpciB3aWRlIGNoYXJhY3RlciBjb2RlIHZh
bHVlcyAocHJvY2VzcyBjb2RlKSwKKyAgICAgKiBleGNlcHQgdGhlIElCTS1ldWNUVyBjb2Rlc2V0
LiIKKyAgICAgKi8KKyMgICBpZmRlZiBfXzY0QklUX18KKyMgICAgICAgZGVmaW5lIFVfU0laRU9G
X1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMgor
IyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAKKyAgICAvKgorICAgICAq
IHovT1MgVjFSMTEgaW5mb3JtYXRpb24gY2VudGVyLCBzZWN0aW9uICJMUDY0IHwgSUxQMzIiOgor
ICAgICAqICJJbiAzMS1iaXQgbW9kZSwgdGhlIHNpemUgb2YgbG9uZyBhbmQgcG9pbnRlcnMgaXMg
NCBieXRlcyBhbmQgdGhlIHNpemUgb2Ygd2NoYXJfdCBpcyAyIGJ5dGVzLgorICAgICAqIFVuZGVy
IExQNjQsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50ZXIgaXMgOCBieXRlcyBhbmQgdGhlIHNp
emUgb2Ygd2NoYXJfdCBpcyA0IGJ5dGVzLiIKKyAgICAgKi8KKyMgICBpZmRlZiBfTFA2NAorIyAg
ICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CisjICAgZWxzZQorIyAgICAgICBkZWZpbmUg
VV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9P
UzQwMAorIyAgIGlmIGRlZmluZWQoX19VVEYzMl9fKQorICAgICAgICAvKgorICAgICAgICAgKiBM
T0NBTEVUWVBFKCpMT0NBTEVVVEYpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICogV2lkZS1jaGFy
YWN0ZXIgc3RyaW5ncyBhcmUgaW4gVVRGLTMyLAorICAgICAgICAgKiBuYXJyb3ctY2hhcmFjdGVy
IHN0cmluZ3MgYXJlIGluIFVURi04LgorICAgICAgICAgKi8KKyMgICAgICAgZGVmaW5lIFVfU0la
RU9GX1dDSEFSX1QgNAorIyAgIGVsaWYgZGVmaW5lZChfX1VDUzJfXykKKyAgICAgICAgLyoKKyAg
ICAgICAgICogTE9DQUxFVFlQRSgqTE9DQUxFVUNTMikgaXMgc3BlY2lmaWVkLgorICAgICAgICAg
KiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBVQ1MtMiwKKyAgICAgICAgICogbmFycm93
LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMuCisgICAgICAgICAqLworIyAgICAgICBk
ZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjZWxzZQorICAgICAgICAvKgorICAgICAgICAgKiBM
T0NBTEVUWVBFKCpDTEQpIG9yIExPQ0FMRVRZUEUoKkxPQ0FMRSkgaXMgc3BlY2lmaWVkLgorICAg
ICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiAxNi1iaXQgRUJDRElDLAorICAg
ICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3MgYXJlIGluIEVCQ0RJQy4KKyAgICAgICAg
ICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyMgICBlbmRpZgorI2Vsc2UK
KyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CiAjZW5kaWYKIAogI2lmbmRlZiBVX0hBVkVf
V0NTQ1BZCi0jZGVmaW5lIFVfSEFWRV9XQ1NDUFkgICAgICAgMQorI2RlZmluZSBVX0hBVkVfV0NT
Q1BZIFVfSEFWRV9XQ0hBUl9ICiAjZW5kaWYKIAogLyoqIEB9ICovCiAKIC8qKgorICogXGRlZiBV
X0hBVkVfQ0hBUjE2X1QKKyAqIERlZmluZXMgd2hldGhlciB0aGUgY2hhcjE2X3QgdHlwZSBpcyBh
dmFpbGFibGUgZm9yIFVURi0xNgorICogYW5kIHUiYWJjIiBVVEYtMTYgc3RyaW5nIGxpdGVyYWxz
IGFyZSBzdXBwb3J0ZWQuCisgKiBUaGlzIGlzIGEgbmV3IHN0YW5kYXJkIHR5cGUgYW5kIHN0YW5k
YXJkIHN0cmluZyBsaXRlcmFsIHN5bnRheCBpbiBDKysweAorICogYnV0IGhhcyBiZWVuIGF2YWls
YWJsZSBpbiBzb21lIGNvbXBpbGVycyBiZWZvcmUuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVm
IFVfSEFWRV9DSEFSMTZfVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bHNlCisgICAgLyoKKyAgICAgKiBOb3RlczoKKyAgICAgKiBWaXN1YWwgU3R1ZGlvIDEwIChfTVND
X1ZFUj49MTYwMCkgZGVmaW5lcyBjaGFyMTZfdCBidXQKKyAgICAgKiBkb2VzIG5vdCBzdXBwb3J0
IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICogZ2NjIDQuNCBkZWZpbmVzIHRoZSBfX0NI
QVIxNl9UWVBFX18gbWFjcm8gdG8gYSB1c2FibGUgdHlwZSBidXQKKyAgICAgKiBkb2VzIG5vdCBz
dXBwb3J0IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICogQysrMTEgYW5kIEMxMSByZXF1
aXJlIHN1cHBvcnQgZm9yIFVURi0xNiBsaXRlcmFscworICAgICAqLworIyAgIGlmIChkZWZpbmVk
KF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMKSB8fCAoZGVmaW5lZChfX1NU
RENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDIwMTExMkwpCisjICAgICAgIGRl
ZmluZSBVX0hBVkVfQ0hBUjE2X1QgMQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9D
SEFSMTZfVCAwCisjICAgZW5kaWYKKyNlbmRpZgorCisvKioKICAqIEB7CiAgKiBcZGVmIFVfREVD
TEFSRV9VVEYxNgotICogRG8gbm90IHVzZSB0aGlzIG1hY3JvLiBVc2UgdGhlIFVOSUNPREVfU1RS
SU5HIG9yIFVfU1RSSU5HX0RFQ0wgbWFjcm9zCi0gKiBpbnN0ZWFkLgotICogQGludGVybmFsCi0g
KgotICogXGRlZiBVX0dOVUNfVVRGMTZfU1RSSU5HCisgKiBEbyBub3QgdXNlIHRoaXMgbWFjcm8g
YmVjYXVzZSBpdCBpcyBub3QgZGVmaW5lZCBvbiBhbGwgcGxhdGZvcm1zLgorICogVXNlIHRoZSBV
TklDT0RFX1NUUklORyBvciBVX1NUUklOR19ERUNMIG1hY3JvcyBpbnN0ZWFkLgogICogQGludGVy
bmFsCiAgKi8KLSNpZm5kZWYgVV9HTlVDX1VURjE2X1NUUklORwotI2RlZmluZSBVX0dOVUNfVVRG
MTZfU1RSSU5HIDAKLSNlbmRpZgotI2lmIDEgfHwgZGVmaW5lZChVX0NIRUNLX1VURjE2X1NUUklO
RykKLSNpZiAoZGVmaW5lZChfX3hsQ19fKSAmJiBkZWZpbmVkKF9fSUJNX1VURl9MSVRFUkFMKSAm
JiBVX1NJWkVPRl9XQ0hBUl9UICE9IDIpIFwKKyNpZmRlZiBVX0RFQ0xBUkVfVVRGMTYKKyAgICAv
KiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX0hBVkVfQ0hBUjE2X1QgXAor
ICAgIHx8IChkZWZpbmVkKF9feGxDX18pICYmIGRlZmluZWQoX19JQk1fVVRGX0xJVEVSQUwpICYm
IFVfU0laRU9GX1dDSEFSX1QgIT0gMikgXAogICAgIHx8IChkZWZpbmVkKF9fSFBfYUNDKSAmJiBf
X0hQX2FDQyA+PSAwMzUwMDApIFwKLSAgICB8fCAoZGVmaW5lZChfX0hQX2NjKSAmJiBfX0hQX2Nj
ID49IDExMTEwNikgXAotICAgIHx8IFVfR05VQ19VVEYxNl9TVFJJTkcKLSNkZWZpbmUgVV9ERUNM
QVJFX1VURjE2KHN0cmluZykgdSAjIyBzdHJpbmcKLSNlbGlmIChkZWZpbmVkKF9fU1VOUFJPX0ND
KSAmJiBfX1NVTlBST19DQyA+PSAweDU1MCkKLS8qIHx8IChkZWZpbmVkKF9fU1VOUFJPX0MpICYm
IF9fU1VOUFJPX0MgPj0gMHg1ODApICovCi0vKiBTdW4ncyBDIGNvbXBpbGVyIGhhcyBpc3N1ZXMg
d2l0aCB0aGlzIG5vdGF0aW9uLCBhbmQgaXQncyB1bnJlbGlhYmxlLiAqLwotI2RlZmluZSBVX0RF
Q0xBUkVfVVRGMTYoc3RyaW5nKSBVICMjIHN0cmluZworICAgIHx8IChkZWZpbmVkKF9fSFBfY2Mp
ICYmIF9fSFBfY2MgPj0gMTExMTA2KQorIyAgIGRlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5n
KSB1ICMjIHN0cmluZwogI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVCA9PSAyIFwKLSAgICAmJiAoVV9D
SEFSU0VUX0ZBTUlMWSA9PSAwIHx8ICgoZGVmaW5lZChPUzM5MCkgfHwgZGVmaW5lZChPUzQwMCkp
ICYmIGRlZmluZWQoX19VQ1MyX18pKSkKLSNkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykg
TCAjIyBzdHJpbmcKLSNlbmRpZgotI2VuZGlmCi0KLS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgUE9TSVggc3VwcG9ydCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLwotCi0jaWZuZGVmIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCi0jZGVmaW5lIFVfSEFW
RV9OTF9MQU5HSU5GT19DT0RFU0VUICAxCi0jZW5kaWYKLQotI2lmbmRlZiBVX05MX0xBTkdJTkZP
X0NPREVTRVQKLSNkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VUICAgICAgIENPREVTRVQKLSNl
bmRpZgotCi0jaWYgMQotI2RlZmluZSBVX1RaU0VUICAgICAgICAgdHpzZXQKLSNlbmRpZgotI2lm
IDAKLSNkZWZpbmUgVV9USU1FWk9ORSAgICAgIHRpbWV6b25lCi0jZW5kaWYKLSNpZiAxCi0jZGVm
aW5lIFVfVFpOQU1FICAgICAgICB0em5hbWUKKyAgICAmJiAoVV9DSEFSU0VUX0ZBTUlMWSA9PSAw
IHx8IChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX09TNDAw
ICYmIGRlZmluZWQoX19VQ1MyX18pKSkKKyMgICBkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmlu
ZykgTCAjIyBzdHJpbmcKKyNlbHNlCisgICAgLyogTGVhdmUgVV9ERUNMQVJFX1VURjE2IHVuZGVm
aW5lZC4gU2VlIHVuaXN0ci5oLiAqLwogI2VuZGlmCiAKLSNkZWZpbmUgVV9IQVZFX01NQVAgICAg
IDEKLSNkZWZpbmUgVV9IQVZFX1BPUEVOICAgIDEKLQogLyoqIEB9ICovCiAKIC8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ki8KLS8qKiBAeyBTeW1ib2wgaW1wb3J0LWV4cG9ydCBjb250cm9sICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiogQHsgU3ltYm9sIGlt
cG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiAxCi0jZGVmaW5lIFVfRVhQT1JU
IF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjaWZkZWYgVV9FWFBPUlQK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfU1RB
VElDX0lNUExFTUVOVEFUSU9OKQorIyAgIGRlZmluZSBVX0VYUE9SVAorI2VsaWYgZGVmaW5lZChf
X0dOVUNfXykKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgi
ZGVmYXVsdCIpKSkKICNlbGlmIChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA+
PSAweDU1MCkgXAogICAgfHwgKGRlZmluZWQoX19TVU5QUk9fQykgJiYgX19TVU5QUk9fQyA+PSAw
eDU1MCkgCi0jZGVmaW5lIFVfRVhQT1JUIF9fZ2xvYmFsCisjICAgZGVmaW5lIFVfRVhQT1JUIF9f
Z2xvYmFsCiAvKiNlbGlmIGRlZmluZWQoX19IUF9hQ0MpIHx8IGRlZmluZWQoX19IUF9jYykKLSNk
ZWZpbmUgVV9FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpKi8KKyMgICBkZWZpbmUgVV9FWFBP
UlQgX19kZWNsc3BlYyhkbGxleHBvcnQpKi8KKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisjICAg
ZGVmaW5lIFVfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQogI2Vsc2UKLSNkZWZpbmUgVV9F
WFBPUlQKKyMgICBkZWZpbmUgVV9FWFBPUlQKICNlbmRpZgogCiAvKiBVX0NBTExDT05WIGlzIHJl
bGVhdGVkIHRvIFVfRVhQT1JUMiAqLwotI2RlZmluZSBVX0VYUE9SVDIKLQotLyogY3lnd2luIG5l
ZWRzIHRvIGV4cG9ydC9pbXBvcnQgZGF0YSAqLwotI2lmIGRlZmluZWQoVV9DWUdXSU4pICYmICFk
ZWZpbmVkKF9fR05VQ19fKQotI2RlZmluZSBVX0lNUE9SVCBfX2RlY2xzcGVjKGRsbGltcG9ydCkK
KyNpZmRlZiBVX0VYUE9SVDIKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisj
ZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmluZSBVX0VYUE9SVDIgX19jZGVjbAogI2Vs
c2UKLSNkZWZpbmUgVV9JTVBPUlQgCi0jZW5kaWYKLQotLyogQH0gKi8KLQotLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLwotLyoqIEB7IENvZGUgYWxpZ25tZW50IGFuZCBDIGZ1bmN0aW9uIGlubGluaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ki8KLQotI2lmbmRlZiBVX0lOTElORQotIyAgIGlmZGVmIF9fY3BsdXNwbHVzCi0jICAgICAg
IGRlZmluZSBVX0lOTElORSBpbmxpbmUKLSMgICBlbHNlCi0jICAgICAgIGRlZmluZSBVX0lOTElO
RSBfX2lubGluZV9fCi0jICAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFVfQUxJR05fQ09ERQot
I2RlZmluZSBVX0FMSUdOX0NPREUobikgCisjICAgZGVmaW5lIFVfRVhQT1JUMgogI2VuZGlmCiAK
LS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgR0NDIGJ1aWx0IGlu
IGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9yeSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAg
ICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioKLSAqIFxkZWYgVV9IQVZFX0dD
Q19BVE9NSUNTCi0gKiBAaW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0hBVkVfR0NDX0FUT01JQ1MK
LSNkZWZpbmUgVV9IQVZFX0dDQ19BVE9NSUNTIDEKKyNpZmRlZiBVX0lNUE9SVAorICAgIC8qIFVz
ZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisgICAg
LyogV2luZG93cyBuZWVkcyB0byBleHBvcnQvaW1wb3J0IGRhdGEuICovCisjICAgZGVmaW5lIFVf
SU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vsc2UKKyMgICBkZWZpbmUgVV9JTVBPUlQg
CiAjZW5kaWYKIAotLyoqIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBQ
cm9ncmFtcyB1c2VkIGJ5IElDVSBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KIC8qKgotICogXGRl
ZiBVX01BS0UKLSAqIFdoYXQgcHJvZ3JhbSB0byBleGVjdXRlIHRvIHJ1biAnbWFrZScKKyAqIFxk
ZWYgVV9DQUxMQ09OVgorICogU2ltaWxhciB0byBVX0NERUNMX0JFR0lOL1VfQ0RFQ0xfRU5ELCB0
aGlzIHF1YWxpZmllciBpcyBuZWNlc3NhcnkKKyAqIGluIGNhbGxiYWNrIGZ1bmN0aW9uIHR5cGVk
ZWZzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjYWxsaW5nIGNvbnZlbnRpb24KKyAqIGlzIGNvbXBh
dGlibGUuCisgKgorICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIG5vbi1JQ1UtQVBJIGZ1bmN0aW9u
cy4KKyAqIFdoZW4gYSBmdW5jdGlvbiBpcyBhIHB1YmxpYyBJQ1UgQVBJLAorICogeW91IG11c3Qg
dXNlIHRoZSBVX0NBUEkgYW5kIFVfRVhQT1JUMiBxdWFsaWZpZXJzLgorICogQHN0YWJsZSBJQ1Ug
Mi4wCiAgKi8KLSNpZm5kZWYgVV9NQUtFCi0jZGVmaW5lIFVfTUFLRSAgIi91c3IvYmluL2dudW1h
a2UiCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIGRlZmluZWQoX19jcGx1c3BsdXMp
CisjICAgIGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wKKyNlbHNlCisjICAgIGRlZmluZSBVX0NB
TExDT05WIFVfRVhQT1JUMgogI2VuZGlmCiAKLS8qKiBAfSAqLwotCi0jZW5kaWYgLyogQ1lHV0lO
TVNWQyAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiBDdXN0b20gaWN1IGVudHJ5IHBv
aW50IHJlbmFtaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioKLSAqIERlZmluZSB0aGUgbGli
cmFyeSBzdWZmaXggd2l0aCBDIHN5bnRheC4KLSAqIEBpbnRlcm5hbAotICovCi0jIGRlZmluZSBV
X0xJQl9TVUZGSVhfQ19OQU1FIAotLyoqCi0gKiBEZWZpbmUgdGhlIGxpYnJhcnkgc3VmZml4IGFz
IGEgc3RyaW5nIHdpdGggQyBzeW50YXgKLSAqIEBpbnRlcm5hbAotICovCi0jIGRlZmluZSBVX0xJ
Ql9TVUZGSVhfQ19OQU1FX1NUUklORyAiIgotLyoqCi0gKiAxIGlmIGEgY3VzdG9tIGxpYnJhcnkg
c3VmZml4IGlzIHNldAotICogQGludGVybmFsCi0gKi8KLSMgZGVmaW5lIFVfSEFWRV9MSUJfU1VG
RklYIDAKLQotI2lmIFVfSEFWRV9MSUJfU1VGRklYCi0jIGlmbmRlZiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUKLS8qIFJlbmFtaW5nIHBhdHRlcm46ICAgIHVfc3RyY3B5XzQxX3N1ZmZpeCAqLwot
IyAgZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICB4ICMjIF8gIyMgNDYgIyMg
Ci0jICBkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwgbWlub3IpIGljdWR0
IyMjI21ham9yIyNtaW5vciMjX2RhdAotCi0jIGVuZGlmCi0jZW5kaWYKKy8qIEB9ICovCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B0eXBl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B0eXBlcy5oCmluZGV4IDFm
MzRkMmY4NGU0MTBlZjc5MzBhNjZlZjZlNzRjYjY0YmNiYzU4MWQuLmI3ZjcxMTYwMzI4MmMzNmM3
MzIyMjBlN2E5NmM5MTMzZGQwMjUwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pY3UvdW5pY29kZS9wdHlwZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3Vu
aWNvZGUvcHR5cGVzLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNyw0MCArMTcsNjkgQEAKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgogKi8KIAorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJ
OiBEZWZpbml0aW9ucyBvZiBpbnRlZ2VyIHR5cGVzIG9mIHZhcmlvdXMgd2lkdGhzCisgKi8KKwog
I2lmbmRlZiBfUFRZUEVTX0gKICNkZWZpbmUgX1BUWVBFU19ICiAKLSNpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4KKy8qKgorICogXGRlZiBfX1NURENfTElNSVRfTUFDUk9TCisgKiBBY2NvcmRpbmcgdG8g
dGhlIExpbnV4IHN0ZGludC5oLCB0aGUgSVNPIEM5OSBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBp
biBDKysgaW1wbGVtZW50YXRpb25zCisgKiBtYWNyb3MgbGlrZSBJTlQzMl9NSU4gYW5kIFVJTlRQ
VFJfTUFYIHNob3VsZCBvbmx5IGJlIGRlZmluZWQgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQuCisg
KiBXZSBuZWVkIHRvIGRlZmluZSBfX1NURENfTElNSVRfTUFDUk9TIGJlZm9yZSBpbmNsdWRpbmcg
c3RkaW50LmggaW4gQysrIGNvZGUKKyAqIHRoYXQgdXNlcyBzdWNoIGxpbWl0IG1hY3Jvcy4KKyAq
IEBpbnRlcm5hbAorICovCisjaWZuZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKKyNkZWZpbmUgX19T
VERDX0xJTUlUX01BQ1JPUworI2VuZGlmCisKKy8qIE5VTEwsIHNpemVfdCwgd2NoYXJfdCAqLwor
I2luY2x1ZGUgPHN0ZGRlZi5oPgogCisvKgorICogSWYgYWxsIGNvbXBpbGVycyBwcm92aWRlZCBh
bGwgb2YgdGhlIEM5OSBoZWFkZXJzIGFuZCB0eXBlcywKKyAqIHdlIHdvdWxkIGp1c3QgdW5jb25k
aXRpb25hbGx5ICNpbmNsdWRlIDxzdGRpbnQuaD4gaGVyZQorICogYW5kIG5vdCBuZWVkIGFueSBv
ZiB0aGUgc3R1ZmYgYWZ0ZXIgaW5jbHVkaW5nIHBsYXRmb3JtLmguCisgKi8KKworLyogRmluZCBv
dXQgaWYgd2UgaGF2ZSBzdGRpbnQuaCBldGMuICovCiAjaW5jbHVkZSAidW5pY29kZS9wbGF0Zm9y
bS5oIgogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBHZW5lcmljIGRhdGEgdHlwZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCiAKLS8qIElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2
ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciwgeW91IG1heQotICAgbmVlZCB0byBlZGl0IHRoZSB0
eXBlZGVmcyBiZWxvdy4gKi8KLSNpZiBVX0hBVkVfSU5UVFlQRVNfSAorLyogSWYgeW91ciBwbGF0
Zm9ybSBkb2VzIG5vdCBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciwgeW91IG1heQorICAgbmVl
ZCB0byBlZGl0IHRoZSB0eXBlZGVmcyBpbiB0aGUgI2Vsc2Ugc2VjdGlvbiBiZWxvdy4KKyAgIFVz
ZSAjaWYuLi4jZWxzZS4uLiNlbmRpZiB3aXRoIHByZWRlZmluZWQgY29tcGlsZXIgbWFjcm9zIGlm
IHBvc3NpYmxlLiAqLworI2lmIFVfSEFWRV9TVERJTlRfSAorCisvKgorICogV2UgbW9zdGx5IG5l
ZWQgPHN0ZGludC5oPiAod2hpY2ggZGVmaW5lcyB0aGUgc3RhbmRhcmQgaW50ZWdlciB0eXBlcykg
YnV0IG5vdCA8aW50dHlwZXMuaD4uCisgKiA8aW50dHlwZXMuaD4gaW5jbHVkZXMgPHN0ZGludC5o
PiBhbmQgYWRkcyB0aGUgcHJpbnRmL3NjYW5mIGhlbHBlcnMgUFJJZDMyLCBTQ054MTYgZXRjLgor
ICogd2hpY2ggd2UgYWxtb3N0IG5ldmVyIHVzZSwgcGx1cyBzdHVmZiBsaWtlIGltYXhhYnMoKSB3
aGljaCB3ZSBuZXZlciB1c2UuCisgKi8KKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAotLyogYXV0b2Nv
bmYgMi4xMyBzb21ldGltZXMgY2FuJ3QgcHJvcGVybHkgZmluZCB0aGUgZGF0YSB0eXBlcyBpbiA8
aW50dHlwZXMuaD4gKi8KLS8qIG9zLzM5MCBuZWVkcyA8aW50dHlwZXMuaD4sIGJ1dCBpdCBkb2Vz
bid0IGhhdmUgaW50OF90LCBhbmQgaXQgc29tZXRpbWVzICovCi0vKiBkb2Vzbid0IGhhdmUgdWlu
dDhfdCBkZXBlbmRpbmcgb24gdGhlIE9TIHZlcnNpb24uICovCi0vKiBTbyB3ZSBoYXZlIHRoaXMg
d29yayBhcm91bmQuICovCi0jaWZkZWYgT1MzOTAKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfT1Mz
OTAKIC8qIFRoZSBmZWF0dXJlcyBoZWFkZXIgaXMgbmVlZGVkIHRvIGdldCAodSlpbnQ2NF90IHNv
bWV0aW1lcy4gKi8KICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotI2lmICEgVV9IQVZFX0lOVDhfVAot
dHlwZWRlZiBzaWduZWQgY2hhciBpbnQ4X3Q7Ci0jZW5kaWYKKy8qIHovT1MgaGFzIDxzdGRpbnQu
aD4sIGJ1dCBzb21lIHZlcnNpb25zIGFyZSBtaXNzaW5nIHVpbnQ4X3QgKEFQQVIgUEs2MjI0OCku
ICovCiAjaWYgIWRlZmluZWQoX191aW50OF90KQogI2RlZmluZSBfX3VpbnQ4X3QgMQogdHlwZWRl
ZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7CiAjZW5kaWYKLSNlbmRpZiAvKiBPUzM5MCAqLworI2Vu
ZGlmIC8qIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAqLworCisjZWxpZiBVX0hBVkVfSU5UVFlQ
RVNfSAogCi0jaW5jbHVkZSA8aW50dHlwZXMuaD4KKyMgICBpbmNsdWRlIDxpbnR0eXBlcy5oPgog
Ci0jZWxzZSAvKiBVX0hBVkVfSU5UVFlQRVNfSCAqLworI2Vsc2UgLyogbmVpdGhlciBVX0hBVkVf
U1RESU5UX0ggbm9yIFVfSEFWRV9JTlRUWVBFU19IICovCiAKICNpZiAhIFVfSEFWRV9JTlQ4X1QK
IHR5cGVkZWYgc2lnbmVkIGNoYXIgaW50OF90OwpAQCAtNzcsMTYgKzEwNiwyMSBAQCB0eXBlZGVm
IHVuc2lnbmVkIGludCB1aW50MzJfdDsKICNlbmRpZgogCiAjaWYgISBVX0hBVkVfSU5UNjRfVAor
I2lmZGVmIF9NU0NfVkVSCisgICAgdHlwZWRlZiBzaWduZWQgX19pbnQ2NCBpbnQ2NF90OworI2Vs
c2UKICAgICB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50NjRfdDsKLS8qIGVsc2Ugd2UgbWF5
IG5vdCBoYXZlIGEgNjQtYml0IHR5cGUgKi8KKyNlbmRpZgogI2VuZGlmCiAKICNpZiAhIFVfSEFW
RV9VSU5UNjRfVAorI2lmZGVmIF9NU0NfVkVSCisgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0
IHVpbnQ2NF90OworI2Vsc2UKICAgICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRf
dDsKLS8qIGVsc2Ugd2UgbWF5IG5vdCBoYXZlIGEgNjQtYml0IHR5cGUgKi8KKyNlbmRpZgogI2Vu
ZGlmCiAKLSNlbmRpZiAvKiBVX0hBVkVfSU5UVFlQRVNfSCAqLworI2VuZGlmIC8qIFVfSEFWRV9T
VERJTlRfSCAvIFVfSEFWRV9JTlRUWVBFU19IICovCiAKICNlbmRpZiAvKiBfUFRZUEVTX0ggKi8K
LQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3B1dGlsLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvcHV0aWwuaAppbmRleCA3MWQ1ZDI2
NDMwNTI5YjYwYjdlYTRjNGQ4MzBkYmM4NjE3NTI5NDY1Li42ZmM3ZTljZDVhNjJhNTU5NDZhZTZk
Nzc4N2JmMjVkMjM2MTEwYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1
L3VuaWNvZGUvcHV0aWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUv
cHV0aWwuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSog
ICBDb3B5cmlnaHQgKEMpIDE5OTctMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTMwLDEyICszMCw2IEBACiAgICogXGJyaWVm
IEMgQVBJOiBQbGF0Zm9ybSBVdGlsaXRpZXMKICAgKi8KIAotLyoqIERlZmluZSB0aGlzIHRvIDEg
aWYgeW91ciBwbGF0Zm9ybSBzdXBwb3J0cyBJRUVFIDc1NCBmbG9hdGluZyBwb2ludCwKLSAgIHRv
IDAgaWYgaXQgZG9lcyBub3QuICovCi0jaWZuZGVmIElFRUVfNzU0Ci0jICAgZGVmaW5lIElFRUVf
NzU0IDEKLSNlbmRpZgotCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFBsYXRmb3JtIHV0aWxp
dGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC05Myw0MyArODcsMjAgQEAgVV9TVEFCTEUg
Y29uc3QgY2hhciogVV9FWFBPUlQyIHVfZ2V0RGF0YURpcmVjdG9yeSh2b2lkKTsKICAqLwogVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIgdV9zZXREYXRhRGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcmVj
dG9yeSk7CiAKLSNpZiAhVV9DSEFSU0VUX0lTX1VURjgKLS8qKgotICogUGxlYXNlIHVzZSB1Y252
X2dldERlZmF1bHROYW1lKCkgaW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFn
ZSBmb3IgdGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgotICogVGhpcyBmdW5jdGlvbiBjYW4gY2Fs
bCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBwbGF0
Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVu
Y3Rpb24uCi0gKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3Jt
IAotICogQGludGVybmFsCi0gKi8KLVVfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1
cHJ2X2dldERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKLSNlbmRpZgotCi0vKioKLSAqIFBsZWFzZSB1
c2UgdWxvY19nZXREZWZhdWx0KCkgaW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2Nh
bGUgSUQgc3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCi0gKiAgICAgemVybyBpZiBv
bmUgY2Fubm90IGJlIGZvdW5kLiAKLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxl
KCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQotICogcGxhdGZvcm0gZG9jdW1l
bnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgotICog
QHJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCi0gKiBAaW50ZXJuYWwKLSAqLwot
VV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlE
KHZvaWQpOwotCiAvKioKICAqIEB7CiAgKiBGaWxlc3lzdGVtIGZpbGUgYW5kIHBhdGggc2VwYXJh
dG9yIGNoYXJhY3RlcnMuCiAgKiBFeGFtcGxlOiAnLycgYW5kICc6JyBvbiBVbml4LCAnXFwnIGFu
ZCAnOycgb24gV2luZG93cy4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCi0jaWZkZWYgWFBfTUFD
CisjaWYgVV9QTEFURk9STSA9PSBVX1BGX0NMQVNTSUNfTUFDT1MKICMgICBkZWZpbmUgVV9GSUxF
X1NFUF9DSEFSICc6JwogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFSICc6JwogIyAgIGRl
ZmluZSBVX1BBVEhfU0VQX0NIQVIgJzsnCiAjICAgZGVmaW5lIFVfRklMRV9TRVBfU1RSSU5HICI6
IgogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5lIFVfUEFU
SF9TRVBfU1RSSU5HICI7IgotI2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChPUzIpCisj
ZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKICMgICBkZWZpbmUgVV9GSUxFX1NF
UF9DSEFSICdcXCcKICMgICBkZWZpbmUgVV9GSUxFX0FMVF9TRVBfQ0hBUiAnLycKICMgICBkZWZp
bmUgVV9QQVRIX1NFUF9DSEFSICc7JwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ljdS91bmljb2RlL3VjYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91
Y2FsLmgKaW5kZXggOTk3YWYxNTNkNDM5YjRjMTMyZDRjZjBjMWU1MTgyMjY5OGIzN2IxNy4uOGYw
Y2NjYzQ1MTMxNTgwYzFjZDc2ZDg5Mjk3MGE0NjZmZWQyNjg2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VjYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaWN1L3VuaWNvZGUvdWNhbC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0y
MDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAogICog
b3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAq
LwpAQCAtMTIyLDcgKzEyMiw3IEBACiAgKiA8cD4KICAqIFRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0
IHN0cmluZ3MgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIG9mIGEKICAqIGNhbGVuZGFy
LCBhcyB0aG9zZSBtdXN0IGJlIG1vZGlmaWFibGUgb3Igb3ZlcnJpZGFibGUgYnkgdGhlIHVzZXIg
YXQKLSAqIHJ1bnRpbWUuIFVzZSB7QGxpbmsgRGF0ZUZvcm1hdH0KKyAqIHJ1bnRpbWUuIFVzZSB7
QGxpbmsgaWN1OjpEYXRlRm9ybWF0fQogICogdG8gZm9ybWF0IGRhdGVzLgogICoKICAqIDxwPgpA
QCAtMTQwLDYgKzE0MCwxMiBAQAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIAorLyoqCisgKiBU
aGUgdGltZSB6b25lIElEIHJlc2VydmVkIGZvciB1bmtub3duIHRpbWUgem9uZS4KKyAqIEBzdGFi
bGUgSUNVIDQuOAorICovCisjZGVmaW5lIFVDQUxfVU5LTk9XTl9aT05FX0lEICJFdGMvVW5rbm93
biIKKwogLyoqIEEgY2FsZW5kYXIuCiAgKiAgRm9yIHVzYWdlIGluIEMgcHJvZ3JhbXMuCiAgKiBA
c3RhYmxlIElDVSAyLjAKQEAgLTUxNiw2ICs1MjIsNTMgQEAgZW51bSBVQ2FsZW5kYXJBTVBNcyB7
CiB0eXBlZGVmIGVudW0gVUNhbGVuZGFyQU1QTXMgVUNhbGVuZGFyQU1QTXM7CiAKIC8qKgorICog
U3lzdGVtIHRpbWUgem9uZSB0eXBlIGNvbnN0YW50cyB1c2VkIGJ5IGZpbHRlcmluZyB6b25lcwor
ICogaW4gdWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uLgorICogQHNlZSB1Y2FsX29wZW5U
aW1lWm9uZUlERW51bWVyYXRpb24KKyAqIEBzdGFibGUgSUNVIDQuOAorICovCitlbnVtIFVTeXN0
ZW1UaW1lWm9uZVR5cGUgeworICAgIC8qKgorICAgICAqIEFueSBzeXN0ZW0gem9uZXMuCisgICAg
ICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgVUNBTF9aT05FX1RZUEVfQU5ZLAorICAg
IC8qKgorICAgICAqIENhbm9uaWNhbCBzeXN0ZW0gem9uZXMuCisgICAgICogQHN0YWJsZSBJQ1Ug
NC44CisgICAgICovCisgICAgVUNBTF9aT05FX1RZUEVfQ0FOT05JQ0FMLAorICAgIC8qKgorICAg
ICAqIENhbm9uaWNhbCBzeXN0ZW0gem9uZXMgYXNzb2NpYXRlZCB3aXRoIGFjdHVhbCBsb2NhdGlv
bnMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgVUNBTF9aT05FX1RZUEVf
Q0FOT05JQ0FMX0xPQ0FUSU9OCit9OworCisvKiogQHN0YWJsZSBJQ1UgNC44ICovCit0eXBlZGVm
IGVudW0gVVN5c3RlbVRpbWVab25lVHlwZSBVU3lzdGVtVGltZVpvbmVUeXBlOworCisvKiogCisg
KiBDcmVhdGUgYW4gZW51bWVyYXRpb24gb3ZlciBzeXN0ZW0gdGltZSB6b25lIElEcyB3aXRoIHRo
ZSBnaXZlbgorICogZmlsdGVyIGNvbmRpdGlvbnMuIAorICogQHBhcmFtIHpvbmVUeXBlICBUaGUg
c3lzdGVtIHRpbWUgem9uZSB0eXBlLgorICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgSVNPIDMxNjYg
dHdvLWxldHRlciBjb3VudHJ5IGNvZGUgb3IgVU4gTS40OQorICogICAgICAgICAgICAgICAgICB0
aHJlZS1kaWdpdCBhcmVhIGNvZGUuICBXaGVuIE5VTEwsIG5vIGZpbHRlcmluZworICogICAgICAg
ICAgICAgICAgICBkb25lIGJ5IHJlZ2lvbi4gCisgKiBAcGFyYW0gcmF3T2Zmc2V0IEFuIG9mZnNl
dCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMsIGlnbm9yaW5nIHRoZQorICogICAgICAgICAgICAg
ICAgICBlZmZlY3Qgb2YgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLCBpZiBhbnkuIFdoZW4gTlVMTCwK
KyAqICAgICAgICAgICAgICAgICAgbm8gZmlsdGVyaW5nIGRvbmUgYnkgem9uZSBvZmZzZXQuCisg
KiBAcGFyYW0gZWMgICAgICAgIEEgcG9pbnRlciB0byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUg
YW55IGVycm9ycworICogQHJldHVybiAgYW4gZW51bWVyYXRpb24gb2JqZWN0IHRoYXQgdGhlIGNh
bGxlciBtdXN0IGRpc3Bvc2Ugb2YKKyAqICAgICAgICAgIHVzaW5nIGVudW1fY2xvc2UoKSwgb3Ig
TlVMTCB1cG9uIGZhaWx1cmUuIEluIGNhc2Ugb2YgZmFpbHVyZSwKKyAqICAgICAgICAgICplYyB3
aWxsIGluZGljYXRlIHRoZSBlcnJvci4KKyAqIEBzdGFibGUgSUNVIDQuOAorICovIAorVV9TVEFC
TEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIKK3VjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlv
bihVU3lzdGVtVGltZVpvbmVUeXBlIHpvbmVUeXBlLCBjb25zdCBjaGFyKiByZWdpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QqIHJhd09mZnNldCwgVUVy
cm9yQ29kZSogZWMpOworCisvKioKICAqIENyZWF0ZSBhbiBlbnVtZXJhdGlvbiBvdmVyIGFsbCB0
aW1lIHpvbmVzLgogICoKICAqIEBwYXJhbSBlYyBpbnB1dC9vdXRwdXQgZXJyb3IgY29kZQpAQCAt
NjEyLDEwICs2NjUsMTAgQEAgdWNhbF9nZXROb3codm9pZCk7CiAgKiBBIFVDYWxlbmRhciBtYXkg
YmUgdXNlZCB0byBjb252ZXJ0IGEgbWlsbGlzZWNvbmQgdmFsdWUgdG8gYSB5ZWFyLAogICogbW9u
dGgsIGFuZCBkYXkuCiAgKiA8cD4KLSAqIE5vdGU6IFdoZW4gdW5rbm93biBUaW1lWm9uZSBJRCBp
cyBzcGVjaWZpZWQsIHRoZSBVQ2FsZW5kYXIgcmV0dXJuZWQKLSAqIGJ5IHRoZSBmdW5jdGlvbiBp
cyBpbml0aWFsaXplZCB3aXRoIEdNVCAoIkV0Yy9HTVQiKSB3aXRob3V0IGFueQotICogZXJyb3Jz
L3dhcm5pbmdzLiAgSWYgeW91IHdhbnQgdG8gY2hlY2sgaWYgYSBUaW1lWm9uZSBJRCBpcyB2YWxp
ZCwKLSAqIHVzZSB1Y2FsX2dldENhbm9uaWNhbFRpbWVab25lSUQgcHJpb3IgdG8gdGhpcyBmdW5j
dGlvbi4KKyAqIE5vdGU6IFdoZW4gdW5rbm93biBUaW1lWm9uZSBJRCBpcyBzcGVjaWZpZWQgb3Ig
aWYgdGhlIFRpbWVab25lIElEIHNwZWNpZmllZCBpcyAiRXRjL1Vua25vd24iLAorICogdGhlIFVD
YWxlbmRhciByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gaXMgaW5pdGlhbGl6ZWQgd2l0aCBHTVQg
em9uZSB3aXRoIFRpbWVab25lIElECisgKiA8Y29kZT5VQ0FMX1VOS05PV05fWk9ORV9JRDwvY29k
ZT4gKCJFdGMvVW5rbm93biIpIHdpdGhvdXQgYW55IGVycm9ycy93YXJuaW5ncy4gIElmIHlvdSB3
YW50CisgKiB0byBjaGVjayBpZiBhIFRpbWVab25lIElEIGlzIHZhbGlkIHByaW9yIHRvIHRoaXMg
ZnVuY3Rpb24sIHVzZSA8Y29kZT51Y2FsX2dldENhbm9uaWNhbFRpbWVab25lSUQ8L2NvZGU+Lgog
ICogCiAgKiBAcGFyYW0gem9uZUlEIFRoZSBkZXNpcmVkIFRpbWVab25lIElELiAgSWYgMCwgdXNl
IHRoZSBkZWZhdWx0IHRpbWUgem9uZS4KICAqIEBwYXJhbSBsZW4gVGhlIGxlbmd0aCBvZiB6b25l
SUQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KQEAgLTYyNyw2ICs2ODAsNyBAQCB1Y2FsX2dl
dE5vdyh2b2lkKTsKICAqIGFuZCB0aGVuIHBhc3MgdGhlIGxvY2FsZSB0byB1Y2FsX29wZW4gd2l0
aCBVQ0FMX0RFRkFVTFQgYXMgdGhlIHR5cGUuCiAgKiBAcGFyYW0gc3RhdHVzIEEgcG9pbnRlciB0
byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycwogICogQHJldHVybiBBIHBvaW50
ZXIgdG8gYSBVQ2FsZW5kYXIsIG9yIDAgaWYgYW4gZXJyb3Igb2NjdXJyZWQuCisgKiBAc2VlICNV
Q0FMX1VOS05PV05fWk9ORV9JRAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIFVfU1RBQkxFIFVD
YWxlbmRhciogVV9FWFBPUlQyIApAQCAtNjkxLDYgKzc0NSwyNCBAQCB1Y2FsX3NldFRpbWVab25l
KFVDYWxlbmRhciogICAgY2FsLAogICAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgIGxlbiwK
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogICBzdGF0dXMpOwogCisjaWZuZGVmIFVfSElE
RV9EUkFGVF9BUEkKKy8qKiAKKyAqIEdldCB0aGUgSUQgb2YgdGhlIFVDYWxlbmRhcidzIHRpbWUg
em9uZS4gCisgKiAKKyAqIEBwYXJhbSBjYWwgICAgICAgICAgIFRoZSBVQ2FsZW5kYXIgdG8gcXVl
cnkuIAorICogQHBhcmFtIHJlc3VsdCAgICAgICAgUmVjZWl2ZXMgdGhlIFVDYWxlbmRhcidzIHRp
bWUgem9uZSBJRC4gCisgKiBAcGFyYW0gcmVzdWx0TGVuZ3RoICBUaGUgbWF4aW11bSBzaXplIG9m
IHJlc3VsdC4gCisgKiBAcGFyYW0gc3RhdHVzICAgICAgICBSZWNlaXZlcyB0aGUgc3RhdHVzLiAK
KyAqIEByZXR1cm4gICAgICAgICAgICAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7IGlm
IGdyZWF0ZXIgdGhhbiByZXN1bHRMZW5ndGgsIHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4gCisg
KiBAZHJhZnQgSUNVIDUxIAorICovIAorVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMiAKK3VjYWxf
Z2V0VGltZVpvbmVJRChjb25zdCBVQ2FsZW5kYXIgKmNhbCwKKyAgICAgICAgICAgICAgICAgICBV
Q2hhciAqcmVzdWx0LAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgcmVzdWx0TGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgLyogVV9ISURF
X0RSQUZUX0FQSSAqLworCiAvKioKICAqIFBvc3NpYmxlIGZvcm1hdHMgZm9yIGEgVUNhbGVuZGFy
J3MgZGlzcGxheSBuYW1lIAogICogQHN0YWJsZSBJQ1UgMi4wCkBAIC03OTMsMjQgKzg2NSw3NSBA
QCB1Y2FsX2dldEdyZWdvcmlhbkNoYW5nZShjb25zdCBVQ2FsZW5kYXIgKmNhbCwgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogZW51bSBVQ2FsZW5kYXJB
dHRyaWJ1dGUgewotICAgIC8qKiBMZW5pZW50IHBhcnNpbmcgKi8KKyAgLyoqCisgICAqIExlbmll
bnQgcGFyc2luZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCiAgIFVDQUxfTEVOSUVOVCwK
LSAgLyoqIEZpcnN0IGRheSBvZiB3ZWVrICovCisgIC8qKgorICAgKiBGaXJzdCBkYXkgb2Ygd2Vl
aworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCiAgIFVDQUxfRklSU1RfREFZX09GX1dFRUss
Ci0gIC8qKiBNaW5pbXVtIG51bWJlciBvZiBkYXlzIGluIGZpcnN0IHdlZWsgKi8KLSAgVUNBTF9N
SU5JTUFMX0RBWVNfSU5fRklSU1RfV0VFSworICAvKioKKyAgICogTWluaW11bSBudW1iZXIgb2Yg
ZGF5cyBpbiBmaXJzdCB3ZWVrCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNBTF9N
SU5JTUFMX0RBWVNfSU5fRklSU1RfV0VFSywKKyAgLyoqCisgICAqIFRoZSBiZWhhdmlvciBmb3Ig
aGFuZGxpbmcgd2FsbCB0aW1lIHJlcGVhdGluZyBtdWx0aXBsZSB0aW1lcworICAgKiBhdCBuZWdh
dGl2ZSB0aW1lIHpvbmUgb2Zmc2V0IHRyYW5zaXRpb25zCisgICAqIEBzdGFibGUgSUNVIDQ5Cisg
ICAqLworICBVQ0FMX1JFUEVBVEVEX1dBTExfVElNRSwKKyAgLyoqCisgICAqIFRoZSBiZWhhdmlv
ciBmb3IgaGFuZGxpbmcgc2tpcHBlZCB3YWxsIHRpbWUgYXQgcG9zaXRpdmUgdGltZQorICAgKiB6
b25lIG9mZnNldCB0cmFuc2l0aW9ucy4KKyAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICovCisgIFVD
QUxfU0tJUFBFRF9XQUxMX1RJTUUKIH07CiAKIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KIHR5cGVk
ZWYgZW51bSBVQ2FsZW5kYXJBdHRyaWJ1dGUgVUNhbGVuZGFyQXR0cmlidXRlOwogCiAvKioKKyAq
IE9wdGlvbnMgZm9yIGhhbmRsaW5nIGFtYmlndW91cyB3YWxsIHRpbWUgYXQgdGltZSB6b25lCisg
KiBvZmZzZXQgdHJhbnNpdGlvbnMuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitlbnVtIFVDYWxl
bmRhcldhbGxUaW1lT3B0aW9uIHsKKyAgICAvKioKKyAgICAgKiBBbiBhbWJpZ3VvdXMgd2FsbCB0
aW1lIHRvIGJlIGludGVycHJldGVkIGFzIHRoZSBsYXRlc3QuCisgICAgICogVGhpcyBvcHRpb24g
aXMgdmFsaWQgZm9yIFVDQUxfUkVQRUFURURfV0FMTF9USU1FIGFuZAorICAgICAqIFVDQUxfU0tJ
UFBFRF9XQUxMX1RJTUUuCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICBVQ0FM
X1dBTExUSU1FX0xBU1QsCisgICAgLyoqCisgICAgICogQW4gYW1iaWd1b3VzIHdhbGwgdGltZSB0
byBiZSBpbnRlcnByZXRlZCBhcyB0aGUgZWFybGllc3QuCisgICAgICogVGhpcyBvcHRpb24gaXMg
dmFsaWQgZm9yIFVDQUxfUkVQRUFURURfV0FMTF9USU1FIGFuZAorICAgICAqIFVDQUxfU0tJUFBF
RF9XQUxMX1RJTUUuCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICBVQ0FMX1dB
TExUSU1FX0ZJUlNULAorICAgIC8qKgorICAgICAqIEFuIGFtYmlndW91cyB3YWxsIHRpbWUgdG8g
YmUgaW50ZXJwcmV0ZWQgYXMgdGhlIG5leHQgdmFsaWQKKyAgICAgKiB3YWxsIHRpbWUuIFRoaXMg
b3B0aW9uIGlzIHZhbGlkIGZvciBVQ0FMX1NLSVBQRURfV0FMTF9USU1FLgorICAgICAqIEBzdGFi
bGUgSUNVIDQ5CisgICAgICovCisgICAgVUNBTF9XQUxMVElNRV9ORVhUX1ZBTElECit9OworLyoq
IEBzdGFibGUgSUNVIDQ5ICovCit0eXBlZGVmIGVudW0gVUNhbGVuZGFyV2FsbFRpbWVPcHRpb24g
VUNhbGVuZGFyV2FsbFRpbWVPcHRpb247CisKKy8qKgogICogR2V0IGEgbnVtZXJpYyBhdHRyaWJ1
dGUgYXNzb2NpYXRlZCB3aXRoIGEgVUNhbGVuZGFyLgogICogTnVtZXJpYyBhdHRyaWJ1dGVzIGlu
Y2x1ZGUgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlaywgb3IgdGhlIG1pbmltYWwgbnVtYmVycwog
ICogb2YgZGF5cyBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgbW9udGguCiAgKiBAcGFyYW0gY2Fs
IFRoZSBVQ2FsZW5kYXIgdG8gcXVlcnkuCiAgKiBAcGFyYW0gYXR0ciBUaGUgZGVzaXJlZCBhdHRy
aWJ1dGU7IG9uZSBvZiBVQ0FMX0xFTklFTlQsIFVDQUxfRklSU1RfREFZX09GX1dFRUssCi0gKiBv
ciBVQ0FMX01JTklNQUxfREFZU19JTl9GSVJTVF9XRUVLCisgKiBVQ0FMX01JTklNQUxfREFZU19J
Tl9GSVJTVF9XRUVLLCBVQ0FMX1JFUEVBVEVEX1dBTExfVElNRSBvciBVQ0FMX1NLSVBQRURfV0FM
TF9USU1FCiAgKiBAcmV0dXJuIFRoZSB2YWx1ZSBvZiBhdHRyLgogICogQHNlZSB1Y2FsX3NldEF0
dHJpYnV0ZQogICogQHN0YWJsZSBJQ1UgMi4wCkBAIC04MjUsNyArOTQ4LDcgQEAgdWNhbF9nZXRB
dHRyaWJ1dGUoY29uc3QgVUNhbGVuZGFyKiAgICBjYWwsCiAgKiBvZiBkYXlzIGluIHRoZSBmaXJz
dCB3ZWVrIG9mIHRoZSBtb250aC4KICAqIEBwYXJhbSBjYWwgVGhlIFVDYWxlbmRhciB0byBzZXQu
CiAgKiBAcGFyYW0gYXR0ciBUaGUgZGVzaXJlZCBhdHRyaWJ1dGU7IG9uZSBvZiBVQ0FMX0xFTklF
TlQsIFVDQUxfRklSU1RfREFZX09GX1dFRUssCi0gKiBvciBVQ0FMX01JTklNQUxfREFZU19JTl9G
SVJTVF9XRUVLCisgKiBVQ0FMX01JTklNQUxfREFZU19JTl9GSVJTVF9XRUVLLCBVQ0FMX1JFUEVB
VEVEX1dBTExfVElNRSBvciBVQ0FMX1NLSVBQRURfV0FMTF9USU1FCiAgKiBAcGFyYW0gbmV3VmFs
dWUgVGhlIG5ldyB2YWx1ZSBvZiBhdHRyLgogICogQHNlZSB1Y2FsX2dldEF0dHJpYnV0ZQogICog
QHN0YWJsZSBJQ1UgMi4wCkBAIC05NTMsNiArMTA3Niw5IEBAIHVjYWxfZXF1aXZhbGVudFRvKGNv
bnN0IFVDYWxlbmRhciogIGNhbDEsCiAvKioKICAqIEFkZCBhIHNwZWNpZmllZCBzaWduZWQgYW1v
dW50IHRvIGEgcGFydGljdWxhciBmaWVsZCBpbiBhIFVDYWxlbmRhci4KICAqIFRoaXMgY2FuIG1v
ZGlmeSBtb3JlIHNpZ25pZmljYW50IGZpZWxkcyBpbiB0aGUgY2FsZW5kYXIuCisgKiBBZGRpbmcg
YSBwb3NpdGl2ZSB2YWx1ZSBhbHdheXMgbWVhbnMgbW92aW5nIGZvcndhcmQgaW4gdGltZSwgc28g
Zm9yIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsCisgKiBzdGFydGluZyB3aXRoIDEwMCBCQyBhbmQg
YWRkaW5nICsxIHRvIHllYXIgcmVzdWx0cyBpbiA5OSBCQyAoZXZlbiB0aG91Z2ggdGhpcyBhY3R1
YWxseSByZWR1Y2VzCisgKiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgZmllbGQgaXRzZWxmKS4K
ICAqIEBwYXJhbSBjYWwgVGhlIFVDYWxlbmRhciB0byB3aGljaCB0byBhZGQuCiAgKiBAcGFyYW0g
ZmllbGQgVGhlIGZpZWxkIHRvIHdoaWNoIHRvIGFkZCB0aGUgc2lnbmVkIHZhbHVlOyBvbmUgb2Yg
VUNBTF9FUkEsIFVDQUxfWUVBUiwgVUNBTF9NT05USCwKICAqIFVDQUxfV0VFS19PRl9ZRUFSLCBV
Q0FMX1dFRUtfT0ZfTU9OVEgsIFVDQUxfREFURSwgVUNBTF9EQVlfT0ZfWUVBUiwgVUNBTF9EQVlf
T0ZfV0VFSywKQEAgLTk3NCw2ICsxMTAwLDE1IEBAIHVjYWxfYWRkKFVDYWxlbmRhciogICAgICAg
ICAgIGNhbCwKIC8qKgogICogQWRkIGEgc3BlY2lmaWVkIHNpZ25lZCBhbW91bnQgdG8gYSBwYXJ0
aWN1bGFyIGZpZWxkIGluIGEgVUNhbGVuZGFyLgogICogVGhpcyB3aWxsIG5vdCBtb2RpZnkgbW9y
ZSBzaWduaWZpY2FudCBmaWVsZHMgaW4gdGhlIGNhbGVuZGFyLgorICogUm9sbGluZyBieSBhIHBv
c2l0aXZlIHZhbHVlIGFsd2F5cyBtZWFucyBtb3ZpbmcgZm9yd2FyZCBpbiB0aW1lICh1bmxlc3Mg
dGhlIGxpbWl0IG9mIHRoZQorICogZmllbGQgaXMgcmVhY2hlZCwgaW4gd2hpY2ggY2FzZSBpdCBt
YXkgcGluIG9yIHdyYXApLCBzbyBmb3IgR3JlZ29yaWFuIGNhbGVuZGFyLAorICogc3RhcnRpbmcg
d2l0aCAxMDAgQkMgYW5kIHJvbGxpbmcgdGhlIHllYXIgYnkgKzEgcmVzdWx0cyBpbiA5OSBCQy4K
KyAqIFdoZW4gZXJhcyBoYXZlIGEgZGVmaW5pdGUgYmVnaW5uaW5nIGFuZCBlbmQgKGFzIGluIHRo
ZSBDaGluZXNlIGNhbGVuZGFyLCBvciBhcyBpbiBtb3N0IGVyYXMgaW4gdGhlCisgKiBKYXBhbmVz
ZSBjYWxlbmRhcikgdGhlbiByb2xsaW5nIHRoZSB5ZWFyIHBhc3QgZWl0aGVyIGxpbWl0IG9mIHRo
ZSBlcmEgd2lsbCBjYXVzZSB0aGUgeWVhciB0byB3cmFwIGFyb3VuZC4KKyAqIFdoZW4gZXJhcyBv
bmx5IGhhdmUgYSBsaW1pdCBhdCBvbmUgZW5kLCB0aGVuIGF0dGVtcHRpbmcgdG8gcm9sbCB0aGUg
eWVhciBwYXN0IHRoYXQgbGltaXQgd2lsbCByZXN1bHQgaW4KKyAqIHBpbm5pbmcgdGhlIHllYXIg
YXQgdGhhdCBsaW1pdC4gTm90ZSB0aGF0IGZvciBtb3N0IGNhbGVuZGFycyBpbiB3aGljaCBlcmEg
MCB5ZWFycyBtb3ZlIGZvcndhcmQgaW4gdGltZQorICogKHN1Y2ggYXMgQnVkZGhpc3QsIEhlYnJl
dywgb3IgSXNsYW1pYyksIGl0IGlzIHBvc3NpYmxlIGZvciBhZGQgb3Igcm9sbCB0byByZXN1bHQg
aW4gbmVnYXRpdmUgeWVhcnMgZm9yCisgKiBlcmEgMCAodGhhdCBpcyB0aGUgb25seSB3YXkgdG8g
cmVwcmVzZW50IHllYXJzIGJlZm9yZSB0aGUgY2FsZW5kYXIgZXBvY2gpLgogICogQHBhcmFtIGNh
bCBUaGUgVUNhbGVuZGFyIHRvIHdoaWNoIHRvIGFkZC4KICAqIEBwYXJhbSBmaWVsZCBUaGUgZmll
bGQgdG8gd2hpY2ggdG8gYWRkIHRoZSBzaWduZWQgdmFsdWU7IG9uZSBvZiBVQ0FMX0VSQSwgVUNB
TF9ZRUFSLCBVQ0FMX01PTlRILAogICogVUNBTF9XRUVLX09GX1lFQVIsIFVDQUxfV0VFS19PRl9N
T05USCwgVUNBTF9EQVRFLCBVQ0FMX0RBWV9PRl9ZRUFSLCBVQ0FMX0RBWV9PRl9XRUVLLApAQCAt
MTIzMCwxNCArMTM2NSwxNSBAQCBlbnVtIFVDYWxlbmRhcldlZWtkYXlUeXBlIHsKIHR5cGVkZWYg
ZW51bSBVQ2FsZW5kYXJXZWVrZGF5VHlwZSBVQ2FsZW5kYXJXZWVrZGF5VHlwZTsKIAogLyoqCi0g
KiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGRheSBvZiB0aGUgd2VlayBpcyBhIHdlZWtkYXks
IGEKLSAqIHdlZWtlbmQgZGF5LCBvciBhIGRheSB0aGF0IHRyYW5zaXRpb25zIGZyb20gb25lIHRv
IHRoZSBvdGhlciwKLSAqIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiBJZiBhIHRyYW5zaXRpb24g
b2NjdXJzIGF0IG1pZG5pZ2h0LAorICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkYXkgb2Yg
dGhlIHdlZWsgaXMgYSB3ZWVrZGF5LCBhIHdlZWtlbmQgZGF5LAorICogb3IgYSBkYXkgdGhhdCB0
cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3RoZXIsIGZvciB0aGUgbG9jYWxlIGFuZAorICog
Y2FsZW5kYXIgc3lzdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFVDYWxlbmRhciAodGhlIGxvY2Fs
ZSdzIHJlZ2lvbiBpcworICogb2Z0ZW4gdGhlIG1vc3QgZGV0ZXJtaW5hbnQgZmFjdG9yKS4gSWYg
YSB0cmFuc2l0aW9uIG9jY3VycyBhdCBtaWRuaWdodCwKICAqIHRoZW4gdGhlIGRheXMgYmVmb3Jl
IGFuZCBhZnRlciB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUgdGhlCiAgKiB0eXBlIFVDQUxfV0VF
S0RBWSBvciBVQ0FMX1dFRUtFTkQuIElmIGEgdHJhbnNpdGlvbiBvY2N1cnMgYXQgYSB0aW1lCiAg
KiBvdGhlciB0aGFuIG1pZG5pZ2h0LCB0aGVuIHRoZSBkYXkgb2YgdGhlIHRyYW5zaXRpb24gd2ls
bCBoYXZlCiAgKiB0aGUgdHlwZSBVQ0FMX1dFRUtFTkRfT05TRVQgb3IgVUNBTF9XRUVLRU5EX0NF
QVNFLiBJbiB0aGlzIGNhc2UsIHRoZQotICogbWV0aG9kIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkg
d2lsbCByZXR1cm4gdGhlIHBvaW50IG9mCisgKiBmdW5jdGlvbiB1Y2FsX2dldFdlZWtlbmRUcmFu
c2l0aW9uKCkgd2lsbCByZXR1cm4gdGhlIHBvaW50IG9mCiAgKiB0cmFuc2l0aW9uLgogICogQHBh
cmFtIGNhbCBUaGUgVUNhbGVuZGFyIHRvIHF1ZXJ5LgogICogQHBhcmFtIGRheU9mV2VlayBUaGUg
ZGF5IG9mIHRoZSB3ZWVrIHdob3NlIHR5cGUgaXMgZGVzaXJlZCAoVUNBTF9TVU5EQVkuLlVDQUxf
U0FUVVJEQVkpLgpAQCAtMTI1MCw3ICsxMzg2LDcgQEAgdWNhbF9nZXREYXlPZldlZWtUeXBlKGNv
bnN0IFVDYWxlbmRhciAqY2FsLCBVQ2FsZW5kYXJEYXlzT2ZXZWVrIGRheU9mV2VlaywgVUVycm8K
IAogLyoqCiAgKiBSZXR1cm5zIHRoZSB0aW1lIGR1cmluZyB0aGUgZGF5IGF0IHdoaWNoIHRoZSB3
ZWVrZW5kIGJlZ2lucyBvciBlbmRzIGluCi0gKiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIElmIHVj
YWxfZ2V0RGF5T2ZXZWVrVHlwZSgpIHJlcnR1cm5zIFVDQUxfV0VFS0VORF9PTlNFVAorICogdGhp
cyBjYWxlbmRhciBzeXN0ZW0uICBJZiB1Y2FsX2dldERheU9mV2Vla1R5cGUoKSByZXR1cm5zIFVD
QUxfV0VFS0VORF9PTlNFVAogICogZm9yIHRoZSBzcGVjaWZpZWQgZGF5T2ZXZWVrLCByZXR1cm4g
dGhlIHRpbWUgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zLgogICogSWYgdWNhbF9nZXREYXlP
ZldlZWtUeXBlKCkgcmV0dXJucyBVQ0FMX1dFRUtFTkRfQ0VBU0UgZm9yIHRoZSBzcGVjaWZpZWQg
ZGF5T2ZXZWVrLAogICogcmV0dXJuIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSB3ZWVrZW5kIGVuZHMu
IElmIHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZSgpIHJldHVybnMKQEAgLTEyNzksNiArMTQxNSwxNTAg
QEAgdWNhbF9nZXRXZWVrZW5kVHJhbnNpdGlvbihjb25zdCBVQ2FsZW5kYXIgKmNhbCwgVUNhbGVu
ZGFyRGF5c09mV2VlayBkYXlPZldlZWssIFUKIFVfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgogdWNh
bF9pc1dlZWtlbmQoY29uc3QgVUNhbGVuZGFyICpjYWwsIFVEYXRlIGRhdGUsIFVFcnJvckNvZGUg
KnN0YXR1cyk7CiAKKy8qKgorICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRh
cmdldCB0aW1lIGFuZCB0aGUgdGltZSB0aGlzIGNhbGVuZGFyIG9iamVjdCBpcyBjdXJyZW50bHkg
c2V0IHRvLgorICogSWYgdGhlIHRhcmdldCB0aW1lIGlzIGFmdGVyIHRoZSBjdXJyZW50IGNhbGVu
ZGFyIHNldHRpbmcsIHRoZSB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBwb3NpdGl2ZS4KKyAq
IFRoZSBmaWVsZCBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB1bml0cyBvZiB0aGUgcmV0dXJuIHZh
bHVlLiBGb3IgZXhhbXBsZSwgaWYgZmllbGQgaXMgVUNBTF9NT05USAorICogYW5kIHVjYWxfZ2V0
RmllbGREaWZmZXJlbmNlIHJldHVybnMgMywgdGhlbiB0aGUgdGFyZ2V0IHRpbWUgaXMgMyB0byBs
ZXNzIHRoYW4gNCBtb250aHMgYWZ0ZXIgdGhlCisgKiBjdXJyZW50IGNhbGVuZGFyIHNldHRpbmcu
CisgKgorICogQXMgYSBzaWRlIGVmZmVjdCBvZiB0aGlzIGNhbGwsIHRoaXMgY2FsZW5kYXIgaXMg
YWR2YW5jZWQgdG93YXJkIHRhcmdldCBieSB0aGUgZ2l2ZW4gYW1vdW50LiBUaGF0IGlzLAorICog
Y2FsbGluZyB0aGlzIGZ1bmN0aW9uIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2FsbGluZyB1Y2Fs
X2FkZCBvbiB0aGlzIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZAorICogZmllbGQgYW5kIGFu
IGFtb3VudCBlcXVhbCB0byB0aGUgcmV0dXJuIHZhbHVlIGZyb20gdGhpcyBmdW5jdGlvbi4KKyAq
CisgKiBBIHR5cGljYWwgd2F5IG9mIHVzaW5nIHRoaXMgZnVuY3Rpb24gaXMgdG8gY2FsbCBpdCBm
aXJzdCB3aXRoIHRoZSBsYXJnZXN0IGZpZWxkIG9mIGludGVyZXN0LCB0aGVuCisgKiB3aXRoIHBy
b2dyZXNzaXZlbHkgc21hbGxlciBmaWVsZHMuCisgKiAKKyAqIEBwYXJhbSBjYWwgVGhlIFVDYWxl
bmRhciB0byBjb21wYXJlIGFuZCB1cGRhdGUuCisgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQg
ZGF0ZSB0byBjb21wYXJlIHRvIHRoZSBjdXJyZW50IGNhbGVuZGFyIHNldHRpbmcuCisgKiBAcGFy
YW0gZmllbGQgVGhlIGZpZWxkIHRvIGNvbXBhcmU7IG9uZSBvZiBVQ0FMX0VSQSwgVUNBTF9ZRUFS
LCBVQ0FMX01PTlRILAorICogVUNBTF9XRUVLX09GX1lFQVIsIFVDQUxfV0VFS19PRl9NT05USCwg
VUNBTF9EQVRFLCBVQ0FMX0RBWV9PRl9ZRUFSLCBVQ0FMX0RBWV9PRl9XRUVLLAorICogVUNBTF9E
QVlfT0ZfV0VFS19JTl9NT05USCwgVUNBTF9BTV9QTSwgVUNBTF9IT1VSLCBVQ0FMX0hPVVJfT0Zf
REFZLCBVQ0FMX01JTlVURSwgVUNBTF9TRUNPTkQsCisgKiBVQ0FMX01JTExJU0VDT05ELCBVQ0FM
X1pPTkVfT0ZGU0VULCBVQ0FMX0RTVF9PRkZTRVQuCisgKiBAcGFyYW0gc3RhdHVzIEEgcG9pbnRl
ciB0byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycworICogQHJldHVybiBUaGUg
ZGF0ZSBkaWZmZXJlbmNlIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkLgorICogQHN0YWJsZSBJQ1Ug
NC44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAordWNhbF9nZXRGaWVsZERpZmZl
cmVuY2UoVUNhbGVuZGFyKiBjYWwsCisgICAgICAgICAgICAgICAgICAgICAgICBVRGF0ZSB0YXJn
ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2FsZW5kYXJEYXRlRmllbGRzIGZpZWxkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogc3RhdHVzKTsKKworLyoqCisgKiBU
aW1lIHpvbmUgdHJhbnNpdGlvbiB0eXBlcyBmb3IgdWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25E
YXRlCisgKiBAc3RhYmxlIElDVSA1MAorICovCitlbnVtIFVUaW1lWm9uZVRyYW5zaXRpb25UeXBl
IHsKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5leHQgdHJhbnNpdGlvbiBhZnRlciB0aGUgY3Vy
cmVudCBkYXRlLAorICAgICAqIGkuZS4gZXhjbHVkZXMgdGhlIGN1cnJlbnQgZGF0ZQorICAgICAq
IEBzdGFibGUgSUNVIDUwCisgICAgICovCisgICAgVUNBTF9UWl9UUkFOU0lUSU9OX05FWFQsCisg
ICAgLyoqCisgICAgICogR2V0IHRoZSBuZXh0IHRyYW5zaXRpb24gb24gb3IgYWZ0ZXIgdGhlIGN1
cnJlbnQgZGF0ZSwKKyAgICAgKiBpLmUuIG1heSBpbmNsdWRlIHRoZSBjdXJyZW50IGRhdGUKKyAg
ICAgKiBAc3RhYmxlIElDVSA1MAorICAgICAqLworICAgIFVDQUxfVFpfVFJBTlNJVElPTl9ORVhU
X0lOQ0xVU0lWRSwKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHByZXZpb3VzIHRyYW5zaXRpb24g
YmVmb3JlIHRoZSBjdXJyZW50IGRhdGUsCisgICAgICogaS5lLiBleGNsdWRlcyB0aGUgY3VycmVu
dCBkYXRlCisgICAgICogQHN0YWJsZSBJQ1UgNTAKKyAgICAgKi8KKyAgICBVQ0FMX1RaX1RSQU5T
SVRJT05fUFJFVklPVVMsCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwcmV2aW91cyB0cmFuc2l0
aW9uIG9uIG9yIGJlZm9yZSB0aGUgY3VycmVudCBkYXRlLAorICAgICAqIGkuZS4gbWF5IGluY2x1
ZGUgdGhlIGN1cnJlbnQgZGF0ZQorICAgICAqIEBzdGFibGUgSUNVIDUwCisgICAgICovCisgICAg
VUNBTF9UWl9UUkFOU0lUSU9OX1BSRVZJT1VTX0lOQ0xVU0lWRQorfTsKKwordHlwZWRlZiBlbnVt
IFVUaW1lWm9uZVRyYW5zaXRpb25UeXBlIFVUaW1lWm9uZVRyYW5zaXRpb25UeXBlOyAvKio8IEBz
dGFibGUgSUNVIDUwICovCisKKy8qKgorKiBHZXQgdGhlIFVEYXRlIGZvciB0aGUgbmV4dC9wcmV2
aW91cyB0aW1lIHpvbmUgdHJhbnNpdGlvbiByZWxhdGl2ZSB0bworKiB0aGUgY2FsZW5kYXIncyBj
dXJyZW50IGRhdGUsIGluIHRoZSB0aW1lIHpvbmUgdG8gd2hpY2ggdGhlIGNhbGVuZGFyCisqIGlz
IGN1cnJlbnRseSBzZXQuIElmIHRoZXJlIGlzIG5vIGtub3duIHRpbWUgem9uZSB0cmFuc2l0aW9u
IG9mIHRoZQorKiByZXF1ZXN0ZWQgdHlwZSByZWxhdGl2ZSB0byB0aGUgY2FsZW5kYXIncyBkYXRl
LCB0aGUgZnVuY3Rpb24gcmV0dXJucworKiBGQUxTRS4KKyogQHBhcmFtIGNhbCBUaGUgVUNhbGVu
ZGFyIHRvIHF1ZXJ5LgorKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0cmFuc2l0aW9uIGRlc2ly
ZWQuCisqIEBwYXJhbSB0cmFuc2l0aW9uIEEgcG9pbnRlciB0byBhIFVEYXRlIHRvIGJlIHNldCB0
byB0aGUgdHJhbnNpdGlvbiB0aW1lLgorKiAgICAgICAgIElmIHRoZSBmdW5jdGlvbiByZXR1cm5z
IEZBTFNFLCB0aGUgdmFsdWUgc2V0IGlzIHVuc3BlY2lmaWVkLgorKiBAcGFyYW0gc3RhdHVzIEEg
cG9pbnRlciB0byBhIFVFcnJvckNvZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzLgorKiBAcmV0dXJu
IFRSVUUgaWYgYSB2YWxpZCB0cmFuc2l0aW9uIHRpbWUgaXMgc2V0IGluICp0cmFuc2l0aW9uLCBG
QUxTRQorKiAgICAgICAgIG90aGVyd2lzZS4KKyogQHN0YWJsZSBJQ1UgNTAKKyovCitVX0RSQUZU
IFVCb29sIFVfRVhQT1JUMiAKK3VjYWxfZ2V0VGltZVpvbmVUcmFuc2l0aW9uRGF0ZShjb25zdCBV
Q2FsZW5kYXIqIGNhbCwgVVRpbWVab25lVHJhbnNpdGlvblR5cGUgdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBVRGF0ZSogdHJhbnNpdGlvbiwgVUVycm9yQ29kZSogc3RhdHVz
KTsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyogQ29udmVydHMgYSBzeXN0ZW0g
dGltZSB6b25lIElEIHRvIGFuIGVxdWl2YWxlbnQgV2luZG93cyB0aW1lIHpvbmUgSUQuIEZvciBl
eGFtcGxlLAorKiBXaW5kb3dzIHRpbWUgem9uZSBJRCAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiBp
cyByZXR1cm5lZCBmb3IgaW5wdXQgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLgorKgorKiA8cD5UaGVy
ZSBhcmUgc3lzdGVtIHRpbWUgem9uZXMgdGhhdCBjYW5ub3QgYmUgbWFwcGVkIHRvIFdpbmRvd3Mg
em9uZXMuIFdoZW4gdGhlIGlucHV0CisqIHN5c3RlbSB0aW1lIHpvbmUgSUQgaXMgdW5rbm93biBv
ciB1bm1hcHBhYmxlIHRvIGEgV2luZG93cyB0aW1lIHpvbmUsIHRoZW4gdGhpcworKiBmdW5jdGlv
biByZXR1cm5zIDAgYXMgdGhlIHJlc3VsdCBsZW5ndGgsIGJ1dCB0aGUgb3BlcmF0aW9uIGl0c2Vs
ZiByZW1haW5zIHN1Y2Nlc3NmdWwKKyogKG5vIGVycm9yIHN0YXR1cyBzZXQgb24gcmV0dXJuKS4K
KyoKKyogPHA+VGhpcyBpbXBsZW1lbnRhdGlvbiB1dGlsaXplcyA8YSBocmVmPSJodHRwOi8vdW5p
Y29kZS5vcmcvY2xkci9jaGFydHMvc3VwcGxlbWVudGFsL3pvbmVfdHppZC5odG1sIj4KKyogWm9u
ZS1UemlkIG1hcHBpbmcgZGF0YTwvYT4uIFRoZSBtYXBwaW5nIGRhdGEgaXMgdXBkYXRlZCB0aW1l
IHRvIHRpbWUuIFRvIGdldCB0aGUgbGF0ZXN0IGNoYW5nZXMsCisqIHBsZWFzZSByZWFkIHRoZSBJ
Q1UgdXNlciBndWlkZSBzZWN0aW9uIDxhIGhyZWY9Imh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2pl
Y3Qub3JnL2RhdGV0aW1lL3RpbWV6b25lI1RPQy1VcGRhdGluZy10aGUtVGltZS1ab25lLURhdGEi
PgorKiBVcGRhdGluZyB0aGUgVGltZSBab25lIERhdGE8L2E+LgorKgorKiBAcGFyYW0gaWQgICAg
ICAgICAgICBBIHN5c3RlbSB0aW1lIHpvbmUgSUQuCisqIEBwYXJhbSBsZW4gICAgICAgICAgIFRo
ZSBsZW5ndGggb2YgPGNvZGU+aWQ8L2NvZGU+LCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQuCisq
IEBwYXJhbSB3aW5pZCAgICAgICAgIEEgYnVmZmVyIHRvIHJlY2VpdmUgYSBXaW5kb3dzIHRpbWUg
em9uZSBJRC4KKyogQHBhcmFtIHdpbmlkQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHRoZSByZXN1
bHQgYnVmZmVyIDxjb2RlPndpbmlkPC9jb2RlPi4KKyogQHBhcmFtIHN0YXR1cyAgICAgICAgUmVj
ZWl2ZXMgdGhlIHN0YXR1cy4KKyogQHJldHVybiAgICAgICAgICAgICAgVGhlIHJlc3VsdCBzdHJp
bmcgbGVuZ3RoLCBub3QgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsLgorKiBAc2VlIHVj
YWxfZ2V0VGltZVpvbmVJREZvcldpbmRvd3NJRAorKgorKiBAZHJhZnQgSUNVIDUyCisqLworVV9E
UkFGVCBpbnQzMl90IFVfRVhQT1JUMgordWNhbF9nZXRXaW5kb3dzVGltZVpvbmVJRChjb25zdCBV
Q2hhciogaWQsIGludDMyX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFy
KiB3aW5pZCwgaW50MzJfdCB3aW5pZENhcGFjaXR5LCBVRXJyb3JDb2RlKiBzdGF0dXMpOworCisv
KioKKyogQ29udmVydHMgYSBXaW5kb3dzIHRpbWUgem9uZSBJRCB0byBhbiBlcXVpdmFsZW50IHN5
c3RlbSB0aW1lIHpvbmUgSUQKKyogZm9yIGEgcmVnaW9uLiBGb3IgZXhhbXBsZSwgc3lzdGVtIHRp
bWUgem9uZSBJRCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgaXMgcmV0dXJuZWQKKyogZm9yIGlucHV0
IFdpbmRvd3MgSUQgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIgYW5kIHJlZ2lvbiAiVVMiIChvciA8
Y29kZT5udWxsPC9jb2RlPiksCisqICJBbWVyaWNhL1ZhbmNvdXZlciIgaXMgcmV0dXJuZWQgZm9y
IHRoZSBzYW1lIFdpbmRvd3MgSUQgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIgYW5kCisqIHJlZ2lv
biAiQ0EiLgorKgorKiA8cD5Ob3QgYWxsIFdpbmRvd3MgdGltZSB6b25lcyBjYW4gYmUgbWFwcGVk
IHRvIHN5c3RlbSB0aW1lIHpvbmVzLiBXaGVuIHRoZSBpbnB1dAorKiBXaW5kb3dzIHRpbWUgem9u
ZSBJRCBpcyB1bmtub3duIG9yIHVubWFwcGFibGUgdG8gYSBzeXN0ZW0gdGltZSB6b25lLCB0aGVu
IHRoaXMKKyogZnVuY3Rpb24gcmV0dXJucyAwIGFzIHRoZSByZXN1bHQgbGVuZ3RoLCBidXQgdGhl
IG9wZXJhdGlvbiBpdHNlbGYgcmVtYWlucyBzdWNjZXNzZnVsCisqIChubyBlcnJvciBzdGF0dXMg
c2V0IG9uIHJldHVybikuCisqCisqIDxwPlRoaXMgaW1wbGVtZW50YXRpb24gdXRpbGl6ZXMgPGEg
aHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL2NsZHIvY2hhcnRzL3N1cHBsZW1lbnRhbC96b25lX3R6
aWQuaHRtbCI+CisqIFpvbmUtVHppZCBtYXBwaW5nIGRhdGE8L2E+LiBUaGUgbWFwcGluZyBkYXRh
IGlzIHVwZGF0ZWQgdGltZSB0byB0aW1lLiBUbyBnZXQgdGhlIGxhdGVzdCBjaGFuZ2VzLAorKiBw
bGVhc2UgcmVhZCB0aGUgSUNVIHVzZXIgZ3VpZGUgc2VjdGlvbiA8YSBocmVmPSJodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9kYXRldGltZS90aW1lem9uZSNUT0MtVXBkYXRpbmctdGhl
LVRpbWUtWm9uZS1EYXRhIj4KKyogVXBkYXRpbmcgdGhlIFRpbWUgWm9uZSBEYXRhPC9hPi4KKyoK
KyogQHBhcmFtIHdpbmlkICAgICAgICAgQSBXaW5kb3dzIHRpbWUgem9uZSBJRC4KKyogQHBhcmFt
IGxlbiAgICAgICAgICAgVGhlIGxlbmd0aCBvZiA8Y29kZT53aW5pZDwvY29kZT4sIG9yIC0xIGlm
IG51bGwtdGVybWluYXRlZC4KKyogQHBhcmFtIHJlZ2lvbiAgICAgICAgQSBudWxsLXRlcm1pbmF0
ZWQgcmVnaW9uIGNvZGUsIG9yIDxjb2RlPk5VTEw8L2NvZGU+IGlmIG5vIHJlZ2lvbmFsIHByZWZl
cmVuY2UuCisqIEBwYXJhbSBpZCAgICAgICAgICAgIEEgYnVmZmVyIHRvIHJlY2VpdmUgYSBzeXN0
ZW0gdGltZSB6b25lIElELgorKiBAcGFyYW0gaWRDYXBhY2l0eSAgICBUaGUgY2FwYWNpdHkgb2Yg
dGhlIHJlc3VsdCBidWZmZXIgPGNvZGU+aWQ8L2NvZGU+LgorKiBAcGFyYW0gc3RhdHVzICAgICAg
ICBSZWNlaXZlcyB0aGUgc3RhdHVzLgorKiBAcmV0dXJuICAgICAgICAgICAgICBUaGUgcmVzdWx0
IHN0cmluZyBsZW5ndGgsIG5vdCBpbmNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwuCisqIEBz
ZWUgdWNhbF9nZXRXaW5kb3dzVGltZVpvbmVJRAorKgorKiBAZHJhZnQgSUNVIDUyCisqLworVV9E
UkFGVCBpbnQzMl90IFVfRVhQT1JUMgordWNhbF9nZXRUaW1lWm9uZUlERm9yV2luZG93c0lEKGNv
bnN0IFVDaGFyKiB3aW5pZCwgaW50MzJfdCBsZW4sIGNvbnN0IGNoYXIqIHJlZ2lvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIqIGlkLCBpbnQzMl90IGlkQ2FwYWNpdHks
IFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLwog
CiAjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgKi8KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VjaGFyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaWN1L3VuaWNvZGUvdWNoYXIuaAppbmRleCA5M2FhNjYzMjA2YjJiNGM0ODIwYjgy
Y2ZjNjZjODRhMmQwMGFlOWIyLi4xYTViNzFiNDYzZTQ4MzZlZTUxMzUyYmFhYzZiNGU0YzcyNjNm
MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNoYXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNoYXIuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMzks
NyArMzksNyBAQCBVX0NERUNMX0JFR0lOCiAgKiBAc2VlIHVfZ2V0VW5pY29kZVZlcnNpb24KICAq
IEBzdGFibGUgSUNVIDIuMAogICovCi0jZGVmaW5lIFVfVU5JQ09ERV9WRVJTSU9OICI2LjAiCisj
ZGVmaW5lIFVfVU5JQ09ERV9WRVJTSU9OICI2LjMiCiAKIC8qKgogICogXGZpbGUKQEAgLTEzOSwx
OSArMTM5LDYgQEAgVV9DREVDTF9CRUdJTgogICovCiAjZGVmaW5lIFVfTUFTSyh4KSAoKHVpbnQz
Ml90KTE8PCh4KSkKIAotLyoKLSAqICEhIE5vdGU6IFNldmVyYWwgY29tbWVudHMgaW4gdGhpcyBm
aWxlIGFyZSBtYWNoaW5lLXJlYWQgYnkgdGhlCi0gKiBnZW5wbmFtZSB0b29sLiAgVGhlc2UgY29t
bWVudHMgZGVzY3JpYmUgdGhlIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4KLSAqIGljdSBlbnVtIGNv
bnN0YW50cyBhbmQgVUNEIGVudGl0aWVzLiAgRG8gbm90IGRlbGV0ZSB0aGVtLiAgVXBkYXRlCi0g
KiB0aGVzZSBjb21tZW50cyBhcyBuZWVkZWQuCi0gKgotICogQW55IGNvbW1lbnQgb2YgdGhlIGZv
cm0gIi8gKltuYW1lXSogLyIgKHNwYWNlcyBhZGRlZCkgaXMgc3VjaAotICogYSBjb21tZW50Lgot
ICoKLSAqIFRoZSBVX0pHXyogYW5kIFVfR0NfKl9NQVNLIGNvbnN0YW50cyBhcmUgbWF0Y2hlZCBi
eSB0aGVpciBzeW1ib2xpYwotICogbmFtZSwgd2hpY2ggbXVzdCBtYXRjaCBQcm9wZXJ0eVZhbHVl
QWxpYXNlcy50eHQuCi0gKi8KLQogLyoqCiAgKiBTZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmlj
b2RlIHByb3BlcnRpZXMuCiAgKiBUaGVzZSBjb25zdGFudHMgYXJlIHVzZWQgaW4gZnVuY3Rpb25z
IGxpa2UgdV9oYXNCaW5hcnlQcm9wZXJ0eSB0byBzZWxlY3QKQEAgLTE3Miw5ICsxNTksMTEgQEAg
VV9DREVDTF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIHR5cGVkZWYgZW51bSBVUHJv
cGVydHkgewotICAgIC8qICBTZWUgbm90ZSAhIS4gIENvbW1lbnRzIG9mIHRoZSBmb3JtICJCaW5h
cnkgcHJvcGVydHkgRGFzaCIsCi0gICAgICAgICJFbnVtZXJhdGVkIHByb3BlcnR5IFNjcmlwdCIs
ICJEb3VibGUgcHJvcGVydHkgTnVtZXJpY19WYWx1ZSIsCi0gICAgICAgIGFuZCAiU3RyaW5nIHBy
b3BlcnR5IEFnZSIgYXJlIHJlYWQgYnkgZ2VucG5hbWUuICovCisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVUHJvcGVydHkgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAg
ICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVDSEFSXzxVbmljb2RlIHByb3Bl
cnR5IG5hbWU+PTxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qICBOb3RlOiBQbGFjZSBVQ0hB
Ul9BTFBIQUJFVElDIGJlZm9yZSBVQ0hBUl9CSU5BUllfU1RBUlQgc28gdGhhdAogICAgIGRlYnVn
Z2VycyBkaXNwbGF5IFVDSEFSX0FMUEhBQkVUSUMgYXMgdGhlIHN5bWJvbGljIG5hbWUgZm9yIDAs
CkBAIC00OTEsOCArNDgwLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgICAgICAo
aHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQogICAgICAgICBSZXR1cm5zIFVX
b3JkQnJlYWtWYWx1ZXMgdmFsdWVzLiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICBVQ0hBUl9XT1JE
X0JSRUFLPTB4MTAxNCwKKyAgICAvKiogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9C
cmFja2V0X1R5cGUgKG5ldyBpbiBVbmljb2RlIDYuMykuCisgICAgICAgIFVzZWQgaW4gVUFYICM5
OiBVbmljb2RlIEJpZGlyZWN0aW9uYWwgQWxnb3JpdGhtCisgICAgICAgIChodHRwOi8vd3d3LnVu
aWNvZGUub3JnL3JlcG9ydHMvdHI5LykKKyAgICAgICAgUmV0dXJucyBVQmlkaVBhaXJlZEJyYWNr
ZXRUeXBlIHZhbHVlcy4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVQ0hBUl9CSURJX1BBSVJFRF9C
UkFDS0VUX1RZUEU9MHgxMDE1LAogICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0
YW50IGZvciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElD
VSAyLjIgKi8KLSAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE1LAorICAgIFVDSEFSX0lOVF9MSU1J
VD0weDEwMTYsCiAKICAgICAvKiogQml0bWFzayBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5X01h
c2suCiAgICAgICAgIFRoaXMgaXMgdGhlIEdlbmVyYWxfQ2F0ZWdvcnkgcHJvcGVydHkgcmV0dXJu
ZWQgYXMgYSBiaXQgbWFzay4KQEAgLTUyNyw5ICs1MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVQcm9w
ZXJ0eSB7CiAgICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBDYXNlX0ZvbGRpbmcuCiAgICAgICAgIENv
cnJlc3BvbmRzIHRvIHVfc3RyRm9sZENhc2UgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQg
Ki8KICAgICBVQ0hBUl9DQVNFX0ZPTERJTkc9MHg0MDAyLAotICAgIC8qKiBTdHJpbmcgcHJvcGVy
dHkgSVNPX0NvbW1lbnQuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0SVNPQ29tbWVudC4g
QHN0YWJsZSBJQ1UgMi40ICovCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorICAgIC8q
KiBEZXByZWNhdGVkIHN0cmluZyBwcm9wZXJ0eSBJU09fQ29tbWVudC4KKyAgICAgICAgQ29ycmVz
cG9uZHMgdG8gdV9nZXRJU09Db21tZW50LiBAZGVwcmVjYXRlZCBJQ1UgNDkgKi8KICAgICBVQ0hB
Ul9JU09fQ09NTUVOVD0weDQwMDMsCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAq
LwogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgTG93ZXJjYXNlX01hcHBpbmcuCiAgICAgICAgIENv
cnJlc3BvbmRzIHRvIHVfc3RyVG9Mb3dlciBpbiB1c3RyaW5nLmguIEBzdGFibGUgSUNVIDIuNCAq
LwogICAgIFVDSEFSX0xPV0VSQ0FTRV9NQVBQSU5HPTB4NDAwNCwKQEAgLTU1MSwyOSArNTQ3LDMz
IEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVGl0
bGVjYXNlX01hcHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9UaXRsZSBpbiB1
c3RyaW5nLmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1RJVExFQ0FTRV9NQVBQSU5H
PTB4NDAwQSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAgICAgLyoqIFN0cmluZyBw
cm9wZXJ0eSBVbmljb2RlXzFfTmFtZS4KLSAgICAgICAgQ29ycmVzcG9uZHMgdG8gdV9jaGFyTmFt
ZS4gQHN0YWJsZSBJQ1UgMi40ICovCisgICAgICAgIFRoaXMgcHJvcGVydHkgaXMgb2YgbGl0dGxl
IHByYWN0aWNhbCB2YWx1ZS4KKyAgICAgICAgQmVnaW5uaW5nIHdpdGggSUNVIDQ5LCBJQ1UgQVBJ
cyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIHByb3BlcnR5LgorICAgICAgICBDb3Jy
ZXNwb25kcyB0byB1X2NoYXJOYW1lKFVfVU5JQ09ERV8xMF9DSEFSX05BTUUpLiBAZGVwcmVjYXRl
ZCBJQ1UgNDkgKi8KICAgICBVQ0hBUl9VTklDT0RFXzFfTkFNRT0weDQwMEIsCisjZW5kaWYgIC8q
IFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVXBwZXJj
YXNlX01hcHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9VcHBlciBpbiB1c3Ry
aW5nLmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1VQUEVSQ0FTRV9NQVBQSU5HPTB4
NDAwQywKKyAgICAvKiogU3RyaW5nIHByb3BlcnR5IEJpZGlfUGFpcmVkX0JyYWNrZXQgKG5ldyBp
biBVbmljb2RlIDYuMykuCisgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0QmlkaVBhaXJlZEJy
YWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVD0w
eDQwMEQsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIHN0cmlu
ZyBVbmljb2RlIHByb3BlcnRpZXMuIEBzdGFibGUgSUNVIDIuNCAqLwotICAgIFVDSEFSX1NUUklO
R19MSU1JVD0weDQwMEQsCisgICAgVUNIQVJfU1RSSU5HX0xJTUlUPTB4NDAwRSwKIAotICAgIC8q
KiBQcm92aXNpb25hbCBwcm9wZXJ0eSBTY3JpcHRfRXh0ZW5zaW9ucyAobmV3IGluIFVuaWNvZGUg
Ni4wKS4KLSAgICAgICAgQXMgYSBwcm92aXNpb25hbCBwcm9wZXJ0eSwgaXQgbWF5IGJlIG1vZGlm
aWVkIG9yIHJlbW92ZWQKLSAgICAgICAgaW4gZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBVbmljb2Rl
IFN0YW5kYXJkLCBhbmQgdGh1cyBpbiBJQ1UuCisgICAgLyoqIE1pc2NlbGxhbmVvdXMgcHJvcGVy
dHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCiAgICAgICAgIFNvbWUg
Y2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRzLgogICAgICAg
ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5pY29kZS5v
cmcvcmVwb3J0cy90cjI0Ly4KICAgICAgICAgQ29ycmVzcG9uZHMgdG8gdXNjcmlwdF9oYXNTY3Jp
cHQgYW5kIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyBpbiB1c2NyaXB0LmguCi0gICAgICAg
IEBkcmFmdCBJQ1UgNC42ICovCisgICAgICAgIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVDSEFS
X1NDUklQVF9FWFRFTlNJT05TPTB4NzAwMCwKLSAgICAvKiogRmlyc3QgY29uc3RhbnQgZm9yIFVu
aWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUgdHlwZXMuIEBkcmFmdCBJQ1UgNC42
ICovCisgICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHByb3BlcnRpZXMgd2l0aCB1
bnVzdWFsIHZhbHVlIHR5cGVzLiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9PVEhFUl9Q
Uk9QRVJUWV9TVEFSVD1VQ0hBUl9TQ1JJUFRfRVhURU5TSU9OUywKICAgICAvKiogT25lIG1vcmUg
dGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3Vh
bCB2YWx1ZSB0eXBlcy4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNiAqLworICAgICAqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgIFVDSEFSX09USEVSX1BST1BFUlRZX0xJTUlUPTB4NzAwMSwKLQogICAg
IC8qKiBSZXByZXNlbnRzIGEgbm9uZXhpc3RlbnQgb3IgaW52YWxpZCBwcm9wZXJ0eSBvciBwcm9w
ZXJ0eSB2YWx1ZS4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNIQVJfSU5WQUxJRF9DT0RFID0g
LTEKIH0gVVByb3BlcnR5OwpAQCAtNTg1LDcgKzU4NSwxMiBAQCB0eXBlZGVmIGVudW0gVVByb3Bl
cnR5IHsKICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyQ2F0ZWdvcnkKIHsKLSAgICAvKiogU2VlIG5v
dGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQ24iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAq
LworICAgIC8qCisgICAgICogTm90ZTogVUNoYXJDYXRlZ29yeSBjb25zdGFudHMgYW5kIHRoZWly
IEFQSSBjb21tZW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1h
dGNoZXMgcGFpcnMgb2YgbGluZXMgbGlrZQorICAgICAqICAgICAvICoqIDxVbmljb2RlIDItbGV0
dGVyIEdlbmVyYWxfQ2F0ZWdvcnkgdmFsdWU+IGNvbW1lbnQuLi4gKiAvCisgICAgICogICAgIFVf
PFtBLVpfXSs+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAgICAgLyoqIE5vbi1jYXRlZ29yeSBm
b3IgdW5hc3NpZ25lZCBhbmQgbm9uLWNoYXJhY3RlciBjb2RlIHBvaW50cy4gQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVV9VTkFTU0lHTkVEICAgICAgICAgICAgICA9IDAsCkBAIC03NzAsNyArNzc1
LDEyIEBAIHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiAgKiBAc3RhYmxlIElDVSAyLjAKICAq
LwogdHlwZWRlZiBlbnVtIFVDaGFyRGlyZWN0aW9uIHsKLSAgICAvKiogU2VlIG5vdGUgISEuICBD
b21tZW50cyBvZiB0aGUgZm9ybSAiRU4iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8q
CisgICAgICogTm90ZTogVUNoYXJEaXJlY3Rpb24gY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29t
bWVudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBh
aXJzIG9mIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAxLi4zLWxldHRlciBC
aWRpX0NsYXNzIHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10rPiA9
IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBMIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVfTEVGVF9UT19SSUdIVCAgICAgICAgICAgICAgID0gMCwKQEAgLTgxMCwyMSArODIwLDU3IEBA
IHR5cGVkZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7CiAgICAgVV9ESVJfTk9OX1NQQUNJTkdfTUFS
SyAgICAgICAgPSAxNywKICAgICAvKiogQk4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9CT1VO
REFSWV9ORVVUUkFMICAgICAgICAgICAgPSAxOCwKKyAgICAvKiogRlNJIEBzdGFibGUgSUNVIDUy
ICovCisgICAgVV9GSVJTVF9TVFJPTkdfSVNPTEFURSAgICAgICAgPSAxOSwKKyAgICAvKiogTFJJ
IEBzdGFibGUgSUNVIDUyICovCisgICAgVV9MRUZUX1RPX1JJR0hUX0lTT0xBVEUgICAgICAgPSAy
MCwKKyAgICAvKiogUkxJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9SSUdIVF9UT19MRUZUX0lT
T0xBVEUgICAgICAgPSAyMSwKKyAgICAvKiogUERJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9Q
T1BfRElSRUNUSU9OQUxfSVNPTEFURSAgICAgPSAyMiwKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVV9DSEFSX0RJUkVDVElPTl9DT1VOVAogfSBVQ2hhckRpcmVjdGlvbjsKIAogLyoq
CisgKiBCaWRpIFBhaXJlZCBCcmFja2V0IFR5cGUgY29uc3RhbnRzLgorICoKKyAqIEBzZWUgVUNI
QVJfQklESV9QQUlSRURfQlJBQ0tFVF9UWVBFCisgKiBAc3RhYmxlIElDVSA1MgorICovCit0eXBl
ZGVmIGVudW0gVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBV
QmlkaVBhaXJlZEJyYWNrZXRUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNk
LnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0JQVF88VW5p
Y29kZSBCaWRpX1BhaXJlZF9CcmFja2V0X1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IC8qKiBOb3QgYSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9O
T05FLAorICAgIC8qKiBPcGVuIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1MiAqLworICAg
IFVfQlBUX09QRU4sCisgICAgLyoqIENsb3NlIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1
MiAqLworICAgIFVfQlBUX0NMT1NFLAorICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgIFVf
QlBUX0NPVU5UIC8qIDMgKi8KK30gVUJpZGlQYWlyZWRCcmFja2V0VHlwZTsKKworLyoqCiAgKiBD
b25zdGFudHMgZm9yIFVuaWNvZGUgYmxvY2tzLCBzZWUgdGhlIFVuaWNvZGUgRGF0YSBmaWxlIEJs
b2Nrcy50eHQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBlbnVtIFVCbG9ja0NvZGUgeworICAg
IC8qCisgICAgICogTm90ZTogVUJsb2NrQ29kZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVw
YXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVUJM
T0NLXzxVbmljb2RlIEJsb2NrIHZhbHVlIG5hbWU+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAg
ICAgLyoqIE5ldyBOb19CbG9jayB2YWx1ZSBpbiBVbmljb2RlIDQuIEBzdGFibGUgSUNVIDIuNiAq
LwogICAgIFVCTE9DS19OT19CTE9DSyA9IDAsIC8qW25vbmVdKi8gLyogU3BlY2lhbCByYW5nZSBp
bmRpY2F0aW5nIE5vX0Jsb2NrICovCiAKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAg
VUJMT0NLX0JBU0lDX0xBVElOID0gMSwgLypbMDAwMF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICBV
QkxPQ0tfQkFTSUNfTEFUSU4gPSAxLCAvKlswMDAwXSovCiAKICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVUJMT0NLX0xBVElOXzFfU1VQUExFTUVOVD0yLCAvKlswMDgwXSovCkBAIC0x
MDYxLDcgKzExMDcsNyBAQCBlbnVtIFVCbG9ja0NvZGUgewogICAgIFVCTE9DS19MT1dfU1VSUk9H
QVRFUyA9NzcsIC8qW0RDMDBdKi8KIAogICAgIC8qKgotICAgICAqIFNhbWUgYXMgVUJMT0NLX1BS
SVZBVEVfVVNFX0FSRUEuCisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0UuCiAgICAg
ICogVW50aWwgVW5pY29kZSAzLjEuMSwgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMg
IlByaXZhdGUgVXNlIiwKICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFk
IHRoaXMgYmxvY2suCiAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRo
ZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiBhbmQKQEAgLTEwNjksOSArMTExNSw5IEBA
IGVudW0gVUJsb2NrQ29kZSB7CiAgICAgICoKICAgICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICAg
Ki8KLSAgICBVQkxPQ0tfUFJJVkFURV9VU0UgPSA3OCwKKyAgICBVQkxPQ0tfUFJJVkFURV9VU0Vf
QVJFQSA9NzgsIC8qW0UwMDBdKi8KICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklW
QVRFX1VTRS4KKyAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLgogICAgICAq
IFVudGlsIFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQ
cml2YXRlIFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0
aGlzIGJsb2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUg
Qk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDc5LDcgKzExMjUsNyBAQCBl
bnVtIFVCbG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICov
Ci0gICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPVVCTE9DS19QUklWQVRFX1VTRSwgLypbRTAw
MF0qLworICAgIFVCTE9DS19QUklWQVRFX1VTRSA9IFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLAog
CiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElU
WV9JREVPR1JBUEhTID03OSwgLypbRjkwMF0qLwpAQCAtMTExMSwzMyArMTE1NywzMyBAQCBlbnVt
IFVCbG9ja0NvZGUgewogICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSAzLjEgKi8KIAogICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfT0xEX0lUQUxJQyA9IDg4ICAsIC8q
WzEwMzAwXSovCisgICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCwgLypbMTAzMDBdKi8KICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0dPVEhJQyA9IDg5ICwgLypbMTAzMzBd
Ki8KKyAgICBVQkxPQ0tfR09USElDID0gODksIC8qWzEwMzMwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwotICAgIFVCTE9DS19ERVNFUkVUID0gOTAgLCAvKlsxMDQwMF0qLworICAgIFVC
TE9DS19ERVNFUkVUID0gOTAsIC8qWzEwNDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAq
LwotICAgIFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEgLCAvKlsxRDAwMF0q
LworICAgIFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEsIC8qWzFEMDAwXSov
CiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMg
PSA5MiAsIC8qWzFEMTAwXSovCisgICAgVUJMT0NLX01VU0lDQUxfU1lNQk9MUyA9IDkyLCAvKlsx
RDEwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTUFUSEVNQVRJ
Q0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTID0gOTMgICwgLypbMUQ0MDBdKi8KKyAgICBVQkxPQ0tf
TUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTID0gOTMsIC8qWzFENDAwXSovCiAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DSktfVU5JRklFRF9JREVPR1JBUEhT
X0VYVEVOU0lPTl9CICA9IDk0ICwgLypbMjAwMDBdKi8KKyAgICBVQkxPQ0tfQ0pLX1VOSUZJRURf
SURFT0dSQVBIU19FWFRFTlNJT05fQiAgPSA5NCwgLypbMjAwMDBdKi8KICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQ
UExFTUVOVCA9IDk1ICwgLypbMkY4MDBdKi8KKyAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlf
SURFT0dSQVBIU19TVVBQTEVNRU5UID0gOTUsIC8qWzJGODAwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVCTE9DS19UQUdTID0gOTYsIC8qW0UwMDAwXSovCiAKICAgICAvKiBO
ZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4yICovCiAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMy4wICAq
LworICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UID0gOTcsIC8qWzA1MDBdKi8KICAgICAv
KioKICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50
YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCiAgICAgICogQHN0YWJsZSBJQ1Ug
Mi4yCiAgICAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlRBUlkgPSA5NywgCi0g
ICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KLSAgICBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVO
VCA9IFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZLCAvKlswNTAwXSovCisgICAgVUJMT0NL
X0NZUklMTElDX1NVUFBMRU1FTlRBUlkgPSBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCwgCiAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVCTE9DS19UQUdBTE9HID0gOTgsIC8qWzE3
MDBdKi8KICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCkBAIC0xMzgxLDggKzE0MjcsMzMgQEAg
ZW51bSBVQmxvY2tDb2RlIHsKICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUJMT0NL
X0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0QgPSAyMDksIC8qWzJCNzQwXSovCiAK
LSAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0NPVU5UID0gMjEwLAorICAg
IC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSA2LjEgKi8KKworICAgIC8qKiBAc3RhYmxlIElDVSA0
OSAqLworICAgIFVCTE9DS19BUkFCSUNfRVhURU5ERURfQSA9IDIxMCwgLypbMDhBMF0qLworICAg
IC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19BUkFCSUNfTUFUSEVNQVRJQ0FMX0FM
UEhBQkVUSUNfU1lNQk9MUyA9IDIxMSwgLypbMUVFMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfQ0hBS01BID0gMjEyLCAvKlsxMTEwMF0qLworICAgIC8qKiBAc3Rh
YmxlIElDVSA0OSAqLworICAgIFVCTE9DS19NRUVURUlfTUFZRUtfRVhURU5TSU9OUyA9IDIxMywg
LypbQUFFMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19NRVJPSVRJ
Q19DVVJTSVZFID0gMjE0LCAvKlsxMDlBMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLwor
ICAgIFVCTE9DS19NRVJPSVRJQ19ISUVST0dMWVBIUyA9IDIxNSwgLypbMTA5ODBdKi8KKyAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUlBTyA9IDIxNiwgLypbMTZGMDBdKi8K
KyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU0hBUkFEQSA9IDIxNywgLypb
MTExODBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU09SQV9TT01Q
RU5HID0gMjE4LCAvKlsxMTBEMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVC
TE9DS19TVU5EQU5FU0VfU1VQUExFTUVOVCA9IDIxOSwgLypbMUNDMF0qLworICAgIC8qKiBAc3Rh
YmxlIElDVSA0OSAqLworICAgIFVCTE9DS19UQUtSSSA9IDIyMCwgLypbMTE2ODBdKi8KKworICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBVQkxPQ0tfQ09VTlQgPSAyMjEsCiAKICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUJMT0NLX0lOVkFMSURfQ09ERT0tMQpAQCAtMTM5
OSw3ICsxNDcwLDEzIEBAIHR5cGVkZWYgZW51bSBVQmxvY2tDb2RlIFVCbG9ja0NvZGU7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7Ci0gICAg
VV9FQV9ORVVUUkFMLCAgIC8qW05dKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBO
b3RlOiBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2Qu
cHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfRUFfPFVuaWNv
ZGUgRWFzdF9Bc2lhbl9XaWR0aCB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9FQV9ORVVU
UkFMLCAgIC8qW05dKi8KICAgICBVX0VBX0FNQklHVU9VUywgLypbQV0qLwogICAgIFVfRUFfSEFM
RldJRFRILCAvKltIXSovCiAgICAgVV9FQV9GVUxMV0lEVEgsIC8qW0ZdKi8KQEAgLTE0MDcsMTAg
KzE0ODQsNiBAQCB0eXBlZGVmIGVudW0gVUVhc3RBc2lhbldpZHRoIHsKICAgICBVX0VBX1dJREUs
ICAgICAgLypbV10qLwogICAgIFVfRUFfQ09VTlQKIH0gVUVhc3RBc2lhbldpZHRoOwotLyoKLSAq
IEltcGxlbWVudGF0aW9uIG5vdGU6Ci0gKiBLZWVwIFVFYXN0QXNpYW5XaWR0aCBjb25zdGFudCB2
YWx1ZXMgaW4gc3luYyB3aXRoIG5hbWVzIGxpc3QgaW4gZ2VucHJvcHMvcHJvcHMyLmMuCi0gKi8K
IAogLyoqCiAgKiBTZWxlY3RvciBjb25zdGFudHMgZm9yIHVfY2hhck5hbWUoKS4KQEAgLTE0MjQs
MTAgKzE0OTcsMjEgQEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgKiBAc3RhYmxl
IElDVSAyLjAKICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyTmFtZUNob2ljZSB7CisgICAgLyoqIFVu
aWNvZGUgY2hhcmFjdGVyIG5hbWUgKE5hbWUgcHJvcGVydHkpLiBAc3RhYmxlIElDVSAyLjAgKi8K
ICAgICBVX1VOSUNPREVfQ0hBUl9OQU1FLAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkg
CisgICAgLyoqCisgICAgICogVGhlIFVuaWNvZGVfMV9OYW1lIHByb3BlcnR5IHZhbHVlIHdoaWNo
IGlzIG9mIGxpdHRsZSBwcmFjdGljYWwgdmFsdWUuCisgICAgICogQmVnaW5uaW5nIHdpdGggSUNV
IDQ5LCBJQ1UgQVBJcyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIG5hbWUgY2hvaWNl
LgorICAgICAqIEBkZXByZWNhdGVkIElDVSA0OQorICAgICAqLwogICAgIFVfVU5JQ09ERV8xMF9D
SEFSX05BTUUsCi0gICAgVV9FWFRFTkRFRF9DSEFSX05BTUUsCi0gICAgVV9DSEFSX05BTUVfQUxJ
QVMsICAgICAgICAgIC8qKjwgQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBz
dGFibGUgSUNVIDQuNCAqLworI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKyAg
ICAvKiogU3RhbmRhcmQgb3Igc3ludGhldGljIGNoYXJhY3RlciBuYW1lLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBVX0VYVEVOREVEX0NIQVJfTkFNRSA9IFVfVU5JQ09ERV9DSEFSX05BTUUrMiwK
KyAgICAvKiogQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBzdGFibGUgSUNV
IDQuNCAqLworICAgIFVfQ0hBUl9OQU1FX0FMSUFTLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVX0NIQVJfTkFNRV9DSE9JQ0VfQ09VTlQKIH0gVUNoYXJOYW1lQ2hvaWNlOwogCkBA
IC0xNDU3LDcgKzE1NDEsMTMgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eU5hbWVDaG9pY2Ugewog
ICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUg
ewotICAgIFVfRFRfTk9ORSwgICAgICAgICAgICAgIC8qW25vbmVdKi8gLypTZWUgbm90ZSAhISov
CisgICAgLyoKKyAgICAgKiBOb3RlOiBVRGVjb21wb3NpdGlvblR5cGUgY29uc3RhbnRzIGFyZSBw
YXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisg
ICAgICogICAgIFVfRFRfPFVuaWNvZGUgRGVjb21wb3NpdGlvbl9UeXBlIHZhbHVlIG5hbWU+Cisg
ICAgICovCisKKyAgICBVX0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovCiAgICAgVV9E
VF9DQU5PTklDQUwsICAgICAgICAgLypbY2FuXSovCiAgICAgVV9EVF9DT01QQVQsICAgICAgICAg
ICAgLypbY29tXSovCiAgICAgVV9EVF9DSVJDTEUsICAgICAgICAgICAgLypbZW5jXSovCkBAIC0x
NDg1LDcgKzE1NzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVEZWNvbXBvc2l0aW9uVHlwZSB7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlwZSB7Ci0gICAgVV9K
VF9OT05fSk9JTklORywgICAgICAgLypbVV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAg
ICAqIE5vdGU6IFVKb2luaW5nVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVj
ZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9KVF88VW5p
Y29kZSBKb2luaW5nX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfSlRfTk9OX0pP
SU5JTkcsICAgICAgIC8qW1VdKi8KICAgICBVX0pUX0pPSU5fQ0FVU0lORywgICAgICAvKltDXSov
CiAgICAgVV9KVF9EVUFMX0pPSU5JTkcsICAgICAgLypbRF0qLwogICAgIFVfSlRfTEVGVF9KT0lO
SU5HLCAgICAgIC8qW0xdKi8KQEAgLTE1MDEsNiArMTU5NywxMiBAQCB0eXBlZGVmIGVudW0gVUpv
aW5pbmdUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVUpvaW5p
bmdHcm91cCB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBVSm9pbmluZ0dyb3VwIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX0pHXzxVbmljb2RlIEpvaW5pbmdfR3JvdXAgdmFsdWUgbmFtZT4KKyAg
ICAgKi8KKwogICAgIFVfSkdfTk9fSk9JTklOR19HUk9VUCwKICAgICBVX0pHX0FJTiwKICAgICBV
X0pHX0FMQVBILApAQCAtMTU1OSw2ICsxNjYxLDcgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nR3Jv
dXAgewogICAgIFVfSkdfQlVSVVNIQVNLSV9ZRUhfQkFSUkVFLCAvKio8IEBzdGFibGUgSUNVIDQu
MCAqLwogICAgIFVfSkdfRkFSU0lfWUVILCAvKio8IEBzdGFibGUgSUNVIDQuNCAqLwogICAgIFVf
SkdfTllBLCAgICAgICAvKio8IEBzdGFibGUgSUNVIDQuNCAqLworICAgIFVfSkdfUk9ISU5HWUFf
WUVILCAgLyoqPCBAc3RhYmxlIElDVSA0OSAqLwogICAgIFVfSkdfQ09VTlQKIH0gVUpvaW5pbmdH
cm91cDsKIApAQCAtMTU2OSw3ICsxNjcyLDEzIEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3Vw
IHsKICAqIEBzdGFibGUgSUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVUdyYXBoZW1lQ2x1c3Rl
ckJyZWFrIHsKLSAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhdKi8gLypTZWUg
bm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgY29u
c3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBs
aW5lcyBsaWtlCisgICAgICogICAgIFVfR0NCXzxVbmljb2RlIEdyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfR0NCX09USEVSID0gMCwgICAgICAgICAg
ICAvKltYWF0qLwogICAgIFVfR0NCX0NPTlRST0wgPSAxLCAgICAgICAgICAvKltDTl0qLwogICAg
IFVfR0NCX0NSID0gMiwgICAgICAgICAgICAgICAvKltDUl0qLwogICAgIFVfR0NCX0VYVEVORCA9
IDMsICAgICAgICAgICAvKltFWF0qLwpAQCAtMTU4MSw3ICsxNjkwLDggQEAgdHlwZWRlZiBlbnVt
IFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7CiAgICAgVV9HQ0JfViA9IDksICAgICAgICAgICAgICAg
IC8qW1ZdKi8KICAgICBVX0dDQl9TUEFDSU5HX01BUksgPSAxMCwgICAgLypbU01dKi8gLyogZnJv
bSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA1LjEvSUNVIDQuMCAqLwogICAgIFVfR0NCX1BSRVBF
TkQgPSAxMSwgICAgICAgICAvKltQUF0qLwotICAgIFVfR0NCX0NPVU5UID0gMTIKKyAgICBVX0dD
Ql9SRUdJT05BTF9JTkRJQ0FUT1IgPSAxMiwgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYu
Mi9JQ1UgNTAgKi8KKyAgICBVX0dDQl9DT1VOVCA9IDEzCiB9IFVHcmFwaGVtZUNsdXN0ZXJCcmVh
azsKIAogLyoqCkBAIC0xNTkyLDcgKzE3MDIsMTMgQEAgdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNs
dXN0ZXJCcmVhayB7CiAgKiBAc3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVXb3Jk
QnJlYWtWYWx1ZXMgewotICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAv
KlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVXb3JkQnJlYWtWYWx1ZXMgY29u
c3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBs
aW5lcyBsaWtlCisgICAgICogICAgIFVfV0JfPFVuaWNvZGUgV29yZF9CcmVhayB2YWx1ZSBuYW1l
PgorICAgICAqLworCisgICAgVV9XQl9PVEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovCiAg
ICAgVV9XQl9BTEVUVEVSID0gMSwgICAgICAgICAgIC8qW0xFXSovCiAgICAgVV9XQl9GT1JNQVQg
PSAyLCAgICAgICAgICAgIC8qW0ZPXSovCiAgICAgVV9XQl9LQVRBS0FOQSA9IDMsICAgICAgICAg
IC8qW0tBXSovCkBAIC0xNjA1LDcgKzE3MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtW
YWx1ZXMgewogICAgIFVfV0JfTEYgPSAxMCwgICAgICAgICAgICAgICAvKltMRl0qLwogICAgIFVf
V0JfTUlETlVNTEVUID0xMSwgICAgICAgICAvKltNQl0qLwogICAgIFVfV0JfTkVXTElORSA9MTIs
ICAgICAgICAgICAvKltOTF0qLwotICAgIFVfV0JfQ09VTlQgPSAxMworICAgIFVfV0JfUkVHSU9O
QUxfSU5ESUNBVE9SID0gMTMsICAgLypbUkldKi8gLyogbmV3IGluIFVuaWNvZGUgNi4yL0lDVSA1
MCAqLworICAgIFVfV0JfSEVCUkVXX0xFVFRFUiA9IDE0LCAgICAvKltITF0qLyAvKiBmcm9tIGhl
cmUgb246IG5ldyBpbiBVbmljb2RlIDYuMy9JQ1UgNTIgKi8KKyAgICBVX1dCX1NJTkdMRV9RVU9U
RSA9IDE1LCAgICAgLypbU1FdKi8KKyAgICBVX1dCX0RPVUJMRV9RVU9URSA9IDE2LCAgICAgLypb
RFFdKi8KKyAgICBVX1dCX0NPVU5UID0gMTcKIH0gVVdvcmRCcmVha1ZhbHVlczsKIAogLyoqCkBA
IC0xNjE1LDcgKzE3MzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtWYWx1ZXMgewogICog
QHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7Ci0gICAg
VV9TQl9PVEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEqLworICAg
IC8qCisgICAgICogTm90ZTogVVNlbnRlbmNlQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkg
cHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAg
IFVfU0JfPFVuaWNvZGUgU2VudGVuY2VfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IFVfU0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfU0JfQVRFUk0gPSAx
LCAgICAgICAgICAgICAvKltBVF0qLwogICAgIFVfU0JfQ0xPU0UgPSAyLCAgICAgICAgICAgICAv
KltDTF0qLwogICAgIFVfU0JfRk9STUFUID0gMywgICAgICAgICAgICAvKltGT10qLwpAQCAtMTY0
MCw3ICsxNzY2LDEzIEBAIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVMaW5lQnJlYWsgewotICAgIFVfTEJfVU5LTk9X
TiA9IDAsICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVMaW5lQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHku
CisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfTEJfPFVuaWNvZGUg
TGluZV9CcmVhayB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9MQl9VTktOT1dOID0gMCwg
ICAgICAgICAgIC8qW1hYXSovCiAgICAgVV9MQl9BTUJJR1VPVVMgPSAxLCAgICAgICAgIC8qW0FJ
XSovCiAgICAgVV9MQl9BTFBIQUJFVElDID0gMiwgICAgICAgIC8qW0FMXSovCiAgICAgVV9MQl9C
UkVBS19CT1RIID0gMywgICAgICAgIC8qW0IyXSovCkBAIC0xNjU1LDkgKzE3ODcsOSBAQCB0eXBl
ZGVmIGVudW0gVUxpbmVCcmVhayB7CiAgICAgVV9MQl9HTFVFID0gMTIsICAgICAgICAgICAgICAv
KltHTF0qLwogICAgIFVfTEJfSFlQSEVOID0gMTMsICAgICAgICAgICAgLypbSFldKi8KICAgICBV
X0xCX0lERU9HUkFQSElDID0gMTQsICAgICAgIC8qW0lEXSovCi0gICAgVV9MQl9JTlNFUEVSQUJM
RSA9IDE1LAogICAgIC8qKiBSZW5hbWVkIGZyb20gdGhlIG1pc3NwZWxsZWQgImluc2VwZXJhYmxl
IiBpbiBVbmljb2RlIDQuMC4xL0lDVSAzLjAgQHN0YWJsZSBJQ1UgMy4wICovCi0gICAgVV9MQl9J
TlNFUEFSQUJMRT1VX0xCX0lOU0VQRVJBQkxFLC8qW0lOXSovCisgICAgVV9MQl9JTlNFUEFSQUJM
RSA9IDE1LCAgICAgICAvKltJTl0qLworICAgIFVfTEJfSU5TRVBFUkFCTEUgPSBVX0xCX0lOU0VQ
QVJBQkxFLAogICAgIFVfTEJfSU5GSVhfTlVNRVJJQyA9IDE2LCAgICAgLypbSVNdKi8KICAgICBV
X0xCX0xJTkVfRkVFRCA9IDE3LCAgICAgICAgIC8qW0xGXSovCiAgICAgVV9MQl9OT05TVEFSVEVS
ID0gMTgsICAgICAgICAvKltOU10qLwpAQCAtMTY3OSw3ICsxODExLDEwIEBAIHR5cGVkZWYgZW51
bSBVTGluZUJyZWFrIHsKICAgICBVX0xCX0pUID0gMzQsICAgICAgICAgICAgICAgIC8qW0pUXSov
CiAgICAgVV9MQl9KViA9IDM1LCAgICAgICAgICAgICAgICAvKltKVl0qLwogICAgIFVfTEJfQ0xP
U0VfUEFSRU5USEVTSVMgPSAzNiwgLypbQ1BdKi8gLyogbmV3IGluIFVuaWNvZGUgNS4yL0lDVSA0
LjQgKi8KLSAgICBVX0xCX0NPVU5UID0gMzcKKyAgICBVX0xCX0NPTkRJVElPTkFMX0pBUEFORVNF
X1NUQVJURVIgPSAzNywvKltDSl0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjEvSUNVIDQ5ICovCisg
ICAgVV9MQl9IRUJSRVdfTEVUVEVSID0gMzgsICAgICAvKltITF0qLyAvKiBuZXcgaW4gVW5pY29k
ZSA2LjEvSUNVIDQ5ICovCisgICAgVV9MQl9SRUdJT05BTF9JTkRJQ0FUT1IgPSAzOSwvKltSSV0q
LyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUwICovCisgICAgVV9MQl9DT1VOVCA9IDQwCiB9
IFVMaW5lQnJlYWs7CiAKIC8qKgpAQCAtMTY4OSw3ICsxODI0LDEzIEBAIHR5cGVkZWYgZW51bSBV
TGluZUJyZWFrIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVU51bWVy
aWNUeXBlIHsKLSAgICBVX05UX05PTkUsICAgICAgICAgICAgICAvKltOb25lXSovIC8qU2VlIG5v
dGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVU51bWVyaWNUeXBlIGNvbnN0YW50cyBhcmUg
cGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQor
ICAgICAqICAgICBVX05UXzxVbmljb2RlIE51bWVyaWNfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAq
LworCisgICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLwogICAgIFVfTlRfREVD
SU1BTCwgICAgICAgICAgIC8qW2RlXSovCiAgICAgVV9OVF9ESUdJVCwgICAgICAgICAgICAgLypb
ZGldKi8KICAgICBVX05UX05VTUVSSUMsICAgICAgICAgICAvKltudV0qLwpAQCAtMTcwMyw3ICsx
ODQ0LDEzIEBAIHR5cGVkZWYgZW51bSBVTnVtZXJpY1R5cGUgewogICogQHN0YWJsZSBJQ1UgMi42
CiAgKi8KIHR5cGVkZWYgZW51bSBVSGFuZ3VsU3lsbGFibGVUeXBlIHsKLSAgICBVX0hTVF9OT1Rf
QVBQTElDQUJMRSwgICAvKltOQV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5v
dGU6IFVIYW5ndWxTeWxsYWJsZVR5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1
Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSFNUXzxV
bmljb2RlIEhhbmd1bF9TeWxsYWJsZV9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBV
X0hTVF9OT1RfQVBQTElDQUJMRSwgICAvKltOQV0qLwogICAgIFVfSFNUX0xFQURJTkdfSkFNTywg
ICAgIC8qW0xdKi8KICAgICBVX0hTVF9WT1dFTF9KQU1PLCAgICAgICAvKltWXSovCiAgICAgVV9I
U1RfVFJBSUxJTkdfSkFNTywgICAgLypbVF0qLwpAQCAtMTkwNiw2ICsyMDUzLDggQEAgdV9nZXRJ
bnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eSB3aGljaCk7CiAgKgogICogRm9yIGNoYXJhY3Rl
cnMgd2l0aG91dCBhbnkgbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERh
dGFiYXNlLAogICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBVX05PX05VTUVSSUNfVkFMVUUu
CisgKiBOb3RlOiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBVbmljb2RlIFN0YW5kYXJkIHdo
aWNoIHNwZWNpZmllcyBOYU4gYXMgdGhlIGRlZmF1bHQgdmFsdWUuCisgKiAoTmFOIGlzIG5vdCBh
dmFpbGFibGUgb24gYWxsIHBsYXRmb3Jtcy4pCiAgKgogICogU2ltaWxhciB0byBqYXZhLmxhbmcu
Q2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZSgpLCBidXQgdV9nZXROdW1lcmljVmFsdWUoKQogICog
YWxzbyBzdXBwb3J0cyBuZWdhdGl2ZSB2YWx1ZXMsIGxhcmdlIHZhbHVlcywgYW5kIGZyYWN0aW9u
cywKQEAgLTIzNzksNyArMjUyOCw3IEBAIHVfaXNNaXJyb3JlZChVQ2hhcjMyIGMpOwogICogYXMg
dGhlIG1pcnJvci1pbWFnZSBvZiB0aGUgZGVmYXVsdCBnbHlwaCBvZiB0aGUgc3BlY2lmaWVkCiAg
KiBjaGFyYWN0ZXIuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXh0IGNvbnZlcnNpb24gdG8gYW5kIGZy
b20KICAqIGNvZGVwYWdlcyB3aXRoIHZpc3VhbCBvcmRlciwgYW5kIGZvciBkaXNwbGF5cyB3aXRo
b3V0IGdseXBoCi0gKiBzZWxlY2V0aW9uIGNhcGFiaWxpdGllcy4KKyAqIHNlbGVjdGlvbiBjYXBh
YmlsaXRpZXMuCiAgKgogICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQgdG8gYmUgbWFwcGVkCiAg
KiBAcmV0dXJuIGFub3RoZXIgVW5pY29kZSBjb2RlIHBvaW50IHRoYXQgbWF5IHNlcnZlIGFzIGEg
bWlycm9yLWltYWdlCkBAIC0yMzk0LDYgKzI1NDMsMjUgQEAgVV9TVEFCTEUgVUNoYXIzMiBVX0VY
UE9SVDIKIHVfY2hhck1pcnJvcihVQ2hhcjMyIGMpOwogCiAvKioKKyAqIE1hcHMgdGhlIHNwZWNp
ZmllZCBjaGFyYWN0ZXIgdG8gaXRzIHBhaXJlZCBicmFja2V0IGNoYXJhY3Rlci4KKyAqIEZvciBC
aWRpX1BhaXJlZF9CcmFja2V0X1R5cGUhPU5vbmUsIHRoaXMgaXMgdGhlIHNhbWUgYXMgdV9jaGFy
TWlycm9yKCkuCisgKiBPdGhlcndpc2UgYyBpdHNlbGYgaXMgcmV0dXJuZWQuCisgKiBTZWUgaHR0
cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyOS8KKyAqCisgKiBAcGFyYW0gYyB0aGUgY29k
ZSBwb2ludCB0byBiZSBtYXBwZWQKKyAqIEByZXR1cm4gdGhlIHBhaXJlZCBicmFja2V0IGNvZGUg
cG9pbnQsCisgKiAgICAgICAgIG9yIGMgaXRzZWxmIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWFwcGlu
ZworICogICAgICAgICAoQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlPU5vbmUpCisgKgorICogQHNl
ZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUCisgKiBAc2VlIFVDSEFSX0JJRElfUEFJUkVEX0JS
QUNLRVRfVFlQRQorICogQHNlZSB1X2NoYXJNaXJyb3IKKyAqIEBzdGFibGUgSUNVIDUyCisgKi8K
K1VfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCit1X2dldEJpZGlQYWlyZWRCcmFja2V0KFVDaGFy
MzIgYyk7CisKKy8qKgogICogUmV0dXJucyB0aGUgZ2VuZXJhbCBjYXRlZ29yeSB2YWx1ZSBmb3Ig
dGhlIGNvZGUgcG9pbnQuCiAgKgogICogU2FtZSBhcyBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5
cGUoKS4KQEAgLTI1NTMsMTMgKzI3MjEsMTEgQEAgdV9jaGFyTmFtZShVQ2hhcjMyIGNvZGUsIFVD
aGFyTmFtZUNob2ljZSBuYW1lQ2hvaWNlLAogICAgICAgICAgICBjaGFyICpidWZmZXIsIGludDMy
X3QgYnVmZmVyTGVuZ3RoLAogICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAor
I2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkgCiAvKioKLSAqIEdldCB0aGUgSVNPIDEwNjQ2
IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgotICogVGhlIElTTyAxMDY0NiBjb21tZW50IGlzIGFu
IGluZm9ybWF0aXZlIGZpZWxkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlcgotICogRGF0YWJhc2Ug
KFVuaWNvZGVEYXRhLnR4dCBmaWVsZCAxMSkgYW5kIGlzIGZyb20gdGhlIElTTyAxMDY0NiBuYW1l
cyBsaXN0LgotICoKLSAqIE5vdGU6IFVuaWNvZGUgNS4yIHJlbW92ZXMgYWxsIElTTyBjb21tZW50
IGRhdGEsIHJlc3VsdGluZyBpbiBlbXB0eSBzdHJpbmdzCi0gKiByZXR1cm5lZCBmb3IgYWxsIGNo
YXJhY3RlcnMuCisgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKyAqIFVzZWQgdG8gcmV0dXJu
IHRoZSBJU08gMTA2NDYgY29tbWVudCBmb3IgYSBjaGFyYWN0ZXIuCisgKiBUaGUgVW5pY29kZSBJ
U09fQ29tbWVudCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCBoYXMgbm8gdmFsdWVzLgogICoK
ICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgKGNvZGUgcG9pbnQpIGZvciB3aGljaCB0byBnZXQg
dGhlIElTTyBjb21tZW50LgogICogICAgICAgICAgICAgSXQgbXVzdCBiZSA8Y29kZT4wPD1jPD0w
eDEwZmZmZjwvY29kZT4uCkBAIC0yNTcwLDE4ICsyNzM2LDE1IEBAIHVfY2hhck5hbWUoVUNoYXIz
MiBjb2RlLCBVQ2hhck5hbWVDaG9pY2UgbmFtZUNob2ljZSwKICAqIEBwYXJhbSBwRXJyb3JDb2Rl
IFBvaW50ZXIgdG8gYSBVRXJyb3JDb2RlIHZhcmlhYmxlOwogICogICAgICAgIGNoZWNrIGZvciA8
Y29kZT5VX1NVQ0NFU1MoKTwvY29kZT4gYWZ0ZXIgPGNvZGU+dV9nZXRJU09Db21tZW50KCk8L2Nv
ZGU+CiAgKiAgICAgICAgcmV0dXJucy4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgY29t
bWVudCwgb3IgMCBpZiB0aGVyZSBpcyBubyBjb21tZW50IGZvciB0aGlzIGNoYXJhY3Rlci4KLSAq
ICAgICAgICAgSWYgdGhlIGRlc3RDYXBhY2l0eSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhl
IGxlbmd0aCwgdGhlbiB0aGUgYnVmZmVyCi0gKiAgICAgICAgIGNvbnRhaW5zIHRoZSB0cnVuY2F0
ZWQgbmFtZSBhbmQgdGhlIHJldHVybmVkIGxlbmd0aCBpbmRpY2F0ZXMgdGhlIGZ1bGwKLSAqICAg
ICAgICAgbGVuZ3RoIG9mIHRoZSBuYW1lLgotICogICAgICAgICBUaGUgbGVuZ3RoIGRvZXMgbm90
IGluY2x1ZGUgdGhlIHplcm8tdGVybWluYXRpb24uCisgKiBAcmV0dXJuIDAKICAqCi0gKiBAc3Rh
YmxlIElDVSAyLjIKKyAqIEBkZXByZWNhdGVkIElDVSA0OQogICovCiBVX1NUQUJMRSBpbnQzMl90
IFVfRVhQT1JUMgogdV9nZXRJU09Db21tZW50KFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICBj
aGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAK
IC8qKgogICogRmluZCBhIFVuaWNvZGUgY2hhcmFjdGVyIGJ5IGl0cyBuYW1lIGFuZCByZXR1cm4g
aXRzIGNvZGUgcG9pbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aWN1L3VuaWNvZGUvdWNudi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vj
bnYuaAppbmRleCA5OGRhOGZmNjk0N2EzMzMwMWI3OWE5OTFlNGFmNDI3NzAxNTNiYWM5Li5jNWZj
MmRjNzg1NmExNmUyMWZkMzA3OTE3YjczODAyN2Y1NjYwNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNudi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pY3UvdW5pY29kZS91Y252LmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICAqICB1Y252Lmg6CkBAIC04OCw0NiArODgsODIgQEAgVV9D
REVDTF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7CisgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVU5TVVBQT1JURURfQ09OVkVSVEVSID0g
LTEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfU0JDUyA9IDAsCisgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfREJDUyA9IDEsCisgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTUJDUyA9IDIsCisgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVDTlZfTEFUSU5fMSA9IDMsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfVVRGOCA9IDQsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZf
VVRGMTZfQmlnRW5kaWFuID0gNSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNO
Vl9VVEYxNl9MaXR0bGVFbmRpYW4gPSA2LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX1VURjMyX0JpZ0VuZGlhbiA9IDcsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfVVRGMzJfTGl0dGxlRW5kaWFuID0gOCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVUNOVl9FQkNESUNfU1RBVEVGVUwgPSA5LAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX0lTT18yMDIyID0gMTAsCiAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVUNOVl9MTUJDU18xID0gMTEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwog
ICAgIFVDTlZfTE1CQ1NfMiwgCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZf
TE1CQ1NfMywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU180LAor
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzUsCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfNiwKKyAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVUNOVl9MTUJDU184LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0xNQkNTXzExLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xN
QkNTXzE2LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE3LAor
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE4LAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE5LAorICAgIC8qKiBAc3RhYmxlIElD
VSAyLjAgKi8KICAgICBVQ05WX0xNQkNTX0xBU1QgPSBVQ05WX0xNQkNTXzE5LAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0haLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQ05WX1NDU1UsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZf
SVNDSUksCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVNfQVNDSUksCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGNywKKyAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4yICovCiAgICAgVUNOVl9CT0NVMSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICov
CiAgICAgVUNOVl9VVEYxNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9V
VEYzMiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9DRVNVOCwKKyAgICAv
KiogQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNOVl9JTUFQX01BSUxCT1gsCisgICAgLyoqIEBz
dGFibGUgSUNVIDQuOCAqLworICAgIFVDTlZfQ09NUE9VTkRfVEVYVCwKIAogICAgIC8qIE51bWJl
ciBvZiBjb252ZXJ0ZXIgdHlwZXMgZm9yIHdoaWNoIHdlIGhhdmUgY29udmVyc2lvbiByb3V0aW5l
cy4gKi8KICAgICBVQ05WX05VTUJFUl9PRl9TVVBQT1JURURfQ09OVkVSVEVSX1RZUEVTCi0KIH0g
VUNvbnZlcnRlclR5cGU7CiAKIC8qKgpAQCAtMzA1LDYgKzM0MSw4IEBAIHVjbnZfY29tcGFyZU5h
bWVzKGNvbnN0IGNoYXIgKm5hbWUxLCBjb25zdCBjaGFyICpuYW1lMik7CiAgKiBvdGhlciB0aGFu
IGl0cyBhbiBhbGlhcyBzdGFydGluZyB3aXRoIHRoZSBsZXR0ZXJzICJjcCIuIFBsZWFzZSBkbyBu
b3QKICAqIGFzc29jaWF0ZSBhbnkgbWVhbmluZyB0byB0aGVzZSBhbGlhc2VzLjwvcD4KICAqCisg
KiBcc25pcHBldCBzYW1wbGVzL3VjbnYvY29udnNhbXAuY3BwIHVjbnZfb3BlbgorICoKICAqIEBw
YXJhbSBjb252ZXJ0ZXJOYW1lIE5hbWUgb2YgdGhlIGNvZGVkIGNoYXJhY3RlciBzZXQgdGFibGUu
CiAgKiAgICAgICAgICBUaGlzIG1heSBoYXZlIG9wdGlvbnMgYXBwZW5kZWQgdG8gdGhlIHN0cmlu
Zy4KICAqICAgICAgICAgIElBTkEgYWxpYXMgY2hhcmFjdGVyIHNldCBuYW1lcywgSUJNIENDU0lE
cyBzdGFydGluZyB3aXRoICJpYm0tIiwKQEAgLTQ4MywxMCArNTIxLDEyIEBAIHVjbnZfb3BlblBh
Y2thZ2UoY29uc3QgY2hhciAqcGFja2FnZU5hbWUsIGNvbnN0IGNoYXIgKmNvbnZlcnRlck5hbWUs
IFVFcnJvckNvZGUKICAqIGFkanVzdGVkIHBvaW50ZXIgYW5kIHVzZSBhbiBhY2NvcmRpbmdseSBz
bWFsbGVyIGJ1ZmZlciBzaXplLgogICoKICAqIEBwYXJhbSBjbnYgY29udmVydGVyIHRvIGJlIGNs
b25lZAotICogQHBhcmFtIHN0YWNrQnVmZmVyIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUg
bmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuIAorICogQHBh
cmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUy
LCB1c2UgTlVMTC48L2VtPjxicj4KKyAqICB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5l
dyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLiAKICAqICBJZiBi
dWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4K
ICAqICBDbGllbnRzIGNhbiB1c2UgdGhlIFVfQ05WX1NBRkVDTE9ORV9CVUZGRVJTSVpFLiBUaGlz
IHdpbGwgcHJvYmFibHkgYmUgZW5vdWdoIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9ucy4KLSAq
IEBwYXJhbSBwQnVmZmVyU2l6ZSBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLiBw
QnVmZmVyU2l6ZSBtdXN0IG5vdCBiZSBOVUxMLgorICogQHBhcmFtIHBCdWZmZXJTaXplIDxlbT5E
ZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTCBvciAxLjwvZW0+
PGJyPgorICogIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCiAgKiBAcGFyYW0g
c3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5
IG9yIHRoZXJlIHdlcmUgZXJyb3JzCiAgKiAgQW4gaW5mb3JtYXRpb25hbCBzdGF0dXMgdmFsdWUs
IFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HLAogICogIGlzIHVzZWQgaWYgYW55IGFsbG9j
YXRpb25zIHdlcmUgbmVjZXNzYXJ5LgpAQCAtNTAyLDE0ICs1NDIsMTggQEAgdWNudl9zYWZlQ2xv
bmUoY29uc3QgVUNvbnZlcnRlciAqY252LAogICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAg
ICAqcEJ1ZmZlclNpemUsIAogICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAgICAqc3RhdHVz
KTsKIAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKwogLyoqCiAgKiBcZGVmIFVfQ05W
X1NBRkVDTE9ORV9CVUZGRVJTSVpFCiAgKiBEZWZpbml0aW9uIG9mIGEgYnVmZmVyIHNpemUgdGhh
dCBpcyBkZXNpZ25lZCB0byBiZSBsYXJnZSBlbm91Z2ggZm9yCiAgKiBjb252ZXJ0ZXJzIHRvIGJl
IGNsb25lZCB3aXRoIHVjbnZfc2FmZUNsb25lKCkuCi0gKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBk
ZXByZWNhdGVkIElDVSA1Mi4gRG8gbm90IHJlbHkgb24gdWNudl9zYWZlQ2xvbmUoKSBjbG9uaW5n
IGludG8gYW55IHByb3ZpZGVkIGJ1ZmZlci4KICAqLwogI2RlZmluZSBVX0NOVl9TQUZFQ0xPTkVf
QlVGRkVSU0laRSAgMTAyNAogCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisK
IC8qKgogICogRGVsZXRlcyB0aGUgdW5pY29kZSBjb252ZXJ0ZXIgYW5kIHJlbGVhc2VzIHJlc291
cmNlcyBhc3NvY2lhdGVkCiAgKiB3aXRoIGp1c3QgdGhpcyBpbnN0YW5jZS4KQEAgLTE4MjEsNiAr
MTg2NSw3IEBAIHVjbnZfZ2V0Q2Fub25pY2FsTmFtZShjb25zdCBjaGFyICphbGlhcywgY29uc3Qg
Y2hhciAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBFcnJvCiBVX1NUQUJMRSBjb25zdCBjaGFyICog
VV9FWFBPUlQyCiB1Y252X2dldERlZmF1bHROYW1lKHZvaWQpOwogCisjaWZuZGVmIFVfSElERV9T
WVNURU1fQVBJCiAvKioKICAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZlLiBETyBO
T1QgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gQU5ZIElDVQogICogZnVuY3Rpb24gaXMgYmVpbmcg
dXNlZCBmcm9tIG1vcmUgdGhhbiBvbmUgdGhyZWFkISBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlCkBA
IC0xODM5LDYgKzE4ODQsNyBAQCB1Y252X2dldERlZmF1bHROYW1lKHZvaWQpOwogICovCiBVX1NU
QUJMRSB2b2lkIFVfRVhQT1JUMgogdWNudl9zZXREZWZhdWx0TmFtZShjb25zdCBjaGFyICpuYW1l
KTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KIAogLyoqCiAgKiBGaXhlcyB0aGUg
YmFja3NsYXNoIGNoYXJhY3RlciBtaXNtYXBwaW5nLiAgRm9yIGV4YW1wbGUsIGluIFNKSVMsIHRo
ZSBiYWNrc2xhc2ggCkBAIC0xOTE4LDM0ICsxOTY0LDcgQEAgdWNudl91c2VzRmFsbGJhY2soY29u
c3QgVUNvbnZlcnRlciAqY252KTsKICAqIGluc3RlYWQgb2YgdGhlIGlucHV0IHNpZ25hdHVyZSBi
eXRlcy4KICAqIDxwPgogICogVXNhZ2U6Ci0gKiBAY29kZSAgICAgCi0gKiAgICAgIFVFcnJvckNv
ZGUgZXJyID0gVV9aRVJPX0VSUk9SOwotICogICAgICBjaGFyIGlucHV0W10gPSB7ICdceEVGJywn
XHhCQicsICdceEJGJywnXHg0MScsJ1x4NDInLCdceDQzJyB9OwotICogICAgICBpbnQzMl90IHNp
Z25hdHVyZUxlbmd0aCA9IDA7Ci0gKiAgICAgIGNoYXIgKmVuY29kaW5nID0gdWNudl9kZXRlY3RV
bmljb2RlU2lnbmF0dXJlKGlucHV0LHNpemVvZihpbnB1dCksJnNpZ25hdHVyZUxlbmd0aCwmZXJy
KTsKLSAqICAgICAgVUNvbnZlcnRlciAqY29udiA9IE5VTEw7Ci0gKiAgICAgIFVDaGFyIG91dHB1
dFsxMDBdOwotICogICAgICBVQ2hhciAqdGFyZ2V0ID0gb3V0cHV0LCAqb3V0OwotICogICAgICBj
aGFyICpzb3VyY2UgPSBpbnB1dDsKLSAqICAgICAgaWYoZW5jb2RpbmchPU5VTEwgJiYgVV9TVUND
RVNTKGVycikpewotICogICAgICAgICAgLy8gc2hvdWxkIHNpZ25hdHVyZSBiZSBkaXNjYXJkZWQg
PwotICogICAgICAgICAgY29udiA9IHVjbnZfb3BlbihlbmNvZGluZywgJmVycik7Ci0gKiAgICAg
ICAgICAvLyBkbyB0aGUgY29udmVyc2lvbgotICogICAgICAgICAgdWNudl90b1VuaWNvZGUoY29u
diwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwgb3V0cHV0ICsgc2l6ZW9mKG91
dHB1dCkvVV9TSVpFT0ZfVUNIQVIsCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Us
IGlucHV0ICsgc2l6ZW9mKGlucHV0KSwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
IFRSVUUsICZlcnIpOwotICogICAgICAgICAgb3V0ID0gb3V0cHV0OwotICogICAgICAgICAgaWYg
KGRpc2NhcmRTaWduYXR1cmUpewotICogICAgICAgICAgICAgICsrb3V0OyAvLyBpZ25vcmUgaW5p
dGlhbCBVK0ZFRkYKLSAqICAgICAgICAgIH0KLSAqICAgICAgICAgIHdoaWxlKG91dCAhPSB0YXJn
ZXQpIHsKLSAqICAgICAgICAgICAgICBwcmludGYoIiUwNHggIiwgKm91dCsrKTsKLSAqICAgICAg
ICAgIH0KLSAqICAgICAgICAgIHB1dHMoIiIpOwotICogICAgICB9Ci0gKiAgICAgCi0gKiBAZW5k
Y29kZQorICogXHNuaXBwZXQgc2FtcGxlcy91Y252L2NvbnZzYW1wLmNwcCB1Y252X2RldGVjdFVu
aWNvZGVTaWduYXR1cmUKICAqCiAgKiBAcGFyYW0gc291cmNlICAgICAgICAgICAgVGhlIHNvdXJj
ZSBzdHJpbmcgaW4gd2hpY2ggdGhlIHNpZ25hdHVyZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCiAgKiBA
cGFyYW0gc291cmNlTGVuZ3RoICAgICAgTGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcsIG9yIC0x
IGlmIHRlcm1pbmF0ZWQgd2l0aCBhIE5VTCBieXRlLgpAQCAtMTk5MSw2ICsyMDEwLDI0IEBAIHVj
bnZfZnJvbVVDb3VudFBlbmRpbmcoY29uc3QgVUNvbnZlcnRlciogY252LCBVRXJyb3JDb2RlKiBz
dGF0dXMpOwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVjbnZfdG9VQ291bnRQZW5kaW5n
KGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwgVUVycm9yQ29kZSogc3RhdHVzKTsKIAorLyoqCisgKiBS
ZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjaGFyc2V0IG9mIHRoZSBjb252ZXJ0ZXIgaGFzIGEg
Zml4ZWQgbnVtYmVyIG9mIGJ5dGVzCisgKiBwZXIgY2hhcnNldCBjaGFyYWN0ZXIuCisgKiBBbiBl
eGFtcGxlIG9mIHRoaXMgYXJlIGNvbnZlcnRlcnMgdGhhdCBhcmUgb2YgdGhlIHR5cGUgVUNOVl9T
QkNTIG9yIFVDTlZfREJDUy4KKyAqIEFub3RoZXIgZXhhbXBsZSBpcyBVVEYtMzIgd2hpY2ggaXMg
YWx3YXlzIDQgYnl0ZXMgcGVyIGNoYXJhY3Rlci4KKyAqIEEgVW5pY29kZSBjb2RlIHBvaW50IG1h
eSBiZSByZXByZXNlbnRlZCBieSBtb3JlIHRoYW4gb25lIFVURi04IG9yIFVURi0xNiBjb2RlIHVu
aXQKKyAqIGJ1dCBhIFVURi0zMiBjb252ZXJ0ZXIgZW5jb2RlcyBlYWNoIGNvZGUgcG9pbnQgd2l0
aCA0IGJ5dGVzLgorICogTm90ZTogVGhpcyBtZXRob2QgaXMgbm90IGludGVuZGVkIHRvIGJlIHVz
ZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNoYXJzZXQgaGFzIGEKKyAqIGZpeGVkIHJhdGlv
IG9mIGJ5dGVzIHRvIFVuaWNvZGUgY29kZXMgPGk+dW5pdHM8L2k+IGZvciBhbnkgcGFydGljdWxh
ciBVbmljb2RlIGVuY29kaW5nIGZvcm0uCisgKiBGQUxTRSBpcyByZXR1cm5lZCB3aXRoIHRoZSBV
RXJyb3JDb2RlIGlmIGVycm9yIG9jY3VycyBvciBjbnYgaXMgTlVMTC4KKyAqIEBwYXJhbSBjbnYg
ICAgICAgVGhlIGNvbnZlcnRlciB0byBiZSB0ZXN0ZWQKKyAqIEBwYXJhbSBzdGF0dXMgICAgSUNV
IGVycm9yIGNvZGUgaW4vb3V0IHBhcmFtdGVyCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGNvbnZl
cnRlciBpcyBmaXhlZC13aWR0aAorICogQHN0YWJsZSBJQ1UgNC44CisgKi8KK1VfU1RBQkxFIFVC
b29sIFVfRVhQT1JUMgordWNudl9pc0ZpeGVkV2lkdGgoVUNvbnZlcnRlciAqY252LCBVRXJyb3JD
b2RlICpzdGF0dXMpOworCiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lj
dS91bmljb2RlL3Vjb2wuaAppbmRleCA0YTRjZDYwNmU4YTc3M2RiYjFlODdkZWU0YzEwOWNkYWQ1
MTFlNmQ3Li41YTQ1OWI1MmFmNGE5ZmQ3Njg0MDA1Yzc4OWFjMzU0M2U5MjhkOTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWNvbC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91Y29sLmgKQEAgLTEsNiArMSw2IEBACiAvKgog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotKiBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMCwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorKiBDb3B5
cmlnaHQgKGMpIDE5OTYtMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogKi8KQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJ1bmljb2RlL3BhcnNl
ZXJyLmgiCiAjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCiAjaW5jbHVkZSAidW5pY29kZS91c2V0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91c2NyaXB0LmgiCiAKIC8qKgogICogXGZpbGUKQEAgLTYz
LDEyICs2NCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBVQ29sbGF0b3IgVUNvbGxhdG9yOwogCiAvKioK
ICAqIFVDT0xfTEVTUyBpcyByZXR1cm5lZCBpZiBzb3VyY2Ugc3RyaW5nIGlzIGNvbXBhcmVkIHRv
IGJlIGxlc3MgdGhhbiB0YXJnZXQKLSAqIHN0cmluZyBpbiB0aGUgdV9zdHJjb2xsKCkgbWV0aG9k
LgorICogc3RyaW5nIGluIHRoZSB1Y29sX3N0cmNvbGwoKSBtZXRob2QuCiAgKiBVQ09MX0VRVUFM
IGlzIHJldHVybmVkIGlmIHNvdXJjZSBzdHJpbmcgaXMgY29tcGFyZWQgdG8gYmUgZXF1YWwgdG8g
dGFyZ2V0Ci0gKiBzdHJpbmcgaW4gdGhlIHVfc3RyY29sbCgpIG1ldGhvZC4KKyAqIHN0cmluZyBp
biB0aGUgdWNvbF9zdHJjb2xsKCkgbWV0aG9kLgogICogVUNPTF9HUkVBVEVSIGlzIHJldHVybmVk
IGlmIHNvdXJjZSBzdHJpbmcgaXMgY29tcGFyZWQgdG8gYmUgZ3JlYXRlciB0aGFuCi0gKiB0YXJn
ZXQgc3RyaW5nIGluIHRoZSB1X3N0cmNvbGwoKSBtZXRob2QuCi0gKiBAc2VlIHVfc3RyY29sbCgp
CisgKiB0YXJnZXQgc3RyaW5nIGluIHRoZSB1Y29sX3N0cmNvbGwoKSBtZXRob2QuCisgKiBAc2Vl
IHVjb2xfc3RyY29sbCgpCiAgKiA8cD4KICAqIFBvc3NpYmxlIHZhbHVlcyBmb3IgYSBjb21wYXJp
c29uIHJlc3VsdCAKICAqIEBzdGFibGUgSUNVIDIuMApAQCAtMTMyLDE4ICsxMzMsNzYgQEAgdHlw
ZWRlZiBlbnVtIHsKIAogfSBVQ29sQXR0cmlidXRlVmFsdWU7CiAKLS8qKiBFbnVtIGNvbnRhaW5p
bmcgdGhlIGNvZGVzIGZvciByZW9yZGVyaW5nIHNlZ21lbnRzIG9mIHRoZSBjb2xsYXRpb24gdGFi
bGUgdGhhdCBhcmUgbm90IHNjcmlwdAotICogIGNvZGVzLiBUaGVzZSByZW9yZGVyaW5nIGNvZGVz
IGFyZSB0byBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNjcmlwdCBjb2Rlcy4KLSAq
ICBAaW50ZXJuYWwKKy8qKgorICogRW51bSBjb250YWluaW5nIHRoZSBjb2RlcyBmb3IgcmVvcmRl
cmluZyBzZWdtZW50cyBvZiB0aGUgY29sbGF0aW9uIHRhYmxlIHRoYXQgYXJlIG5vdCBzY3JpcHQK
KyAqIGNvZGVzLiBUaGVzZSByZW9yZGVyaW5nIGNvZGVzIGFyZSB0byBiZSB1c2VkIGluIGNvbmp1
bmN0aW9uIHdpdGggdGhlIHNjcmlwdCBjb2Rlcy4KKyAqIEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29k
ZXMKKyAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgdWNvbF9nZXRFcXVpdmFs
ZW50UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2RlCisgKiBAc3RhYmxlIElDVSA0LjgK
ICAqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBVQ09MX1JFT1JERVJfQ09ERV9TUEFDRSAgICAgICAg
ICA9IDB4MTAwMCwKLSAgICBVQ09MX1JFT1JERVJfQ09ERV9GSVJTVCAgICAgICAgICA9IFVDT0xf
UkVPUkRFUl9DT0RFX1NQQUNFLAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX1BVTkNUVUFUSU9OICAg
ID0gMHgxMDAxLAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NZTUJPTCAgICAgICAgID0gMHgxMDAy
LAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX0NVUlJFTkNZICAgICAgID0gMHgxMDAzLAotICAgIFVD
T0xfUkVPUkRFUl9DT0RFX0RJR0lUICAgICAgICAgID0gMHgxMDA0LAotICAgIFVDT0xfUkVPUkRF
Ul9DT0RFX0xJTUlUICAgICAgICAgID0gMHgxMDA1CisgdHlwZWRlZiBlbnVtIHsKKyAgIC8qKgor
ICAgICogQSBzcGVjaWFsIHJlb3JkZXJpbmcgY29kZSB0aGF0IGlzIHVzZWQgdG8gc3BlY2lmeSB0
aGUgZGVmYXVsdAorICAgICogcmVvcmRlcmluZyBjb2RlcyBmb3IgYSBsb2NhbGUuCisgICAgKiBA
c3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0RFRkFVTFQg
ICAgICAgPSAtMSwKKyAgIC8qKgorICAgICogQSBzcGVjaWFsIHJlb3JkZXJpbmcgY29kZSB0aGF0
IGlzIHVzZWQgdG8gc3BlY2lmeSBubyByZW9yZGVyaW5nIGNvZGVzLgorICAgICogQHN0YWJsZSBJ
Q1UgNC44CisgICAgKi8gICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9OT05FICAgICAgICAgID0g
VVNDUklQVF9VTktOT1dOLAorICAgLyoqCisgICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2Rl
IHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IGFsbCBvdGhlciBjb2RlcyB1c2VkIGZvcgorICAgICog
cmVvcmRlcmluZyBleGNlcHQgZm9yIHRoZSBjb2RlcyBsaXNlZCBhcyBVQ29sUmVvcmRlckNvZGUg
dmFsdWVzIGFuZCB0aG9zZQorICAgICogbGlzdGVkIGV4cGxpY2l0bHkgaW4gYSByZW9yZGVyaW5n
LgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAKKyAgICBVQ09MX1JFT1JERVJfQ09E
RV9PVEhFUlMgICAgICAgID0gVVNDUklQVF9VTktOT1dOLAorICAgLyoqCisgICAgKiBDaGFyYWN0
ZXJzIHdpdGggdGhlIHNwYWNlIHByb3BlcnR5LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRv
IHRoZSBydWxlIHZhbHVlICJzcGFjZSIuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAg
ICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9TUEFDRSAgICAgICAgID0gMHgxMDAwLAorICAgLyoq
CisgICAgKiBUaGUgZmlyc3QgZW50cnkgaW4gdGhlIGVudW1lcmF0aW9uIG9mIHJlb3JkZXJpbmcg
Z3JvdXBzLiBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgaW4KKyAgICAqIHJhbmdlIGNoZWNraW5n
IGFuZCBlbnVtZXJhdGlvbiBvZiB0aGUgcmVvcmRlciBjb2Rlcy4KKyAgICAqIEBzdGFibGUgSUNV
IDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0ZJUlNUICAgICAgICAgPSBV
Q09MX1JFT1JERVJfQ09ERV9TUEFDRSwKKyAgIC8qKgorICAgICogQ2hhcmFjdGVycyB3aXRoIHRo
ZSBwdW5jdHVhdGlvbiBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUg
cnVsZSB2YWx1ZSAicHVuY3QiLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisg
ICAgVUNPTF9SRU9SREVSX0NPREVfUFVOQ1RVQVRJT04gICA9IDB4MTAwMSwKKyAgIC8qKgorICAg
ICogQ2hhcmFjdGVycyB3aXRoIHRoZSBzeW1ib2wgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVx
dWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgInN5bWJvbCIuCisgICAgKiBAc3RhYmxlIElDVSA0
LjgKKyAgICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9TWU1CT0wgICAgICAgID0gMHgx
MDAyLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhlIGN1cnJlbmN5IHByb3BlcnR5
LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBydWxlIHZhbHVlICJjdXJyZW5jeSIu
CisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09E
RV9DVVJSRU5DWSAgICAgID0gMHgxMDAzLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGgg
dGhlIGRpZ2l0IHByb3BlcnR5LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBydWxl
IHZhbHVlICJkaWdpdCIuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAgICBV
Q09MX1JFT1JERVJfQ09ERV9ESUdJVCAgICAgICAgID0gMHgxMDA0LAorICAgLyoqCisgICAgKiBU
aGUgbGltaXQgb2YgdGhlIHJlb3JkZXIgY29kZXMuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBp
biByYW5nZSBjaGVja2luZyAKKyAgICAqIGFuZCBlbnVtZXJhdGlvbiBvZiB0aGUgcmVvcmRlciBj
b2Rlcy4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRF
Ul9DT0RFX0xJTUlUICAgICAgICAgPSAweDEwMDUKIH0gVUNvbFJlb3JkZXJDb2RlOwogCiAvKioK
QEAgLTE3OSwxMCArMjM4LDEyIEBAIHR5cGVkZWYgVUNvbEF0dHJpYnV0ZVZhbHVlIFVDb2xsYXRp
b25TdHJlbmd0aDsKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiB0eXBlZGVmIGVudW0gewotICAg
ICAvKiogQXR0cmlidXRlIGZvciBkaXJlY3Rpb24gb2Ygc2Vjb25kYXJ5IHdlaWdodHMgLSB1c2Vk
IGluIEZyZW5jaC4KKyAgICAgLyoqIEF0dHJpYnV0ZSBmb3IgZGlyZWN0aW9uIG9mIHNlY29uZGFy
eSB3ZWlnaHRzIC0gdXNlZCBpbiBDYW5hZGlhbiBGcmVuY2guCiAgICAgICAqIEFjY2VwdGFibGUg
dmFsdWVzIGFyZSBVQ09MX09OLCB3aGljaCByZXN1bHRzIGluIHNlY29uZGFyeSB3ZWlnaHRzCiAg
ICAgICAqIGJlaW5nIGNvbnNpZGVyZWQgYmFja3dhcmRzIGFuZCBVQ09MX09GRiB3aGljaCB0cmVh
dHMgc2Vjb25kYXJ5Ci0gICAgICAqIHdlaWdodHMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLiov
CisgICAgICAqIHdlaWdodHMgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLgorICAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfRlJFTkNIX0NPTExBVElPTiwgCiAgICAg
IC8qKiBBdHRyaWJ1dGUgZm9yIGhhbmRsaW5nIHZhcmlhYmxlIGVsZW1lbnRzLgogICAgICAgKiBB
Y2NlcHRhYmxlIHZhbHVlcyBhcmUgVUNPTF9OT05fSUdOT1JBQkxFIChkZWZhdWx0KQpAQCAtMTkx
LDE0ICsyNTIsMTggQEAgdHlwZWRlZiBlbnVtIHsKICAgICAgICogYW5kIFVDT0xfU0hJRlRFRCB3
aGljaCBjYXVzZXMgY29kZXBvaW50cyB3aXRoIHByaW1hcnkgCiAgICAgICAqIHdlaWdodHMgdGhh
dCBhcmUgZXF1YWwgb3IgYmVsb3cgdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZQogICAgICAgKiB0byBi
ZSBpZ25vcmVkIG9uIHByaW1hcnkgbGV2ZWwgYW5kIG1vdmVkIHRvIHRoZSBxdWF0ZXJuYXJ5IAot
ICAgICAgKiBsZXZlbC4qLworICAgICAgKiBsZXZlbC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICAqLwogICAgICBVQ09MX0FMVEVSTkFURV9IQU5ETElORywgCiAgICAgIC8qKiBDb250
cm9scyB0aGUgb3JkZXJpbmcgb2YgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycy4KICAgICAg
ICogQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIFVDT0xfT0ZGIChkZWZhdWx0KSwgd2hpY2ggb3JkZXJz
CiAgICAgICAqIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMgaW4gYWNjb3JkYW5jZSB0byB0
aGVpciB0ZXJ0aWFyeQogICAgICAgKiB3ZWlnaHRzLCBVQ09MX1VQUEVSX0ZJUlNUIHdoaWNoIGZv
cmNlcyB1cHBlciBjYXNlIGxldHRlcnMgdG8gCiAgICAgICAqIHNvcnQgYmVmb3JlIGxvd2VyIGNh
c2UgbGV0dGVycywgYW5kIFVDT0xfTE9XRVJfRklSU1Qgd2hpY2ggZG9lcyAKLSAgICAgICogdGhl
IG9wcG9zaXRlLiAqLworICAgICAgKiB0aGUgb3Bwb3NpdGUuCisgICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAgKi8KICAgICAgVUNPTF9DQVNFX0ZJUlNULCAKICAgICAgLyoqIENvbnRyb2xz
IHdoZXRoZXIgYW4gZXh0cmEgY2FzZSBsZXZlbCAocG9zaXRpb25lZCBiZWZvcmUgdGhlIHRoaXJk
CiAgICAgICAqIGxldmVsKSBpcyBnZW5lcmF0ZWQgb3Igbm90LiBBY2NlcHRhYmxlIHZhbHVlcyBh
cmUgVUNPTF9PRkYgKGRlZmF1bHQpLCAKQEAgLTIwNiw3ICsyNzEsOSBAQCB0eXBlZGVmIGVudW0g
ewogICAgICAgKiBsZXZlbCB0byBiZSBnZW5lcmF0ZWQuIENvbnRlbnRzIG9mIHRoZSBjYXNlIGxl
dmVsIGFyZSBhZmZlY3RlZCBieQogICAgICAgKiB0aGUgdmFsdWUgb2YgVUNPTF9DQVNFX0ZJUlNU
IGF0dHJpYnV0ZS4gQSBzaW1wbGUgd2F5IHRvIGlnbm9yZSAKICAgICAgICogYWNjZW50IGRpZmZl
cmVuY2VzIGluIGEgc3RyaW5nIGlzIHRvIHNldCB0aGUgc3RyZW5ndGggdG8gVUNPTF9QUklNQVJZ
Ci0gICAgICAqIGFuZCBlbmFibGUgY2FzZSBsZXZlbC4gKi8KKyAgICAgICogYW5kIGVuYWJsZSBj
YXNlIGxldmVsLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xf
Q0FTRV9MRVZFTCwKICAgICAgLyoqIENvbnRyb2xzIHdoZXRoZXIgdGhlIG5vcm1hbGl6YXRpb24g
Y2hlY2sgYW5kIG5lY2Vzc2FyeSBub3JtYWxpemF0aW9ucwogICAgICAgKiBhcmUgcGVyZm9ybWVk
LiBXaGVuIHNldCB0byBVQ09MX09GRiAoZGVmYXVsdCkgbm8gbm9ybWFsaXphdGlvbiBjaGVjawpA
QCAtMjE0LDkgKzI4MSwxMyBAQCB0eXBlZGVmIGVudW0gewogICAgICAgKiBpbnB1dCBkYXRhIGlz
IGluIHNvLWNhbGxlZCBGQ0QgZm9ybSAoc2VlIHVzZXJzIG1hbnVhbCBmb3IgbW9yZSBpbmZvKS4K
ICAgICAgICogV2hlbiBzZXQgdG8gVUNPTF9PTiwgYW4gaW5jcmVtZW50YWwgY2hlY2sgaXMgcGVy
Zm9ybWVkIHRvIHNlZSB3aGV0aGVyCiAgICAgICAqIHRoZSBpbnB1dCBkYXRhIGlzIGluIHRoZSBG
Q0QgZm9ybS4gSWYgdGhlIGRhdGEgaXMgbm90IGluIHRoZSBGQ0QgZm9ybSwKLSAgICAgICogaW5j
cmVtZW50YWwgTkZEIG5vcm1hbGl6YXRpb24gaXMgcGVyZm9ybWVkLiAqLworICAgICAgKiBpbmNy
ZW1lbnRhbCBORkQgbm9ybWFsaXphdGlvbiBpcyBwZXJmb3JtZWQuCisgICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUsIAotICAgICAv
KiogQW4gYWxpYXMgZm9yIFVDT0xfTk9STUFMSVpBVElPTl9NT0RFIGF0dHJpYnV0ZSAqLworICAg
ICAvKiogQW4gYWxpYXMgZm9yIFVDT0xfTk9STUFMSVpBVElPTl9NT0RFIGF0dHJpYnV0ZS4KKyAg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0RFQ09NUE9TSVRJT05f
TU9ERSA9IFVDT0xfTk9STUFMSVpBVElPTl9NT0RFLAogICAgICAvKiogVGhlIHN0cmVuZ3RoIGF0
dHJpYnV0ZS4gQ2FuIGJlIGVpdGhlciBVQ09MX1BSSU1BUlksIFVDT0xfU0VDT05EQVJZLAogICAg
ICAgKiBVQ09MX1RFUlRJQVJZLCBVQ09MX1FVQVRFUk5BUlkgb3IgVUNPTF9JREVOVElDQUwuIFRo
ZSB1c3VhbCBzdHJlbmd0aApAQCAtMjI3LDIwICsyOTgsMzcgQEAgdHlwZWRlZiBlbnVtIHsKICAg
ICAgICogVUNPTF9ISVJBR0FOQV9RVUFURVJOQVJZIG1vZGUgdG8gb24uIE90aGVyd2lzZSwgcXVh
dGVybmFyeSBsZXZlbAogICAgICAgKiBpcyBhZmZlY3RlZCBvbmx5IGJ5IHRoZSBudW1iZXIgb2Yg
bm9uIGlnbm9yYWJsZSBjb2RlIHBvaW50cyBpbgogICAgICAgKiB0aGUgc3RyaW5nLiBJZGVudGlj
YWwgc3RyZW5ndGggaXMgcmFyZWx5IHVzZWZ1bCwgYXMgaXQgYW1vdW50cyAKLSAgICAgICogdG8g
Y29kZXBvaW50cyBvZiB0aGUgTkZEIGZvcm0gb2YgdGhlIHN0cmluZy4gKi8KKyAgICAgICogdG8g
Y29kZXBvaW50cyBvZiB0aGUgTkZEIGZvcm0gb2YgdGhlIHN0cmluZy4KKyAgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX1NUUkVOR1RILCAgCisjaWZuZGVmIFVfSElE
RV9ERVBSRUNBVEVEX0FQSQogICAgICAvKiogV2hlbiB0dXJuZWQgb24sIHRoaXMgYXR0cmlidXRl
IHBvc2l0aW9ucyBIaXJhZ2FuYSBiZWZvcmUgYWxsICAKICAgICAgICogbm9uLWlnbm9yYWJsZXMg
b24gcXVhdGVybmFyeSBsZXZlbCBUaGlzIGlzIGEgc25lYWt5IHdheSB0byBwcm9kdWNlIEpJUwot
ICAgICAgKiBzb3J0IG9yZGVyICovCi0gICAgIFVDT0xfSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RF
LAorICAgICAgKiBzb3J0IG9yZGVyLgorICAgICAgKgorICAgICAgKiBUaGlzIGF0dHJpYnV0ZSBp
cyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgdGhlIENMRFIgSmFwYW5lc2UgdGFpbG9yaW5n
LgorICAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbWlnaHQgY2hhbmdlIHRvIHVzZSBhIGRpZmZl
cmVudCBtZWNoYW5pc20KKyAgICAgICogdG8gYWNoaWV2ZSB0aGUgc2FtZSBKYXBhbmVzZSBzb3J0
IG9yZGVyLgorICAgICAgKiBTaW5jZSBJQ1UgNTAsIHRoaXMgYXR0cmlidXRlIGlzIG5vdCBzZXR0
YWJsZSBhbnkgbW9yZSB2aWEgQVBJIGZ1bmN0aW9ucy4KKyAgICAgICogQGRlcHJlY2F0ZWQgSUNV
IDUwIEltcGxlbWVudGF0aW9uIGRldGFpbCwgY2Fubm90IGJlIHNldCB2aWEgQVBJLCBtaWdodCBi
ZSByZW1vdmVkIGZyb20gaW1wbGVtZW50YXRpb24uCisgICAgICAqLworICAgICBVQ09MX0hJUkFH
QU5BX1FVQVRFUk5BUllfTU9ERSA9IFVDT0xfU1RSRU5HVEggKyAxLAorI2VuZGlmICAvKiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAgLyoqIFdoZW4gdHVybmVkIG9uLCB0aGlzIGF0dHJp
YnV0ZSBnZW5lcmF0ZXMgYSBjb2xsYXRpb24ga2V5CiAgICAgICAqIGZvciB0aGUgbnVtZXJpYyB2
YWx1ZSBvZiBzdWJzdHJpbmdzIG9mIGRpZ2l0cy4KICAgICAgICogVGhpcyBpcyBhIHdheSB0byBn
ZXQgJzEwMCcgdG8gc29ydCBBRlRFUiAnMicuIE5vdGUgdGhhdCB0aGUgbG9uZ2VzdAogICAgICAg
KiBkaWdpdCBzdWJzdHJpbmcgdGhhdCBjYW4gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb2xsYXRp
b24gZWxlbWVudCBpcwogICAgICAgKiAyNTQgZGlnaXRzIChub3QgY291bnRpbmcgbGVhZGluZyB6
ZXJvcykuIElmIGEgZGlnaXQgc3Vic3RyaW5nIGlzCiAgICAgICAqIGxvbmdlciB0aGFuIHRoYXQs
IHRoZSBkaWdpdHMgYmV5b25kIHRoZSBsaW1pdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYQotICAgICAg
KiBzZXBhcmF0ZSBkaWdpdCBzdWJzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIGEgc2VwYXJhdGUgY29s
bGF0aW9uIGVsZW1lbnQuICovCi0gICAgIFVDT0xfTlVNRVJJQ19DT0xMQVRJT04sIAorICAgICAg
KiBzZXBhcmF0ZSBkaWdpdCBzdWJzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIGEgc2VwYXJhdGUgY29s
bGF0aW9uIGVsZW1lbnQuCisgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgKi8KKyAgICAg
VUNPTF9OVU1FUklDX0NPTExBVElPTiA9IFVDT0xfU1RSRU5HVEggKyAyLCAKKyAgICAgLyoqCisg
ICAgICAqIFRoZSBudW1iZXIgb2YgVUNvbEF0dHJpYnV0ZSBjb25zdGFudHMuCisgICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9BVFRSSUJVVEVfQ09VTlQKIH0gVUNv
bEF0dHJpYnV0ZTsKIApAQCAtMjQ4LDkgKzMzNiwxOSBAQCB0eXBlZGVmIGVudW0gewogICogIEBz
dGFibGUgSUNVIDIuMAogICovCiB0eXBlZGVmIGVudW0gewotICAvKiogUmV0cmlldmUgdGFpbG9y
aW5nIG9ubHkgKi8KKyAgLyoqCisgICAqIFJldHJpZXZlcyB0aGUgdGFpbG9yaW5nIHJ1bGVzIG9u
bHkuCisgICAqIFNhbWUgYXMgY2FsbGluZyB0aGUgdmVyc2lvbiBvZiBnZXRSdWxlcygpIHdpdGhv
dXQgVUNvbFJ1bGVPcHRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KICAgVUNPTF9U
QUlMT1JJTkdfT05MWSwgCi0gIC8qKiBSZXRyaWV2ZSBVQ0EgcnVsZXMgYW5kIHRhaWxvcmluZyAq
LworICAvKioKKyAgICogUmV0cmlldmVzIHRoZSAiVUNBIHJ1bGVzIiBjb25jYXRlbmF0ZWQgd2l0
aCB0aGUgdGFpbG9yaW5nIHJ1bGVzLgorICAgKiBUaGUgIlVDQSBydWxlcyIgYXJlIGFuIDxpPmFw
cHJveGltYXRpb248L2k+IG9mIHRoZSByb290IGNvbGxhdG9yJ3Mgc29ydCBvcmRlci4KKyAgICog
VGhleSBhcmUgYWxtb3N0IG5ldmVyIHVzZWQgb3IgdXNlZnVsIGF0IHJ1bnRpbWUgYW5kIGNhbiBi
ZSByZW1vdmVkIGZyb20gdGhlIGRhdGEuCisgICAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1w
cm9qZWN0Lm9yZy9jb2xsYXRpb24vY3VzdG9taXphdGlvbiNUT0MtQnVpbGRpbmctb24tRXhpc3Rp
bmctTG9jYWxlcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCiAgIFVDT0xfRlVMTF9SVUxF
UyAKIH0gVUNvbFJ1bGVPcHRpb24gOwogCkBAIC0zNDcsNiArNDQ1LDcgQEAgdWNvbF9vcGVuRnJv
bVNob3J0U3RyaW5nKCBjb25zdCBjaGFyICpkZWZpbml0aW9uLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBVUGFyc2VFcnJvciAqcGFyc2VFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKIAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkK
IC8qKgogICogR2V0IGEgc2V0IGNvbnRhaW5pbmcgdGhlIGNvbnRyYWN0aW9ucyBkZWZpbmVkIGJ5
IHRoZSBjb2xsYXRvci4gVGhlIHNldCBpbmNsdWRlcwogICogYm90aCB0aGUgVUNBIGNvbnRyYWN0
aW9ucyBhbmQgdGhlIGNvbnRyYWN0aW9ucyBkZWZpbmVkIGJ5IHRoZSBjb2xsYXRvci4gVGhpcyBz
ZXQKQEAgLTM2NCw2ICs0NjMsNyBAQCBVX0RFUFJFQ0FURUQgaW50MzJfdCBVX0VYUE9SVDIKIHVj
b2xfZ2V0Q29udHJhY3Rpb25zKCBjb25zdCBVQ29sbGF0b3IgKmNvbGwsCiAgICAgICAgICAgICAg
ICAgICBVU2V0ICpjb250cywKICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7
CisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIEdldCBhIHNl
dCBjb250YWluaW5nIHRoZSBleHBhbnNpb25zIGRlZmluZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGUg
c2V0IGluY2x1ZGVzCkBAIC00MzUsNiArNTM1LDMzIEBAIHVjb2xfc3RyY29sbCggICAgY29uc3Qg
ICAgVUNvbGxhdG9yICAgICpjb2xsLAogICAgICAgICBjb25zdCAgICBVQ2hhciAgICAgICAgKnRh
cmdldCwKICAgICAgICAgaW50MzJfdCAgICAgICAgICAgIHRhcmdldExlbmd0aCk7CiAKKy8qKiAK
KyogQ29tcGFyZSB0d28gc3RyaW5ncyBpbiBVVEYtOC4gCisqIFRoZSBzdHJpbmdzIHdpbGwgYmUg
Y29tcGFyZWQgdXNpbmcgdGhlIG9wdGlvbnMgYWxyZWFkeSBzcGVjaWZpZWQuIAorKiBOb3RlOiBX
aGVuIGlucHV0IHN0cmluZyBjb250YWlucyBtYWxmb3JtZWQgYSBVVEYtOCBieXRlIHNlcXVlbmNl
LCAKKyogdGhpcyBmdW5jdGlvbiB0cmVhdHMgdGhlc2UgYnl0ZXMgYXMgUkVQTEFDRU1FTlQgQ0hB
UkFDVEVSIChVK0ZGRkQpLgorKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIGNvbnRhaW5pbmcg
dGhlIGNvbXBhcmlzb24gcnVsZXMuIAorKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2UgVVRGLTgg
c3RyaW5nLiAKKyogQHBhcmFtIHNvdXJjZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHNvdXJjZSwgb3Ig
LTEgaWYgbnVsbC10ZXJtaW5hdGVkLiAKKyogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IFVURi04
IHN0cmluZy4gCisqIEBwYXJhbSB0YXJnZXRMZW5ndGggVGhlIGxlbmd0aCBvZiB0YXJnZXQsIG9y
IC0xIGlmIG51bGwtdGVybWluYXRlZC4gCisqIEBwYXJhbSBzdGF0dXMgQSBwb2ludGVyIHRvIGFu
IFVFcnJvckNvZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzIAorKiBAcmV0dXJuIFRoZSByZXN1bHQg
b2YgY29tcGFyaW5nIHRoZSBzdHJpbmdzOyBvbmUgb2YgVUNPTF9FUVVBTCwgCisqIFVDT0xfR1JF
QVRFUiwgVUNPTF9MRVNTIAorKiBAc2VlIHVjb2xfZ3JlYXRlciAKKyogQHNlZSB1Y29sX2dyZWF0
ZXJPckVxdWFsIAorKiBAc2VlIHVjb2xfZXF1YWwgCisqIEBzdGFibGUgSUNVIDUwIAorKi8gCitV
X1NUQUJMRSBVQ29sbGF0aW9uUmVzdWx0IFVfRVhQT1JUMgordWNvbF9zdHJjb2xsVVRGOCgKKyAg
ICAgICAgY29uc3QgVUNvbGxhdG9yICpjb2xsLAorICAgICAgICBjb25zdCBjaGFyICAgICAgKnNv
dXJjZSwKKyAgICAgICAgaW50MzJfdCAgICAgICAgIHNvdXJjZUxlbmd0aCwKKyAgICAgICAgY29u
c3QgY2hhciAgICAgICp0YXJnZXQsCisgICAgICAgIGludDMyX3QgICAgICAgICB0YXJnZXRMZW5n
dGgsCisgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKKwogLyoqCiAgKiBEZXRlcm1p
bmUgaWYgb25lIHN0cmluZyBpcyBncmVhdGVyIHRoYW4gYW5vdGhlci4KICAqIFRoaXMgZnVuY3Rp
b24gaXMgZXF1aXZhbGVudCB0byB7QGxpbmsgI3Vjb2xfc3RyY29sbCB9ID09IFVDT0xfR1JFQVRF
UgpAQCAtNTM2LDM3ICs2NjMsOTAgQEAgdWNvbF9zZXRTdHJlbmd0aChVQ29sbGF0b3IgKmNvbGws
CiAgICAgICAgICAgICAgICAgIFVDb2xsYXRpb25TdHJlbmd0aCBzdHJlbmd0aCk7CiAKIC8qKgot
ICogR2V0IHRoZSBjdXJyZW50IHJlb3JkZXJpbmcgb2Ygc2NyaXB0cyAoaWYgb25lIGhhcyBiZWVu
IHNldCkuCisgKiBSZXRyaWV2ZXMgdGhlIHJlb3JkZXJpbmcgY29kZXMgZm9yIHRoaXMgY29sbGF0
b3IuCisgKiBUaGVzZSByZW9yZGVyaW5nIGNvZGVzIGFyZSBhIGNvbWJpbmF0aW9uIG9mIFVTY3Jp
cHQgY29kZXMgYW5kIFVDb2xSZW9yZGVyQ29kZSBlbnRyaWVzLgogICogQHBhcmFtIGNvbGwgVGhl
IFVDb2xsYXRvciB0byBxdWVyeS4KICAqIEBwYXJhbSBkZXN0IFRoZSBhcnJheSB0byBmaWxsIHdp
dGggdGhlIHNjcmlwdCBvcmRlcmluZy4KLSAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIGxlbmd0
aCBvZiBkZXN0LiBJZiBpdCBpcyAwLCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5j
dGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCB3aXRob3V0IHdy
aXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nIChwcmUtZmxpZ2h0aW5nKS4KLSAqIEBwYXJh
bSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFs
dWUsIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9u
IGNhbGwuCi0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IG9mIHRoZSBzY3JpcHQg
b3JkZXJpbmcuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBsZW5ndGggb2YgZGVzdC4gSWYg
aXQgaXMgMCwgdGhlbiBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gCisgKiB3aWxs
IG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCB3aXRob3V0IHdyaXRpbmcgYW55
IG9mIHRoZSByZXN1bHQgc3RyaW5nIChwcmUtZmxpZ2h0aW5nKS4KKyAqIEBwYXJhbSBwRXJyb3JD
b2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgCisgKiBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2Fs
bC4KKyAqIEByZXR1cm4gVGhlIG51bWJlciBvZiByZW9yZGVyaW5nIGNvZGVzIHdyaXR0ZW4gdG8g
dGhlIGRlc3QgYXJyYXkuCiAgKiBAc2VlIHVjb2xfc2V0UmVvcmRlckNvZGVzCi0gKiBAaW50ZXJu
YWwgCisgKiBAc2VlIHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcworICogQHNlZSBVU2Ny
aXB0Q29kZQorICogQHNlZSBVQ29sUmVvcmRlckNvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAogICov
Ci1VX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyIAorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIgCiB1Y29sX2dldFJlb3JkZXJDb2Rlcyhjb25zdCBVQ29sbGF0b3IqIGNvbGwsCiAgICAgICAg
ICAgICAgICAgICAgIGludDMyX3QqIGRlc3QsCiAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qg
ZGVzdENhcGFjaXR5LAogICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKLQotLyoqCi0gKiBTZXQgdGhlIG9yZGVyaW5nIG9mIHNjcmlwdHMgZm9yIHRoaXMgY29sbGF0
b3IuCisvKiogCisgKiBTZXRzIHRoZSByZW9yZGVyaW5nIGNvZGVzIGZvciB0aGlzIGNvbGxhdG9y
LgorICogQ29sbGF0aW9uIHJlb3JkZXJpbmcgYWxsb3dzIHNjcmlwdHMgYW5kIHNvbWUgb3RoZXIg
ZGVmaW5lZCBibG9ja3Mgb2YgY2hhcmFjdGVycyAKKyAqIHRvIGJlIG1vdmVkIHJlbGF0aXZlIHRv
IGVhY2ggb3RoZXIgYXMgYSBibG9jay4gVGhpcyByZW9yZGVyaW5nIGlzIGRvbmUgb24gdG9wIG9m
IAorICogdGhlIERVQ0VUL0NMRFIgc3RhbmRhcmQgY29sbGF0aW9uIG9yZGVyLiBSZW9yZGVyaW5n
IGNhbiBzcGVjaWZ5IGdyb3VwcyB0byBiZSBwbGFjZWQgCisgKiBhdCB0aGUgc3RhcnQgYW5kL29y
IHRoZSBlbmQgb2YgdGhlIGNvbGxhdGlvbiBvcmRlci4gVGhlc2UgZ3JvdXBzIGFyZSBzcGVjaWZp
ZWQgdXNpbmcKKyAqIFVTY3JpcHQgY29kZXMgYW5kIFVDb2xSZW9yZGVyQ29kZSBlbnRyaWVzLgor
ICogPHA+QnkgZGVmYXVsdCwgcmVvcmRlcmluZyBjb2RlcyBzcGVjaWZpZWQgZm9yIHRoZSBzdGFy
dCBvZiB0aGUgb3JkZXIgYXJlIHBsYWNlZCBpbiB0aGUgCisgKiBvcmRlciBnaXZlbiBhZnRlciBh
IGdyb3VwIG9mICJzcGVjaWFsIiBub24tc2NyaXB0IGJsb2Nrcy4gVGhlc2Ugc3BlY2lhbCBncm91
cHMgb2YgY2hhcmFjdGVycyAKKyAqIGFyZSBzcGFjZSwgcHVuY3R1YXRpb24sIHN5bWJvbCwgY3Vy
cmVuY3ksIGFuZCBkaWdpdC4gVGhlc2Ugc3BlY2lhbCBncm91cHMgYXJlIHJlcHJlc2VudGVkIHdp
dGgKKyAqIFVDb2xSZW9yZGVyQ29kZSBlbnRyaWVzLiBTY3JpcHQgZ3JvdXBzIGNhbiBiZSBpbnRl
cm1pbmdsZWQgd2l0aCAKKyAqIHRoZXNlIHNwZWNpYWwgbm9uLXNjcmlwdCBibG9ja3MgaWYgdGhv
c2Ugc3BlY2lhbCBibG9ja3MgYXJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZSByZW9yZGVy
aW5nLgorICogPHA+VGhlIHNwZWNpYWwgY29kZSBPVEhFUlMgc3RhbmRzIGZvciBhbnkgc2NyaXB0
IHRoYXQgaXMgbm90IGV4cGxpY2l0bHkgCisgKiBtZW50aW9uZWQgaW4gdGhlIGxpc3Qgb2YgcmVv
cmRlcmluZyBjb2RlcyBnaXZlbi4gQW55dGhpbmcgdGhhdCBpcyBhZnRlciBPVEhFUlMKKyAqIHdp
bGwgZ28gYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSByZW9yZGVyaW5nIGluIHRoZSBvcmRlciBnaXZl
bi4KKyAqIDxwPlRoZSBzcGVjaWFsIHJlb3JkZXIgY29kZSBERUZBVUxUIHdpbGwgcmVzZXQgdGhl
IHJlb3JkZXJpbmcgZm9yIHRoaXMgY29sbGF0b3IKKyAqIHRvIHRoZSBkZWZhdWx0IGZvciB0aGlz
IGNvbGxhdG9yLiBUaGUgZGVmYXVsdCByZW9yZGVyaW5nIG1heSBiZSB0aGUgRFVDRVQvQ0xEUiBv
cmRlciBvciBtYXkgYmUgYSByZW9yZGVyaW5nIHRoYXQKKyAqIHdhcyBzcGVjaWZpZWQgd2hlbiB0
aGlzIGNvbGxhdG9yIHdhcyBjcmVhdGVkIGZyb20gcmVzb3VyY2UgZGF0YSBvciBmcm9tIHJ1bGVz
LiBUaGUgCisgKiBERUZBVUxUIGNvZGUgPGI+bXVzdDwvYj4gYmUgdGhlIHNvbGUgY29kZSBzdXBw
bGllZCB3aGVuIGl0IHVzZWQuIElmIG5vdAorICogdGhhdCB3aWxsIHJlc3VsdCBpbiBhbiBVX0lM
TEVHQUxfQVJHVU1FTlRfRVJST1IgYmVpbmcgc2V0LgorICogPHA+VGhlIHNwZWNpYWwgcmVvcmRl
ciBjb2RlIE5PTkUgd2lsbCByZW1vdmUgYW55IHJlb3JkZXJpbmcgZm9yIHRoaXMgY29sbGF0b3Iu
CisgKiBUaGUgcmVzdWx0IG9mIHNldHRpbmcgbm8gcmVvcmRlcmluZyB3aWxsIGJlIHRvIGhhdmUg
dGhlIERVQ0VUL0NMRFIgb3JkZXJpbmcgdXNlZC4gVGhlIAorICogTk9ORSBjb2RlIDxiPm11c3Q8
L2I+IGJlIHRoZSBzb2xlIGNvZGUgc3VwcGxpZWQgd2hlbiBpdCB1c2VkLgogICogQHBhcmFtIGNv
bGwgVGhlIFVDb2xsYXRvciB0byBzZXQuCi0gKiBAcGFyYW0gcmVvcmRlckNvZGVzIEFuIGFycmF5
IG9mIHNjcmlwdCBjb2RlcyBpbiB0aGUgbmV3IG9yZGVyLgorICogQHBhcmFtIHJlb3JkZXJDb2Rl
cyBBbiBhcnJheSBvZiBzY3JpcHQgY29kZXMgaW4gdGhlIG5ldyBvcmRlci4gVGhpcyBjYW4gYmUg
TlVMTCBpZiB0aGUgCisgKiBsZW5ndGggaXMgYWxzbyBzZXQgdG8gMC4gQW4gZW1wdHkgYXJyYXkg
d2lsbCBjbGVhciBhbnkgcmVvcmRlcmluZyBjb2RlcyBvbiB0aGUgY29sbGF0b3IuCiAgKiBAcGFy
YW0gcmVvcmRlckNvZGVzTGVuZ3RoIFRoZSBsZW5ndGggb2YgcmVvcmRlckNvZGVzLgotICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEKKyAqIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgogICogQHNlZSB1Y29sX2dldFJlb3JkZXJDb2Rl
cwotICogQGludGVybmFsIAotICovCi1VX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIAorICogQHNl
ZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAq
IEBzZWUgVUNvbFJlb3JkZXJDb2RlCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLyAKK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyIAogdWNvbF9zZXRSZW9yZGVyQ29kZXMoVUNvbGxhdG9yKiBjb2xsLAog
ICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQzMl90KiByZW9yZGVyQ29kZXMsCiAgICAgICAg
ICAgICAgICAgICAgIGludDMyX3QgcmVvcmRlckNvZGVzTGVuZ3RoLAogICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoqCisgKiBSZXRyaWV2ZXMgdGhlIHJl
b3JkZXIgY29kZXMgdGhhdCBhcmUgZ3JvdXBlZCB3aXRoIHRoZSBnaXZlbiByZW9yZGVyIGNvZGUu
IFNvbWUgcmVvcmRlcgorICogY29kZXMgd2lsbCBiZSBncm91cGVkIGFuZCBtdXN0IHJlb3JkZXIg
dG9nZXRoZXIuCisgKiBAcGFyYW0gcmVvcmRlckNvZGUgVGhlIHJlb3JkZXIgY29kZSB0byBkZXRl
cm1pbmUgZXF1aXZhbGVuY2UgZm9yLgorICogQHBhcmFtIGRlc3QgVGhlIGFycmF5IHRvIGZpbGwg
d2l0aCB0aGUgc2NyaXB0IG9yZGVyaW5nLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgbGVu
Z3RoIG9mIGRlc3QuIElmIGl0IGlzIDAsIHRoZW4gZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1
bmN0aW9uCisgKiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCB3aXRo
b3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nIChwcmUtZmxpZ2h0aW5nKS4KKyAq
IEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNv
ZGUgdmFsdWUsIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIAorICogYSBmYWlsdXJlIGJlZm9yZSB0
aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIG51bWJlciBvZiByZW9yZGVyaW5nIGNv
ZGVzIHdyaXR0ZW4gdG8gdGhlIGRlc3QgYXJyYXkuCisgKiBAc2VlIHVjb2xfc2V0UmVvcmRlckNv
ZGVzCisgKiBAc2VlIHVjb2xfZ2V0UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2RlCisg
KiBAc2VlIFVDb2xSZW9yZGVyQ29kZQorICogQHN0YWJsZSBJQ1UgNC44CisgKi8KK1VfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyIAordWNvbF9nZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzKGludDMy
X3QgcmVvcmRlckNvZGUsCisgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIGRlc3QsCisgICAg
ICAgICAgICAgICAgICAgIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCiAgKiBHZXQgdGhlIGRpc3BsYXkgbmFt
ZSBmb3IgYSBVQ29sbGF0b3IuCiAgKiBUaGUgZGlzcGxheSBuYW1lIGlzIHN1aXRhYmxlIGZvciBw
cmVzZW50YXRpb24gdG8gYSB1c2VyLgogICogQHBhcmFtIG9iakxvYyBUaGUgbG9jYWxlIG9mIHRo
ZSBjb2xsYXRvciBpbiBxdWVzdGlvbi4KQEAgLTcwNSwxMSArODg1LDExIEBAIHVjb2xfZ2V0RnVu
Y3Rpb25hbEVxdWl2YWxlbnQoY2hhciogcmVzdWx0LCBpbnQzMl90IHJlc3VsdENhcGFjaXR5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCogaXNBdmFpbGFibGUsIFVFcnJvckNv
ZGUqIHN0YXR1cyk7CiAKIC8qKgotICogR2V0IHRoZSBjb2xsYXRpb24gcnVsZXMgZnJvbSBhIFVD
b2xsYXRvci4KKyAqIEdldCB0aGUgY29sbGF0aW9uIHRhaWxvcmluZyBydWxlcyBmcm9tIGEgVUNv
bGxhdG9yLgogICogVGhlIHJ1bGVzIHdpbGwgZm9sbG93IHRoZSBydWxlIHN5bnRheC4KICAqIEBw
YXJhbSBjb2xsIFRoZSBVQ29sbGF0b3IgdG8gcXVlcnkuCiAgKiBAcGFyYW0gbGVuZ3RoIAotICog
QHJldHVybiBUaGUgY29sbGF0aW9uIHJ1bGVzLgorICogQHJldHVybiBUaGUgY29sbGF0aW9uIHRh
aWxvcmluZyBydWxlcy4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBVX1NUQUJMRSBjb25zdCBV
Q2hhciogVV9FWFBPUlQyIApAQCAtODAyLDEwICs5ODIsMTAgQEAgdWNvbF9nZXRTb3J0S2V5KGNv
bnN0ICAgIFVDb2xsYXRvciAgICAqY29sbCwKICAqICB0byBwcmVzZXJ2ZSBzdGF0ZSBhcnJheSBi
ZXR3ZWVuIGNhbGxzIGFuZCB0byBwcm92aWRlCiAgKiAgdGhlIHNhbWUgdHlwZSBvZiBVQ2hhckl0
ZXJhdG9yIHNldCB3aXRoIHRoZSBzYW1lIHN0cmluZy4KICAqICBUaGUgZGVzdGluYXRpb24gYnVm
ZmVyIHByb3ZpZGVkIG11c3QgYmUgYmlnIGVub3VnaCB0byBzdG9yZQotICogIHRoZSBudW1iZXIg
b2YgcmVxdWVzdGVkIGJ5dGVzLiBHZW5lcmF0ZWQgc29ydGtleSBpcyBub3QgCi0gKiAgY29tcGF0
aWJsZSB3aXRoIHNvcnRrZXlzIGdlbmVyYXRlZCB1c2luZyB1Y29sX2dldFNvcnRLZXkKLSAqICBB
UEksIHNpbmNlIHdlIGRvbid0IGRvIGFueSBjb21wcmVzc2lvbi4gSWYgdW5jb21wcmVzc2VkCi0g
KiAgc29ydGtleXMgYXJlIHJlcXVpcmVkLCB0aGlzIEFQSSBjYW4gYmUgdXNlZC4KKyAqICB0aGUg
bnVtYmVyIG9mIHJlcXVlc3RlZCBieXRlcy4KKyAqCisgKiAgVGhlIGdlbmVyYXRlZCBzb3J0IGtl
eSBtYXkgb3IgbWF5IG5vdCBiZSBjb21wYXRpYmxlIHdpdGgKKyAqICBzb3J0IGtleXMgZ2VuZXJh
dGVkIHVzaW5nIHVjb2xfZ2V0U29ydEtleSgpLgogICogIEBwYXJhbSBjb2xsIFRoZSBVQ29sbGF0
b3IgY29udGFpbmluZyB0aGUgY29sbGF0aW9uIHJ1bGVzLgogICogIEBwYXJhbSBpdGVyIFVDaGFy
SXRlcmF0b3IgY29udGFpbmluZyB0aGUgc3RyaW5nIHdlIG5lZWQgCiAgKiAgICAgICAgICAgICAg
dGhlIHNvcnQga2V5IHRvIGJlIGNhbGN1bGF0ZWQgZm9yLgpAQCAtOTA5LDI2ICsxMDg5LDQwIEBA
IHVjb2xfZ2V0VmVyc2lvbihjb25zdCBVQ29sbGF0b3IqIGNvbGwsIFVWZXJzaW9uSW5mbyBpbmZv
KTsKIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCiB1Y29sX2dldFVDQVZlcnNpb24oY29uc3QgVUNv
bGxhdG9yKiBjb2xsLCBVVmVyc2lvbkluZm8gaW5mbyk7CiAKLS8qKiAKLSAqIE1lcmdlIHR3byBz
b3J0IGtleXMuIFRoZSBsZXZlbHMgYXJlIG1lcmdlZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcg
Y291bnRlcnBhcnRzCisvKioKKyAqIE1lcmdlcyB0d28gc29ydCBrZXlzLiBUaGUgbGV2ZWxzIGFy
ZSBtZXJnZWQgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nIGNvdW50ZXJwYXJ0cwogICogKHByaW1h
cmllcyB3aXRoIHByaW1hcmllcywgc2Vjb25kYXJpZXMgd2l0aCBzZWNvbmRhcmllcyBldGMuKS4g
QmV0d2VlbiB0aGUgdmFsdWVzCiAgKiBmcm9tIHRoZSBzYW1lIGxldmVsIGEgc2VwYXJhdG9yIGlz
IGluc2VydGVkLgotICogZXhhbXBsZSAodW5jb21wcmVzc2VkKTogCi0gKiAxOTFCMUQgMDEgMDUw
NTA1IDAxIDkxMDUwNSAwMCBhbmQgMUYyMTIzIDAxIDA1MDUwNSAwMSA5MTA1MDUgMDAKKyAqCisg
KiBUaGlzIGlzIHVzZWZ1bCwgZm9yIGV4YW1wbGUsIGZvciBjb21iaW5pbmcgc29ydCBrZXlzIGZy
b20gZmlyc3QgYW5kIGxhc3QgbmFtZXMKKyAqIHRvIHNvcnQgc3VjaCBwYWlycy4KKyAqIEl0IGlz
IHBvc3NpYmxlIHRvIG1lcmdlIG11bHRpcGxlIHNvcnQga2V5cyBieSBjb25zZWN1dGl2ZWx5IG1l
cmdpbmcKKyAqIGFub3RoZXIgb25lIHdpdGggdGhlIGludGVybWVkaWF0ZSByZXN1bHQuCisgKgor
ICogVGhlIGxlbmd0aCBvZiB0aGUgbWVyZ2UgcmVzdWx0IGlzIHRoZSBzdW0gb2YgdGhlIGxlbmd0
aHMgb2YgdGhlIGlucHV0IHNvcnQga2V5cy4KKyAqCisgKiBFeGFtcGxlICh1bmNvbXByZXNzZWQp
OgorICogPHByZT4xOTFCMUQgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMAorICogMUYyMTIzIDAxIDA1
MDUwNSAwMSA5MTA1MDUgMDA8L3ByZT4KICAqIHdpbGwgYmUgbWVyZ2VkIGFzIAotICogMTkxQjFE
IDAyIDFGMjEyMzAxIDA1MDUwNSAwMiAwNTA1MDUgMDEgOTEwNTA1IDAyIDkxMDUwNSAwMAotICog
VGhpcyBhbGxvd3MgZm9yIGNvbmNhdGVuYXRpbmcgb2YgZmlyc3QgYW5kIGxhc3QgbmFtZXMgZm9y
IHNvcnRpbmcsIGFtb25nIG90aGVyIHRoaW5ncy4KLSAqIElmIHRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgaXMgbm90IGJpZyBlbm91Z2gsIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQuCi0gKiBJZiBh
bnkgb2Ygc291cmNlIGxlbmd0aHMgYXJlIHplcm8gb3IgYW55IG9mIHNvdXJjZSBwb2ludGVycyBh
cmUgTlVMTC91bmRlZmluZWQsIAotICogcmVzdWx0IGlzIG9mIHNpemUgemVyby4KLSAqIEBwYXJh
bSBzcmMxIHBvaW50ZXIgdG8gdGhlIGZpcnN0IHNvcnRrZXkKLSAqIEBwYXJhbSBzcmMxTGVuZ3Ro
IGxlbmd0aCBvZiB0aGUgZmlyc3Qgc29ydGtleQotICogQHBhcmFtIHNyYzIgcG9pbnRlciB0byB0
aGUgc2Vjb25kIHNvcnRrZXkKLSAqIEBwYXJhbSBzcmMyTGVuZ3RoIGxlbmd0aCBvZiB0aGUgc2Vj
b25kIHNvcnRrZXkKLSAqIEBwYXJhbSBkZXN0IGJ1ZmZlciB0byBob2xkIHRoZSByZXN1bHQKLSAq
IEBwYXJhbSBkZXN0Q2FwYWNpdHkgc2l6ZSBvZiB0aGUgYnVmZmVyIGZvciB0aGUgcmVzdWx0Ci0g
KiBAcmV0dXJuIHNpemUgb2YgdGhlIHJlc3VsdC4gSWYgdGhlIGJ1ZmZlciBpcyBiaWcgZW5vdWdo
IHNpemUgaXMgYWx3YXlzCi0gKiAgICAgICAgIHNyYzFMZW5ndGgrc3JjMkxlbmd0aC0xCisgKiA8
cHJlPjE5MUIxRCAwMiAxRjIxMjMgMDEgMDUwNTA1IDAyIDA1MDUwNSAwMSA5MTA1MDUgMDIgOTEw
NTA1IDAwPC9wcmU+CisgKgorICogSWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyBub3QgYmln
IGVub3VnaCwgdGhlbiBpdHMgY29udGVudHMgYXJlIHVuZGVmaW5lZC4KKyAqIElmIGFueSBvZiBz
b3VyY2UgbGVuZ3RocyBhcmUgemVybyBvciBhbnkgb2YgdGhlIHNvdXJjZSBwb2ludGVycyBhcmUg
TlVMTC91bmRlZmluZWQsCisgKiB0aGUgcmVzdWx0IGlzIG9mIHNpemUgemVyby4KKyAqCisgKiBA
cGFyYW0gc3JjMSB0aGUgZmlyc3Qgc29ydCBrZXkKKyAqIEBwYXJhbSBzcmMxTGVuZ3RoIHRoZSBs
ZW5ndGggb2YgdGhlIGZpcnN0IHNvcnQga2V5LCBpbmNsdWRpbmcgdGhlIHplcm8gYnl0ZSBhdCB0
aGUgZW5kOworICogICAgICAgIGNhbiBiZSAtMSBpZiB0aGUgZnVuY3Rpb24gaXMgdG8gZmluZCB0
aGUgbGVuZ3RoCisgKiBAcGFyYW0gc3JjMiB0aGUgc2Vjb25kIHNvcnQga2V5CisgKiBAcGFyYW0g
c3JjMkxlbmd0aCB0aGUgbGVuZ3RoIG9mIHRoZSBzZWNvbmQgc29ydCBrZXksIGluY2x1ZGluZyB0
aGUgemVybyBieXRlIGF0IHRoZSBlbmQ7CisgKiAgICAgICAgY2FuIGJlIC0xIGlmIHRoZSBmdW5j
dGlvbiBpcyB0byBmaW5kIHRoZSBsZW5ndGgKKyAqIEBwYXJhbSBkZXN0IHRoZSBidWZmZXIgd2hl
cmUgdGhlIG1lcmdlZCBzb3J0IGtleSBpcyB3cml0dGVuLAorICogICAgICAgIGNhbiBiZSBOVUxM
IGlmIGRlc3RDYXBhY2l0eT09MAorICogQHBhcmFtIGRlc3RDYXBhY2l0eSB0aGUgbnVtYmVyIG9m
IGJ5dGVzIGluIHRoZSBkZXN0IGJ1ZmZlcgorICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBt
ZXJnZWQgc29ydCBrZXksIHNyYzFMZW5ndGgrc3JjMkxlbmd0aDsKKyAqICAgICAgICAgY2FuIGJl
IGxhcmdlciB0aGFuIGRlc3RDYXBhY2l0eSwgb3IgMCBpZiBhbiBlcnJvciBvY2N1cnMgKG9ubHkg
Zm9yIGlsbGVnYWwgYXJndW1lbnRzKSwKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZXMgdGhlIGNv
bnRlbnRzIG9mIGRlc3QgaXMgdW5kZWZpbmVkCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgCkBAIC0xMDE4LDEyICsxMjEyLDEzIEBAIHVjb2xfcmVz
dG9yZVZhcmlhYmxlVG9wKFVDb2xsYXRvciAqY29sbCwgY29uc3QgdWludDMyX3QgdmFyVG9wLCBV
RXJyb3JDb2RlICpzdGF0CiAvKioKICAqIFRocmVhZCBzYWZlIGNsb25pbmcgb3BlcmF0aW9uLiBU
aGUgcmVzdWx0IGlzIGEgY2xvbmUgb2YgYSBnaXZlbiBjb2xsYXRvci4KICAqIEBwYXJhbSBjb2xs
IGNvbGxhdG9yIHRvIGJlIGNsb25lZAotICogQHBhcmFtIHN0YWNrQnVmZmVyIHVzZXIgYWxsb2Nh
dGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiAKKyAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+
RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+
CisgKiB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gCiAgKiBJZiBOVUxM
IG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuIAogICogIElmIGJ1ZmZlciBpcyBub3QgbGFy
Z2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgotICogIENsaWVudHMgY2Fu
IHVzZSB0aGUgVV9DT0xfU0FGRUNMT05FX0JVRkZFUlNJWkUuIAotICogIFRoaXMgd2lsbCBwcm9i
YWJseSBiZSBlbm91Z2ggdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb25zLgotICogQHBhcmFtIHBC
dWZmZXJTaXplIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuIAorICogIENsaWVu
dHMgY2FuIHVzZSB0aGUgVV9DT0xfU0FGRUNMT05FX0JVRkZFUlNJWkUuCisgKiBAcGFyYW0gcEJ1
ZmZlclNpemUgPGVtPkRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eSBhcyBvZiBJQ1UgNTIsIHVzZSBO
VUxMIG9yIDEuPC9lbT48YnI+CisgKiAgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFj
ZS4gCiAgKiAgSWYgKnBCdWZmZXJTaXplID09IDAsIGEgc3VmZmljaWVudCBzaXplIGZvciB1c2Ug
aW4gY2xvbmluZyB3aWxsIAogICogIGJlIHJldHVybmVkICgncHJlLWZsaWdodGluZycpCiAgKiAg
SWYgKnBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2FmZSBjbG9u
ZSwgCkBAIC0xMDQzLDI1ICsxMjM4LDM0IEBAIHVjb2xfc2FmZUNsb25lKGNvbnN0IFVDb2xsYXRv
ciAqY29sbCwKICAgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAqcEJ1ZmZlclNpemUsCiAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICAgKnN0YXR1cyk7CiAKLS8qKiBkZWZhdWx0IG1l
bW9yeSBzaXplIGZvciB0aGUgbmV3IGNsb25lLiBJdCBuZWVkcyB0byBiZSB0aGlzIGxhcmdlIGZv
ciBvcy80MDAgbGFyZ2UgcG9pbnRlcnMgCi0gKiBAc3RhYmxlIElDVSAyLjAKKyNpZm5kZWYgVV9I
SURFX0RFUFJFQ0FURURfQVBJCisKKy8qKiBkZWZhdWx0IG1lbW9yeSBzaXplIGZvciB0aGUgbmV3
IGNsb25lLgorICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBEbyBub3QgcmVseSBvbiB1Y29sX3NhZmVD
bG9uZSgpIGNsb25pbmcgaW50byBhbnkgcHJvdmlkZWQgYnVmZmVyLgogICovCi0jZGVmaW5lIFVf
Q09MX1NBRkVDTE9ORV9CVUZGRVJTSVpFIDUxMgorI2RlZmluZSBVX0NPTF9TQUZFQ0xPTkVfQlVG
RkVSU0laRSAxCisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAg
KiBSZXR1cm5zIGN1cnJlbnQgcnVsZXMuIERlbHRhIGRlZmluZXMgd2hldGhlciBmdWxsIHJ1bGVz
IGFyZSByZXR1cm5lZCBvciBqdXN0IHRoZSB0YWlsb3JpbmcuIAogICogUmV0dXJucyBudW1iZXIg
b2YgVUNoYXJzIG5lZWRlZCB0byBzdG9yZSBydWxlcy4gSWYgYnVmZmVyIGlzIE5VTEwgb3IgYnVm
ZmVyTGVuIGlzIG5vdCBlbm91Z2ggCiAgKiB0byBzdG9yZSBydWxlcywgd2lsbCBzdG9yZSB1cCB0
byBhdmFpbGFibGUgc3BhY2UuCisgKgorICogdWNvbF9nZXRSdWxlcygpIHNob3VsZCBub3JtYWxs
eSBiZSB1c2VkIGluc3RlYWQuCisgKiBTZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5v
cmcvY29sbGF0aW9uL2N1c3RvbWl6YXRpb24jVE9DLUJ1aWxkaW5nLW9uLUV4aXN0aW5nLUxvY2Fs
ZXMKICAqIEBwYXJhbSBjb2xsIGNvbGxhdG9yIHRvIGdldCB0aGUgcnVsZXMgZnJvbQogICogQHBh
cmFtIGRlbHRhIG9uZSBvZiBVQ09MX1RBSUxPUklOR19PTkxZLCBVQ09MX0ZVTExfUlVMRVMuIAog
ICogQHBhcmFtIGJ1ZmZlciBidWZmZXIgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi4gSWYgTlVMTCwg
eW91J2xsIGdldCBubyBydWxlcy4KLSAqIEBwYXJhbSBidWZmZXJMZW4gbGVuZ2h0IG9mIGJ1ZmZl
ciB0byBzdG9yZSBydWxlcyBpbi4gSWYgbGVzcyB0aGVuIG5lZWRlZCB5b3UnbGwgZ2V0IG9ubHkg
dGhlIHBhcnQgdGhhdCBmaXRzIGluLgorICogQHBhcmFtIGJ1ZmZlckxlbiBsZW5ndGggb2YgYnVm
ZmVyIHRvIHN0b3JlIHJ1bGVzIGluLiBJZiBsZXNzIHRoYW4gbmVlZGVkIHlvdSdsbCBnZXQgb25s
eSB0aGUgcGFydCB0aGF0IGZpdHMgaW4uCiAgKiBAcmV0dXJuIGN1cnJlbnQgcnVsZXMKICAqIEBz
dGFibGUgSUNVIDIuMAorICogQHNlZSBVQ09MX0ZVTExfUlVMRVMKICAqLwogVV9TVEFCTEUgaW50
MzJfdCBVX0VYUE9SVDIgCiB1Y29sX2dldFJ1bGVzRXgoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBV
Q29sUnVsZU9wdGlvbiBkZWx0YSwgVUNoYXIgKmJ1ZmZlciwgaW50MzJfdCBidWZmZXJMZW4pOwog
CisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogLyoqCiAgKiBnZXRzIHRoZSBsb2NhbGUg
bmFtZSBvZiB0aGUgY29sbGF0b3IuIElmIHRoZSBjb2xsYXRvcgogICogaXMgaW5zdGFudGlhdGVk
IGZyb20gdGhlIHJ1bGVzLCB0aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucwpAQCAtMTA3OCw3ICsx
MjgyLDcgQEAgdWNvbF9nZXRSdWxlc0V4KGNvbnN0IFVDb2xsYXRvciAqY29sbCwgVUNvbFJ1bGVP
cHRpb24gZGVsdGEsIFVDaGFyICpidWZmZXIsIGludDMKICAqLwogVV9ERVBSRUNBVEVEIGNvbnN0
IGNoYXIgKiBVX0VYUE9SVDIKIHVjb2xfZ2V0TG9jYWxlKGNvbnN0IFVDb2xsYXRvciAqY29sbCwg
VUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUgKnN0YXR1cyk7Ci0KKyNlbmRpZiAg
LyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAKIC8qKgogICogZ2V0cyB0aGUgbG9jYWxlIG5h
bWUgb2YgdGhlIGNvbGxhdG9yLiBJZiB0aGUgY29sbGF0b3IKQEAgLTExMTAsNiArMTMxNCw3IEBA
IHVjb2xfZ2V0TG9jYWxlQnlUeXBlKGNvbnN0IFVDb2xsYXRvciAqY29sbCwgVUxvY0RhdGFMb2Nh
bGVUeXBlIHR5cGUsIFVFcnJvckNvZGUKIFVfU1RBQkxFIFVTZXQgKiBVX0VYUE9SVDIKIHVjb2xf
Z2V0VGFpbG9yZWRTZXQoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVRXJyb3JDb2RlICpzdGF0dXMp
OwogCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgogICogVW5pdmVyc2FsIGF0dHJp
YnV0ZSBnZXR0ZXIgdGhhdCByZXR1cm5zIFVDT0xfREVGQVVMVCBpZiB0aGUgdmFsdWUgaXMgZGVm
YXVsdAogICogQHBhcmFtIGNvbGwgY29sbGF0b3Igd2hpY2ggYXR0cmlidXRlcyBhcmUgdG8gYmUg
Y2hhbmdlZApAQCAtMTE4Miw2ICsxMzg3LDcgQEAgdWNvbF9wcmVwYXJlU2hvcnRTdHJpbmdPcGVu
KCBjb25zdCBjaGFyICpkZWZpbml0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVQm9v
bCBmb3JjZURlZmF1bHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVUGFyc2VFcnJvciAq
cGFyc2VFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVz
KTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKiogQ3JlYXRlcyBhIGJp
bmFyeSBpbWFnZSBvZiBhIGNvbGxhdG9yLiBUaGlzIGJpbmFyeSBpbWFnZSBjYW4gYmUgc3RvcmVk
IGFuZCAKICAqICBsYXRlciB1c2VkIHRvIGluc3RhbnRpYXRlIGEgY29sbGF0b3IgdXNpbmcgdWNv
bF9vcGVuQmluYXJ5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3Vjb25maWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91Y29uZmln
LmgKaW5kZXggN2QyZDI2ZTk1NTI4MTliMDZlNjQxODYzZGI3MWNmZWY0YzAxOWNiYy4uYmZhOGU3
N2IwZjFhMzUyMjA3NmZjMGE2NjkyNTdkNTMyNTI0ZmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vjb25maWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaWN1L3VuaWNvZGUvdWNvbmZpZy5oCkBAIC0xLDYgKzEsNiBAQAogLyogIAogKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2lu
ZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICogICBmaWxlIG5hbWU6ICB1Y29uZmlnLmgKQEAg
LTE4LDkgKzE4LDE3IEBACiAKIC8qIQogICogXGZpbGUKLSAqIFxicmllZiBTd2l0Y2hlcyBmb3Ig
ZXhjbHVkaW5nIHBhcnRzIG9mIElDVSBsaWJyYXJ5IGNvZGUgbW9kdWxlcy4KKyAqIFxicmllZiBV
c2VyLWNvbmZpZ3VyYWJsZSBzZXR0aW5ncwogICoKLSAqIEFsbG93cyB0byBidWlsZCBwYXJ0aWFs
LCBzbWFsbGVyIGxpYnJhcmllcyBmb3Igc3BlY2lhbCBwdXJwb3Nlcy4KKyAqIE1pc2NlbGxhbmVv
dXMgc3dpdGNoZXM6CisgKgorICogQSBudW1iZXIgb2YgbWFjcm9zIGFmZmVjdCBhIHZhcmlldHkg
b2YgbWlub3IgYXNwZWN0cyBvZiBJQ1UuCisgKiBNb3N0IG9mIHRoZW0gdXNlZCB0byBiZSBkZWZp
bmVkIGVsc2V3aGVyZSAoZS5nLiwgaW4gdXR5cGVzLmggb3IgcGxhdGZvcm0uaCkKKyAqIGFuZCBt
b3ZlZCBoZXJlIHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8gZmluZC4KKyAqCisgKiBTd2l0Y2hlcyBm
b3IgZXhjbHVkaW5nIHBhcnRzIG9mIElDVSBsaWJyYXJ5IGNvZGUgbW9kdWxlczoKKyAqCisgKiBD
aGFuZ2luZyB0aGVzZSBtYWNyb3MgYWxsb3dzIGJ1aWxkaW5nIHBhcnRpYWwsIHNtYWxsZXIgbGli
cmFyaWVzIGZvciBzcGVjaWFsIHB1cnBvc2VzLgogICogQnkgZGVmYXVsdCwgYWxsIG1vZHVsZXMg
YXJlIGJ1aWx0LgogICogVGhlIHN3aXRjaGVzIGFyZSBmYWlybHkgY29hcnNlLCBjb250cm9sbGlu
ZyBsYXJnZSBtb2R1bGVzLgogICogQmFzaWMgc2VydmljZXMgY2Fubm90IGJlIHR1cm5lZCBvZmYu
CkBAIC0zOCwxNSArNDYsMTUzIEBACiAvKioKICAqIElmIHRoaXMgc3dpdGNoIGlzIGRlZmluZWQs
IElDVSB3aWxsIGF0dGVtcHQgdG8gbG9hZCBhIGhlYWRlciBmaWxlIG5hbWVkICJ1Y29uZmlnX2xv
Y2FsLmgiCiAgKiBwcmlvciB0byBkZXRlcm1pbmluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB1Y29u
ZmlnIHZhcmlhYmxlcy4KLSAqIAorICoKICAqIEBpbnRlcm5hbCBJQ1UgNC4wCi0gKiAKICAqLwog
I2lmIGRlZmluZWQoVUNPTkZJR19VU0VfTE9DQUwpCiAjaW5jbHVkZSAidWNvbmZpZ19sb2NhbC5o
IgogI2VuZGlmCiAKIC8qKgorICogXGRlZiBVX0RFQlVHCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIg
dG8gaW5jbHVkZSBkZWJ1Z2dpbmcgY29kZS4KKyAqIEF1dG9tYXRpY2FsbHkgc2V0IG9uIFdpbmRv
d3MsIGJ1dCBtb3N0IGNvbXBpbGVycyBkbyBub3QgaGF2ZQorICogcmVsYXRlZCBwcmVkZWZpbmVk
IG1hY3Jvcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9ERUJVRworICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX0RFQlVHKQorICAgIC8qCisg
ICAgICogX0RFQlVHIGlzIGRlZmluZWQgYnkgVmlzdWFsIFN0dWRpbyBkZWJ1ZyBjb21waWxhdGlv
bi4KKyAgICAgKiBEbyAqbm90KiB0ZXN0IGZvciBpdHMgTkRFQlVHIG1hY3JvOiBJdCBpcyBhbiBv
cnRob2dvbmFsIG1hY3JvCisgICAgICogd2hpY2ggZGlzYWJsZXMgYXNzZXJ0KCkuCisgICAgICov
CisjICAgZGVmaW5lIFVfREVCVUcgMQorIyBlbHNlCisjICAgZGVmaW5lIFVfREVCVUcgMAorI2Vu
ZGlmCisKKy8qKgorICogRGV0ZXJtaW5lcyB3aGV0ZXIgdG8gZW5hYmxlIGF1dG8gY2xlYW51cCBv
ZiBsaWJyYXJpZXMuIAorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNMTl9OT19BVVRPX0NM
RUFOVVAKKyNkZWZpbmUgVUNMTl9OT19BVVRPX0NMRUFOVVAgMQorI2VuZGlmCisKKy8qKgorICog
XGRlZiBVX0RJU0FCTEVfUkVOQU1JTkcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBkaXNhYmxl
IHJlbmFtaW5nIG9yIG5vdC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRElTQUJMRV9S
RU5BTUlORworI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMQorI2VuZGlmCisKKy8qKgorICog
XGRlZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUworICogRGV0ZXJtaW5lcyB3aGV0
aGVyIHV0eXBlcy5oIGluY2x1ZGVzIHV0Zi5oLCB1dGY4LmgsIHV0ZjE2LmggYW5kIHV0Zl9vbGQu
aC4KKyAqIHV0eXBlcy5oIGluY2x1ZGVzIHRob3NlIGhlYWRlcnMgaWYgdGhpcyBtYWNybyBpcyBk
ZWZpbmVkIHRvIDAuCisgKiBPdGhlcndpc2UsIGVhY2ggdGhvc2UgaGVhZGVycyBtdXN0IGJlIGlu
Y2x1ZGVkIGV4cGxpY2l0bHkgd2hlbiB1c2luZyBvbmUgb2YgdGhlaXIgbWFjcm9zLgorICogRGVm
YXVsdHMgdG8gMCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgZXhjZXB0IGluc2lkZSBJQ1Uu
CisgKiBAc3RhYmxlIElDVSA0OQorICovCisjaWZkZWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRG
X0hFQURFUlMKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZp
bmVkKFVfQ09NQklORURfSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9DT01NT05fSU1QTEVN
RU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBk
ZWZpbmVkKFVfSU9fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5U
QVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikgfHwgXAorICAgICAg
ZGVmaW5lZChVX1RPT0xVVElMX0lNUExFTUVOVEFUSU9OKQorIyAgIGRlZmluZSBVX05PX0RFRkFV
TFRfSU5DTFVERV9VVEZfSEVBREVSUyAxCisjZWxzZQorIyAgIGRlZmluZSBVX05PX0RFRkFVTFRf
SU5DTFVERV9VVEZfSEVBREVSUyAwCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfT1ZFUlJJREVf
Q1hYX0FMTE9DQVRJT04KKyAqIERldGVybWluZXMgd2hldGhlciB0byBvdmVycmlkZSBuZXcgYW5k
IGRlbGV0ZS4KKyAqIElDVSBpcyBub3JtYWxseSBidWlsdCBzdWNoIHRoYXQgYWxsIG9mIGl0cyBD
KysgY2xhc3NlcywgdmlhIHRoZWlyIFVNZW1vcnkgYmFzZSwKKyAqIG92ZXJyaWRlIG9wZXJhdG9y
cyBuZXcgYW5kIGRlbGV0ZSB0byB1c2UgaXRzIGludGVybmFsLCBjdXN0b21pemFibGUsCisgKiBu
b24tZXhjZXB0aW9uLXRocm93aW5nIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucy4gKERlZmF1
bHQgdmFsdWUgMSBmb3IgdGhpcyBtYWNyby4pCisgKgorICogVGhpcyBpcyBlc3BlY2lhbGx5IGlt
cG9ydGFudCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBhbmQgaXRzIGxpYnJhcmllcyB1c2UgbXVsdGlw
bGUgaGVhcHMuCisgKiBGb3IgZXhhbXBsZSwgb24gV2luZG93cywgdGhpcyBhbGxvd3MgdGhlIElD
VSBETEwgdG8gYmUgdXNlZCBieQorICogYXBwbGljYXRpb25zIHRoYXQgc3RhdGljYWxseSBsaW5r
IHRoZSBDIFJ1bnRpbWUgbGlicmFyeS4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjIKKyAqLworI2lm
bmRlZiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OCisjZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FM
TE9DQVRJT04gMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0VOQUJMRV9UUkFDSU5HCisgKiBE
ZXRlcm1pbmVzIHdoZXRoZXIgdG8gZW5hYmxlIHRyYWNpbmcuCisgKiBAaW50ZXJuYWwKKyAqLwor
I2lmbmRlZiBVX0VOQUJMRV9UUkFDSU5HCisjZGVmaW5lIFVfRU5BQkxFX1RSQUNJTkcgMAorI2Vu
ZGlmCisKKy8qKgorICogXGRlZiBVX0VOQUJMRV9EWUxPQUQKKyAqIFdoZXRoZXIgdG8gZW5hYmxl
IER5bmFtaWMgbG9hZGluZyBpbiBJQ1UuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0VO
QUJMRV9EWUxPQUQKKyNkZWZpbmUgVV9FTkFCTEVfRFlMT0FEIDEKKyNlbmRpZgorCisvKioKKyAq
IFxkZWYgVV9DSEVDS19EWUxPQUQKKyAqIFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxvYWRpbmcg
YXMgYW4gT1MgY2FwYWJpbGl0eS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfQ0hFQ0tf
RFlMT0FECisjZGVmaW5lIFVfQ0hFQ0tfRFlMT0FEIDEKKyNlbmRpZgorCisKKy8qKgorICogXGRl
ZiBVX0RFRkFVTFRfU0hPV19EUkFGVAorICogRG8gd2UgYWxsb3cgSUNVIHVzZXJzIHRvIHVzZSB0
aGUgZHJhZnQgQVBJcyBieSBkZWZhdWx0PworICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9E
RUZBVUxUX1NIT1dfRFJBRlQKKyNkZWZpbmUgVV9ERUZBVUxUX1NIT1dfRFJBRlQgMQorI2VuZGlm
CisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qIEN1c3RvbSBpY3UgZW50cnkgcG9pbnQgcmVu
YW1pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfSEFWRV9MSUJfU1VGRklYCisgKiAx
IGlmIGEgY3VzdG9tIGxpYnJhcnkgc3VmZml4IGlzIHNldC4KKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9IQVZFX0xJQl9TVUZGSVgKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUu
ICovCisjZWxpZiBkZWZpbmVkKFVfTElCX1NVRkZJWF9DX05BTUUpCisjICAgZGVmaW5lIFVfSEFW
RV9MSUJfU1VGRklYIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9MSUJfU1VGRklYX0NfTkFN
RV9TVFJJTkcKKyAqIERlZmluZXMgdGhlIGxpYnJhcnkgc3VmZml4IGFzIGEgc3RyaW5nIHdpdGgg
QyBzeW50YXguCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfTElCX1NVRkZJWF9DX05BTUVf
U1RSSU5HCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5l
ZChVX0xJQl9TVUZGSVhfQ19OQU1FKQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NU
UklORyAjVV9MSUJfU1VGRklYX0NfTkFNRQorI2Vsc2UKKyMgICBkZWZpbmUgVV9MSUJfU1VGRklY
X0NfTkFNRV9TVFJJTkcgIiIKKyNlbmRpZgorCisvKiBjb21tb24vaTE4biBsaWJyYXJ5IHN3aXRj
aGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisv
KioKICAqIFxkZWYgVUNPTkZJR19PTkxZX0NPTExBVElPTgogICogVGhpcyBzd2l0Y2ggdHVybnMg
b2ZmIG1vZHVsZXMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgY29sbGF0aW9uLgogICoKQEAgLTE0
Niw2ICsyOTIsOSBAQAogIyAgIGRlZmluZSBVQ09ORklHX05PX05PUk1BTElaQVRJT04gMAogI2Vs
aWYgVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAgICAgLyogY29tbW9uIGxpYnJhcnkgKi8KKyAg
ICAvKiBJQ1UgNTAgQ0pLIGRpY3Rpb25hcnkgQnJlYWtJdGVyYXRvciB1c2VzIG5vcm1hbGl6YXRp
b24gKi8KKyMgICBkZWZpbmUgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gMQorICAgIC8qIElE
TkEgKFVUUyAjNDYpIGlzIGltcGxlbWVudGVkIHZpYSBub3JtYWxpemF0aW9uICovCiAjICAgZGVm
aW5lIFVDT05GSUdfTk9fSUROQSAxCiAKICAgICAvKiBpMThuIGxpYnJhcnkgKi8KQEAgLTE3Niw2
ICszMjUsMTcgQEAKICMgICBkZWZpbmUgVUNPTkZJR19OT19JRE5BIDAKICNlbmRpZgogCisvKioK
KyAqIFxkZWYgVUNPTkZJR19NU0dQQVRfREVGQVVMVF9BUE9TVFJPUEhFX01PREUKKyAqIERldGVy
bWluZXMgdGhlIGRlZmF1bHQgVU1lc3NhZ2VQYXR0ZXJuQXBvc3Ryb3BoZU1vZGUuCisgKiBTZWUg
dGhlIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgZW51bS4KKyAqCisgKiBAc3RhYmxlIElDVSA0LjgK
KyAqLworI2lmbmRlZiBVQ09ORklHX01TR1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorIyAg
IGRlZmluZSBVQ09ORklHX01TR1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERSBVTVNHUEFUX0FQ
T1NfRE9VQkxFX09QVElPTkFMCisjZW5kaWYKKwogLyogaTE4biBsaWJyYXJ5IHN3aXRjaGVzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAog
LyoqCkBAIC0yMjgsNCArMzg4LDI1IEBACiAjICAgZGVmaW5lIFVDT05GSUdfTk9fU0VSVklDRSAx
CiAjZW5kaWYKIAorLyoqCisgKiBcZGVmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisgKiBU
aGlzIHN3aXRjaCB0dXJucyBvbiB0aGUgInBhcnNlIGFsbCBpbnB1dCIgYXR0cmlidXRlLiBCaW5h
cnkgaW5jb21wYXRpYmxlLgorICoKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVDT05GSUdf
SEFWRV9QQVJTRUFMTElOUFVUCisjICAgZGVmaW5lIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVU
IDEKKyNlbmRpZgorCisKKy8qKgorICogXGRlZiBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkK
KyAqIFRoaXMgc3dpdGNoIHR1cm5zIG9uIG90aGVyIGZvcm1hdHRpbmcgZmFzdHBhdGhzLiBCaW5h
cnkgaW5jb21wYXRpYmxlIGluIG9iamVjdCBEZWNpbWFsRm9ybWF0IGFuZCBEZWNpbWFsRm9ybWF0
U3ltYm9scworICoKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVDT05GSUdfRk9STUFUX0ZB
U1RQQVRIU180OQorIyAgIGRlZmluZSBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkgMQorI2Vu
ZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3VkYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZGF0LmgKaW5k
ZXggZDQ4MGM3ZGE1MTQ3NWIzOTNjZTBkM2M5YjcyMmNjNmRjNGQzZDBiYi4uNmFkNDM4MDM3NjM5
MjRjMzYyMzA2MGQ1ZWFmOWEyNzI2MTA1ZmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ljdS91bmljb2RlL3VkYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1
L3VuaWNvZGUvdWRhdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcworICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKICAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKi8KQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNs
dWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgogI2luY2x1ZGUgInVuaWNvZGUvdWNhbC5oIgog
I2luY2x1ZGUgInVuaWNvZGUvdW51bS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRpc3BsYXljb250
ZXh0LmgiCiAvKioKICAqIFxmaWxlCiAgKiBcYnJpZWYgQyBBUEk6IERhdGVGb3JtYXQKQEAgLTEz
MCw2ICsxMzEsMTYgQEAKICAqICAgPGxpPiAgIEFsaWduIGFueSBwYXJ0aWN1bGFyIGZpZWxkLCBv
ciBmaW5kIG91dCB3aGVyZSBpdCBpcyBmb3Igc2VsZWN0aW9uCiAgKiAgICAgICAgICBvbiB0aGUg
c2NyZWVuLgogICogPC91bD4KKyAqIDxwPjxzdHJvbmc+RGF0ZSBhbmQgVGltZSBQYXR0ZXJuczo8
L3N0cm9uZz48L3A+CisgKgorICogPHA+RGF0ZSBhbmQgdGltZSBmb3JtYXRzIGFyZSBzcGVjaWZp
ZWQgYnkgPGVtPmRhdGUgYW5kIHRpbWUgcGF0dGVybjwvZW0+IHN0cmluZ3MuCisgKiBXaXRoaW4g
ZGF0ZSBhbmQgdGltZSBwYXR0ZXJuIHN0cmluZ3MsIGFsbCB1bnF1b3RlZCBBU0NJSSBsZXR0ZXJz
IFtBLVphLXpdIGFyZSByZXNlcnZlZAorICogYXMgcGF0dGVybiBsZXR0ZXJzIHJlcHJlc2VudGlu
ZyBjYWxlbmRhciBmaWVsZHMuIDxjb2RlPlVEYXRlRm9ybWF0PC9jb2RlPiBzdXBwb3J0cworICog
dGhlIGRhdGUgYW5kIHRpbWUgZm9ybWF0dGluZyBhbGdvcml0aG0gYW5kIHBhdHRlcm4gbGV0dGVy
cyBkZWZpbmVkIGJ5CisgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMv
dHIzNS90cjM1LWRhdGVzLmh0bWwjRGF0ZV9GaWVsZF9TeW1ib2xfVGFibGUiPlVUUyMzNQorICog
VW5pY29kZSBMb2NhbGUgRGF0YSBNYXJrdXAgTGFuZ3VhZ2UgKExETUwpPC9hPiBhbmQgZnVydGhl
ciBkb2N1bWVudGVkIGZvciBJQ1UgaW4gdGhlCisgKiA8YSBocmVmPSJodHRwczovL3NpdGVzLmdv
b2dsZS5jb20vc2l0ZS9pY3Vwcm9qZWN0dXNlcmd1aWRlL2Zvcm1hdHBhcnNlL2RhdGV0aW1lP3Bs
aT0xI1RPQy1EYXRlLUZpZWxkLVN5bWJvbC1UYWJsZSI+SUNVCisgKiBVc2VyIEd1aWRlPC9hPi48
L3A+CiAgKi8KIAogLyoqIEEgZGF0ZSBmb3JtYXR0ZXIuCkBAIC0xNjcsOTEgKzE3OCwzMTQgQEAg
dHlwZWRlZiBlbnVtIFVEYXRlRm9ybWF0U3R5bGUgewogICAgIAogICAgIC8qKiBObyBzdHlsZSAq
LwogICAgIFVEQVRfTk9ORSA9IC0xLAotICAgIC8qKiBmb3IgaW50ZXJuYWwgQVBJIHVzZSBvbmx5
ICovCi0gICAgVURBVF9JR05PUkUgPSAtMgogCisgICAgLyoqCisgICAgICogVXNlIHRoZSBwYXR0
ZXJuIGdpdmVuIGluIHRoZSBwYXJhbWV0ZXIgdG8gdWRhdF9vcGVuCisgICAgICogQHNlZSB1ZGF0
X29wZW4KKyAgICAgKiBAc3RhYmxlIElDVSA1MAorICAgICAqLworICAgIFVEQVRfUEFUVEVSTiA9
IC0yLAorCisgICAgLyoqIEBpbnRlcm5hbCBhbGlhcyB0byBVREFUX1BBVFRFUk4gKi8KKyAgICBV
REFUX0lHTk9SRSA9IFVEQVRfUEFUVEVSTgogfSBVRGF0ZUZvcm1hdFN0eWxlOwogCisvKiBTa2Vs
ZXRvbnMgZm9yIGRhdGVzLiAqLwogCiAvKioKLSAqIEB7Ci0gKiBCZWxvdyBhcmUgYSBzZXQgb2Yg
cHJlLWRlZmluZWQgc2tlbGV0b25zLgotICoKLSAqIDxQPgotICogQSBza2VsZXRvbiAKLSAqIDxv
bD4KLSAqIDxsaT4KLSAqICAgIG9ubHkga2VlcHMgdGhlIGZpZWxkIHBhdHRlcm4gbGV0dGVyIGFu
ZCBpZ25vcmVzIGFsbCBvdGhlciBwYXJ0cyAKLSAqICAgIGluIGEgcGF0dGVybiwgc3VjaCBhcyBz
cGFjZSwgcHVuY3R1YXRpb25zLCBhbmQgc3RyaW5nIGxpdGVyYWxzLgotICogPC9saT4KLSAqIDxs
aT4KLSAqICAgIGhpZGVzIHRoZSBvcmRlciBvZiBmaWVsZHMuIAotICogPC9saT4KLSAqIDxsaT4K
LSAqICAgIG1pZ2h0IGhpZGUgYSBmaWVsZCdzIHBhdHRlcm4gbGV0dGVyIGxlbmd0aC4KLSAqCi0g
KiAgICBGb3IgdGhvc2Ugbm9uLWRpZ2l0IGNhbGVuZGFyIGZpZWxkcywgdGhlIHBhdHRlcm4gbGV0
dGVyIGxlbmd0aCBpcyAKLSAqICAgIGltcG9ydGFudCwgc3VjaCBhcyBNTU0sIE1NTU0sIGFuZCBN
TU1NTTsgRUVFIGFuZCBFRUVFLCAKLSAqICAgIGFuZCB0aGUgZmllbGQncyBwYXR0ZXJuIGxldHRl
ciBsZW5ndGggaXMgaG9ub3JlZC4KLSAqICAgIAotICogICAgRm9yIHRoZSBkaWdpdCBjYWxlbmRh
ciBmaWVsZHMsICBzdWNoIGFzIE0gb3IgTU0sIGQgb3IgZGQsIHl5IG9yIHl5eXksIAotICogICAg
dGhlIGZpZWxkIHBhdHRlcm4gbGVuZ3RoIGlzIGlnbm9yZWQgYW5kIHRoZSBiZXN0IG1hdGNoLCB3
aGljaCBpcyBkZWZpbmVkIAotICogICAgaW4gZGF0ZSB0aW1lIHBhdHRlcm5zLCB3aWxsIGJlIHJl
dHVybmVkIHdpdGhvdXQgaG9ub3IgdGhlIGZpZWxkIHBhdHRlcm4KLSAqICAgIGxldHRlciBsZW5n
dGggaW4gc2tlbGV0b24uCi0gKiA8L2xpPgotICogPC9vbD4KLSAqCisgKiBDb25zdGFudCBmb3Ig
ZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIuCiAgKiBAc3RhYmxlIElDVSA0LjAKICAqLwotCi0jZGVm
aW5lIFVEQVRfTUlOVVRFX1NFQ09ORCAgICAgICAgICAgICAgIm1zIgotI2RlZmluZSBVREFUX0hP
VVIyNF9NSU5VVEUgICAgICAgICAgICAgICJIbSIKLSNkZWZpbmUgVURBVF9IT1VSMjRfTUlOVVRF
X1NFQ09ORCAgICAgICAiSG1zIiAgICAgIAotI2RlZmluZSBVREFUX0hPVVJfTUlOVVRFX1NFQ09O
RCAgICAgICAgICJobXMiCi0jZGVmaW5lIFVEQVRfU1RBTkRBTE9ORV9NT05USCAgICAgICAgICAg
IkxMTEwiCi0jZGVmaW5lIFVEQVRfQUJCUl9TVEFOREFMT05FX01PTlRIICAgICAgIkxMTCIKLSNk
ZWZpbmUgVURBVF9ZRUFSX1FVQVJURVIgICAgICAgICAgICAgICAieVFRUSIKLSNkZWZpbmUgVURB
VF9ZRUFSX0FCQlJfUVVBUlRFUiAgICAgICAgICAieVEiCi0KLS8qKiBAfSAqLwotCisjZGVmaW5l
IFVEQVRfWUVBUiAgICAgICAgICAgICAgICAgICAgICAgInkiCisjaWZuZGVmIFVfSElERV9EUkFG
VF9BUEkKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBxdWFydGVyLgor
ICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfUVVBUlRFUiAgICAgICAgICAgICAg
ICAgICAgIlFRUVEiCiAvKioKLSAqIEB7Ci0gKiBCZWxvdyBhcmUgYSBzZXQgb2YgcHJlLWRlZmlu
ZWQgc2tlbGV0b25zIHRoYXQgCi0gKiBoYXZlIHByZS1kZWZpbmVkIGludGVydmFsIHBhdHRlcm5z
IGluIHJlc291cmNlIGZpbGVzLgotICogVXNlcnMgYXJlIGVuY291cmFnZWQgdG8gdXNlIHRoZW0g
aW4gZGF0ZSBpbnRlcnZhbCBmb3JtYXQgZmFjdG9yeSBtZXRob2RzLgotICogCisgKiBDb25zdGFu
dCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGFiYnJldmlhdGVkIHF1YXJ0ZXIuCisgKiBAZHJhZnQg
SUNVIDUxCisgKi8KKyNkZWZpbmUgVURBVF9BQkJSX1FVQVJURVIgICAgICAgICAgICAgICAiUVFR
IgorI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisvKioKKyAqIENvbnN0YW50IGZvciBk
YXRlIHNrZWxldG9uIHdpdGggeWVhciBhbmQgcXVhcnRlci4KKyAqIEBzdGFibGUgSUNVIDQuMAor
ICovCisjZGVmaW5lIFVEQVRfWUVBUl9RVUFSVEVSICAgICAgICAgICAgICAgInlRUVFRIgorLyoq
CisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIgYW5kIGFiYnJldmlhdGVk
IHF1YXJ0ZXIuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX1lFQVJfQUJC
Ul9RVUFSVEVSICAgICAgICAgICJ5UVFRIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2Vs
ZXRvbiB3aXRoIG1vbnRoLgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9N
T05USCAgICAgICAgICAgICAgICAgICAgICAiTU1NTSIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRh
dGUgc2tlbGV0b24gd2l0aCBhYmJyZXZpYXRlZCBtb250aC4KKyAqIEBzdGFibGUgSUNVIDQuMAor
ICovCisjZGVmaW5lIFVEQVRfQUJCUl9NT05USCAgICAgICAgICAgICAgICAgIk1NTSIKKy8qKgor
ICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBudW1lcmljIG1vbnRoLgorICogQHN0
YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9OVU1fTU9OVEggICAgICAgICAgICAgICAg
ICAiTSIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCB5ZWFyIGFuZCBt
b250aC4KICAqIEBzdGFibGUgSUNVIDQuMAogICovCi0jZGVmaW5lIFVEQVRfSE9VUl9NSU5VVEUg
ICAgICAgICAgICAgICAgImhtIgotI2RlZmluZSBVREFUX1lFQVIgICAgICAgICAgICAgICAgICAg
ICAgICJ5IgotI2RlZmluZSBVREFUX0RBWSAgICAgICAgICAgICAgICAgICAgICAgICJkIgotI2Rl
ZmluZSBVREFUX05VTV9NT05USF9XRUVLREFZX0RBWSAgICAgICJNRWQiCi0jZGVmaW5lIFVEQVRf
WUVBUl9OVU1fTU9OVEggICAgICAgICAgICAgInlNIiAgICAgICAgICAgICAgCi0jZGVmaW5lIFVE
QVRfTlVNX01PTlRIX0RBWSAgICAgICAgICAgICAgIk1kIgotI2RlZmluZSBVREFUX1lFQVJfTlVN
X01PTlRIX1dFRUtEQVlfREFZICJ5TUVkIgotI2RlZmluZSBVREFUX0FCQlJfTU9OVEhfV0VFS0RB
WV9EQVkgICAgICJNTU1FZCIKICNkZWZpbmUgVURBVF9ZRUFSX01PTlRIICAgICAgICAgICAgICAg
ICAieU1NTU0iCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciBh
bmQgYWJicmV2aWF0ZWQgbW9udGguCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLwogI2RlZmluZSBV
REFUX1lFQVJfQUJCUl9NT05USCAgICAgICAgICAgICJ5TU1NIgotI2RlZmluZSBVREFUX01PTlRI
X0RBWSAgICAgICAgICAgICAgICAgICJNTU1NZCIKLSNkZWZpbmUgVURBVF9BQkJSX01PTlRIX0RB
WSAgICAgICAgICAgICAiTU1NZCIgCi0jZGVmaW5lIFVEQVRfTU9OVEhfV0VFS0RBWV9EQVkgICAg
ICAgICAgIk1NTU1FRUVFZCIKLSNkZWZpbmUgVURBVF9ZRUFSX0FCQlJfTU9OVEhfV0VFS0RBWV9E
QVkgInlNTU1FZCIgCi0jZGVmaW5lIFVEQVRfWUVBUl9NT05USF9XRUVLREFZX0RBWSAgICAgInlN
TU1NRUVFRWQiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciBh
bmQgbnVtZXJpYyBtb250aC4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRf
WUVBUl9OVU1fTU9OVEggICAgICAgICAgICAgInlNIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0
ZSBza2VsZXRvbiB3aXRoIGRheS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVE
QVRfREFZICAgICAgICAgICAgICAgICAgICAgICAgImQiCisvKioKKyAqIENvbnN0YW50IGZvciBk
YXRlIHNrZWxldG9uIHdpdGggeWVhciwgbW9udGgsIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJp
bmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4K
KyAqIEBzdGFibGUgSUNVIDQuMAorICovCiAjZGVmaW5lIFVEQVRfWUVBUl9NT05USF9EQVkgICAg
ICAgICAgICAgInlNTU1NZCIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0
aCB5ZWFyLCBhYmJyZXZpYXRlZCBtb250aCwgYW5kIGRheS4KKyAqIFVzZWQgaW4gY29tYmluYXRp
b25zIGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICog
QHN0YWJsZSBJQ1UgNC4wCisgKi8KICNkZWZpbmUgVURBVF9ZRUFSX0FCQlJfTU9OVEhfREFZICAg
ICAgICAieU1NTWQiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVh
ciwgbnVtZXJpYyBtb250aCwgYW5kIGRheS4KKyAqIFVzZWQgaW4gY29tYmluYXRpb25zIGRhdGUg
KyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHN0YWJsZSBJ
Q1UgNC4wCisgKi8KICNkZWZpbmUgVURBVF9ZRUFSX05VTV9NT05USF9EQVkgICAgICAgICAieU1k
IgotI2RlZmluZSBVREFUX05VTV9NT05USCAgICAgICAgICAgICAgICAgICJNIgotI2RlZmluZSBV
REFUX0FCQlJfTU9OVEggICAgICAgICAgICAgICAgICJNTU0iCi0jZGVmaW5lIFVEQVRfTU9OVEgg
ICAgICAgICAgICAgICAgICAgICAgIk1NTU0iCi0jZGVmaW5lIFVEQVRfSE9VUl9NSU5VVEVfR0VO
RVJJQ19UWiAgICAgImhtdiIKLSNkZWZpbmUgVURBVF9IT1VSX01JTlVURV9UWiAgICAgICAgICAg
ICAiaG16IgotI2RlZmluZSBVREFUX0hPVVIgICAgICAgICAgICAgICAgICAgICAgICJoIgotI2Rl
ZmluZSBVREFUX0hPVVJfR0VORVJJQ19UWiAgICAgICAgICAgICJodiIKLSNkZWZpbmUgVURBVF9I
T1VSX1RaICAgICAgICAgICAgICAgICAgICAiaHoiCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkK
Ky8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCB3ZWVrZGF5LgorICogQGRy
YWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfV0VFS0RBWSAgICAgICAgICAgICAgICAgICAg
IkVFRUUiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggYWJicmV2aWF0
ZWQgd2Vla2RheS4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX0FCQlJfV0VF
S0RBWSAgICAgICAgICAgICAgICJFIgorI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisv
KioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciwgbW9udGgsIHdlZWtk
YXksIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSAr
IHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisj
ZGVmaW5lIFVEQVRfWUVBUl9NT05USF9XRUVLREFZX0RBWSAgICAgInlNTU1NRUVFRWQiCisvKioK
KyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggeWVhciwgYWJicmV2aWF0ZWQgbW9u
dGgsIHdlZWtkYXksIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGlt
ZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQu
MAorICovCisjZGVmaW5lIFVEQVRfWUVBUl9BQkJSX01PTlRIX1dFRUtEQVlfREFZICJ5TU1NRWQi
IAorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHllYXIsIG51bWVyaWMg
bW9udGgsIHdlZWtkYXksIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsg
dGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNV
IDQuMAorICovCisjZGVmaW5lIFVEQVRfWUVBUl9OVU1fTU9OVEhfV0VFS0RBWV9EQVkgInlNRWQi
CisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggbG9uZyBtb250aCBhbmQg
ZGF5LgorICogVXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsg
em9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBV
REFUX01PTlRIX0RBWSAgICAgICAgICAgICAgICAgICJNTU1NZCIKKy8qKgorICogQ29uc3RhbnQg
Zm9yIGRhdGUgc2tlbGV0b24gd2l0aCBhYmJyZXZpYXRlZCBtb250aCBhbmQgZGF5LgorICogVXNl
ZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGlt
ZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0FCQlJfTU9O
VEhfREFZICAgICAgICAgICAgICJNTU1kIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2Vs
ZXRvbiB3aXRoIG51bWVyaWMgbW9udGggYW5kIGRheS4KKyAqIFVzZWQgaW4gY29tYmluYXRpb25z
IGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHN0
YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9OVU1fTU9OVEhfREFZICAgICAgICAgICAg
ICAiTWQiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggbW9udGgsIHdl
ZWtkYXksIGFuZCBkYXkuCisgKiBVc2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0
ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICov
CisjZGVmaW5lIFVEQVRfTU9OVEhfV0VFS0RBWV9EQVkgICAgICAgICAgIk1NTU1FRUVFZCIKKy8q
KgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBhYmJyZXZpYXRlZCBtb250aCwg
d2Vla2RheSwgYW5kIGRheS4KKyAqIFVzZWQgaW4gY29tYmluYXRpb25zIGRhdGUgKyB0aW1lLCBk
YXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHN0YWJsZSBJQ1UgNC4wCisg
Ki8KKyNkZWZpbmUgVURBVF9BQkJSX01PTlRIX1dFRUtEQVlfREFZICAgICAiTU1NRWQiCisvKioK
KyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggbnVtZXJpYyBtb250aCwgd2Vla2Rh
eSwgYW5kIGRheS4KKyAqIFVzZWQgaW4gY29tYmluYXRpb25zIGRhdGUgKyB0aW1lLCBkYXRlICsg
dGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNk
ZWZpbmUgVURBVF9OVU1fTU9OVEhfV0VFS0RBWV9EQVkgICAgICAiTUVkIgogCi0vKiogQH0gKi8K
Ky8qIFNrZWxldG9ucyBmb3IgdGltZXMuICovCiAKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUg
c2tlbGV0b24gd2l0aCBob3VyLCB3aXRoIHRoZSBsb2NhbGUncyBwcmVmZXJyZWQgaG91ciBmb3Jt
YXQgKDEyIG9yIDI0KS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRfSE9V
UiAgICAgICAgICAgICAgICAgICAgICAgImoiCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8q
KgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBob3VyIGluIDI0LWhvdXIgcHJl
c2VudGF0aW9uLgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfSE9VUjI0ICAg
ICAgICAgICAgICAgICAgICAgIkgiCisvKioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9u
IHdpdGggbWludXRlLgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfTUlOVVRF
ICAgICAgICAgICAgICAgICAgICAgIm0iCisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8K
Ky8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tlbGV0b24gd2l0aCBob3VyIGFuZCBtaW51dGUs
IHdpdGggdGhlIGxvY2FsZSdzIHByZWZlcnJlZCBob3VyIGZvcm1hdCAoMTIgb3IgMjQpLgorICog
VXNlZCBpbiBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUsIGRhdGUgKyB0aW1lICsgem9uZSwgb3Ig
dGltZSArIHpvbmUuCisgKiBAc3RhYmxlIElDVSA0LjAKKyAqLworI2RlZmluZSBVREFUX0hPVVJf
TUlOVVRFICAgICAgICAgICAgICAgICJqbSIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tl
bGV0b24gd2l0aCBob3VyIGFuZCBtaW51dGUgaW4gMjQtaG91ciBwcmVzZW50YXRpb24uCisgKiBV
c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0
aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRfSE9VUjI0
X01JTlVURSAgICAgICAgICAgICAgIkhtIgorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioK
KyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggc2Vjb25kLgorICogQGRyYWZ0IElD
VSA1MQorICovCisjZGVmaW5lIFVEQVRfU0VDT05EICAgICAgICAgICAgICAgICAgICAgInMiCisj
ZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUg
c2tlbGV0b24gd2l0aCBob3VyLCBtaW51dGUsIGFuZCBzZWNvbmQsCisgKiB3aXRoIHRoZSBsb2Nh
bGUncyBwcmVmZXJyZWQgaG91ciBmb3JtYXQgKDEyIG9yIDI0KS4KKyAqIFVzZWQgaW4gY29tYmlu
YXRpb25zIGRhdGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgor
ICogQHN0YWJsZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9IT1VSX01JTlVURV9TRUNPTkQg
ICAgICAgICAiam1zIgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGhv
dXIsIG1pbnV0ZSwgYW5kIHNlY29uZCBpbgorICogMjQtaG91ciBwcmVzZW50YXRpb24uCisgKiBV
c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSwgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0
aW1lICsgem9uZS4KKyAqIEBzdGFibGUgSUNVIDQuMAorICovCisjZGVmaW5lIFVEQVRfSE9VUjI0
X01JTlVURV9TRUNPTkQgICAgICAgIkhtcyIKKy8qKgorICogQ29uc3RhbnQgZm9yIGRhdGUgc2tl
bGV0b24gd2l0aCBtaW51dGUgYW5kIHNlY29uZC4KKyAqIFVzZWQgaW4gY29tYmluYXRpb25zIGRh
dGUgKyB0aW1lLCBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHN0YWJs
ZSBJQ1UgNC4wCisgKi8KKyNkZWZpbmUgVURBVF9NSU5VVEVfU0VDT05EICAgICAgICAgICAgICAi
bXMiCisKKy8qIFNrZWxldG9ucyBmb3IgdGltZSB6b25lcy4gKi8KKworI2lmbmRlZiBVX0hJREVf
RFJBRlRfQVBJCisvKioKKyAqIENvbnN0YW50IGZvciA8aT5nZW5lcmljIGxvY2F0aW9uIGZvcm1h
dDwvaT4sIHN1Y2ggYXMgTG9zIEFuZ2VsZXMgVGltZTsKKyAqIHVzZWQgaW4gY29tYmluYXRpb25z
IGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc2VlIDxhIGhyZWY9Imh0
dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvI0RhdGVfRm9ybWF0X1BhdHRlcm5zIj5MRE1M
IERhdGUgRm9ybWF0IFBhdHRlcm5zPC9hPgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5pY29k
ZS5vcmcvcmVwb3J0cy90cjM1LyNUaW1lX1pvbmVfRmFsbGJhY2siPkxETUwgVGltZSBab25lIEZh
bGxiYWNrPC9hPgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfTE9DQVRJT05f
VFogIlZWVlYiCisvKioKKyAqIENvbnN0YW50IGZvciA8aT5nZW5lcmljIG5vbi1sb2NhdGlvbiBm
b3JtYXQ8L2k+LCBzdWNoIGFzIFBhY2lmaWMgVGltZTsKKyAqIHVzZWQgaW4gY29tYmluYXRpb25z
IGRhdGUgKyB0aW1lICsgem9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc2VlIDxhIGhyZWY9Imh0
dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvI0RhdGVfRm9ybWF0X1BhdHRlcm5zIj5MRE1M
IERhdGUgRm9ybWF0IFBhdHRlcm5zPC9hPgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5pY29k
ZS5vcmcvcmVwb3J0cy90cjM1LyNUaW1lX1pvbmVfRmFsbGJhY2siPkxETUwgVGltZSBab25lIEZh
bGxiYWNrPC9hPgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfR0VORVJJQ19U
WiAidnZ2diIKKy8qKgorICogQ29uc3RhbnQgZm9yIDxpPmdlbmVyaWMgbm9uLWxvY2F0aW9uIGZv
cm1hdDwvaT4sIGFiYnJldmlhdGVkIGlmIHBvc3NpYmxlLCBzdWNoIGFzIFBUOworICogdXNlZCBp
biBjb21iaW5hdGlvbnMgZGF0ZSArIHRpbWUgKyB6b25lLCBvciB0aW1lICsgem9uZS4KKyAqIEBz
ZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jRGF0ZV9Gb3JtYXRf
UGF0dGVybnMiPkxETUwgRGF0ZSBGb3JtYXQgUGF0dGVybnM8L2E+CisgKiBAc2VlIDxhIGhyZWY9
Imh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvI1RpbWVfWm9uZV9GYWxsYmFjayI+TERN
TCBUaW1lIFpvbmUgRmFsbGJhY2s8L2E+CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUg
VURBVF9BQkJSX0dFTkVSSUNfVFogInYiCisvKioKKyAqIENvbnN0YW50IGZvciA8aT5zcGVjaWZp
YyBub24tbG9jYXRpb24gZm9ybWF0PC9pPiwgc3VjaCBhcyBQYWNpZmljIERheWxpZ2h0IFRpbWU7
CisgKiB1c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsgdGltZSArIHpvbmUsIG9yIHRpbWUgKyB6
b25lLgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNE
YXRlX0Zvcm1hdF9QYXR0ZXJucyI+TERNTCBEYXRlIEZvcm1hdCBQYXR0ZXJuczwvYT4KKyAqIEBz
ZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVGltZV9ab25lX0Zh
bGxiYWNrIj5MRE1MIFRpbWUgWm9uZSBGYWxsYmFjazwvYT4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAq
LworI2RlZmluZSBVREFUX1NQRUNJRklDX1RaICJ6enp6IgorLyoqCisgKiBDb25zdGFudCBmb3Ig
PGk+c3BlY2lmaWMgbm9uLWxvY2F0aW9uIGZvcm1hdDwvaT4sIGFiYnJldmlhdGVkIGlmIHBvc3Np
YmxlLCBzdWNoIGFzIFBEVDsKKyAqIHVzZWQgaW4gY29tYmluYXRpb25zIGRhdGUgKyB0aW1lICsg
em9uZSwgb3IgdGltZSArIHpvbmUuCisgKiBAc2VlIDxhIGhyZWY9Imh0dHA6Ly91bmljb2RlLm9y
Zy9yZXBvcnRzL3RyMzUvI0RhdGVfRm9ybWF0X1BhdHRlcm5zIj5MRE1MIERhdGUgRm9ybWF0IFBh
dHRlcm5zPC9hPgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90
cjM1LyNUaW1lX1pvbmVfRmFsbGJhY2siPkxETUwgVGltZSBab25lIEZhbGxiYWNrPC9hPgorICog
QGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFVEQVRfQUJCUl9TUEVDSUZJQ19UWiAieiIKKy8q
KgorICogQ29uc3RhbnQgZm9yIDxpPmxvY2FsaXplZCBHTVQvVVRDIGZvcm1hdDwvaT4sIHN1Y2gg
YXMgR01UKzg6MDAgb3IgSFBHLTg6MDA7CisgKiB1c2VkIGluIGNvbWJpbmF0aW9ucyBkYXRlICsg
dGltZSArIHpvbmUsIG9yIHRpbWUgKyB6b25lLgorICogQHNlZSA8YSBocmVmPSJodHRwOi8vdW5p
Y29kZS5vcmcvcmVwb3J0cy90cjM1LyNEYXRlX0Zvcm1hdF9QYXR0ZXJucyI+TERNTCBEYXRlIEZv
cm1hdCBQYXR0ZXJuczwvYT4KKyAqIEBzZWUgPGEgaHJlZj0iaHR0cDovL3VuaWNvZGUub3JnL3Jl
cG9ydHMvdHIzNS8jVGltZV9ab25lX0ZhbGxiYWNrIj5MRE1MIFRpbWUgWm9uZSBGYWxsYmFjazwv
YT4KKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVREFUX0FCQlJfVVRDX1RaICJaWlpa
IgorI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisKKy8qIGRlcHJlY2F0ZWQgc2tlbGV0
b24gY29uc3RhbnRzICovCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAorLyoqCisg
KiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIHN0YW5kYWxvbmUgbW9udGguCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgNTAgVXNlIFVEQVRfTU9OVEggaW5zdGVhZC4KKyAqLworI2RlZmluZSBV
REFUX1NUQU5EQUxPTkVfTU9OVEggICAgICAgICAgICJMTExMIgorLyoqCisgKiBDb25zdGFudCBm
b3IgZGF0ZSBza2VsZXRvbiB3aXRoIHN0YW5kYWxvbmUgYWJicmV2aWF0ZWQgbW9udGguCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgNTAgVXNlIFVEQVRfQUJCUl9NT05USCBpbnN0ZWFkLgorICovCisjZGVm
aW5lIFVEQVRfQUJCUl9TVEFOREFMT05FX01PTlRIICAgICAgIkxMTCIKKworLyoqCisgKiBDb25z
dGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGhvdXIsIG1pbnV0ZSwgYW5kIGdlbmVyaWMgdGlt
ZXpvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgVXNlIGluc3RlYWQgVURBVF9IT1VSX01JTlVU
RSBVREFUX0FCQlJfR0VORVJJQ19UWiBvciBzb21lIG90aGVyIHRpbWV6b25lIHByZXNlbnRhdGlv
bi4KKyAqLworI2RlZmluZSBVREFUX0hPVVJfTUlOVVRFX0dFTkVSSUNfVFogICAgICJqbXYiCisv
KioKKyAqIENvbnN0YW50IGZvciBkYXRlIHNrZWxldG9uIHdpdGggaG91ciwgbWludXRlLCBhbmQg
dGltZXpvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgVXNlIGluc3RlYWQgVURBVF9IT1VSX01J
TlVURSBVREFUX0FCQlJfU1BFQ0lGSUNfVFogb3Igc29tZSBvdGhlciB0aW1lem9uZSBwcmVzZW50
YXRpb24uCisgKi8KKyNkZWZpbmUgVURBVF9IT1VSX01JTlVURV9UWiAgICAgICAgICAgICAiam16
IgorLyoqCisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGhvdXIgYW5kIGdlbmVy
aWMgdGltZXpvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgVXNlIGluc3RlYWQgVURBVF9IT1VS
IFVEQVRfQUJCUl9HRU5FUklDX1RaIG9yIHNvbWUgb3RoZXIgdGltZXpvbmUgcHJlc2VudGF0aW9u
LgorICovCisjZGVmaW5lIFVEQVRfSE9VUl9HRU5FUklDX1RaICAgICAgICAgICAgImp2IgorLyoq
CisgKiBDb25zdGFudCBmb3IgZGF0ZSBza2VsZXRvbiB3aXRoIGhvdXIgYW5kIHRpbWV6b25lLgor
ICogQGRlcHJlY2F0ZWQgSUNVIDUwIFVzZSBpbnN0ZWFkIFVEQVRfSE9VUiBVREFUX0FCQlJfU1BF
Q0lGSUNfVFogb3Igc29tZSBvdGhlciB0aW1lem9uZSBwcmVzZW50YXRpb24uCisgKi8KKyNkZWZp
bmUgVURBVF9IT1VSX1RaICAgICAgICAgICAgICAgICAgICAianoiCisjZW5kaWYgIC8qIFVfSElE
RV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIEZpZWxkUG9zaXRpb24gYW5kIFVGaWVsZFBv
c2l0aW9uIHNlbGVjdG9ycyBmb3IgZm9ybWF0IGZpZWxkcwpAQCAtMzIyLDYgKzU1NiwxNCBAQCB0
eXBlZGVmIGVudW0gVURhdGVGb3JtYXRGaWVsZCB7CiAgICAgLyoqCiAgICAgICogRmllbGRQb3Np
dGlvbiBhbmQgVUZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdTJyBmaWVsZCBhbGlnbm1lbnQs
CiAgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgVUNBTF9NSUxMSVNFQ09ORCBmaWVsZC4KKyAg
ICAgKgorICAgICAqIE5vdGU6IFRpbWUgZm9ybWF0cyB0aGF0IHVzZSAnUycgY2FuIGRpc3BsYXkg
YSBtYXhpbXVtIG9mIHRocmVlCisgICAgICogc2lnbmlmaWNhbnQgZGlnaXRzIGZvciBmcmFjdGlv
bmFsIHNlY29uZHMsIGNvcnJlc3BvbmRpbmcgdG8gbWlsbGlzZWNvbmQKKyAgICAgKiByZXNvbHV0
aW9uIGFuZCBhIGZyYWN0aW9uYWwgc2Vjb25kcyBzdWItcGF0dGVybiBvZiBTU1MuIElmIHRoZQor
ICAgICAqIHN1Yi1wYXR0ZXJuIGlzIFMgb3IgU1MsIHRoZSBmcmFjdGlvbmFsIHNlY29uZHMgdmFs
dWUgd2lsbCBiZSB0cnVuY2F0ZWQKKyAgICAgKiAobm90IHJvdW5kZWQpIHRvIHRoZSBudW1iZXIg
b2YgZGlzcGxheSBwbGFjZXMgc3BlY2lmaWVkLiBJZiB0aGUKKyAgICAgKiBmcmFjdGlvbmFsIHNl
Y29uZHMgc3ViLXBhdHRlcm4gaXMgbG9uZ2VyIHRoYW4gU1NTLCB0aGUgYWRkaXRpb25hbAorICAg
ICAqIGRpc3BsYXkgcGxhY2VzIHdpbGwgYmUgZmlsbGVkIHdpdGggemVyb3MuCiAgICAgICogQHN0
YWJsZSBJQ1UgMy4wCiAgICAgICovCiAgICAgVURBVF9GUkFDVElPTkFMX1NFQ09ORF9GSUVMRCA9
IDgsCkBAIC00ODQsNyArNzI2LDQyIEBAIHR5cGVkZWYgZW51bSBVRGF0ZUZvcm1hdEZpZWxkIHsK
ICAgICAgKi8KICAgICBVREFUX1RJTUVaT05FX1NQRUNJQUxfRklFTEQgPSAyOSwKIAotICAgLyoq
CisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgIlUiIGZpZWxkIGFs
aWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIGN5Y2xpYyB5ZWFyIG5hbWVzLiBUaGlz
IGlzIGltcGxlbWVudGVkCisgICAgICogdXNpbmcgdGhlIHtAbGluayAjVUNBTF9ZRUFSfSBmaWVs
ZC4gVGhpcyBkaXNwbGF5cworICAgICAqIHRoZSBjeWNsaWMgeWVhciBuYW1lLCBpZiBhdmFpbGFi
bGUuCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICBVREFUX1lFQVJfTkFNRV9G
SUVMRCA9IDMwLAorCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBG
aWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnTycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNv
cnJlc3BvbmRpbmcgdG8gdGhlIFVDQUxfWk9ORV9PRkZTRVQgYW5kIFVDQUxfRFNUX09GRlNFVGZp
ZWxkcy4KKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBsb2NhbGl6ZWQgR01UIGZvcm1hdC4KKyAg
ICAgKiBAZHJhZnQgSUNVIDUxCisgICAgICovCisgICAgVURBVF9USU1FWk9ORV9MT0NBTElaRURf
R01UX09GRlNFVF9GSUVMRCA9IDMxLAorCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBz
ZWxlY3RvciBmb3IgJ1gnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRv
IHRoZSBVQ0FMX1pPTkVfT0ZGU0VUIGFuZCBVQ0FMX0RTVF9PRkZTRVRmaWVsZHMuCisgICAgICog
VGhpcyBkaXNwbGF5cyB0aGUgSVNPIDg2MDEgbG9jYWwgdGltZSBvZmZzZXQgZm9ybWF0IG9yIFVU
QyBpbmRpY2F0b3IgKCJaIikuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVE
QVRfVElNRVpPTkVfSVNPX0ZJRUxEID0gMzIsCisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0
aW9uIHNlbGVjdG9yIGZvciAneCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRp
bmcgdG8gdGhlIFVDQUxfWk9ORV9PRkZTRVQgYW5kIFVDQUxfRFNUX09GRlNFVGZpZWxkcy4KKyAg
ICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBJU08gODYwMSBsb2NhbCB0aW1lIG9mZnNldCBmb3JtYXQu
CisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVEQVRfVElNRVpPTkVfSVNPX0xP
Q0FMX0ZJRUxEID0gMzMsCisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworICAgIC8q
KgogICAgICAqIE51bWJlciBvZiBGaWVsZFBvc2l0aW9uIGFuZCBVRmllbGRQb3NpdGlvbiBzZWxl
Y3RvcnMgZm9yCiAgICAgICogRGF0ZUZvcm1hdCBhbmQgVURhdGVGb3JtYXQuCiAgICAgICogVmFs
aWQgc2VsZWN0b3JzIHJhbmdlIGZyb20gMCB0byBVREFUX0ZJRUxEX0NPVU5ULTEuCkBAIC00OTIs
NyArNzY5LDcgQEAgdHlwZWRlZiBlbnVtIFVEYXRlRm9ybWF0RmllbGQgewogICAgICAqIGluIHRo
ZSBmdXR1cmUuCiAgICAgICogQHN0YWJsZSBJQ1UgMy4wCiAgICAgICovCi0gICAgVURBVF9GSUVM
RF9DT1VOVCA9IDMwCisgICAgVURBVF9GSUVMRF9DT1VOVCA9IDM0CiAKIH0gVURhdGVGb3JtYXRG
aWVsZDsKIApAQCAtNTE1LDEwICs3OTIsMTcgQEAgdWRhdF90b0NhbGVuZGFyRGF0ZUZpZWxkKFVE
YXRlRm9ybWF0RmllbGQgZmllbGQpOwogICogYW5kIHRvIHBhcnNlIGRhdGVzIGluIGNhbGxzIHRv
IHtAbGluayAjdWRhdF9wYXJzZSB9LgogICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgc3R5bGUgdXNl
ZCB0byBmb3JtYXQgdGltZXM7IG9uZSBvZiBVREFUX0ZVTEwsIFVEQVRfTE9ORywKICAqIFVEQVRf
TUVESVVNLCBVREFUX1NIT1JULCBVREFUX0RFRkFVTFQsIG9yIFVEQVRfTk9ORSAocmVsYXRpdmUg
dGltZSBzdHlsZXMKLSAqIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCkKKyAqIGFyZSBub3Qg
Y3VycmVudGx5IHN1cHBvcnRlZCkuCisgKiBXaGVuIHRoZSBwYXR0ZXJuIHBhcmFtZXRlciBpcyB1
c2VkLCBwYXNzIGluIFVEQVRfUEFUVEVSTiBmb3IgYm90aCB0aW1lU3R5bGUgYW5kIGRhdGVTdHls
ZS4KICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHN0eWxlIHVzZWQgdG8gZm9ybWF0IGRhdGVzOyBv
bmUgb2YgVURBVF9GVUxMLCBVREFUX0xPTkcsCiAgKiBVREFUX01FRElVTSwgVURBVF9TSE9SVCwg
VURBVF9ERUZBVUxULCBVREFUX0ZVTExfUkVMQVRJVkUsIFVEQVRfTE9OR19SRUxBVElWRSwKLSAq
IFVEQVRfTUVESVVNX1JFTEFUSVZFLCBVREFUX1NIT1JUX1JFTEFUSVZFLCBvciBVREFUX05PTkUK
KyAqIFVEQVRfTUVESVVNX1JFTEFUSVZFLCBVREFUX1NIT1JUX1JFTEFUSVZFLCBvciBVREFUX05P
TkUuCisgKiBXaGVuIHRoZSBwYXR0ZXJuIHBhcmFtZXRlciBpcyB1c2VkLCBwYXNzIGluIFVEQVRf
UEFUVEVSTiBmb3IgYm90aCB0aW1lU3R5bGUgYW5kIGRhdGVTdHlsZS4KKyAqIEFzIGN1cnJlbnRs
eSBpbXBsZW1lbnRlZCwKKyAqIHJlbGF0aXZlIGRhdGUgZm9ybWF0dGluZyBvbmx5IGFmZmVjdHMg
YSBsaW1pdGVkIHJhbmdlIG9mIGNhbGVuZGFyIGRheXMgYmVmb3JlIG9yCisgKiBhZnRlciB0aGUg
Y3VycmVudCBkYXRlLCBiYXNlZCBvbiB0aGUgQ0xEUiAmbHQ7ZmllbGQgdHlwZT0iZGF5IiZndDsv
Jmx0O3JlbGF0aXZlJmd0OyBkYXRhOiBGb3IKKyAqIGV4YW1wbGUsIGluIEVuZ2xpc2gsICJZZXN0
ZXJkYXkiLCAiVG9kYXkiLCBhbmQgIlRvbW9ycm93Ii4gT3V0c2lkZSBvZiB0aGlzIHJhbmdlLAor
ICogZGF0ZXMgYXJlIGZvcm1hdHRlZCB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBub24tcmVsYXRp
dmUgc3R5bGUuCiAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgZm9y
bWF0dGluZyBjb252ZW50aW9ucwogICogQHBhcmFtIHR6SUQgQSB0aW1lem9uZSBJRCBzcGVjaWZ5
aW5nIHRoZSB0aW1lem9uZSB0byB1c2UuICBJZiAwLCB1c2UKICAqIHRoZSBkZWZhdWx0IHRpbWV6
b25lLgpAQCAtNTUwLDYgKzgzNCw2MSBAQCB1ZGF0X29wZW4oVURhdGVGb3JtYXRTdHlsZSAgdGlt
ZVN0eWxlLAogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCiB1ZGF0X2Nsb3NlKFVEYXRlRm9ybWF0
KiBmb3JtYXQpOwogCisKKy8qKgorICogRGF0ZUZvcm1hdCBib29sZWFuIGF0dHJpYnV0ZXMKKyAq
IEBpbnRlcm5hbCBJQ1UgdGVjaG5vbG9neSBwcmV2aWV3CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0
ZUZvcm1hdEJvb2xlYW5BdHRyaWJ1dGUgeworICAgIC8qKgorICAgICAqIGluZGljYXRlcyB3aGV0
aGVyIHdoaXRlc3BhY2UgaXMgYWxsb3dlZC4gSW5jbHVkZXMgdHJhaWxpbmcgZG90IHRvbGVyYW5j
ZS4KKyAgICAgKiBAaW50ZXJuYWwgSUNVIHRlY2hub2xvZ3kgcHJldmlldworICAgICAqLworICAg
IFVEQVRfUEFSU0VfQUxMT1dfV0hJVEVTUEFDRSwKKyAgICAvKioKKyAgICAgKiBpbmRpY2F0ZXMg
dG9sZXJhbmNlIG9mIG51bWVyaWMgZGF0YSB3aGVuIFN0cmluZyBkYXRhIG1heSBiZSBhc3N1bWVk
LiBlZzogVURBVF9ZRUFSX05BTUVfRklFTEQsCisgICAgICogVURBVF9TVEFOREFMT05FX01PTlRI
X0ZJRUxELCBVREFUX0RBWV9PRl9XRUVLX0ZJRUxECisgICAgICogQGludGVybmFsIElDVSB0ZWNo
bm9sb2d5IHByZXZpZXcKKyAgICAgKi8KKyAgICBVREFUX1BBUlNFX0FMTE9XX05VTUVSSUMsCisg
ICAgLyoqCisgICAgICogY291bnQgYm9vbGVhbiBkYXRlIGZvcm1hdCBjb25zdGFudHMKKyAgICAg
KiBAaW50ZXJuYWwgSUNVIHRlY2hub2xvZ3kgcHJldmlldworICAgICAqLworICAgIFVEQVRfQk9P
TEVBTl9BVFRSSUJVVEVfQ09VTlQKK30gVURhdGVGb3JtYXRCb29sZWFuQXR0cmlidXRlOworCisj
aWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKy8qKgorICogR2V0IGEgYm9vbGVhbiBhdHRyaWJ1
dGUgYXNzb2NpYXRlZCB3aXRoIGEgVURhdGVGb3JtYXQuCisgKiBBbiBleGFtcGxlIHdvdWxkIGJl
IGEgdHJ1ZSB2YWx1ZSBmb3IgYSBrZXkgb2YgVURBVF9QQVJTRV9BTExPV19XSElURVNQQUNFIGlu
ZGljYXRpbmcgYWxsb3dpbmcgd2hpdGVzcGFjZSBsZW5pZW5jeS4KKyAqIElmIHRoZSBmb3JtYXR0
ZXIgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGUgYXR0cmlidXRlLCAtMSBpcyByZXR1cm5lZC4KKyAq
IEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byBxdWVyeS4KKyAqIEBwYXJhbSBhdHRyIFRoZSBh
dHRyaWJ1dGUgdG8gcXVlcnk7IGUuZy4gVURBVF9QQVJTRV9BTExPV19XSElURVNQQUNFLgorICog
QHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBl
cnJvcnMKKyAqIEByZXR1cm4gVGhlIHZhbHVlIG9mIGF0dHIuCisgKiBAaW50ZXJuYWwgdGVjaG5v
bG9neSBwcmV2aWV3CisgKi8KK1VfSU5URVJOQUwgVUJvb2wgVV9FWFBPUlQyCit1ZGF0X2dldEJv
b2xlYW5BdHRyaWJ1dGUoY29uc3QgVURhdGVGb3JtYXQqIGZtdCwgVURhdGVGb3JtYXRCb29sZWFu
QXR0cmlidXRlIGF0dHIsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKy8qKgorICogU2V0IGEgYm9v
bGVhbiBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIGEgVURhdGVGb3JtYXQuCisgKiBBbiBleGFt
cGxlIG9mIGEgYm9vbGVhbiBhdHRyaWJ1dGUgaXMgcGFyc2UgbGVuaWVuY3kgY29udHJvbC4gIElm
IHRoZSBmb3JtYXR0ZXIgZG9lcyBub3QgdW5kZXJzdGFuZAorICogdGhlIGF0dHJpYnV0ZSwgdGhl
IGNhbGwgaXMgaWdub3JlZC4KKyAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byBzZXQuCisg
KiBAcGFyYW0gYXR0ciBUaGUgYXR0cmlidXRlIHRvIHNldDsgb25lIG9mIFVEQVRfUEFSU0VfQUxM
T1dfV0hJVEVTUEFDRSBvciBVREFUX1BBUlNFX0FMTE9XX05VTUVSSUMKKyAqIEBwYXJhbSBuZXdW
YWx1ZSBUaGUgbmV3IHZhbHVlIG9mIGF0dHIuCisgKiBAcGFyYW0gc3RhdHVzIEEgcG9pbnRlciB0
byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycworICogQGludGVybmFsIElDVSB0
ZWNobm9sb2d5IHByZXZpZXcKKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMgordWRhdF9z
ZXRCb29sZWFuQXR0cmlidXRlKFVEYXRlRm9ybWF0ICpmbXQsIFVEYXRlRm9ybWF0Qm9vbGVhbkF0
dHJpYnV0ZSBhdHRyLCBVQm9vbCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworI2VuZGlmICAvKiBV
X0hJREVfSU5URVJOQUxfQVBJICovCisKKworCiAjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKIAog
VV9OQU1FU1BBQ0VfQkVHSU4KQEAgLTYwOSw3ICs5NDgsMTkgQEAgdWRhdF9mb3JtYXQoICAgIGNv
bnN0ICAgIFVEYXRlRm9ybWF0KiAgICBmb3JtYXQsCiAKIC8qKgogKiBQYXJzZSBhIHN0cmluZyBp
bnRvIGFuIGRhdGUvdGltZSB1c2luZyBhIFVEYXRlRm9ybWF0LgotKiBUaGUgZGF0ZSB3aWxsIGJl
IHBhcnNlZCB1c2luZyB0aGUgY29udmVudGlvbnMgc3BlY2lmaWVkIGluIHtAbGluayAjdWRhdF9v
cGVuIH0KKyogVGhlIGRhdGUgd2lsbCBiZSBwYXJzZWQgdXNpbmcgdGhlIGNvbnZlbnRpb25zIHNw
ZWNpZmllZCBpbiB7QGxpbmsgI3VkYXRfb3BlbiB9LgorKiA8UD4KKyogTm90ZSB0aGF0IHRoZSBu
b3JtYWwgZGF0ZSBmb3JtYXRzIGFzc29jaWF0ZWQgd2l0aCBzb21lIGNhbGVuZGFycyAtIHN1Y2gK
KyogYXMgdGhlIENoaW5lc2UgbHVuYXIgY2FsZW5kYXIgLSBkbyBub3Qgc3BlY2lmeSBlbm91Z2gg
ZmllbGRzIHRvIGVuYWJsZQorKiBkYXRlcyB0byBiZSBwYXJzZWQgdW5hbWJpZ3VvdXNseS4gSW4g
dGhlIGNhc2Ugb2YgdGhlIENoaW5lc2UgbHVuYXIKKyogY2FsZW5kYXIsIHdoaWxlIHRoZSB5ZWFy
IHdpdGhpbiB0aGUgY3VycmVudCA2MC15ZWFyIGN5Y2xlIGlzIHNwZWNpZmllZCwKKyogdGhlIG51
bWJlciBvZiBzdWNoIGN5Y2xlcyBzaW5jZSB0aGUgc3RhcnQgZGF0ZSBvZiB0aGUgY2FsZW5kYXIg
KGluIHRoZQorKiBVQ0FMX0VSQSBmaWVsZCBvZiB0aGUgVUNhbGVuZGFyIG9iamVjdCkgaXMgbm90
IG5vcm1hbGx5IHBhcnQgb2YgdGhlIGZvcm1hdCwKKyogYW5kIHBhcnNpbmcgbWF5IGFzc3VtZSB0
aGUgd3JvbmcgZXJhLiBGb3IgY2FzZXMgc3VjaCBhcyB0aGlzIGl0IGlzCisqIHJlY29tbWVuZGVk
IHRoYXQgY2xpZW50cyBwYXJzZSB1c2luZyB1ZGF0X3BhcnNlQ2FsZW5kYXIgd2l0aCB0aGUgVUNh
bGVuZGFyCisqIHBhc3NlZCBpbiBzZXQgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgb3IgdG8gYSBkYXRl
IHdpdGhpbiB0aGUgZXJhL2N5Y2xlIHRoYXQKKyogc2hvdWxkIGJlIGFzc3VtZWQgaWYgYWJzZW50
IGluIHRoZSBmb3JtYXQuCisqCiAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdHRlciB0byB1c2Uu
CiAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHBhcnNlLgogKiBAcGFyYW0gdGV4dExlbmd0aCBU
aGUgbGVuZ3RoIG9mIHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KQEAgLTYyMSwxNyAr
OTcyLDI1IEBAIHVkYXRfZm9ybWF0KCAgICBjb25zdCAgICBVRGF0ZUZvcm1hdCogICAgZm9ybWF0
LAogKiBAc3RhYmxlIElDVSAyLjAKICovCiBVX1NUQUJMRSBVRGF0ZSBVX0VYUE9SVDIgCi11ZGF0
X3BhcnNlKCAgICBjb25zdCAgICBVRGF0ZUZvcm1hdCogICAgZm9ybWF0LAotICAgICAgICAgICAg
Y29uc3QgICAgVUNoYXIqICAgICAgICAgIHRleHQsCit1ZGF0X3BhcnNlKGNvbnN0ICAgIFVEYXRl
Rm9ybWF0KiAgICBmb3JtYXQsCisgICAgICAgICAgIGNvbnN0ICAgIFVDaGFyKiAgICAgICAgICB0
ZXh0LAogICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgdGV4dExlbmd0aCwKICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICpwYXJzZVBvcywKICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKICogUGFyc2UgYSBzdHJp
bmcgaW50byBhbiBkYXRlL3RpbWUgdXNpbmcgYSBVRGF0ZUZvcm1hdC4KLSogVGhlIGRhdGUgd2ls
bCBiZSBwYXJzZWQgdXNpbmcgdGhlIGNvbnZlbnRpb25zIHNwZWNpZmllZCBpbiB7QGxpbmsgI3Vk
YXRfb3BlbiB9CisqIFRoZSBkYXRlIHdpbGwgYmUgcGFyc2VkIHVzaW5nIHRoZSBjb252ZW50aW9u
cyBzcGVjaWZpZWQgaW4ge0BsaW5rICN1ZGF0X29wZW4gfS4KICogQHBhcmFtIGZvcm1hdCBUaGUg
Zm9ybWF0dGVyIHRvIHVzZS4KLSogQHBhcmFtIGNhbGVuZGFyIFRoZSBjYWxlbmRhciBpbiB3aGlj
aCB0byBzdG9yZSB0aGUgcGFyc2VkIGRhdGEuCisqIEBwYXJhbSBjYWxlbmRhciBBIGNhbGVuZGFy
IHNldCBvbiBpbnB1dCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSB1c2VkIGZvcgorKiAgICAg
ICAgICAgICAgICAgbWlzc2luZyB2YWx1ZXMgaW4gdGhlIGRhdGUvdGltZSBzdHJpbmcgYmVpbmcg
cGFyc2VkLCBhbmQgc2V0CisqICAgICAgICAgICAgICAgICBvbiBvdXRwdXQgdG8gdGhlIHBhcnNl
ZCBkYXRlL3RpbWUuIFdoZW4gdGhlIGNhbGVuZGFyIHR5cGUgaXMKKyogICAgICAgICAgICAgICAg
IGRpZmZlcmVudCBmcm9tIHRoZSBpbnRlcm5hbCBjYWxlbmRhciBoZWxkIGJ5IHRoZSBVRGF0ZUZv
cm1hdAorKiAgICAgICAgICAgICAgICAgaW5zdGFuY2UsIHRoZSBpbnRlcm5hbCBjYWxlbmRhciB3
aWxsIGJlIGNsb25lZCB0byBhIHdvcmsKKyogICAgICAgICAgICAgICAgIGNhbGVuZGFyIHNldCB0
byB0aGUgc2FtZSBtaWxsaXNlY29uZHMgYW5kIHRpbWUgem9uZSBhcyB0aGlzCisqICAgICAgICAg
ICAgICAgICBjYWxlbmRhciBwYXJhbWV0ZXIsIGZpZWxkIHZhbHVlcyB3aWxsIGJlIHBhcnNlZCBi
YXNlZCBvbiB0aGUKKyogICAgICAgICAgICAgICAgIHdvcmsgY2FsZW5kYXIsIHRoZW4gdGhlIHJl
c3VsdCAobWlsbGlzZWNvbmRzIGFuZCB0aW1lIHpvbmUpCisqICAgICAgICAgICAgICAgICB3aWxs
IGJlIHNldCBpbiB0aGlzIGNhbGVuZGFyLgogKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBwYXJz
ZS4KICogQHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0ZXh0LCBvciAtMSBpZiBudWxs
LXRlcm1pbmF0ZWQuCiAqIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgMCwgb24gaW5wdXQgYSBwb2lu
dGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdoaWNoCkBAIC04MjEs
OSArMTE4MCwxMiBAQCB0eXBlZGVmIGVudW0gVURhdGVGb3JtYXRTeW1ib2xUeXBlIHsKICAgICBV
REFUX01PTlRIUywKICAgICAvKiogVGhlIHNob3J0IG1vbnRoIG5hbWVzLCBmb3IgZXhhbXBsZSBG
ZWIuICovCiAgICAgVURBVF9TSE9SVF9NT05USFMsCi0gICAgLyoqIFRoZSB3ZWVrZGF5IG5hbWVz
LCBmb3IgZXhhbXBsZSBNb25kYXkgKi8KKyAgICAvKiogVGhlIENMRFItc3R5bGUgZm9ybWF0ICJ3
aWRlIiB3ZWVrZGF5IG5hbWVzLCBmb3IgZXhhbXBsZSBNb25kYXkgKi8KICAgICBVREFUX1dFRUtE
QVlTLAotICAgIC8qKiBUaGUgc2hvcnQgd2Vla2RheSBuYW1lcywgZm9yIGV4YW1wbGUgTW9uLiAq
LworICAgIC8qKgorICAgICAqIFRoZSBDTERSLXN0eWxlIGZvcm1hdCAiYWJicmV2aWF0ZWQiIChu
b3QgInNob3J0Iikgd2Vla2RheSBuYW1lcywgZm9yIGV4YW1wbGUgIk1vbi4iCisgICAgICogRm9y
IHRoZSBDTERSLXN0eWxlIGZvcm1hdCAic2hvcnQiIHdlZWtkYXkgbmFtZXMsIHVzZSBVREFUX1NI
T1JURVJfV0VFS0RBWVMuCisgICAgICovCiAgICAgVURBVF9TSE9SVF9XRUVLREFZUywKICAgICAv
KiogVGhlIEFNL1BNIG5hbWVzLCBmb3IgZXhhbXBsZSBBTSAqLwogICAgIFVEQVRfQU1fUE1TLApA
QCAtODMzLDE1ICsxMTk1LDIwIEBAIHR5cGVkZWYgZW51bSBVRGF0ZUZvcm1hdFN5bWJvbFR5cGUg
ewogICAgIFVEQVRfRVJBX05BTUVTLAogICAgIC8qKiBUaGUgbmFycm93IG1vbnRoIG5hbWVzLCBm
b3IgZXhhbXBsZSBGICovCiAgICAgVURBVF9OQVJST1dfTU9OVEhTLAotICAgIC8qKiBUaGUgbmFy
cm93IHdlZWtkYXkgbmFtZXMsIGZvciBleGFtcGxlIE4gKi8KKyAgICAvKiogVGhlIENMRFItc3R5
bGUgZm9ybWF0ICJuYXJyb3ciIHdlZWtkYXkgbmFtZXMsIGZvciBleGFtcGxlICJNIiAqLwogICAg
IFVEQVRfTkFSUk9XX1dFRUtEQVlTLAogICAgIC8qKiBTdGFuZGFsb25lIGNvbnRleHQgdmVyc2lv
bnMgb2YgbW9udGhzICovCiAgICAgVURBVF9TVEFOREFMT05FX01PTlRIUywKICAgICBVREFUX1NU
QU5EQUxPTkVfU0hPUlRfTU9OVEhTLAogICAgIFVEQVRfU1RBTkRBTE9ORV9OQVJST1dfTU9OVEhT
LAotICAgIC8qKiBTdGFuZGFsb25lIGNvbnRleHQgdmVyc2lvbnMgb2Ygd2Vla2RheXMgKi8KKyAg
ICAvKiogVGhlIENMRFItc3R5bGUgc3RhbmQtYWxvbmUgIndpZGUiIHdlZWtkYXkgbmFtZXMgKi8K
ICAgICBVREFUX1NUQU5EQUxPTkVfV0VFS0RBWVMsCisgICAgLyoqCisgICAgICogVGhlIENMRFIt
c3R5bGUgc3RhbmQtYWxvbmUgImFiYnJldmlhdGVkIiAobm90ICJzaG9ydCIpIHdlZWtkYXkgbmFt
ZXMuCisgICAgICogRm9yIHRoZSBDTERSLXN0eWxlIHN0YW5kLWFsb25lICJzaG9ydCIgd2Vla2Rh
eSBuYW1lcywgdXNlIFVEQVRfU1RBTkRBTE9ORV9TSE9SVEVSX1dFRUtEQVlTLgorICAgICAqLwog
ICAgIFVEQVRfU1RBTkRBTE9ORV9TSE9SVF9XRUVLREFZUywKKyAgICAvKiogVGhlIENMRFItc3R5
bGUgc3RhbmQtYWxvbmUgIm5hcnJvdyIgd2Vla2RheSBuYW1lcyAqLwogICAgIFVEQVRfU1RBTkRB
TE9ORV9OQVJST1dfV0VFS0RBWVMsCiAgICAgLyoqIFRoZSBxdWFydGVycywgZm9yIGV4YW1wbGUg
MXN0IFF1YXJ0ZXIgKi8KICAgICBVREFUX1FVQVJURVJTLApAQCAtODQ5LDggKzEyMTYsMjIgQEAg
dHlwZWRlZiBlbnVtIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSB7CiAgICAgVURBVF9TSE9SVF9RVUFS
VEVSUywKICAgICAvKiogU3RhbmRhbG9uZSBjb250ZXh0IHZlcnNpb25zIG9mIHF1YXJ0ZXJzICov
CiAgICAgVURBVF9TVEFOREFMT05FX1FVQVJURVJTLAotICAgIFVEQVRfU1RBTkRBTE9ORV9TSE9S
VF9RVUFSVEVSUwotCisgICAgVURBVF9TVEFOREFMT05FX1NIT1JUX1FVQVJURVJTLAorI2lmbmRl
ZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoqCisgICAgICogVGhlIENMRFItc3R5bGUgc2hvcnQg
d2Vla2RheSBuYW1lcywgZS5nLiAiU3UiLCBNbyIsIGV0Yy4KKyAgICAgKiBUaGVzZSBhcmUgbmFt
ZWQgIlNIT1JURVIiIHRvIGNvbnRyYXN0IHdpdGggdGhlIGNvbnN0YW50cyB1c2luZyBfU0hPUlRf
CisgICAgICogYWJvdmUsIHdoaWNoIGFjdHVhbGx5IGdldCB0aGUgQ0xEUi1zdHlsZSAqYWJicmV2
aWF0ZWQqIHZlcnNpb25zIG9mIHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgbmFtZXMuCisgICAg
ICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVEQVRfU0hPUlRFUl9XRUVLREFZUywKKyAg
ICAvKioKKyAgICAgKiBTdGFuZGFsb25lIHZlcnNpb24gb2YgVURBVF9TSE9SVEVSX1dFRUtEQVlT
LgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVREFUX1NUQU5EQUxPTkVfU0hP
UlRFUl9XRUVLREFZUworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCiB9IFVEYXRlRm9y
bWF0U3ltYm9sVHlwZTsKIAogc3RydWN0IFVEYXRlRm9ybWF0U3ltYm9sczsKQEAgLTkzNyw2ICsx
MzE4LDMzIEBAIHVkYXRfZ2V0TG9jYWxlQnlUeXBlKGNvbnN0IFVEYXRlRm9ybWF0ICpmbXQsCiAg
ICAgICAgICAgICAgICAgICAgICBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUqIHN0YXR1cyk7IAogCisjaWZuZGVmIFVfSElERV9EUkFGVF9B
UEkKKy8qKgorICogU2V0IGEgcGFydGljdWxhciBVRGlzcGxheUNvbnRleHQgdmFsdWUgaW4gdGhl
IGZvcm1hdHRlciwgc3VjaCBhcworICogVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1NUQU5E
QUxPTkUuCisgKiBAcGFyYW0gZm10IFRoZSBmb3JtYXR0ZXIgZm9yIHdoaWNoIHRvIHNldCBhIFVE
aXNwbGF5Q29udGV4dCB2YWx1ZS4KKyAqIEBwYXJhbSB2YWx1ZSBUaGUgVURpc3BsYXlDb250ZXh0
IHZhbHVlIHRvIHNldC4KKyAqIEBwYXJhbSBzdGF0dXMgQSBwb2ludGVyIHRvIGFuIFVFcnJvckNv
ZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQg
dm9pZCBVX0VYUE9SVDIKK3VkYXRfc2V0Q29udGV4dChVRGF0ZUZvcm1hdCogZm10LCBVRGlzcGxh
eUNvbnRleHQgdmFsdWUsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKy8qKgorICogR2V0IHRoZSBm
b3JtYXR0ZXIncyBVRGlzcGxheUNvbnRleHQgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgVURpc3Bs
YXlDb250ZXh0VHlwZSwKKyAqIHN1Y2ggYXMgVURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTi4K
KyAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byBxdWVyeS4KKyAqIEBwYXJhbSB0eXBlIFRo
ZSBVRGlzcGxheUNvbnRleHRUeXBlIHdob3NlIHZhbHVlIHRvIHJldHVybgorICogQHBhcmFtIHN0
YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKKyAq
IEByZXR1cm4gVGhlIFVEaXNwbGF5Q29udGV4dFZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUu
CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVURpc3BsYXlDb250ZXh0IFVfRVhQT1JU
MgordWRhdF9nZXRDb250ZXh0KFVEYXRlRm9ybWF0KiBmbXQsIFVEaXNwbGF5Q29udGV4dFR5cGUg
dHlwZSwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJ
ICovCisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAqIEV4dHJhY3QgdGhlIGRh
dGUgcGF0dGVybiBmcm9tIGEgVURhdGVGb3JtYXQgc2V0IGZvciByZWxhdGl2ZSBkYXRlIGZvcm1h
dHRpbmcuCiAqIFRoZSBwYXR0ZXJuIHdpbGwgZm9sbG93IHRoZSBwYXR0ZXJuIHN5bnRheCBydWxl
cy4KQEAgLTk5MSw2ICsxMzk5LDM0IEBAIHVkYXRfYXBwbHlQYXR0ZXJuUmVsYXRpdmUoVURhdGVG
b3JtYXQgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgdGlt
ZVBhdHRlcm5MZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICpz
dGF0dXMpOwogCisvKioKKyAqIEBpbnRlcm5hbAorICogQHNlZSB1ZGF0X29wZW4KKyAqLwordHlw
ZWRlZiBVRGF0ZUZvcm1hdCogKFVfRVhQT1JUMiAqVURhdGVGb3JtYXRPcGVuZXIpIChVRGF0ZUZv
cm1hdFN0eWxlICB0aW1lU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVURhdGVGb3JtYXRTdHlsZSAgZGF0ZVN0eWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAg
ICAgICpsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVUNoYXIgICAgICAgKnR6SUQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgdHpJRExlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBVQ2hhciAgICAgICAqcGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICBwYXR0ZXJuTGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgICAgICAgICpzdGF0dXMpOworCisvKioKKyAqIFJlZ2lzdGVyIGEgcHJvdmlkZXIgZmFj
dG9yeQorICogQGludGVybmFsIElDVSA0OQorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0X3JlZ2lzdGVyT3BlbmVyKFVEYXRlRm9ybWF0T3BlbmVyIG9wZW5lciwgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworLyoqCisgKiBVbi1SZWdpc3RlciBhIHByb3ZpZGVyIGZhY3RvcnkKKyAq
IEBpbnRlcm5hbCBJQ1UgNDkKKyAqLworVV9JTlRFUk5BTCBVRGF0ZUZvcm1hdE9wZW5lciBVX0VY
UE9SVDIKK3VkYXRfdW5yZWdpc3Rlck9wZW5lcihVRGF0ZUZvcm1hdE9wZW5lciBvcGVuZXIsIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKwog
CiAjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0ZPUk1BVFRJTkcgKi8KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VkYXRwZy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ljdS91bmljb2RlL3VkYXRwZy5oCmluZGV4IDNkYzdlODlmMmRmYjY0MDIyMGYz
NTcwODgzNThiNmQ5YzU3OGViMGUuLjdlOGNhNDcyNzQ0MjdhZmYyZDM5OWE3ZWZjZTBmNzU3ODgy
OTMzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZGF0
cGcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWRhdHBnLmgKQEAg
LTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdo
dCAoQykgMjAwNy0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKQEAgLTIzLDcgKzIzLDcgQEAKIAogLyoqCiAgKiBcZmlsZQotICog
XGJyaWVmIEMgQVBJOiBXcmFwcGVyIGZvciBEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IgKHVuaWNv
ZGUvZHRwdG5nZW4uaCkuCisgKiBcYnJpZWYgQyBBUEk6IFdyYXBwZXIgZm9yIGljdTo6RGF0ZVRp
bWVQYXR0ZXJuR2VuZXJhdG9yICh1bmljb2RlL2R0cHRuZ2VuLmgpLgogICoKICAqIFVEYXRlVGlt
ZVBhdHRlcm5HZW5lcmF0b3IgcHJvdmlkZXMgZmxleGlibGUgZ2VuZXJhdGlvbiBvZiBkYXRlIGZv
cm1hdCBwYXR0ZXJucywgCiAgKiBsaWtlICJ5eS1NTS1kZCIuIFRoZSB1c2VyIGNhbiBidWlsZCB1
cCB0aGUgZ2VuZXJhdG9yIGJ5IGFkZGluZyBzdWNjZXNzaXZlIApAQCAtOTksMTAgKzk5LDEyIEBA
IHR5cGVkZWYgZW51bSBVRGF0ZVRpbWVQYXR0ZXJuTWF0Y2hPcHRpb25zIHsKICAgICBVREFUUEdf
TUFUQ0hfTk9fT1BUSU9OUyA9IDAsCiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgIFVE
QVRQR19NQVRDSF9IT1VSX0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX0hPVVJfRklFTEQsCisj
aWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKICAgICAvKiogQGludGVybmFsIElDVSA0LjQgKi8K
ICAgICBVREFUUEdfTUFUQ0hfTUlOVVRFX0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX01JTlVU
RV9GSUVMRCwKICAgICAvKiogQGludGVybmFsIElDVSA0LjQgKi8KICAgICBVREFUUEdfTUFUQ0hf
U0VDT05EX0ZJRUxEX0xFTkdUSCA9IDEgPDwgVURBVFBHX1NFQ09ORF9GSUVMRCwKKyNlbmRpZiAg
LyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAg
ICBVREFUUEdfTUFUQ0hfQUxMX0ZJRUxEU19MRU5HVEggPSAoMSA8PCBVREFUUEdfRklFTERfQ09V
TlQpIC0gMQogfSBVRGF0ZVRpbWVQYXR0ZXJuTWF0Y2hPcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VkaXNwbGF5Y29udGV4dC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VkaXNwbGF5Y29udGV4dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ3ZWQ0MGQ3NDhhOTY2YjhlNTcxZjk1ZTc1Njk5NDg0OWJkMjRhN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWRpc3BsYXljb250ZXh0LmgK
QEAgLTAsMCArMSwxMjQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVESVNQTEFZQ09OVEVYVF9ICisj
ZGVmaW5lIFVESVNQTEFZQ09OVEVYVF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgor
CisjaWYgIVVDT05GSUdfTk9fRk9STUFUVElORworCisvKiBEb250IGhpZGUgd2l0aCAjaWZuZGVm
IFVfSElERV9EUkFGVF9BUEksIG5lZWRlZCBieSB2aXJ0dWFsIG1ldGhvZHMgKi8KKy8qKgorICog
XGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGlzcGxheSBjb250ZXh0IHR5cGVzIChlbnVtIHZhbHVl
cykKKyAqLworCisvKioKKyAqIERpc3BsYXkgY29udGV4dCB0eXBlcywgZm9yIGdldHRpbmcgdmFs
dWVzIG9mIGEgcGFydGljdWxhciBzZXR0aW5nLgorICogTm90ZSwgdGhlIHNwZWNpZmljIG51bWVy
aWMgdmFsdWVzIGFyZSBpbnRlcm5hbCBhbmQgbWF5IGNoYW5nZS4KKyAqIEBkcmFmdCBJQ1UgNTEK
KyAqLworZW51bSBVRGlzcGxheUNvbnRleHRUeXBlIHsKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQ
SQorICAgIC8qKgorICAgICAqIFR5cGUgdG8gcmV0cmlldmUgdGhlIGRpYWxlY3QgaGFuZGxpbmcg
c2V0dGluZywgZS5nLgorICAgICAqIFVESVNQQ1RYX1NUQU5EQVJEX05BTUVTIG9yIFVESVNQQ1RY
X0RJQUxFQ1RfTkFNRVMuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAgIFVESVNQ
Q1RYX1RZUEVfRElBTEVDVF9IQU5ETElORyA9IDAsCisgICAgLyoqCisgICAgICogVHlwZSB0byBy
ZXRyaWV2ZSB0aGUgY2FwaXRhbGl6YXRpb24gY29udGV4dCBzZXR0aW5nLCBlLmcuCisgICAgICog
VURJU1BDVFhfQ0FQSVRBTElaQVRJT05fTk9ORSwgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9S
X01JRERMRV9PRl9TRU5URU5DRSwKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1Jf
QkVHSU5OSU5HX09GX1NFTlRFTkNFLCBldGMuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAq
LworICAgIFVESVNQQ1RYX1RZUEVfQ0FQSVRBTElaQVRJT04gPSAxCisjZW5kaWYgLyogVV9ISURF
X0RSQUZUX0FQSSAqLworfTsKKy8qKgorKiAgQGRyYWZ0IElDVSA1MQorKi8KK3R5cGVkZWYgZW51
bSBVRGlzcGxheUNvbnRleHRUeXBlIFVEaXNwbGF5Q29udGV4dFR5cGU7CisKKy8qIERvbnQgaGlk
ZSB3aXRoICNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSSwgbmVlZGVkIGJ5IHZpcnR1YWwgbWV0aG9k
cyAqLworLyoqCisgKiBEaXNwbGF5IGNvbnRleHQgc2V0dGluZ3MuCisgKiBOb3RlLCB0aGUgc3Bl
Y2lmaWMgbnVtZXJpYyB2YWx1ZXMgYXJlIGludGVybmFsIGFuZCBtYXkgY2hhbmdlLgorICogQGRy
YWZ0IElDVSA1MQorICovCitlbnVtIFVEaXNwbGF5Q29udGV4dCB7CisjaWZuZGVmIFVfSElERV9E
UkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgICAqIERJQUxFQ1RfSEFORExJTkcgY2FuIGJlIHNldCB0byBvbmUgb2YgVURJU1BDVFhf
U1RBTkRBUkRfTkFNRVMgb3IKKyAgICAgKiBVRElTUENUWF9ESUFMRUNUX05BTUVTLiBVc2UgVURp
c3BsYXlDb250ZXh0VHlwZSBVRElTUENUWF9UWVBFX0RJQUxFQ1RfSEFORExJTkcKKyAgICAgKiB0
byBnZXQgdGhlIHZhbHVlLgorICAgICAqLworICAgIC8qKgorICAgICAqIEEgcG9zc2libGUgc2V0
dGluZyBmb3IgRElBTEVDVF9IQU5ETElORzoKKyAgICAgKiB1c2Ugc3RhbmRhcmQgbmFtZXMgd2hl
biBnZW5lcmF0aW5nIGEgbG9jYWxlIG5hbWUsCisgICAgICogZS5nLiBlbl9HQiBkaXNwbGF5cyBh
cyAnRW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pJy4KKyAgICAgKiBAZHJhZnQgSUNVIDUxCisgICAg
ICovCisgICAgVURJU1BDVFhfU1RBTkRBUkRfTkFNRVMgPSAoVURJU1BDVFhfVFlQRV9ESUFMRUNU
X0hBTkRMSU5HPDw4KSArIDAsCisgICAgLyoqCisgICAgICogQSBwb3NzaWJsZSBzZXR0aW5nIGZv
ciBESUFMRUNUX0hBTkRMSU5HOgorICAgICAqIHVzZSBkaWFsZWN0IG5hbWVzLCB3aGVuIGdlbmVy
YXRpbmcgYSBsb2NhbGUgbmFtZSwKKyAgICAgKiBlLmcuIGVuX0dCIGRpc3BsYXlzIGFzICdCcml0
aXNoIEVuZ2xpc2gnLgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVRElTUENU
WF9ESUFMRUNUX05BTUVTID0gKFVESVNQQ1RYX1RZUEVfRElBTEVDVF9IQU5ETElORzw8OCkgKyAx
LAorICAgIC8qKgorICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
ICogQ0FQSVRBTElaQVRJT04gY2FuIGJlIHNldCB0byBvbmUgb2YgVURJU1BDVFhfQ0FQSVRBTEla
QVRJT05fTk9ORSwKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfTUlERExFX09G
X1NFTlRFTkNFLAorICAgICAqIFVESVNQQ1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9CRUdJTk5JTkdf
T0ZfU0VOVEVOQ0UsCisgICAgICogVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1VJX0xJU1Rf
T1JfTUVOVSwgb3IKKyAgICAgKiBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfU1RBTkRBTE9O
RS4KKyAgICAgKiBVc2UgVURpc3BsYXlDb250ZXh0VHlwZSBVRElTUENUWF9UWVBFX0NBUElUQUxJ
WkFUSU9OIHRvIGdldCB0aGUgdmFsdWUuCisgICAgICovCisgICAgLyoqCisgICAgICogVGhlIGNh
cGl0YWxpemF0aW9uIGNvbnRleHQgdG8gYmUgdXNlZCBpcyB1bmtub3duICh0aGlzIGlzIHRoZSBk
ZWZhdWx0IHZhbHVlKS4KKyAgICAgKiBAZHJhZnQgSUNVIDUxCisgICAgICovCisgICAgVURJU1BD
VFhfQ0FQSVRBTElaQVRJT05fTk9ORSA9IChVRElTUENUWF9UWVBFX0NBUElUQUxJWkFUSU9OPDw4
KSArIDAsCisgICAgLyoqCisgICAgICogVGhlIGNhcGl0YWxpemF0aW9uIGNvbnRleHQgaWYgYSBk
YXRlLCBkYXRlIHN5bWJvbCBvciBkaXNwbGF5IG5hbWUgaXMgdG8gYmUKKyAgICAgKiBmb3JtYXR0
ZWQgd2l0aCBjYXBpdGFsaXphdGlvbiBhcHByb3ByaWF0ZSBmb3IgdGhlIG1pZGRsZSBvZiBhIHNl
bnRlbmNlLgorICAgICAqIEBkcmFmdCBJQ1UgNTEKKyAgICAgKi8KKyAgICBVRElTUENUWF9DQVBJ
VEFMSVpBVElPTl9GT1JfTUlERExFX09GX1NFTlRFTkNFID0gKFVESVNQQ1RYX1RZUEVfQ0FQSVRB
TElaQVRJT048PDgpICsgMSwKKyAgICAvKioKKyAgICAgKiBUaGUgY2FwaXRhbGl6YXRpb24gY29u
dGV4dCBpZiBhIGRhdGUsIGRhdGUgc3ltYm9sIG9yIGRpc3BsYXkgbmFtZSBpcyB0byBiZQorICAg
ICAqIGZvcm1hdHRlZCB3aXRoIGNhcGl0YWxpemF0aW9uIGFwcHJvcHJpYXRlIGZvciB0aGUgYmVn
aW5uaW5nIG9mIGEgc2VudGVuY2UuCisgICAgICogQGRyYWZ0IElDVSA1MQorICAgICAqLworICAg
IFVESVNQQ1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9CRUdJTk5JTkdfT0ZfU0VOVEVOQ0UgPSAoVURJ
U1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyAyLAorICAgIC8qKgorICAgICAqIFRoZSBj
YXBpdGFsaXphdGlvbiBjb250ZXh0IGlmIGEgZGF0ZSwgZGF0ZSBzeW1ib2wgb3IgZGlzcGxheSBu
YW1lIGlzIHRvIGJlCisgICAgICogZm9ybWF0dGVkIHdpdGggY2FwaXRhbGl6YXRpb24gYXBwcm9w
cmlhdGUgZm9yIGEgdXNlci1pbnRlcmZhY2UgbGlzdCBvciBtZW51IGl0ZW0uCisgICAgICogQGRy
YWZ0IElDVSA1MQorICAgICAqLworICAgIFVESVNQQ1RYX0NBUElUQUxJWkFUSU9OX0ZPUl9VSV9M
SVNUX09SX01FTlUgPSAoVURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyAzLAorICAg
IC8qKgorICAgICAqIFRoZSBjYXBpdGFsaXphdGlvbiBjb250ZXh0IGlmIGEgZGF0ZSwgZGF0ZSBz
eW1ib2wgb3IgZGlzcGxheSBuYW1lIGlzIHRvIGJlCisgICAgICogZm9ybWF0dGVkIHdpdGggY2Fw
aXRhbGl6YXRpb24gYXBwcm9wcmlhdGUgZm9yIHN0YW5kLWFsb25lIHVzYWdlIHN1Y2ggYXMgYW4K
KyAgICAgKiBpc29sYXRlZCBuYW1lIG9uIGEgY2FsZW5kYXIgcGFnZS4KKyAgICAgKiBAZHJhZnQg
SUNVIDUxCisgICAgICovCisgICAgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1NUQU5EQUxP
TkUgPSAoVURJU1BDVFhfVFlQRV9DQVBJVEFMSVpBVElPTjw8OCkgKyA0CisjZW5kaWYgLyogVV9I
SURFX0RSQUZUX0FQSSAqLworfTsKKy8qKgorKiAgQGRyYWZ0IElDVSA1MQorKi8KK3R5cGVkZWYg
ZW51bSBVRGlzcGxheUNvbnRleHQgVURpc3BsYXlDb250ZXh0OworCisjZW5kaWYgLyogI2lmICFV
Q09ORklHX05PX0ZPUk1BVFRJTkcgKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWVudW0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
Y3UvdW5pY29kZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2MDhkZjhiODlmZDA3Njhk
MTlmNWM2ODguLjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZlMjJjNTEyYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZW51bS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91ZW51bS5oCkBAIC0xLDcgKzEsNyBAQAog
LyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAx
MCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAw
Mi0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCkBAIC0xNjQsMTEgKzE2NCw0MyBAQCB1ZW51bV9yZXNldChVRW51bWVyYXRpb24qIGVuLCBV
RXJyb3JDb2RlKiBzdGF0dXMpOwogICogQHBhcmFtIGFkb3B0ZWQgdGhlIEMrKyBTdHJpbmdFbnVt
ZXJhdGlvbiB0byBiZSB3cmFwcGVkIGluIGEgVUVudW1lcmF0aW9uLgogICogQHBhcmFtIGVjIHRo
ZSBlcnJvciBjb2RlLgogICogQHJldHVybiBhIFVFbnVtZXJhdGlvbiB3cmFwcGluZyB0aGUgYWRv
cHRlZCBTdHJpbmdFbnVtZXJhdGlvbi4KLSAqIEBkcmFmdCBJQ1UgNC4yCisgKiBAc3RhYmxlIElD
VSA0LjIKICAqLwotVV9DQVBJIFVFbnVtZXJhdGlvbiogVV9FWFBPUlQyCi11ZW51bV9vcGVuRnJv
bVN0cmluZ0VudW1lcmF0aW9uKFVfTkFNRVNQQUNFX1FVQUxJRklFUiBTdHJpbmdFbnVtZXJhdGlv
biogYWRvcHRlZCwgVUVycm9yQ29kZSogZWMpOworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VY
UE9SVDIKK3VlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24oaWN1OjpTdHJpbmdFbnVtZXJh
dGlvbiogYWRvcHRlZCwgVUVycm9yQ29kZSogZWMpOwogCiAjZW5kaWYKIAorLyoqCisgKiBHaXZl
biBhbiBhcnJheSBvZiBjb25zdCBVQ2hhciogc3RyaW5ncywgcmV0dXJuIGEgVUVudW1lcmF0aW9u
LiAgU3RyaW5nIHBvaW50ZXJzIGZyb20gMC4uY291bnQtMSBtdXN0IG5vdCBiZSBudWxsLgorICog
RG8gbm90IGZyZWUgb3IgbW9kaWZ5IGVpdGhlciB0aGUgc3RyaW5nIGFycmF5IG9yIHRoZSBjaGFy
YWN0ZXJzIGl0IHBvaW50cyB0byB1bnRpbCB0aGlzIG9iamVjdCBoYXMgYmVlbiBkZXN0cm95ZWQg
d2l0aCB1ZW51bV9jbG9zZS4KKyAqIFxzbmlwcGV0IHRlc3QvY2ludGx0c3QvdWVudW10c3QuYyB1
ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24KKyAqIEBwYXJhbSBzdHJpbmdzIGFycmF5
IG9mIGNvbnN0IFVDaGFyKiBzdHJpbmdzIChlYWNoIG51bGwgdGVybWluYXRlZCkuIEFsbCBzdG9y
YWdlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgKiBAcGFyYW0gY291bnQgbGVuZ3RoIG9mIHRo
ZSBhcnJheQorICogQHBhcmFtIGVjIGVycm9yIGNvZGUKKyAqIEByZXR1cm4gdGhlIG5ldyBVRW51
bWVyYXRpb24gb2JqZWN0LiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdWVudW1f
Y2xvc2UgdG8gZnJlZSBtZW1vcnkuCisgKiBAc2VlIHVlbnVtX2Nsb3NlCisgKiBAc3RhYmxlIElD
VSA1MAorICovCitVX1NUQUJMRSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlblVD
aGFyU3RyaW5nc0VudW1lcmF0aW9uKGNvbnN0IFVDaGFyKiBjb25zdCBzdHJpbmdzW10sIGludDMy
X3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlKiBl
Yyk7CisKKy8qIE5vdGU6ICBuZXh0IGZ1bmN0aW9uIGlzIG5vdCBoaWRkZW4gYXMgZHJhZnQsIGFz
IGl0IGlzIHVzZWQgaW50ZXJuYWxseSAoaXQgd2FzIGZvcm1lcmx5IGFuIGludGVybmFsIGZ1bmN0
aW9uKS4gKi8KKworLyoqCisgKiBHaXZlbiBhbiBhcnJheSBvZiBjb25zdCBjaGFyKiBzdHJpbmdz
IChpbnZhcmlhbnQgY2hhcnMgb25seSksIHJldHVybiBhIFVFbnVtZXJhdGlvbi4gIFN0cmluZyBw
b2ludGVycyBmcm9tIDAuLmNvdW50LTEgbXVzdCBub3QgYmUgbnVsbC4KKyAqIERvIG5vdCBmcmVl
IG9yIG1vZGlmeSBlaXRoZXIgdGhlIHN0cmluZyBhcnJheSBvciB0aGUgY2hhcmFjdGVycyBpdCBw
b2ludHMgdG8gdW50aWwgdGhpcyBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkIHdpdGggdWVudW1f
Y2xvc2UuCisgKiBcc25pcHBldCB0ZXN0L2NpbnRsdHN0L3VlbnVtdHN0LmMgdWVudW1fb3BlbkNo
YXJTdHJpbmdzRW51bWVyYXRpb24KKyAqIEBwYXJhbSBzdHJpbmdzIGFycmF5IG9mIGNoYXIqIHN0
cmluZ3MgKGVhY2ggbnVsbCB0ZXJtaW5hdGVkKS4gIEFsbCBzdG9yYWdlIGlzIG93bmVkIGJ5IHRo
ZSBjYWxsZXIuCisgKiBAcGFyYW0gY291bnQgbGVuZ3RoIG9mIHRoZSBhcnJheQorICogQHBhcmFt
IGVjIGVycm9yIGNvZGUKKyAqIEByZXR1cm4gdGhlIG5ldyBVRW51bWVyYXRpb24gb2JqZWN0LiBD
YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdWVudW1fY2xvc2UgdG8gZnJlZSBtZW1v
cnkKKyAqIEBzZWUgdWVudW1fY2xvc2UKKyAqIEBzdGFibGUgSUNVIDUwCisgKi8KK1VfU1RBQkxF
IFVFbnVtZXJhdGlvbiogVV9FWFBPUlQyCit1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlv
bihjb25zdCBjaGFyKiBjb25zdCBzdHJpbmdzW10sIGludDMyX3QgY291bnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlKiBlYyk7CisKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vmb3JtYXR0YWJsZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vmb3JtYXR0YWJsZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM2YzI1NzY2NTA0MTA0Y2QzM2ViOTYyMTc0MDk2NWMyYWUwYTMyMDQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWZvcm1hdHRhYmxlLmgK
QEAgLTAsMCArMSwyODMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmln
aHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4KKyogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqIEZpbGUgVUZPUk1BVFRBQkxFLkgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAyMDEzIEp1
biA3ICBzcmwgICAgICAgICBOZXcKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvKioK
KyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVGb3JtYXR0YWJsZSBpcyBhIHRoaW4gd3JhcHBl
ciBmb3IgcHJpbWl0aXZlIHR5cGVzIHVzZWQgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcuCisg
KgorICogVGhpcyBpcyBhIEMgaW50ZXJmYWNlIHRvIHRoZSBpY3U6OkZvcm1hdHRhYmxlIGNsYXNz
LiBTdGF0aWMgZnVuY3Rpb25zIG9uIHRoaXMgY2xhc3MgY29udmVydAorICogdG8gYW5kIGZyb20g
dGhpcyBpbnRlcmZhY2UgKHZpYSByZWludGVycHJldF9jYXN0KS4gIE5vdGUgdGhhdCBGb3JtYXR0
YWJsZXMgKGFuZCB0aHVzIFVGb3JtYXR0YWJsZXMpCisgKiBhcmUgbXV0YWJsZSwgYW5kIG1hbnkg
b3BlcmF0aW9ucyAoZXZlbiBnZXR0ZXJzKSBtYXkgYWN0dWFsbHkgbW9kaWZ5IHRoZSBpbnRlcm5h
bCBzdGF0ZS4gRm9yIHRoaXMKKyAqIHJlYXNvbiwgVUZvcm1hdHRhYmxlcyBhcmUgbm90IHRocmVh
ZCBzYWZlLCBhbmQgc2hvdWxkIG5vdCBiZSBzaGFyZWQgYmV0d2VlbiB0aHJlYWRzLgorICoKKyAq
IFNlZSB7QGxpbmsgdW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlfSBmb3IgZXhhbXBsZSBjb2RlLgor
ICovCisKKyNpZm5kZWYgVUZPUk1BVFRBQkxFX0gKKyNkZWZpbmUgVUZPUk1BVFRBQkxFX0gKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKyNpZiAhVUNPTkZJR19OT19GT1JNQVRUSU5H
CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBv
aW50ZXIuaCIKKworLyoqCisgKiBFbnVtIGRlc2lnbmF0aW5nIHRoZSB0eXBlIG9mIGEgVUZvcm1h
dHRhYmxlIGluc3RhbmNlLgorICogUHJhY3RpY2FsbHksIHRoaXMgaW5kaWNhdGVzIHdoaWNoIG9m
IHRoZSBnZXR0ZXJzIHdvdWxkIHJldHVybiB3aXRob3V0IGNvbnZlcnNpb24KKyAqIG9yIGVycm9y
LgorICogQHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpUeXBlCisgKiBAZHJhZnQgSUNVIDUyCisgKi8K
K3R5cGVkZWYgZW51bSBVRm9ybWF0dGFibGVUeXBlIHsKKyAgVUZNVF9EQVRFID0gMCwgLyoqPCB1
Zm10X2dldERhdGUoKSB3aWxsIHJldHVybiB3aXRob3V0IGNvbnZlcnNpb24uIEBzZWUgdWZtdF9n
ZXREYXRlKi8KKyAgVUZNVF9ET1VCTEUsICAgLyoqPCB1Zm10X2dldERvdWJsZSgpIHdpbGwgcmV0
dXJuIHdpdGhvdXQgY29udmVyc2lvbi4gIEBzZWUgdWZtdF9nZXREb3VibGUqLworICBVRk1UX0xP
TkcsICAgICAvKio8IHVmbXRfZ2V0TG9uZygpIHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lv
bi4gQHNlZSB1Zm10X2dldExvbmcgKi8KKyAgVUZNVF9TVFJJTkcsICAgLyoqPCB1Zm10X2dldFVD
aGFycygpIHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lvbi4gIEBzZWUgdWZtdF9nZXRVQ2hh
cnMqLworICBVRk1UX0FSUkFZLCAgICAvKio8IHVmbXRfY291bnRBcnJheSgpIGFuZCB1Zm10X2dl
dEFycmF5KCkgd2lsbCByZXR1cm4gdGhlIHZhbHVlLiAgQHNlZSB1Zm10X2dldEFycmF5SXRlbUJ5
SW5kZXggKi8KKyAgVUZNVF9JTlQ2NCwgICAgLyoqPCB1Zm10X2dldEludDY0KCkgd2lsbCByZXR1
cm4gd2l0aG91dCBjb252ZXJzaW9uLiBAc2VlIHVmbXRfZ2V0SW50NjQgKi8KKyAgVUZNVF9PQkpF
Q1QsICAgLyoqPCB1Zm10X2dldE9iamVjdCgpIHdpbGwgcmV0dXJuIHdpdGhvdXQgY29udmVyc2lv
bi4gIEBzZWUgdWZtdF9nZXRPYmplY3QqLworICBVRk1UX0NPVU5UICAgICAvKio8IENvdW50IG9m
IGRlZmluZWQgVUZvcm1hdHRhYmxlVHlwZSB2YWx1ZXMgKi8KK30gVUZvcm1hdHRhYmxlVHlwZTsK
KworCisvKioKKyAqIE9wYXF1ZSB0eXBlIHJlcHJlc2VudGluZyB2YXJpb3VzIHR5cGVzIG9mIGRh
dGEgd2hpY2ggbWF5IGJlIHVzZWQgZm9yIGZvcm1hdHRpbmcKKyAqIGFuZCBwYXJzaW5nIG9wZXJh
dGlvbnMuCisgKiBAc2VlIGljdTo6Rm9ybWF0dGFibGUKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLwor
dHlwZWRlZiB2b2lkICpVRm9ybWF0dGFibGU7CisKKy8qKgorICogSW5pdGlhbGl6ZSBhIFVGb3Jt
YXR0YWJsZSwgdG8gdHlwZSBVTlVNX0xPTkcsIHZhbHVlIDAKKyAqIG1heSByZXR1cm4gZXJyb3Ig
aWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgorICogcGFyYW1ldGVyIHN0YXR1cyBlcnJvciBj
b2RlLgorICogU2VlIHtAbGluayB1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGV9IGZvciBleGFtcGxl
IGNvZGUuCisgKiBAZHJhZnQgSUNVIDUyCisgKiBAcmV0dXJuIHRoZSBuZXcgVUZvcm1hdHRhYmxl
CisgKiBAc2VlIHVmbXRfY2xvc2UKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Rm9ybWF0dGFi
bGUoKQorICovCitVX0RSQUZUIFVGb3JtYXR0YWJsZSogVV9FWFBPUlQyCit1Zm10X29wZW4oVUVy
cm9yQ29kZSogc3RhdHVzKTsKKworLyoqCisgKiBDbGVhbnVwIGFueSBhZGRpdGlvbmFsIG1lbW9y
eSBhbGxvY2F0ZWQgYnkgdGhpcyBVRm9ybWF0dGFibGUuCisgKiBAcGFyYW0gZm10IHRoZSBmb3Jt
YXR0ZXIKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgdWZtdF9vcGVuCisgKi8KK1VfRFJBRlQg
dm9pZCBVX0VYUE9SVDIKK3VmbXRfY2xvc2UoVUZvcm1hdHRhYmxlKiBmbXQpOworCisjaWYgVV9T
SE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3Mg
TG9jYWxVRm9ybWF0dGFibGVQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3Nl
cyBhIFVGb3JtYXR0YWJsZSB2aWEgdWZtdF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBz
ZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9p
bnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAZHJhZnQgSUNVIDUyCisgKi8KK1Vf
REVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVGb3JtYXR0YWJsZVBvaW50ZXIsIFVGb3Jt
YXR0YWJsZSwgdWZtdF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoq
CisgKiBSZXR1cm4gdGhlIHR5cGUgb2YgdGhpcyBvYmplY3QKKyAqIEBwYXJhbSBmbXQgdGhlIFVG
b3JtYXR0YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIGNvZGUgLSBVX0lMTEVH
QUxfQVJHVU1FTlRfRVJST1IgaXMgcmV0dXJuZWQgaWYgdGhlIFVGb3JtYXR0YWJsZSBjb250YWlu
cyBkYXRhIG5vdCBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBBUEkKKyAqIEByZXR1cm4gdGhlIHZhbHVl
IGFzIGEgVUZvcm1hdHRhYmxlVHlwZQorICogQHNlZSB1Zm10X2lzTnVtZXJpYworICogQHNlZSBp
Y3U6OkZvcm1hdHRhYmxlOjpnZXRUeXBlKCkgY29uc3QKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLwor
VV9EUkFGVCBVRm9ybWF0dGFibGVUeXBlIFVfRVhQT1JUMgordWZtdF9nZXRUeXBlKGNvbnN0IFVG
b3JtYXR0YWJsZSogZm10LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIFJldHVybiB3
aGV0aGVyIHRoZSBvYmplY3QgaXMgbnVtZXJpYy4KKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0
YWJsZSBvYmplY3QKKyAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgZG91YmxlLCBs
b25nLCBvciBpbnQ2NCB2YWx1ZSwgZWxzZSBmYWxzZS4KKyAqIEBzZWUgdWZtdF9nZXRUeXBlCisg
KiBAc2VlIGljdTo6Rm9ybWF0dGFibGU6OmlzTnVtZXJpYygpIGNvbnN0CisgKiBAZHJhZnQgSUNV
IDUyCisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1Zm10X2lzTnVtZXJpYyhjb25zdCBV
Rm9ybWF0dGFibGUqIGZtdCk7CisKKy8qKgorICogR2V0cyB0aGUgVURhdGUgdmFsdWUgb2YgdGhp
cyBvYmplY3QuICBJZiB0aGUgdHlwZSBpcyBub3Qgb2YgdHlwZSBVRk1UX0RBVEUsCisgKiBzdGF0
dXMgaXMgc2V0IHRvIFVfSU5WQUxJRF9GT1JNQVRfRVJST1IgYW5kIHRoZSByZXR1cm4gdmFsdWUg
aXMKKyAqIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBvYmplY3QK
KyAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUgLSBhbnkgY29udmVyc2lvbiBvciBmb3Jt
YXQgZXJyb3JzCisgKiBAcmV0dXJuIHRoZSB2YWx1ZQorICogQGRyYWZ0IElDVSA1MgorICogQHNl
ZSBpY3U6OkZvcm1hdHRhYmxlOjpnZXREYXRlKFVFcnJvckNvZGUmKSBjb25zdAorICovCitVX0RS
QUZUIFVEYXRlIFVfRVhQT1JUMgordWZtdF9nZXREYXRlKGNvbnN0IFVGb3JtYXR0YWJsZSogZm10
LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEdldHMgdGhlIGRvdWJsZSB2YWx1ZSBv
ZiB0aGlzIG9iamVjdC4gSWYgdGhlIHR5cGUgaXMgbm90IGEgVUZNVF9ET1VCTEUsIG9yCisgKiBp
ZiB0aGVyZSBhcmUgYWRkaXRpb25hbCBzaWduaWZpY2FudCBkaWdpdHMgdGhhbiBmaXQgaW4gYSBk
b3VibGUgdHlwZSwKKyAqIGEgY29udmVyc2lvbiBpcyBwZXJmb3JtZWQgd2l0aCAgcG9zc2libGUg
bG9zcyBvZiBwcmVjaXNpb24uCisgKiBJZiB0aGUgdHlwZSBpcyBVRk1UX09CSkVDVCBhbmQgdGhl
CisgKiBvYmplY3QgaXMgYSBNZWFzdXJlLCB0aGVuIHRoZSByZXN1bHQgb2YKKyAqIGdldE51bWJl
cigpLmdldERvdWJsZShzdGF0dXMpIGlzIHJldHVybmVkLiAgSWYgdGhpcyBvYmplY3QgaXMKKyAq
IG5laXRoZXIgYSBudW1lcmljIHR5cGUgbm9yIGEgTWVhc3VyZSwgdGhlbiAwIGlzIHJldHVybmVk
IGFuZAorICogdGhlIHN0YXR1cyBpcyBzZXQgdG8gVV9JTlZBTElEX0ZPUk1BVF9FUlJPUi4KKyAq
IEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgdGhl
IGVycm9yIGNvZGUgLSBhbnkgY29udmVyc2lvbiBvciBmb3JtYXQgZXJyb3JzCisgKiBAcmV0dXJu
IHRoZSB2YWx1ZQorICogQGRyYWZ0IElDVSA1MgorICogQHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpn
ZXREb3VibGUoVUVycm9yQ29kZSYpIGNvbnN0CisgKi8KK1VfRFJBRlQgZG91YmxlIFVfRVhQT1JU
MgordWZtdF9nZXREb3VibGUoVUZvcm1hdHRhYmxlKiBmbXQsIFVFcnJvckNvZGUgKnN0YXR1cyk7
CisKKy8qKgorICogR2V0cyB0aGUgbG9uZyAoaW50MzJfdCkgdmFsdWUgb2YgdGhpcyBvYmplY3Qu
IElmIHRoZSBtYWduaXR1ZGUgaXMgdG9vCisgKiBsYXJnZSB0byBmaXQgaW4gYSBsb25nLCB0aGVu
IHRoZSBtYXhpbXVtIG9yIG1pbmltdW0gbG9uZyB2YWx1ZSwKKyAqIGFzIGFwcHJvcHJpYXRlLCBp
cyByZXR1cm5lZCBhbmQgdGhlIHN0YXR1cyBpcyBzZXQgdG8KKyAqIFVfSU5WQUxJRF9GT1JNQVRf
RVJST1IuICBJZiB0aGlzIG9iamVjdCBpcyBvZiB0eXBlIFVGTVRfSU5UNjQgYW5kCisgKiBpdCBm
aXRzIHdpdGhpbiBhIGxvbmcsIHRoZW4gbm8gcHJlY2lzaW9uIGlzIGxvc3QuICBJZiBpdCBpcyBv
ZgorICogdHlwZSBrRG91YmxlIG9yIGtEZWNpbWFsTnVtYmVyLCB0aGVuIGEgY29udmVyc2lvbiBp
cyBwZWZvcm1lZCwgd2l0aAorICogdHJ1bmNhdGlvbiBvZiBhbnkgZnJhY3Rpb25hbCBwYXJ0LiAg
SWYgdGhlIHR5cGUgaXMgVUZNVF9PQkpFQ1QgYW5kCisgKiB0aGUgb2JqZWN0IGlzIGEgTWVhc3Vy
ZSwgdGhlbiB0aGUgcmVzdWx0IG9mCisgKiBnZXROdW1iZXIoKS5nZXRMb25nKHN0YXR1cykgaXMg
cmV0dXJuZWQuICBJZiB0aGlzIG9iamVjdCBpcworICogbmVpdGhlciBhIG51bWVyaWMgdHlwZSBu
b3IgYSBNZWFzdXJlLCB0aGVuIDAgaXMgcmV0dXJuZWQgYW5kCisgKiB0aGUgc3RhdHVzIGlzIHNl
dCB0byBVX0lOVkFMSURfRk9STUFUX0VSUk9SLgorICogQHBhcmFtIGZtdCB0aGUgVUZvcm1hdHRh
YmxlIG9iamVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZSAtIGFueSBjb252ZXJz
aW9uIG9yIGZvcm1hdCBlcnJvcnMKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKiBAZHJhZnQgSUNV
IDUyCisgKiBAc2VlIGljdTo6Rm9ybWF0dGFibGU6OmdldExvbmcoVUVycm9yQ29kZSYpIGNvbnN0
CisgKi8KK1VfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK3VmbXRfZ2V0TG9uZyhVRm9ybWF0dGFi
bGUqIGZtdCwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworCisvKioKKyAqIEdldHMgdGhlIGludDY0
X3QgdmFsdWUgb2YgdGhpcyBvYmplY3QuIElmIHRoaXMgb2JqZWN0IGlzIG9mIGEgbnVtZXJpYwor
ICogdHlwZSBhbmQgdGhlIG1hZ25pdHVkZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIGFuIGludDY0
LCB0aGVuCisgKiB0aGUgbWF4aW11bSBvciBtaW5pbXVtIGludDY0IHZhbHVlLCBhcyBhcHByb3By
aWF0ZSwgaXMgcmV0dXJuZWQKKyAqIGFuZCB0aGUgc3RhdHVzIGlzIHNldCB0byBVX0lOVkFMSURf
Rk9STUFUX0VSUk9SLiAgSWYgdGhlCisgKiBtYWduaXR1ZGUgZml0cyBpbiBhbiBpbnQ2NCwgdGhl
biBhIGNhc3RpbmcgY29udmVyc2lvbiBpcworICogcGVmb3JtZWQsIHdpdGggdHJ1bmNhdGlvbiBv
ZiBhbnkgZnJhY3Rpb25hbCBwYXJ0LiAgSWYgdGhlIHR5cGUKKyAqIGlzIFVGTVRfT0JKRUNUIGFu
ZCB0aGUgb2JqZWN0IGlzIGEgTWVhc3VyZSwgdGhlbiB0aGUgcmVzdWx0IG9mCisgKiBnZXROdW1i
ZXIoKS5nZXREb3VibGUoc3RhdHVzKSBpcyByZXR1cm5lZC4gIElmIHRoaXMgb2JqZWN0IGlzCisg
KiBuZWl0aGVyIGEgbnVtZXJpYyB0eXBlIG5vciBhIE1lYXN1cmUsIHRoZW4gMCBpcyByZXR1cm5l
ZCBhbmQKKyAqIHRoZSBzdGF0dXMgaXMgc2V0IHRvIFVfSU5WQUxJRF9GT1JNQVRfRVJST1IuCisg
KiBAcGFyYW0gZm10IHRoZSBVRm9ybWF0dGFibGUgb2JqZWN0CisgKiBAcGFyYW0gc3RhdHVzIHRo
ZSBlcnJvciBjb2RlIC0gYW55IGNvbnZlcnNpb24gb3IgZm9ybWF0IGVycm9ycworICogQHJldHVy
biB0aGUgdmFsdWUKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6
Z2V0SW50NjQoVUVycm9yQ29kZSYpIGNvbnN0CisgKi8KK1VfRFJBRlQgaW50NjRfdCBVX0VYUE9S
VDIKK3VmbXRfZ2V0SW50NjQoVUZvcm1hdHRhYmxlKiBmbXQsIFVFcnJvckNvZGUgKnN0YXR1cyk7
CisKKy8qKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIFVPYmplY3QgY29udGFpbmVkIHdp
dGhpbiB0aGlzCisgKiBmb3JtYXR0YWJsZSAoYXMgYSBjb25zdCB2b2lkKiksIG9yIE5VTEwgaWYg
dGhpcyBvYmplY3QKKyAqIGlzIG5vdCBvZiB0eXBlIFVGTVRfT0JKRUNULgorICogQHBhcmFtIGZt
dCB0aGUgVUZvcm1hdHRhYmxlIG9iamVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29k
ZSAtIGFueSBjb252ZXJzaW9uIG9yIGZvcm1hdCBlcnJvcnMKKyAqIEByZXR1cm4gdGhlIHZhbHVl
IGFzIGEgY29uc3Qgdm9pZCouIEl0IGlzIGEgcG9seW1vcnBoaWMgQysrIG9iamVjdC4KKyAqIEBk
cmFmdCBJQ1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0T2JqZWN0KCkgY29uc3QK
KyAqLworVV9EUkFGVCBjb25zdCB2b2lkICpVX0VYUE9SVDIKK3VmbXRfZ2V0T2JqZWN0KGNvbnN0
IFVGb3JtYXR0YWJsZSogZm10LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEdldHMg
dGhlIHN0cmluZyB2YWx1ZSBvZiB0aGlzIG9iamVjdCBhcyBhIFVDaGFyIHN0cmluZy4gSWYgdGhl
IHR5cGUgaXMgbm90IGEKKyAqIHN0cmluZywgc3RhdHVzIGlzIHNldCB0byBVX0lOVkFMSURfRk9S
TUFUX0VSUk9SIGFuZCBhIE5VTEwgcG9pbnRlciBpcyByZXR1cm5lZC4KKyAqIFRoaXMgZnVuY3Rp
b24gaXMgbm90IHRocmVhZCBzYWZlIGFuZCBtYXkgbW9kaWZ5IHRoZSBVRm9ybWF0dGFibGUgaWYg
bmVlZCBiZSB0byB0ZXJtaW5hdGUgdGhlIHN0cmluZy4KKyAqIFRoZSByZXR1cm5lZCBwb2ludGVy
IGlzIG5vdCB2YWxpZCBpZiBhbnkgb3RoZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgb24gdGhpcyBV
Rm9ybWF0dGFibGUsIG9yIGlmIHRoZSBVRm9ybWF0dGFibGUgaXMgY2xvc2VkLgorICogQHBhcmFt
IGZtdCB0aGUgVUZvcm1hdHRhYmxlIG9iamVjdAorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3Ig
Y29kZSAtIGFueSBjb252ZXJzaW9uIG9yIGZvcm1hdCBlcnJvcnMKKyAqIEBwYXJhbSBsZW4gaWYg
bm9uIG51bGwsIGNvbnRhaW5zIHRoZSBzdHJpbmcgbGVuZ3RoIG9uIHJldHVybgorICogQHJldHVy
biB0aGUgbnVsbCB0ZXJtaW5hdGVkIHN0cmluZyB2YWx1ZSAtIG11c3Qgbm90IGJlIHJlZmVyZW5j
ZWQgYWZ0ZXIgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIG9uIHRoaXMgVUZvcm1hdHRh
YmxlLgorICogQGRyYWZ0IElDVSA1MgorICogQHNlZSBpY3U6OkZvcm1hdHRhYmxlOjpnZXRTdHJp
bmcoVW5pY29kZVN0cmluZyYpY29uc3QKKyAqLworVV9EUkFGVCBjb25zdCBVQ2hhciogVV9FWFBP
UlQyCit1Zm10X2dldFVDaGFycyhVRm9ybWF0dGFibGUqIGZtdCwgaW50MzJfdCAqbGVuLCBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEdldCB0aGUgbnVtYmVyIG9mIGFycmF5IG9iamVj
dHMgY29udGFpbmVkLCBpZiBhbiBhcnJheSB0eXBlIFVGTVRfQVJSQVkKKyAqIEBwYXJhbSBmbXQg
dGhlIFVGb3JtYXR0YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUg
LSBhbnkgY29udmVyc2lvbiBvciBmb3JtYXQgZXJyb3JzLiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJS
T1IgaWYgbm90IGFuIGFycmF5IHR5cGUuCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYXJyYXkg
b2JqZWN0cyBvciB1bmRlZmluZWQgaWYgbm90IGFuIGFycmF5IHR5cGUKKyAqIEBkcmFmdCBJQ1Ug
NTIKKyAqIEBzZWUgdWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4CisgKi8KK1VfRFJBRlQgaW50MzJf
dCBVX0VYUE9SVDIKK3VmbXRfZ2V0QXJyYXlMZW5ndGgoY29uc3QgVUZvcm1hdHRhYmxlKiBmbXQs
IFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogR2V0IHRoZSBzcGVjaWZpZWQgdmFsdWUg
ZnJvbSB0aGUgYXJyYXkgb2YgVUZvcm1hdHRhYmxlcy4gSW52YWxpZCBpZiB0aGUgb2JqZWN0IGlz
IG5vdCBhbiBhcnJheSB0eXBlIFVGTVRfQVJSQVkKKyAqIEBwYXJhbSBmbXQgdGhlIFVGb3JtYXR0
YWJsZSBvYmplY3QKKyAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgdGhlIGFycmF5IHRvIHJldHVy
biAoMCBiYXNlZCkuCisgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlIC0gYW55IGNvbnZl
cnNpb24gb3IgZm9ybWF0IGVycm9ycy4gUmV0dXJucyBhbiBlcnJvciBpZiBuIGlzIG91dCBvZiBi
b3VuZHMuCisgKiBAcmV0dXJuIHRoZSBudGggYXJyYXkgdmFsdWUsIG9ubHkgdmFsaWQgd2hpbGUg
dGhlIGNvbnRhaW5pbmcgVUZvcm1hdHRhYmxlIGlzIHZhbGlkLiBOVUxMIGlmIG5vdCBhbiBhcnJh
eS4KKyAqIEBkcmFmdCBJQ1UgNTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0QXJyYXko
aW50MzJfdCYsIFVFcnJvckNvZGUmKSBjb25zdAorICovCitVX0RSQUZUIFVGb3JtYXR0YWJsZSAq
IFVfRVhQT1JUMgordWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4KFVGb3JtYXR0YWJsZSogZm10LCBp
bnQzMl90IG4sIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogUmV0dXJucyBhIG51bWVy
aWMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIgY29udGFpbmVkIHdpdGhpbiB0
aGlzCisgKiBmb3JtYXR0YWJsZSwgb3IgTlVMTCBpZiB0aGlzIG9iamVjdCBkb2VzIG5vdCBjb250
YWluIG51bWVyaWMgdHlwZS4KKyAqIEZvciB2YWx1ZXMgb2J0YWluZWQgYnkgcGFyc2luZywgdGhl
IHJldHVybmVkIGRlY2ltYWwgbnVtYmVyIHJldGFpbnMKKyAqIHRoZSBmdWxsIHByZWNpc2lvbiBh
bmQgcmFuZ2Ugb2YgdGhlIG9yaWdpbmFsIGlucHV0LCB1bmNvbnN0cmFpbmVkIGJ5CisgKiB0aGUg
bGltaXRzIG9mIGEgZG91YmxlIGZsb2F0aW5nIHBvaW50IG9yIGEgNjQgYml0IGludC4KKyAqCisg
KiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZSwgYW5kIHRoZXJmb3JlIGlzIG5vdCBk
ZWNsYXJlZCBjb25zdCwKKyAqIGV2ZW4gdGhvdWdoIGl0IGlzIGxvZ2ljYWxseSBjb25zdC4KKyAq
IFRoZSByZXN1bHRpbmcgYnVmZmVyIGlzIG93bmVkIGJ5IHRoZSBVRm9ybWF0dGFibGUgYW5kIGlz
IGludmFsaWQgaWYgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUKKyAqIGNhbGxlZCBvbiB0aGUgVUZv
cm1hdHRhYmxlLgorICoKKyAqIFBvc3NpYmxlIGVycm9ycyBpbmNsdWRlIFVfTUVNT1JZX0FMTE9D
QVRJT05fRVJST1IsIGFuZAorICogVV9JTlZBTElEX1NUQVRFIGlmIHRoZSBmb3JtYXR0YWJsZSBv
YmplY3QgaGFzIG5vdCBiZWVuIHNldCB0bworICogYSBudW1lcmljIHR5cGUuCisgKiBAcGFyYW0g
Zm10IHRoZSBVRm9ybWF0dGFibGUgb2JqZWN0CisgKiBAcGFyYW0gbGVuIGlmIG5vbi1udWxsLCBv
biBleGl0IGNvbnRhaW5zIHRoZSBzdHJpbmcgbGVuZ3RoIChub3QgaW5jbHVkaW5nIHRoZSB0ZXJt
aW5hdGluZyBudWxsKQorICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICogQHJldHVy
biB0aGUgY2hhcmFjdGVyIGJ1ZmZlciBhcyBhIE5VTEwgdGVybWluYXRlZCBzdHJpbmcsIHdoaWNo
IGlzIG93bmVkIGJ5IHRoZSBvYmplY3QgYW5kIG11c3Qgbm90IGJlIGFjY2Vzc2VkIGlmIGFueSBv
dGhlciBmdW5jdGlvbnMgYXJlIGNhbGxlZCBvbiB0aGlzIG9iamVjdC4KKyAqIEBkcmFmdCBJQ1Ug
NTIKKyAqIEBzZWUgaWN1OjpGb3JtYXR0YWJsZTo6Z2V0RGVjaW1hbE51bWJlcihVRXJyb3JDb2Rl
JikKKyAqLworVV9EUkFGVCBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Zm10X2dldERlY051bUNo
YXJzKFVGb3JtYXR0YWJsZSAqZm10LCBpbnQzMl90ICpsZW4sIFVFcnJvckNvZGUgKnN0YXR1cyk7
CisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworI2VuZGlmCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VpdGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWl0ZXIuaAppbmRleCBiNDY5ZTI0ZTYxNjUz
ZDdlNmQwYmU4YzhmYTY3ZmYyNjUxYjUxZmEzLi4wY2RiOGZmYmU1YzgxNTRhYzlkOTA4ZjYwNWIw
ZWIxNmVhNWJiMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNv
ZGUvdWl0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWl0ZXIu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29w
eXJpZ2h0IChDKSAyMDAyLTIwMDYsMjAwOSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgog
KgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNjczLDcgKzY3Myw3IEBAIHVpdGVyX3NldFVU
RjgoVUNoYXJJdGVyYXRvciAqaXRlciwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOwog
ICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9z
ZXRDaGFyYWN0ZXJJdGVyYXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFM
SUZJRVIgQ2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJdGVyKTsKK3VpdGVyX3NldENoYXJhY3Rlckl0
ZXJhdG9yKFVDaGFySXRlcmF0b3IgKml0ZXIsIGljdTo6Q2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJ
dGVyKTsKIAogLyoqCiAgKiBTZXQgdXAgYSBVQ2hhckl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBh
IEMrKyBSZXBsYWNlYWJsZS4KQEAgLTY5OCw3ICs2OTgsNyBAQCB1aXRlcl9zZXRDaGFyYWN0ZXJJ
dGVyYXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFj
dGVySQogICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11
aXRlcl9zZXRSZXBsYWNlYWJsZShVQ2hhckl0ZXJhdG9yICppdGVyLCBjb25zdCBVX05BTUVTUEFD
RV9RVUFMSUZJRVIgUmVwbGFjZWFibGUgKnJlcCk7Cit1aXRlcl9zZXRSZXBsYWNlYWJsZShVQ2hh
ckl0ZXJhdG9yICppdGVyLCBjb25zdCBpY3U6OlJlcGxhY2VhYmxlICpyZXApOwogCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vsb2MuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91bG9jLmgKaW5kZXggOTU3NThjM2Ez
NGMwZmVmNjBmMTRiNGM1NmYxZDI1ZWE0Y2FmOTgwNy4uMjhhYjkwMmI1MjIyOTNiMzMyMGU5ZTlk
MDdlYWRmMTM5MTY1OGFlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91
bmljb2RlL3Vsb2MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdWxv
Yy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMp
IDE5OTctMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdo
dCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCkBAIC0yODksNyArMjg5LDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3Ig
J0AnIHNlcGFyYXRpbmcga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIHN0cmluZy4KICAgKiBAc2Vl
IFVMT0NfS0VZV09SRF9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQuNgorICAqIEBzdGFibGUg
SUNVIDQuNgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfU0VQQVJBVE9SX1VOSUNPREUgMHg0
MAogCkBAIC0zMDIsNyArMzAyLDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3Ig
Jz0nIGZvciBhc3NpZ25pbmcgdmFsdWUgdG8gYSBrZXl3b3JkLgogICAqIEBzZWUgVUxPQ19LRVlX
T1JEX0FTU0lHTgotICAqIEBkcmFmdCBJQ1UgNC42IAorICAqIEBzdGFibGUgSUNVIDQuNiAKICAg
Ki8KICNkZWZpbmUgVUxPQ19LRVlXT1JEX0FTU0lHTl9VTklDT0RFIDB4M0QKIApAQCAtMzE1LDcg
KzMxNSw3IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc7JyBzZXBhcmF0aW5n
IGtleXdvcmRzCiAgICogQHNlZSBVTE9DX0tFWVdPUkRfSVRFTV9TRVBBUkFUT1IKLSAgKiBAZHJh
ZnQgSUNVIDQuNgorICAqIEBzdGFibGUgSUNVIDQuNgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdP
UkRfSVRFTV9TRVBBUkFUT1JfVU5JQ09ERSAweDNCCiAKQEAgLTM1Myw3ICszNTMsNyBAQCB0eXBl
ZGVmIGVudW0gewogICBVTE9DX0RBVEFfTE9DQUxFX1RZUEVfTElNSVQgPSAzCiB9IFVMb2NEYXRh
TG9jYWxlVHlwZSA7CiAKLQorI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBHZXRz
IElDVSdzIGRlZmF1bHQgbG9jYWxlLiAgCiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIGlzIGEgc25h
cHNob3QgaW4gdGltZSwgYW5kIHdpbGwgcmVtYWluIHZhbGlkCkBAIC0zODgsNiArMzg4LDcgQEAg
dWxvY19nZXREZWZhdWx0KHZvaWQpOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVsb2Nfc2V0
RGVmYXVsdChjb25zdCBjaGFyKiBsb2NhbGVJRCwKICAgICAgICAgVUVycm9yQ29kZSogICAgICAg
c3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KIAogLyoqCiAgKiBHZXRz
IHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KQEAgLTc1Miw3ICs3
NTMsOSBAQCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiB1bG9jX2NvdW50QXZhaWxhYmxlKHZv
aWQpOwogCiAvKioKICAqCi0gKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdl
IGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgKiBHZXRzIGEg
bGlzdCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4g
SVNPIDYzOSwKKyAqIHBsdXMgYWRkaXRpb25hbCAzLWxldHRlciBjb2RlcyBkZXRlcm1pbmVkIHRv
IGJlIHVzZWZ1bCBmb3IgbG9jYWxlIGdlbmVyYXRpb24gYXMKKyAqIGRlZmluZWQgYnkgVW5pY29k
ZSBDTERSLiBUaGlzIGlzIGEgcG9pbnRlcgogICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8g
YXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCiAgKiBieSBJ
Q1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAg
VGhlIGFycmF5IGlzCiAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCkBAIC03OTcs
MTIgKzgwMCwxNSBAQCB1bG9jX2dldFBhcmVudChjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKIAog
CiAvKioKLSAqIEdldHMgdGhlIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisg
KiBHZXRzIHRoZSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBsaWtlIHVsb2Nf
Z2V0TmFtZSgpLAorICogYnV0IHdpdGhvdXQga2V5d29yZHMuCisgKgogICogTm90ZTogVGhpcyBo
YXMgdGhlIGVmZmVjdCBvZiAnY2Fub25pY2FsaXppbmcnIHRoZSBzdHJpbmcgdG8KICAqIGEgY2Vy
dGFpbiBleHRlbnQuIFVwcGVyIGFuZCBsb3dlciBjYXNlIGFyZSBzZXQgYXMgbmVlZGVkLAogICog
YW5kIGlmIHRoZSBjb21wb25lbnRzIHdlcmUgaW4gJ1BPU0lYJyBmb3JtYXQgdGhleSBhcmUgY2hh
bmdlZCB0bwogICogSUNVIGZvcm1hdC4gIEl0IGRvZXMgTk9UIG1hcCBhbGlhc2VkIG5hbWVzIGlu
IGFueSB3YXkuCiAgKiBTZWUgdGhlIHRvcCBvZiB0aGlzIGhlYWRlciBmaWxlLgorICoKICAqIFRo
aXMgQVBJIHN0cmlwcyBvZmYgdGhlIGtleXdvcmQgcGFydCwgc28gImRlX0RFXEBjb2xsYXRpb249
cGhvbmVib29rIiAKICAqIHdpbGwgYmVjb21lICJkZV9ERSIuIAogICogVGhpcyBBUEkgc3VwcG9y
dHMgcHJlZmxpZ2h0aW5nLgpAQCAtODUzLDEzICs4NTksMTYgQEAgdWxvY19nZXRLZXl3b3JkVmFs
dWUoY29uc3QgY2hhciogbG9jYWxlSUQsCiAKIAogLyoqCi0gKiBTZXQgdGhlIHZhbHVlIG9mIHRo
ZSBzcGVjaWZpZWQga2V5d29yZC4KKyAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgb2YgdGhl
IHNwZWNpZmllZCBrZXl3b3JkLgorICoKKyAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVz
ZSB1bG9jX2dldEJhc2VOYW1lKCkuCisgKgogICogTk9URTogVW5saWtlIGFsbW9zdCBldmVyeSBv
dGhlciBJQ1UgZnVuY3Rpb24gd2hpY2ggdGFrZXMgYQogICogYnVmZmVyLCB0aGlzIGZ1bmN0aW9u
IHdpbGwgTk9UIHRydW5jYXRlIHRoZSBvdXRwdXQgdGV4dC4gSWYgYQogICogQlVGRkVSX09WRVJG
TE9XX0VSUk9SIGlzIHJlY2VpdmVkLCBpdCBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbAogICogYnVm
ZmVyIGlzIHVudG91Y2hlZC4gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgaW5jb3JyZWN0IG9yIHBv
c3NpYmx5CiAgKiBldmVuIG1hbGZvcm1lZCBsb2NhbGVzIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGFu
ZCB1c2VkLgotICogCisgKgogICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdv
cmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vuc2l0aXZlLgogICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2
YWx1ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCiAgKiAgTlVMTCwg
d2lsbCByZXN1bHQgaW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2
ZW4gaWYgCkBAIC0xMDY1LDcgKzEwNzQsNyBAQCB1bG9jX21pbmltaXplU3VidGFncyhjb25zdCBj
aGFyKiAgICBsb2NhbGVJRCwKICAgICAgICAgIGludDMyX3QgbWluaW1pemVkTG9jYWxlSURDYXBh
Y2l0eSwKICAgICAgICAgIFVFcnJvckNvZGUqIGVycik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJu
cyBhIGxvY2FsZSBJRCBmb3IgdGhlIHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcgc3RyaW5n
LgogICogSWYgdGhlIHNwZWNpZmllZCBsYW5ndWFnZSB0YWcgY29udGFpbnMgYW55IGlsbC1mb3Jt
ZWQgc3VidGFncywKICAqIHRoZSBmaXJzdCBzdWNoIHN1YnRhZyBhbmQgYWxsIGZvbGxvd2luZyBz
dWJ0YWdzIGFyZSBpZ25vcmVkLgpAQCAtMTA4MSwyMSArMTA5MCwyMSBAQCB1bG9jX21pbmltaXpl
U3VidGFncyhjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKICAqIEBwYXJhbSBsb2NhbGVJRCAgdGhl
IG91dHB1dCBidWZmZXIgcmVjZWl2aW5nIGEgbG9jYWxlIElEIGZvciB0aGUKICAqICAgICAgICAg
ICAgICAgICAgc3BlY2lmaWVkIEJDUDQ3IGxhbmd1YWdlIHRhZy4KICAqIEBwYXJhbSBsb2NhbGVJ
RENhcGFjaXR5ICB0aGUgc2l6ZSBvZiB0aGUgbG9jYWxlIElEIG91dHB1dCBidWZmZXIuCi0gKiBA
cGFyYW0gcGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY3Nlc3NmdWxseSBwYXJzZWQgbGVu
Z3RoCisgKiBAcGFyYW0gcGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY2Vzc2Z1bGx5IHBh
cnNlZCBsZW5ndGgKICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgaW5wdXQgbGFuZ3Vh
Z2UgdGFnIGlzIHNldC4KICAqIEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYg
cmVjZWl2aW5nIHRoZSBsb2NhbGQgSUQKICAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgogICog
QHJldHVybiAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBsb2NhbGUgSUQuCi0gKiBAZHJhZnQg
SUNVIDQuMgorICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9S
VDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0
IGNoYXIqIGxhbmd0YWcsCiAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGxvY2FsZUlELAogICAg
ICAgICAgICAgICAgICAgICBpbnQzMl90IGxvY2FsZUlEQ2FwYWNpdHksCiAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QqIHBhcnNlZExlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSogZXJyKTsKIAotLyoqIAorLyoqCiAgKiBSZXR1cm5zIGEgd2VsbC1mb3JtZWQgbGFuZ3Vh
Z2UgdGFnIGZvciB0aGlzIGxvY2FsZSBJRC4gCiAgKiA8cD4gCiAgKiA8Yj5Ob3RlPC9iPjogV2hl
biA8Y29kZT5zdHJpY3Q8L2NvZGU+IGlzIEZBTFNFLCBhbnkgbG9jYWxlCkBAIC0xMTA0LDcgKzEx
MTMsNyBAQCB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxhbmd0YWcsCiAgKiBUUlVF
LCB0aGlzIGZ1bmN0aW9uIHNldHMgVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SIHRvIHRoZQogICog
PGNvZGU+ZXJyPC9jb2RlPiBpZiBhbnkgbG9jYWxlIGZpZWxkcyBkbyBub3Qgc2F0aXNmeSB0aGUK
ICAqIEJDUDQ3IHN5bnRheCByZXF1aXJlbWVudC4KLSAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlu
cHV0IGxjb2FsZSBJRAorICogQHBhcmFtIGxvY2FsZUlEICB0aGUgaW5wdXQgbG9jYWxlIElECiAg
KiBAcGFyYW0gbGFuZ3RhZyAgIHRoZSBvdXRwdXQgYnVmZmVyIHJlY2VpdmluZyBCQ1A0NyBsYW5n
dWFnZQogICogICAgICAgICAgICAgICAgICB0YWcgZm9yIHRoZSBsb2NhbGUgSUQuCiAgKiBAcGFy
YW0gbGFuZ3RhZ0NhcGFjaXR5ICAgdGhlIHNpemUgb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZwpA
QCAtMTExNCw5ICsxMTIzLDkgQEAgdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5n
dGFnLAogICogQHBhcmFtIGVyciAgICAgICBlcnJvciBpbmZvcm1hdGlvbiBpZiByZWNlaXZpbmcg
dGhlIGxhbmd1YWdlCiAgKiAgICAgICAgICAgICAgICAgIHRhZyBmYWlsZWQuCiAgKiBAcmV0dXJu
ICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZy4KLSAqIEBkcmFm
dCBJQ1UgNC4yCisgKiBAc3RhYmxlIElDVSA0LjIKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQ
T1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVsb2NfdG9MYW5ndWFnZVRhZyhjb25z
dCBjaGFyKiBsb2NhbGVJRCwKICAgICAgICAgICAgICAgICAgICBjaGFyKiBsYW5ndGFnLAogICAg
ICAgICAgICAgICAgICAgIGludDMyX3QgbGFuZ3RhZ0NhcGFjaXR5LApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VtYWNoaW5lLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3
OGRlZTE3MzQ4MDQyYmM2MWMyYTk2Li5kMTEwMmY0OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZl
N2ZmNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW1h
Y2hpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMTk5OS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKQEAgLTQxLDE2ICs0MSw3IEBACiAvKiB3aGljaCBhcmUgY29u
dGFpbmVkIGluIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBmaWxlIHBsYXRmb3JtLmggICAgICAgICAg
ICAgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgZGVmaW5lZChVX1BBTE1PUykKLSMg
ICBpbmNsdWRlICJ1bmljb2RlL3BwYWxtb3MuaCIKLSNlbGlmICFkZWZpbmVkKF9fTUlOR1czMl9f
KSAmJiAoZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoV0lONjQp
IHx8IGRlZmluZWQoX1dJTjY0KSkKLSNpZmRlZiBDWUdXSU5NU1ZDCi0jICAgaW5jbHVkZSAidW5p
Y29kZS9wbGF0Zm9ybS5oIgotI2VuZGlmCi0jICAgaW5jbHVkZSAidW5pY29kZS9wd2luMzIuaCIK
LSNlbHNlCi0jICAgaW5jbHVkZSAidW5pY29kZS9wdHlwZXMuaCIgLyogcGxhdGZvcm0uaCBpcyBp
bmNsdWRlZCBpbiBwdHlwZXMuaCAqLwotI2VuZGlmCisjaW5jbHVkZSAidW5pY29kZS9wdHlwZXMu
aCIgLyogcGxhdGZvcm0uaCBpcyBpbmNsdWRlZCBpbiBwdHlwZXMuaCAqLwogCiAvKgogICogQU5T
SSBDIGhlYWRlcnM6CkBAIC01OSwxOSArNTAsNiBAQAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCiAv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLS8qIFhQX0NQTFVTUExVUyBpcyBhIGNyb3NzLXBsYXRmb3Jt
IHN5bWJvbCB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCB3aGVuICAgICAqLwotLyogdXNpbmcgQysr
LiAgSXQgc2hvdWxkIG5vdCBiZSBkZWZpbmVkIHdoZW4gY29tcGlsaW5nIHVuZGVyIEMuICAgICAg
ICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi0j
ICAgaWZuZGVmIFhQX0NQTFVTUExVUwotIyAgICAgICBkZWZpbmUgWFBfQ1BMVVNQTFVTCi0jICAg
ZW5kaWYKLSNlbHNlCi0jICAgdW5kZWYgWFBfQ1BMVVNQTFVTCi0jZW5kaWYKLQotLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCiAvKiBGb3IgQyB3cmFwcGVycywgd2UgdXNlIHRoZSBzeW1ib2wgVV9TVEFC
TEUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogVGhpcyB3b3JrcyBwcm9w
ZXJseSBpZiB0aGUgaW5jbHVkZXIgaXMgQyBvciBDKysuICAgICAgICAgICAgICAgICAgICAgICAg
ICovCiAvKiBGdW5jdGlvbnMgYXJlIGRlY2xhcmVkICAgVV9TVEFCTEUgcmV0dXJuLXR5cGUgVV9F
WFBPUlQyIGZ1bmN0aW9uLW5hbWUoKS4uLiAqLwpAQCAtOTUsNyArNzMsNyBAQAogICogQHN0YWJs
ZSBJQ1UgMi40CiAgKi8KIAotI2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVz
CiAjICAgZGVmaW5lIFVfQ0ZVTkMgZXh0ZXJuICJDIgogIyAgIGRlZmluZSBVX0NERUNMX0JFR0lO
IGV4dGVybiAiQyIgewogIyAgIGRlZmluZSBVX0NERUNMX0VORCAgIH0KQEAgLTEwNSwyMyArODMs
MjYgQEAKICMgICBkZWZpbmUgVV9DREVDTF9FTkQKICNlbmRpZgogCisjaWZuZGVmIFVfQVRUUklC
VVRFX0RFUFJFQ0FURUQKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAgKiAg
VGhpcyBpcyB1c2VkIGZvciBHQ0Mgc3BlY2lmaWMgYXR0cmlidXRlcwogICogQGludGVybmFsCiAg
Ki8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPiAzIHx8IChfX0dOVUNfXyA9
PSAzICYmIF9fR05VQ19NSU5PUl9fID49IDIpKQorI2lmIFVfR0NDX01BSk9SX01JTk9SID49IDMw
MgogIyAgICBkZWZpbmUgVV9BVFRSSUJVVEVfREVQUkVDQVRFRCBfX2F0dHJpYnV0ZV9fICgoZGVw
cmVjYXRlZCkpCiAvKioKICAqIFxkZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogICogVGhpcyBp
cyB1c2VkIGZvciBWaXN1YWwgQysrIHNwZWNpZmljIGF0dHJpYnV0ZXMgCiAgKiBAaW50ZXJuYWwK
ICAqLwotI2VsaWYgZGVmaW5lZChVX1dJTkRPV1MpICYmIGRlZmluZWQoX01TQ19WRVIpICYmIChf
TVNDX1ZFUiA+PSAxNDAwKQorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49
IDE0MDApCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVEIF9fZGVjbHNwZWMoZGVw
cmVjYXRlZCkKICNlbHNlCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAjZW5k
aWYKKyNlbmRpZgorCiAvKiogVGhpcyBpcyB1c2VkIHRvIGRlY2xhcmUgYSBmdW5jdGlvbiBhcyBh
IHB1YmxpYyBJQ1UgQyBBUEkgQHN0YWJsZSBJQ1UgMi4wKi8KICNkZWZpbmUgVV9DQVBJIFVfQ0ZV
TkMgVV9FWFBPUlQKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVjbGFyZSBhIGZ1bmN0aW9uIGFzIGEg
c3RhYmxlIHB1YmxpYyBJQ1UgQyBBUEkqLwpAQCAtMjM0LDI3ICsyMTUsNiBAQCB0eXBlZGVmIGlu
dDhfdCBVQm9vbDsKIAogLyogd2NoYXJfdC1yZWxhdGVkIGRlZmluaXRpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLS8qKgotICogXGRlZiBVX0hB
VkVfV0NIQVJfSAotICogSW5kaWNhdGVzIHdoZXRoZXIgPHdjaGFyLmg+IGlzIGF2YWlsYWJsZSAo
MSkgb3Igbm90ICgwKS4gU2V0IHRvIDEgYnkgZGVmYXVsdC4KLSAqCi0gKiBAc3RhYmxlIElDVSAy
LjAKLSAqLwotI2lmbmRlZiBVX0hBVkVfV0NIQVJfSAotIyAgIGRlZmluZSBVX0hBVkVfV0NIQVJf
SCAxCi0jZW5kaWYKLQotLyoqCi0gKiBcZGVmIFVfU0laRU9GX1dDSEFSX1QKLSAqIFVfU0laRU9G
X1dDSEFSX1Q9PXNpemVvZih3Y2hhcl90KSAoMCBtZWFucyBpdCBpcyBub3QgZGVmaW5lZCBvciBh
dXRvY29uZiBjb3VsZCBub3Qgc2V0IGl0KQotICoKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0j
aWYgVV9TSVpFT0ZfV0NIQVJfVD09MAotIyAgIHVuZGVmIFVfU0laRU9GX1dDSEFSX1QKLSMgICBk
ZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0Ci0jZW5kaWYKLQogLyoKICAqIFxkZWYgVV9XQ0hBUl9J
U19VVEYxNgogICogRGVmaW5lZCBpZiB3Y2hhcl90IHVzZXMgVVRGLTE2LgpAQCAtMjc1LDE0ICsy
MzUsMTYgQEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAjICAgICAgICAgICBkZWZpbmUgIFVfV0NI
QVJfSVNfVVRGMzIKICMgICAgICAgZW5kaWYKICMgICBlbGlmIGRlZmluZWQgX19VQ1MyX18KLSMg
ICAgICAgaWYgKF9fT1MzOTBfXyB8fCBfX09TNDAwX18pICYmIChVX1NJWkVPRl9XQ0hBUl9UPT0y
KQorIyAgICAgICBpZiAoVV9QRl9PUzM5MCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0g
VV9QRl9PUzQwMCkgJiYgKFVfU0laRU9GX1dDSEFSX1Q9PTIpCiAjICAgICAgICAgICBkZWZpbmUg
VV9XQ0hBUl9JU19VVEYxNgogIyAgICAgICBlbmRpZgotIyAgIGVsaWYgZGVmaW5lZCBfX1VDUzRf
XworIyAgIGVsaWYgZGVmaW5lZChfX1VDUzRfXykgfHwgKFVfUExBVEZPUk0gPT0gVV9QRl9PUzQw
MCAmJiBkZWZpbmVkKF9fVVRGMzJfXykpCiAjICAgICAgIGlmIChVX1NJWkVPRl9XQ0hBUl9UPT00
KQogIyAgICAgICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMzIKICMgICAgICAgZW5kaWYKLSMg
ICBlbGlmIGRlZmluZWQoVV9XSU5ET1dTKQorIyAgIGVsaWYgVV9QTEFURk9STV9JU19EQVJXSU5f
QkFTRUQgfHwgKFVfU0laRU9GX1dDSEFSX1Q9PTQgJiYgVV9QTEFURk9STV9JU19MSU5VWF9CQVNF
RCkKKyMgICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMzIKKyMgICBlbGlmIFVfUExBVEZPUk1f
SEFTX1dJTjMyX0FQSQogIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYxNgogIyAgIGVuZGlm
CiAjZW5kaWYKQEAgLTI5NCwyNCArMjU2LDI0IEBAIHR5cGVkZWYgaW50OF90IFVCb29sOwogCiAv
KioKICAqIFx2YXIgVUNoYXIKLSAqIERlZmluZSBVQ2hhciB0byBiZSB3Y2hhcl90IGlmIHRoYXQg
aXMgMTYgYml0cyB3aWRlOyBhbHdheXMgYXNzdW1lZCB0byBiZSB1bnNpZ25lZC4KLSAqIElmIHdj
aGFyX3QgaXMgbm90IDE2IGJpdHMgd2lkZSwgdGhlbiBkZWZpbmUgVUNoYXIgdG8gYmUgdWludDE2
X3Qgb3IgY2hhcjE2X3QgYmVjYXVzZSBHQ0MgPj00LjQKLSAqIGNhbiBoYW5kbGUgVVRGMTYgc3Ry
aW5nIGxpdGVyYWxzLgorICogRGVmaW5lIFVDaGFyIHRvIGJlIFVDSEFSX1RZUEUsIGlmIHRoYXQg
aXMgI2RlZmluZWQgKGZvciBleGFtcGxlLCB0byBjaGFyMTZfdCksCisgKiBvciB3Y2hhcl90IGlm
IHRoYXQgaXMgMTYgYml0cyB3aWRlOyBhbHdheXMgYXNzdW1lZCB0byBiZSB1bnNpZ25lZC4KKyAq
IElmIG5laXRoZXIgaXMgYXZhaWxhYmxlLCB0aGVuIGRlZmluZSBVQ2hhciB0byBiZSB1aW50MTZf
dC4KKyAqCiAgKiBUaGlzIG1ha2VzIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyIHBsYXRmb3JtLWRl
cGVuZGVudAogICogYnV0IGFsbG93cyBkaXJlY3Qgc3RyaW5nIHR5cGUgY29tcGF0aWJpbGl0eSB3
aXRoIHBsYXRmb3JtcyB3aXRoCiAgKiAxNi1iaXQgd2NoYXJfdCB0eXBlcy4KICAqCi0gKiBAZHJh
ZnQgSUNVIDQuNAorICogQHN0YWJsZSBJQ1UgNC40CiAgKi8KLQotLyogRGVmaW5lIFVDaGFyIHRv
IGJlIGNvbXBhdGlibGUgd2l0aCB3Y2hhcl90IGlmIHBvc3NpYmxlLiAqLwotI2lmIFVfU0laRU9G
X1dDSEFSX1Q9PTIKKyNpZiBkZWZpbmVkKFVDSEFSX1RZUEUpCisgICAgdHlwZWRlZiBVQ0hBUl9U
WVBFIFVDaGFyOworLyogTm90ICNlbGlmIFVfSEFWRV9DSEFSMTZfVCAtLSBiZWNhdXNlIHRoYXQg
aXMgdHlwZS1pbmNvbXBhdGlibGUgd2l0aCBwcmUtQysrMTEgY2FsbGVycworICAgIHR5cGVkZWYg
Y2hhcjE2X3QgVUNoYXI7ICAqLworI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVD09MgogICAgIHR5cGVk
ZWYgd2NoYXJfdCBVQ2hhcjsKLSNlbGlmIFVfR05VQ19VVEYxNl9TVFJJTkcKLSNpZiBkZWZpbmVk
IF9HQ0NfCi0gICAgdHlwZWRlZiBfX0NIQVIxNl9UWVBFX18gY2hhcjE2X3Q7Ci0jZW5kaWYKLSAg
ICB0eXBlZGVmIGNoYXIxNl90IFVDaGFyOworI2VsaWYgZGVmaW5lZChfX0NIQVIxNl9UWVBFX18p
CisgICAgdHlwZWRlZiBfX0NIQVIxNl9UWVBFX18gVUNoYXI7CiAjZWxzZQogICAgIHR5cGVkZWYg
dWludDE2X3QgVUNoYXI7CiAjZW5kaWYKQEAgLTMzNSwzOSArMjk3LDI1IEBAIHR5cGVkZWYgaW50
OF90IFVCb29sOwogICovCiB0eXBlZGVmIGludDMyX3QgVUNoYXIzMjsKIAotLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCi0vKiBVX0lOTElORSBhbmQgVV9BTElHTl9DT0RFICAgU2V0IGRlZmF1bHQgdmFs
dWVzIGlmIHRoZXNlIGFyZSBub3QgYWxyZWFkeSAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZpbmVkLiAgRGVmaW5pdGlvbnMgbm9ybWFsbHkgYXJlIGluICAgICAgICAqLwot
LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRmb3JtLmggb3IgdGhlIGNvcnJlc3Bv
bmRpbmcgZmlsZSBmb3IgICAgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl
IE9TIGluIHVzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLwotCi0jaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKLQogLyoqCi0gKiBcZGVm
IFVfQUxJR05fQ09ERQotICogVGhpcyBpcyB1c2VkIHRvIGFsaWduIGNvZGUgZnJhZ21lbnRzIHRv
IGEgc3BlY2lmaWMgYnl0ZSBib3VuZGFyeS4KLSAqIFRoaXMgaXMgdXNlZnVsIGZvciBnZXR0aW5n
IGNvbnNpc3RlbnQgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzLgotICogQGludGVybmFsCi0gKi8K
LSNpZm5kZWYgVV9BTElHTl9DT0RFCi0jICAgZGVmaW5lIFVfQUxJR05fQ09ERShuKQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCi0KLS8qKgotICogXGRlZiBVX0lO
TElORQotICogVGhpcyBpcyB1c2VkIHRvIHJlcXVlc3QgaW5saW5pbmcgb2YgYSBmdW5jdGlvbiwg
b24gcGxhdGZvcm1zIGFuZCBsYW5ndWFnZXMgd2hpY2ggc3VwcG9ydCBpdC4KKyAqIFRoaXMgdmFs
dWUgaXMgaW50ZW5kZWQgZm9yIHNlbnRpbmVsIHZhbHVlcyBmb3IgQVBJcyB0aGF0CisgKiAodGFr
ZSBvcikgcmV0dXJuIHNpbmdsZSBjb2RlIHBvaW50cyAoVUNoYXIzMikuCisgKiBJdCBpcyBvdXRz
aWRlIG9mIHRoZSBVbmljb2RlIGNvZGUgcG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCisgKiAKKyAq
IEZvciBleGFtcGxlLCBhICJkb25lIiBvciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQorICog
Y291bGQgYmUgaW5kaWNhdGVkIHdpdGggVV9TRU5USU5FTC4KKyAqCisgKiBJQ1UgQVBJcyBkZXNp
Z25lZCBiZWZvcmUgSUNVIDIuNCB1c3VhbGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25l
IgorICogdmFsdWVzLCBtb3N0bHkgMHhmZmZmLgorICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlz
dGluZ3Vpc2hlZCBmcm9tCisgKiBhY3R1YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGlu
ZyBmdW5jdGlvbnMgbGlrZQorICogQ2hhcmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmlj
b2RlU3RyaW5nOjpsZW5ndGgoKS4KKyAqCisgKiBAcmV0dXJuIC0xCisgKiBAc2VlIFVDaGFyMzIK
KyAqIEBzdGFibGUgSUNVIDIuNAogICovCi0gCi0jaWZuZGVmIFVfSU5MSU5FCi0jICAgaWZkZWYg
WFBfQ1BMVVNQTFVTCi0jICAgICAgIGRlZmluZSBVX0lOTElORSBpbmxpbmUKLSMgICBlbHNlCi0j
ICAgICAgIGRlZmluZSBVX0lOTElORQotIyAgIGVuZGlmCi0jZW5kaWYKKyNkZWZpbmUgVV9TRU5U
SU5FTCAoLTEpCiAKICNpbmNsdWRlICJ1bmljb2RlL3VyZW5hbWUuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vub3JtMi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ljdS91bmljb2RlL3Vub3JtMi5oCmluZGV4IGE1MjJiNDczNWE4ZDZhYzRlYmRh
MmRhY2IwNTI0OWRiNGEyYTJmMWMuLjcxNTJmYzEwOTQ2NmQwN2M1MGJiY2E1YzlkZjdiNzdjMTk5
N2Y5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91bm9y
bTIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW5vcm0yLmgKQEAg
LTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdo
dCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29w
eXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKQEAgLTExOSw2ICsxMTksNzYgQEAgdHlwZWRlZiBzdHJ1Y3QgVU5v
cm1hbGl6ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3QgVU5vcm1h
bGl6ZXIKICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAKIC8qKgorICogUmV0dXJucyBh
IFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkMgbm9ybWFsaXphdGlvbi4KKyAq
IFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfQ09NUE9TRSwg
cEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFu
Y2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1Ug
ZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFz
cyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICog
ICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91
dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4g
KFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBO
b3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFC
TEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZDSW5zdGFuY2Uo
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVOb3JtYWxpemVy
MiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5v
cm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfREVDT01QT1NFLCBwRXJyb3JDb2Rl
KS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBpbnN0YW5jZS4gRG8gbm90
IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJkIElDVSBlcnJvciBjb2Rl
LiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBVX1NV
Q0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAgICAgICAg
ICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVz
ZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIg
R3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVzdGVkIE5vcm1hbGl6ZXIy
LCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBjb25zdCBV
Tm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORkRJbnN0YW5jZShVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNl
IGZvciBVbmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldElu
c3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUpLgorICogUmV0
dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3QgZGVsZXRlIGl0
LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUuIEl0cyBpbnB1
dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRl
c3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgaW1t
ZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKKyAq
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3Ig
ZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIsIGlmIHN1Y2Nl
c3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVOb3JtYWxpemVy
MiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0YW5jZShVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNlIGZvciBVbmlj
b2RlIE5GS0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5V
TEwsICJuZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFu
IHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBA
cGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVl
IG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3Ig
ZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVs
eS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxz
LikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAor
ICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9F
WFBPUlQyCit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZL
Q19DYXNlZm9sZCBub3JtYWxpemF0aW9uLgorICogU2FtZSBhcyB1bm9ybTJfZ2V0SW5zdGFuY2Uo
TlVMTCwgIm5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5z
IGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZh
bHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwg
b3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlh
dGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRh
aWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1
bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICog
VV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UoVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSB3aGlj
aCB1c2VzIHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAgKiAocGFja2FnZU5hbWUvbmFtZSBzaW1p
bGFyIHRvIHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJlc19vcGVuKCkvUmVzb3VyY2VCdW5kbGUp
CiAgKiBhbmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21wb3NlcyB0ZXh0IGFjY29yZGluZyB0byB0
aGUgc3BlY2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMwLDExIEBAIHVub3JtMl9hcHBlbmQoY29u
c3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMuIEVx
dWl2YWxlbnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJpbmcoYykpCi0gKiBvbiBhIFVOT1JNMl9E
RUNPTVBPU0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBidXQgbXVjaCBmYXN0ZXIuCisgKiBHZXRz
IHRoZSBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4KKyAqIFJvdWdobHkgZXF1aXZhbGVudCB0
byBub3JtYWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2YgYworICogb24gYSBVTk9STTJfREVDT01Q
T1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11Y2ggZmFzdGVyLCBhbmQgZXhjZXB0IHRo
YXQgdGhpcyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIGFuZCBkb2VzIG5v
dCB3cml0ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5vdCBoYXZlIGEgZGVjb21wb3NpdGlvbiBt
YXBwaW5nIGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgogICogVGhpcyBmdW5jdGlvbiBpcyBpbmRl
cGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgogICogQHBhcmFtIG5vcm0y
IFVOb3JtYWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFtIGMgY29kZSBwb2ludApAQCAtMjczLDE0
ICszNDYsNzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBVTm9ybWFsaXplcjIgKm5vcm0yLAogICog
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5n
LiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiB0aGUgbm9uLW5lZ2F0
aXZlIGxlbmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndp
c2UgYSBuZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQu
NgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQ
T1JUMgogdW5vcm0yX2dldERlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24s
IGludDMyX3QgY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSByYXcgZGVjb21wb3NpdGlvbiBtYXBwaW5n
IG9mIGMuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB1bm9ybTJfZ2V0RGVjb21wb3Np
dGlvbigpIGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQorICogcmF3IGRlY29tcG9zaXRpb24gbWFw
cGluZyBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEudHh0IG9yCisgKiAoZm9yIGN1c3RvbSBk
YXRhKSBpbiB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNzZWQgYnkgdGhlIGdlbm5vcm0yIHRvb2wu
CisgKiBCeSBjb250cmFzdCwgdW5vcm0yX2dldERlY29tcG9zaXRpb24oKSByZXR1cm5zIHRoZSBw
cm9jZXNzZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBvc2VkIHZlcnNpb24gb2YgdGhpcyBtYXBw
aW5nLgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GS0MgTm9ybWFsaXplcjIgaW5z
dGFuY2UsCisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbigpIHJldHVybnMgdGhlIFVuaWNv
ZGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJvcGVydHkuCisgKgorICogV2hlbiB1c2Vk
IG9uIGEgc3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogaXQgcmV0dXJucyB0
aGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYgdGhlIERlY29tcG9zaXRpb25fVHlwZSAo
ZHQpIGlzIENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRoaXMgY2FzZSwgdGhlIHJlc3VsdCBjb250
YWlucyBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50cyAoPTEuLjQgVUNoYXJzKS4KKyAqCisg
KiBUaGlzIGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9mIHRoZSBtb2RlIG9mIHRoZSBVTm9ybWFs
aXplcjIuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0g
YyBjb2RlIHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiBTdHJpbmcgYnVmZmVyIHdoaWNo
IHdpbGwgYmUgc2V0IHRvIGMncworICogICAgICAgICAgICAgICAgICAgICAgcmF3IGRlY29tcG9z
aXRpb24gbWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgorICogQHBhcmFtIGNhcGFjaXR5IG51bWJl
ciBvZiBVQ2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBkZWNvbXBvc2l0aW9uCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11
c3QKKyAqICAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVs
c2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5
LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxz
LikKKyAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIHJhdyBkZWNvbXBv
c2l0aW9uLCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSBhIG5lZ2F0aXZlIHZhbHVlCisgKiBA
c3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordW5vcm0yX2dl
dFJhd0RlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24sIGludDMyX3Qg
Y2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lzZSBjb21wb3NpdGlvbiBvZiBhICYgYiBh
bmQgcmV0dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJlIGlzIG9uZS4KKyAqCisgKiBSZXR1cm5z
IGEgY29tcG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlmIGMgaGFzIGEgdHdvLXdheSBtYXBwaW5n
IHRvIGErYi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFsaXphdGlvbiwgdGhpcyBtZWFu
cyB0aGF0CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIHRvIGErYgorICogYW5k
IGMgZG9lcyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24gcHJvcGVydHku
CisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUg
VU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQorICog
QHBhcmFtIGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVyKSBjb2RlIHBvaW50LgorICogQHBhcmFt
IGIgQW5vdGhlciBjb2RlIHBvaW50LgorICogQHJldHVybiBUaGUgbm9uLW5lZ2F0aXZlIGNvbXBv
c2l0ZSBjb2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVnYXRpdmUgdmFs
dWUuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBVQ2hhcjMyIFVfRVhQT1JUMgor
dW5vcm0yX2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsIFVDaGFyMzIgYSwg
VUNoYXIzMiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgYy4KKyAq
IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMAorICogYnV0IGFsbCBzdGFuZGFy
ZCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmljb2RlIENhbm9uaWNhbF9Db21iaW5pbmdf
Q2xhc3MgdmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisgKiBA
cGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMncyBjb21iaW5pbmcgY2xhc3MKKyAqIEBz
dGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4X3QgVV9FWFBPUlQyCit1bm9ybTJfZ2V0
Q29tYmluaW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwgVUNoYXIzMiBjKTsKKwor
LyoqCiAgKiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6ZWQuCiAgKiBJbnRlcm5hbGx5
LCBpbiBjYXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygpIG1ldGhvZCB3b3VsZCByZXR1cm4gIm1h
eWJlIgogICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUgZm9yIHRoZSB0d28gQ09NUE9TRSBtb2Rl
cykgdGhpcyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91bnVtLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdW51bS5oCmlu
ZGV4IDExMDJiYWI1OGIzZDFiYjJlMmIyMDgyY2I1NTg5YzVkZGVmZThjYzAuLmRjZTc3MzMyZTk2
YzViOGJlNTZmYTgxMTE3ZjEzZWVmNTA5MmUzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91bnVtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lj
dS91bmljb2RlL3VudW0uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCi0qIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisqIENvcHlyaWdodCAoQykgMTk5Ny0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
CiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgogKgpAQCAt
MjAsNiArMjAsOCBAQAogI2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgogI2luY2x1ZGUgInVuaWNv
ZGUvdW1pc2MuaCIKICNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91Zm9ybWF0dGFibGUuaCIKKwogLyoqCiAgKiBcZmlsZQogICogXGJyaWVmIEMgQVBJOiBO
dW1iZXJGb3JtYXQKQEAgLTEwNyw3ICsxMDksNyBAQAogICogZm9ybWF0dGVycy4KICAqIDxQPgog
ICogWW91IGNhbiBhbHNvIGNvbnRyb2wgdGhlIGRpc3BsYXkgb2YgbnVtYmVycyB3aXRoIHN1Y2gg
ZnVuY3Rpb24gYXMKLSAqIHVudW1fZ2V0QXR0cmlidWVzKCkgYW5kIHVudW1fc2V0QXRyaWJ1dGVz
KCksIHdoaWNoIGxldCB5b3Ugc2V0IHRoZQorICogdW51bV9nZXRBdHRyaWJ1dGVzKCkgYW5kIHVu
dW1fc2V0QXR0cmlidXRlcygpLCB3aGljaCBsZXQgeW91IHNldCB0aGUKICAqIG1pbWludW0gZnJh
Y3Rpb24gZGlnaXRzLCBncm91cGluZywgZXRjLgogICogQHNlZSBVTnVtYmVyRm9ybWF0QXR0cmli
dXRlcyBmb3IgbW9yZSBkZXRhaWxzCiAgKiA8UD4KQEAgLTEzNCwxOSArMTM2LDM0IEBAIHR5cGVk
ZWYgdm9pZCogVU51bWJlckZvcm1hdDsKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3JtYXRT
dHlsZSB7CiAgICAgLyoqCi0gICAgICogRGVjaW1hbCBmb3JtYXQgZGVmaW5lZCBieSBwYXR0ZXJu
IAorICAgICAqIERlY2ltYWwgZm9ybWF0IGRlZmluZWQgYnkgYSBwYXR0ZXJuIHN0cmluZy4KICAg
ICAgKiBAc3RhYmxlIElDVSAzLjAKICAgICAgKi8KICAgICBVTlVNX1BBVFRFUk5fREVDSU1BTD0w
LAotICAgIC8qKiBEZWNpbWFsIGZvcm1hdCAqLworICAgIC8qKgorICAgICAqIERlY2ltYWwgZm9y
bWF0ICgibm9ybWFsIiBzdHlsZSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCiAg
ICAgVU5VTV9ERUNJTUFMPTEsCi0gICAgLyoqIEN1cnJlbmN5IGZvcm1hdCAqLworICAgIC8qKgor
ICAgICAqIEN1cnJlbmN5IGZvcm1hdCB3aXRoIGEgY3VycmVuY3kgc3ltYm9sLCBlLmcuLCAiJDEu
MDAiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwogICAgIFVOVU1fQ1VSUkVOQ1ks
Ci0gICAgLyoqIFBlcmNlbnQgZm9ybWF0ICovCisgICAgLyoqCisgICAgICogUGVyY2VudCBmb3Jt
YXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KICAgICBVTlVNX1BFUkNFTlQsCi0g
ICAgLyoqIFNjaWVudGlmaWMgZm9ybWF0ICovCisgICAgLyoqCisgICAgICogU2NpZW50aWZpYyBm
b3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KICAgICBVTlVNX1NDSUVOVElG
SUMsCi0gICAgLyoqIFNwZWxsb3V0IHJ1bGUtYmFzZWQgZm9ybWF0ICovCisgICAgLyoqCisgICAg
ICogU3BlbGxvdXQgcnVsZS1iYXNlZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KICAgICBVTlVNX1NQRUxMT1VULAogICAgIC8qKiAKICAgICAgKiBPcmRpbmFsIHJ1bGUt
YmFzZWQgZm9ybWF0IApAQCAtMTU5LDE4ICsxNzYsNDAgQEAgdHlwZWRlZiBlbnVtIFVOdW1iZXJG
b3JtYXRTdHlsZSB7CiAgICAgICovCiAgICAgVU5VTV9EVVJBVElPTiwKICAgICAvKiogCi0gICAg
ICogTnVtYmVyaW5nIHN5c3RlbSBydWxlLWJhc2VkIGZvcm1hdCAKKyAgICAgKiBOdW1iZXJpbmcg
c3lzdGVtIHJ1bGUtYmFzZWQgZm9ybWF0CiAgICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAgICov
CiAgICAgVU5VTV9OVU1CRVJJTkdfU1lTVEVNLAogICAgIC8qKiAKLSAgICAgKiBSdWxlLWJhc2Vk
IGZvcm1hdCBkZWZpbmVkIGJ5IHBhdHRlcm4gCisgICAgICogUnVsZS1iYXNlZCBmb3JtYXQgZGVm
aW5lZCBieSBhIHBhdHRlcm4gc3RyaW5nLgogICAgICAqIEBzdGFibGUgSUNVIDMuMAogICAgICAq
LwogICAgIFVOVU1fUEFUVEVSTl9SVUxFQkFTRUQsCi0gICAgLyoqIERlZmF1bHQgZm9ybWF0ICov
CisgICAgLyoqCisgICAgICogQ3VycmVuY3kgZm9ybWF0IHdpdGggYW4gSVNPIGN1cnJlbmN5IGNv
ZGUsIGUuZy4sICJVU0QxLjAwIi4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAg
ICBVTlVNX0NVUlJFTkNZX0lTTywKKyAgICAvKioKKyAgICAgKiBDdXJyZW5jeSBmb3JtYXQgd2l0
aCBhIHBsdXJhbGl6ZWQgY3VycmVuY3kgbmFtZSwKKyAgICAgKiBlLmcuLCAiMS4wMCBVUyBkb2xs
YXIiIGFuZCAiMy4wMCBVUyBkb2xsYXJzIi4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAg
Ki8KKyAgICBVTlVNX0NVUlJFTkNZX1BMVVJBTCwKKyAgICAvKioKKyAgICAgKiBPbmUgbW9yZSB0
aGFuIHRoZSBoaWdoZXN0IG51bWJlciBmb3JtYXQgc3R5bGUgY29uc3RhbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgVU5VTV9GT1JNQVRfU1RZTEVfQ09VTlQsCisgICAg
LyoqCisgICAgICogRGVmYXVsdCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KICAgICBVTlVNX0RFRkFVTFQgPSBVTlVNX0RFQ0lNQUwsCi0gICAgLyoqIChBbGlhcyBmb3Ig
VU5VTV9QQVRURVJOX0RFQ0lNQUwpICovCisgICAgLyoqCisgICAgICogQWxpYXMgZm9yIFVOVU1f
UEFUVEVSTl9ERUNJTUFMCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCiAgICAgVU5V
TV9JR05PUkUgPSBVTlVNX1BBVFRFUk5fREVDSU1BTAogfSBVTnVtYmVyRm9ybWF0U3R5bGU7CiAK
QEAgLTE4MywxNyArMjIyLDI0IEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0Um91bmRpbmdN
b2RlIHsKICAgICBVTlVNX1JPVU5EX0RPV04sCiAgICAgVU5VTV9ST1VORF9VUCwKICAgICAvKioK
KyAgICAgKiBIYWxmLWV2ZW4gcm91bmRpbmcKKyAgICAgKiBAc3RhYmxlLCBJQ1UgMy44CisgICAg
ICovCisgICAgVU5VTV9ST1VORF9IQUxGRVZFTiwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURf
QVBJCisgICAgLyoqCiAgICAgICogSGFsZi1ldmVuIHJvdW5kaW5nLCBtaXNzcGVsbGVkIG5hbWUK
ICAgICAgKiBAZGVwcmVjYXRlZCwgSUNVIDMuOAogICAgICAqLwotICAgIFVOVU1fRk9VTkRfSEFM
RkVWRU4sCi0gICAgVU5VTV9ST1VORF9IQUxGRE9XTiwKKyAgICBVTlVNX0ZPVU5EX0hBTEZFVkVO
ID0gVU5VTV9ST1VORF9IQUxGRVZFTiwKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJ
ICovCisgICAgVU5VTV9ST1VORF9IQUxGRE9XTiA9IFVOVU1fUk9VTkRfSEFMRkVWRU4gKyAxLAog
ICAgIFVOVU1fUk9VTkRfSEFMRlVQLAotICAgIC8qKgotICAgICAqIEhhbGYtZXZlbiByb3VuZGlu
ZwotICAgICAqIEBzdGFibGUsIElDVSAzLjgKLSAgICAgKi8KLSAgICBVTlVNX1JPVU5EX0hBTEZF
VkVOID0gVU5VTV9GT1VORF9IQUxGRVZFTgorICAgIC8qKiAKKyAgICAgICogUk9VTkRfVU5ORUNF
U1NBUlkgcmVwb3J0cyBhbiBlcnJvciBpZiBmb3JtYXR0ZWQgcmVzdWx0IGlzIG5vdCBleGFjdC4K
KyAgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICAqLworICAgIFVOVU1fUk9VTkRfVU5ORUNF
U1NBUlkKIH0gVU51bWJlckZvcm1hdFJvdW5kaW5nTW9kZTsKIAogLyoqIFRoZSBwb3NzaWJsZSBu
dW1iZXIgZm9ybWF0IHBhZCBwb3NpdGlvbnMuIApAQCAtMjA2LDYgKzI1Miw3MCBAQCB0eXBlZGVm
IGVudW0gVU51bWJlckZvcm1hdFBhZFBvc2l0aW9uIHsKICAgICBVTlVNX1BBRF9BRlRFUl9TVUZG
SVgKIH0gVU51bWJlckZvcm1hdFBhZFBvc2l0aW9uOwogCisjaWZuZGVmIFVfSElERV9EUkFGVF9B
UEkKKy8qKgorICogQ29uc3RhbnRzIGZvciBzcGVjaWZ5aW5nIHNob3J0IG9yIGxvbmcgZm9ybWF0
LgorICogQGRyYWZ0IElDVSA1MQorICovCit0eXBlZGVmIGVudW0gVU51bWJlckNvbXBhY3RTdHls
ZSB7CisgIC8qKiBAZHJhZnQgSUNVIDUxICovCisgIFVOVU1fU0hPUlQsCisgIC8qKiBAZHJhZnQg
SUNVIDUxICovCisgIFVOVU1fTE9ORworICAvKiogQGRyYWZ0IElDVSA1MSAqLworfSBVTnVtYmVy
Q29tcGFjdFN0eWxlOworI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworLyoqCisgKiBD
b25zdGFudHMgZm9yIHNwZWNpZnlpbmcgY3VycmVuY3kgc3BhY2luZworICogQHN0YWJsZSBJQ1Ug
NC44CisgKi8KK2VudW0gVUN1cnJlbmN5U3BhY2luZyB7CisgICAgLyoqIEBzdGFibGUgSUNVIDQu
OCAqLworICAgIFVOVU1fQ1VSUkVOQ1lfTUFUQ0gsCisgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAq
LworICAgIFVOVU1fQ1VSUkVOQ1lfU1VSUk9VTkRJTkdfTUFUQ0gsCisgICAgLyoqIEBzdGFibGUg
SUNVIDQuOCAqLworICAgIFVOVU1fQ1VSUkVOQ1lfSU5TRVJULAorICAgIC8qKiBAc3RhYmxlIElD
VSA0LjggKi8KKyAgICBVTlVNX0NVUlJFTkNZX1NQQUNJTkdfQ09VTlQKK307Cit0eXBlZGVmIGVu
dW0gVUN1cnJlbmN5U3BhY2luZyBVQ3VycmVuY3lTcGFjaW5nOyAvKio8IEBzdGFibGUgSUNVIDQu
OCAqLworCisKKy8qKgorICogRmllbGRQb3NpdGlvbiBhbmQgVUZpZWxkUG9zaXRpb24gc2VsZWN0
b3JzIGZvciBmb3JtYXQgZmllbGRzCisgKiBkZWZpbmVkIGJ5IE51bWJlckZvcm1hdCBhbmQgVU51
bWJlckZvcm1hdC4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK3R5cGVkZWYgZW51bSBVTnVtYmVy
Rm9ybWF0RmllbGRzIHsKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0lOVEVH
RVJfRklFTEQsCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9GUkFDVElPTl9G
SUVMRCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0RFQ0lNQUxfU0VQQVJB
VE9SX0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fRVhQT05FTlRf
U1lNQk9MX0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fRVhQT05F
TlRfU0lHTl9GSUVMRCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX0VYUE9O
RU5UX0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fR1JPVVBJTkdf
U0VQQVJBVE9SX0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fQ1VS
UkVOQ1lfRklFTEQsCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9QRVJDRU5U
X0ZJRUxELAorICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVOVU1fUEVSTUlMTF9GSUVM
RCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVTlVNX1NJR05fRklFTEQsCisgICAg
LyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVU5VTV9GSUVMRF9DT1VOVAorfSBVTnVtYmVyRm9y
bWF0RmllbGRzOworCisKIC8qKgogICogQ3JlYXRlIGFuZCByZXR1cm4gYSBuZXcgVU51bWJlckZv
cm1hdCBmb3IgZm9ybWF0dGluZyBhbmQgcGFyc2luZwogICogbnVtYmVycy4gIEEgVU51bWJlckZv
cm1hdCBtYXkgYmUgdXNlZCB0byBmb3JtYXQgbnVtYmVycyBieSBjYWxsaW5nCkBAIC0yOTEsNyAr
NDAxLDEwIEBAIHVudW1fY2xvbmUoY29uc3QgVU51bWJlckZvcm1hdCAqZm10LAogKiBUaGUgaW50
ZWdlciB3aWxsIGJlIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIFVOdW1iZXJGb3JtYXQncyBs
b2NhbGUuCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSBudW1i
ZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCi0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEg
YnVmZmVyIHRvIHJlY2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQg
QSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3Jt
YXR0ZWQgbnVtYmVyLiBJZgorKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBi
dXQgY2Fubm90IGJlIE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyog
dGhlbiB0aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FS
TklORy4gSWYgdGhlIGZvcm1hdHRlZCBudW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQg
dGhlbiB0aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAq
IEBwYXJhbSByZXN1bHRMZW5ndGggVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJh
bSBwb3MgICAgQSBwb2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRp
b24tPmZpZWxkCiAqIGlzIHJlYWQuICBPbiBvdXRwdXQsIHBvc2l0aW9uLT5iZWdpbkluZGV4IGFu
ZCBwb3NpdGlvbi0+ZW5kSW5kZXggaW5kaWNhdGUKQEAgLTMyMCw3ICs0MzMsMTAgQEAgdW51bV9m
b3JtYXQoICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICAgIGZtdCwKICogVGhlIGludDY0IHdp
bGwgYmUgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgVU51bWJlckZvcm1hdCdzIGxvY2FsZS4K
ICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0dGVyIHRvIHVzZS4KICogQHBhcmFtIG51bWJlciBUaGUg
bnVtYmVyIHRvIGZvcm1hdC4KLSogQHBhcmFtIHJlc3VsdCBBIHBvaW50ZXIgdG8gYSBidWZmZXIg
dG8gcmVjZWl2ZSB0aGUgZm9ybWF0dGVkIG51bWJlci4KKyogQHBhcmFtIHJlc3VsdCBBIHBvaW50
ZXIgdG8gYSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgTlVMTC10ZXJtaW5hdGVkIGZvcm1hdHRlZCBu
dW1iZXIuIElmCisqIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGZpdHMgaW50byBkZXN0IGJ1dCBjYW5u
b3QgYmUgTlVMTC10ZXJtaW5hdGVkIChsZW5ndGggPT0gcmVzdWx0TGVuZ3RoKQorKiB0aGVuIHRo
ZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX1NUUklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5HLiBJ
ZiB0aGUgZm9ybWF0dGVkIG51bWJlcgorKiBkb2Vzbid0IGZpdCBpbnRvIHJlc3VsdCB0aGVuIHRo
ZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUi4KICogQHBhcmFt
IHJlc3VsdExlbmd0aCBUaGUgbWF4aW11bSBzaXplIG9mIHJlc3VsdC4KICogQHBhcmFtIHBvcyAg
ICBBIHBvaW50ZXIgdG8gYSBVRmllbGRQb3NpdGlvbi4gIE9uIGlucHV0LCBwb3NpdGlvbi0+Zmll
bGQKICogaXMgcmVhZC4gIE9uIG91dHB1dCwgcG9zaXRpb24tPmJlZ2luSW5kZXggYW5kIHBvc2l0
aW9uLT5lbmRJbmRleCBpbmRpY2F0ZQpAQCAtMzQ5LDcgKzQ2NSwxMCBAQCB1bnVtX2Zvcm1hdElu
dDY0KGNvbnN0IFVOdW1iZXJGb3JtYXQgKmZtdCwKICogVGhlIGRvdWJsZSB3aWxsIGJlIGZvcm1h
dHRlZCBhY2NvcmRpbmcgdG8gdGhlIFVOdW1iZXJGb3JtYXQncyBsb2NhbGUuCiAqIEBwYXJhbSBm
bXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBm
b3JtYXQuCi0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUg
dGhlIGZvcm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVm
ZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3JtYXR0ZWQgbnVtYmVyLiBJZgor
KiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fubm90IGJlIE5VTEwt
dGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyogdGhlbiB0aGUgZXJyb3IgY29k
ZSBpcyBzZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORy4gSWYgdGhlIGZvcm1h
dHRlZCBudW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQgdGhlbiB0aGUgZXJyb3IgY29k
ZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAqIEBwYXJhbSByZXN1bHRMZW5n
dGggVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJhbSBwb3MgICAgQSBwb2ludGVy
IHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRpb24tPmZpZWxkCiAqIGlzIHJl
YWQuICBPbiBvdXRwdXQsIHBvc2l0aW9uLT5iZWdpbkluZGV4IGFuZCBwb3NpdGlvbi0+ZW5kSW5k
ZXggaW5kaWNhdGUKQEAgLTM4Miw3ICs1MDEsMTAgQEAgdW51bV9mb3JtYXREb3VibGUoICAgIGNv
bnN0ICAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0
byB1c2UuCiAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCiAqIEBwYXJhbSBs
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgbnVtYmVyLCBvciAtMSBpZiB0aGUgaW5wdXQg
aXMgbnVsLXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVy
IHRvIHJlY2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIuCisqIEBwYXJhbSByZXN1bHQgQSBwb2lu
dGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWluYXRlZCBmb3JtYXR0ZWQg
bnVtYmVyLiBJZgorKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQgY2Fu
bm90IGJlIE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyogdGhlbiB0
aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORy4g
SWYgdGhlIGZvcm1hdHRlZCBudW1iZXIKKyogZG9lc24ndCBmaXQgaW50byByZXN1bHQgdGhlbiB0
aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IuCiAqIEBwYXJh
bSByZXN1bHRMZW5ndGggVGhlIG1heGltdW0gc2l6ZSBvZiByZXN1bHQuCiAqIEBwYXJhbSBwb3Mg
ICAgQSBwb2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24uICBPbiBpbnB1dCwgcG9zaXRpb24tPmZp
ZWxkCiAqICAgICAgICAgICAgICAgaXMgcmVhZC4gIE9uIG91dHB1dCwgcG9zaXRpb24tPmJlZ2lu
SW5kZXggYW5kIHBvc2l0aW9uLT5lbmRJbmRleCBpbmRpY2F0ZQpAQCAtNDEzLDcgKzUzNSwxMCBA
QCB1bnVtX2Zvcm1hdERlY2ltYWwoICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAg
KiBAcGFyYW0gZm10IHRoZSBmb3JtYXR0ZXIgdG8gdXNlCiAgKiBAcGFyYW0gbnVtYmVyIHRoZSBu
dW1iZXIgdG8gZm9ybWF0CiAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIDMtbGV0dGVyIG51bGwtdGVy
bWluYXRlZCBJU08gNDIxNyBjdXJyZW5jeSBjb2RlCi0gKiBAcGFyYW0gcmVzdWx0IGEgcG9pbnRl
ciB0byB0aGUgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGZvcm1hdHRlZCBudW1iZXIKKyAqIEBwYXJh
bSByZXN1bHQgQSBwb2ludGVyIHRvIGEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIE5VTEwtdGVybWlu
YXRlZCBmb3JtYXR0ZWQgbnVtYmVyLiBJZgorICogdGhlIGZvcm1hdHRlZCBudW1iZXIgZml0cyBp
bnRvIGRlc3QgYnV0IGNhbm5vdCBiZSBOVUxMLXRlcm1pbmF0ZWQgKGxlbmd0aCA9PSByZXN1bHRM
ZW5ndGgpCisgKiB0aGVuIHRoZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX1NUUklOR19OT1RfVEVS
TUlOQVRFRF9XQVJOSU5HLiBJZiB0aGUgZm9ybWF0dGVkIG51bWJlcgorICogZG9lc24ndCBmaXQg
aW50byByZXN1bHQgdGhlbiB0aGUgZXJyb3IgY29kZSBpcyBzZXQgdG8gVV9CVUZGRVJfT1ZFUkZM
T1dfRVJST1IuCiAgKiBAcGFyYW0gcmVzdWx0TGVuZ3RoIHRoZSBtYXhpbXVtIG51bWJlciBvZiBV
Q2hhcnMgdG8gd3JpdGUgdG8gcmVzdWx0CiAgKiBAcGFyYW0gcG9zIGEgcG9pbnRlciB0byBhIFVG
aWVsZFBvc2l0aW9uLiAgT24gaW5wdXQsCiAgKiBwb3NpdGlvbi0+ZmllbGQgaXMgcmVhZC4gIE9u
IG91dHB1dCwgcG9zaXRpb24tPmJlZ2luSW5kZXggYW5kCkBAIC00MjgsMjMgKzU1Myw1MyBAQCB1
bnVtX2Zvcm1hdERlY2ltYWwoICAgIGNvbnN0ICAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAgKiBA
c2VlIFVGaWVsZFBvc2l0aW9uCiAgKiBAc3RhYmxlIElDVSAzLjAKICAqLwotVV9TVEFCTEUgaW50
MzJfdCBVX0VYUE9SVDIgCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdW51bV9mb3JtYXRE
b3VibGVDdXJyZW5jeShjb25zdCBVTnVtYmVyRm9ybWF0KiBmbXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvdWJsZSBudW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFy
KiBjdXJyZW5jeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIqIHJlc3VsdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZXN1bHRMZW5ndGgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIFVGaWVsZFBvc2l0aW9uKiBwb3MsIC8qIGlnbm9yZWQgaWYgMCAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICBVRmllbGRQb3NpdGlvbiogcG9zLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlKiBzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9E
UkFGVF9BUEkKKy8qKgorICogRm9ybWF0IGEgVUZvcm1hdHRhYmxlIGludG8gYSBzdHJpbmcuCisg
KiBAcGFyYW0gZm10IHRoZSBmb3JtYXR0ZXIgdG8gdXNlCisgKiBAcGFyYW0gbnVtYmVyIHRoZSBu
dW1iZXIgdG8gZm9ybWF0LCBhcyBhIFVGb3JtYXR0YWJsZQorICogQHBhcmFtIHJlc3VsdCBBIHBv
aW50ZXIgdG8gYSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgTlVMTC10ZXJtaW5hdGVkIGZvcm1hdHRl
ZCBudW1iZXIuIElmCisgKiB0aGUgZm9ybWF0dGVkIG51bWJlciBmaXRzIGludG8gZGVzdCBidXQg
Y2Fubm90IGJlIE5VTEwtdGVybWluYXRlZCAobGVuZ3RoID09IHJlc3VsdExlbmd0aCkKKyAqIHRo
ZW4gdGhlIGVycm9yIGNvZGUgaXMgc2V0IHRvIFVfU1RSSU5HX05PVF9URVJNSU5BVEVEX1dBUk5J
TkcuIElmIHRoZSBmb3JtYXR0ZWQgbnVtYmVyCisgKiBkb2Vzbid0IGZpdCBpbnRvIHJlc3VsdCB0
aGVuIHRoZSBlcnJvciBjb2RlIGlzIHNldCB0byBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUi4KKyAq
IEBwYXJhbSByZXN1bHRMZW5ndGggdGhlIG1heGltdW0gbnVtYmVyIG9mIFVDaGFycyB0byB3cml0
ZSB0byByZXN1bHQKKyAqIEBwYXJhbSBwb3MgYSBwb2ludGVyIHRvIGEgVUZpZWxkUG9zaXRpb24u
ICBPbiBpbnB1dCwKKyAqIHBvc2l0aW9uLT5maWVsZCBpcyByZWFkLiAgT24gb3V0cHV0LCBwb3Np
dGlvbi0+YmVnaW5JbmRleCBhbmQKKyAqIHBvc2l0aW9uLT5lbmRJbmRleCBpbmRpY2F0ZSB0aGUg
YmVnaW5uaW5nIGFuZCBlbmRpbmcgaW5kaWNlcyBvZgorICogZmllbGQgbnVtYmVyIHBvc2l0aW9u
LT5maWVsZCwgaWYgc3VjaCBhIGZpZWxkIGV4aXN0cy4gIFRoaXMKKyAqIHBhcmFtZXRlciBtYXkg
YmUgTlVMTCwgaW4gd2hpY2ggY2FzZSBpdCBpcyBpZ25vcmVkLgorICogQHBhcmFtIHN0YXR1cyBh
IHBvaW50ZXIgdG8gYW4gaW5wdXQtb3V0cHV0IFVFcnJvckNvZGUKKyAqIEByZXR1cm4gdGhlIHRv
dGFsIGJ1ZmZlciBzaXplIG5lZWRlZDsgaWYgZ3JlYXRlciB0aGFuIHJlc3VsdExlbmd0aCwKKyAq
IHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4gV2lsbCByZXR1cm4gMCBvbiBlcnJvci4KKyAqIEBz
ZWUgdW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlCisgKiBAZHJhZnQgSUNVIDUyCisgKi8KK1VfRFJB
RlQgaW50MzJfdCBVX0VYUE9SVDIKK3VudW1fZm9ybWF0VUZvcm1hdHRhYmxlKGNvbnN0IFVOdW1i
ZXJGb3JtYXQqIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVGb3JtYXR0YWJs
ZSAqbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgKnJlc3VsdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgcmVzdWx0TGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgVUZpZWxkUG9zaXRpb24gKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKwogLyoq
CiAqIFBhcnNlIGEgc3RyaW5nIGludG8gYW4gaW50ZWdlciB1c2luZyBhIFVOdW1iZXJGb3JtYXQu
CiAqIFRoZSBzdHJpbmcgd2lsbCBiZSBwYXJzZWQgYWNjb3JkaW5nIHRvIHRoZSBVTnVtYmVyRm9y
bWF0J3MgbG9jYWxlLgogKiBAcGFyYW0gZm10IFRoZSBmb3JtYXR0ZXIgdG8gdXNlLgogKiBAcGFy
YW0gdGV4dCBUaGUgdGV4dCB0byBwYXJzZS4KICogQHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0
aCBvZiB0ZXh0LCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSBwYXJzZVBvcyBJ
ZiBub3QgMCwgb24gaW5wdXQgYSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUg
b2Zmc2V0IGF0IHdoaWNoCi0qIHRvIGJlZ2luIHBhcnNpbmcuICBJZiBub3QgMCwgb24gb3V0cHV0
IHRoZSBvZmZzZXQgYXQgd2hpY2ggcGFyc2luZyBlbmRlZC4KKyogQHBhcmFtIHBhcnNlUG9zIElm
IG5vdCBOVUxMLCBvbiBpbnB1dCBhIHBvaW50ZXIgdG8gYW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRo
ZSBvZmZzZXQgYXQgd2hpY2gKKyogdG8gYmVnaW4gcGFyc2luZy4gIElmIG5vdCBOVUxMLCBvbiBv
dXRwdXQgdGhlIG9mZnNldCBhdCB3aGljaCBwYXJzaW5nIGVuZGVkLgogKiBAcGFyYW0gc3RhdHVz
IEEgcG9pbnRlciB0byBhbiBVRXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycwogKiBAcmV0
dXJuIFRoZSB2YWx1ZSBvZiB0aGUgcGFyc2VkIGludGVnZXIKICogQHNlZSB1bnVtX3BhcnNlSW50
NjQKQEAgLTQ2Nyw4ICs2MjIsOCBAQCB1bnVtX3BhcnNlKCAgICBjb25zdCAgIFVOdW1iZXJGb3Jt
YXQqICBmbXQsCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdHRlciB0byB1c2UuCiAqIEBwYXJhbSB0
ZXh0IFRoZSB0ZXh0IHRvIHBhcnNlLgogKiBAcGFyYW0gdGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9m
IHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KLSogQHBhcmFtIHBhcnNlUG9zIElmIG5v
dCAwLCBvbiBpbnB1dCBhIHBvaW50ZXIgdG8gYW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBvZmZz
ZXQgYXQgd2hpY2gKLSogdG8gYmVnaW4gcGFyc2luZy4gIElmIG5vdCAwLCBvbiBvdXRwdXQgdGhl
IG9mZnNldCBhdCB3aGljaCBwYXJzaW5nIGVuZGVkLgorKiBAcGFyYW0gcGFyc2VQb3MgSWYgbm90
IE5VTEwsIG9uIGlucHV0IGEgcG9pbnRlciB0byBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIG9m
ZnNldCBhdCB3aGljaAorKiB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IE5VTEwsIG9uIG91dHB1
dCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCiAqIEBwYXJhbSBzdGF0dXMgQSBw
b2ludGVyIHRvIGFuIFVFcnJvckNvZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzCiAqIEByZXR1cm4g
VGhlIHZhbHVlIG9mIHRoZSBwYXJzZWQgaW50ZWdlcgogKiBAc2VlIHVudW1fcGFyc2UKQEAgLTQ5
MSw4ICs2NDYsOCBAQCB1bnVtX3BhcnNlSW50NjQoY29uc3QgVU51bWJlckZvcm1hdCogIGZtdCwK
ICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0dGVyIHRvIHVzZS4KICogQHBhcmFtIHRleHQgVGhlIHRl
eHQgdG8gcGFyc2UuCiAqIEBwYXJhbSB0ZXh0TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGV4dCwgb3Ig
LTEgaWYgbnVsbC10ZXJtaW5hdGVkLgotKiBAcGFyYW0gcGFyc2VQb3MgSWYgbm90IDAsIG9uIGlu
cHV0IGEgcG9pbnRlciB0byBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIG9mZnNldCBhdCB3aGlj
aAotKiB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IDAsIG9uIG91dHB1dCB0aGUgb2Zmc2V0IGF0
IHdoaWNoIHBhcnNpbmcgZW5kZWQuCisqIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgTlVMTCwgb24g
aW5wdXQgYSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdo
aWNoCisqIHRvIGJlZ2luIHBhcnNpbmcuICBJZiBub3QgTlVMTCwgb24gb3V0cHV0IHRoZSBvZmZz
ZXQgYXQgd2hpY2ggcGFyc2luZyBlbmRlZC4KICogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8g
YW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMKICogQHJldHVybiBUaGUgdmFsdWUg
b2YgdGhlIHBhcnNlZCBkb3VibGUKICogQHNlZSB1bnVtX3BhcnNlCkBAIC01MTksOCArNjc0LDgg
QEAgdW51bV9wYXJzZURvdWJsZSggICAgY29uc3QgICBVTnVtYmVyRm9ybWF0KiAgZm10LAogKiBA
cGFyYW0gZm10IFRoZSBmb3JtYXR0ZXIgdG8gdXNlLgogKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0
byBwYXJzZS4KICogQHBhcmFtIHRleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0ZXh0LCBvciAtMSBp
ZiBudWxsLXRlcm1pbmF0ZWQuCi0qIEBwYXJhbSBwYXJzZVBvcyBJZiBub3QgMCwgb24gaW5wdXQg
YSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgb2Zmc2V0IGF0IHdoaWNoCi0q
ICAgICAgICAgICAgICAgICB0byBiZWdpbiBwYXJzaW5nLiAgSWYgbm90IDAsIG9uIG91dHB1dCB0
aGUgb2Zmc2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCisqIEBwYXJhbSBwYXJzZVBvcyBJZiBu
b3QgTlVMTCwgb24gaW5wdXQgYSBwb2ludGVyIHRvIGFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUg
b2Zmc2V0IGF0IHdoaWNoCisqICAgICAgICAgICAgICAgICB0byBiZWdpbiBwYXJzaW5nLiAgSWYg
bm90IE5VTEwsIG9uIG91dHB1dCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHBhcnNpbmcgZW5kZWQuCiAq
IEBwYXJhbSBvdXRCdWYgQSAoY2hhciAqKSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgcGFyc2VkIG51
bWJlciBhcyBhIHN0cmluZy4gIFRoZSBvdXRwdXQgc3RyaW5nCiAqICAgICAgICAgICAgICAgd2ls
bCBiZSBudWwtdGVybWluYXRlZCBpZiB0aGVyZSBpcyBzdWZmaWNpZW50IHNwYWNlLgogKiBAcGFy
YW0gb3V0QnVmTGVuZ3RoIFRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyLiAgTWF5IGJlIHpl
cm8sIGluIHdoaWNoIGNhc2UKQEAgLTU1Miw3ICs3MDcsNyBAQCB1bnVtX3BhcnNlRGVjaW1hbChj
b25zdCAgIFVOdW1iZXJGb3JtYXQqICBmbXQsCiAgKiBAcGFyYW0gdGV4dExlbmd0aCB0aGUgbGVu
Z3RoIG9mIHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZAogICogQHBhcmFtIHBhcnNlUG9z
IGEgcG9pbnRlciB0byBhbiBvZmZzZXQgaW5kZXggaW50byB0ZXh0IGF0IHdoaWNoIHRvCiAgKiBi
ZWdpbiBwYXJzaW5nLiBPbiBvdXRwdXQsICpwYXJzZVBvcyB3aWxsIHBvaW50IGFmdGVyIHRoZSBs
YXN0Ci0gKiBwYXJzZWQgY2hhcmFjdGVyLiAgVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIDAsIGluIHdo
aWNoIGNhc2UgcGFyc2luZworICogcGFyc2VkIGNoYXJhY3Rlci4gIFRoaXMgcGFyYW1ldGVyIG1h
eSBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIHBhcnNpbmcKICAqIGJlZ2lucyBhdCBvZmZzZXQgMC4K
ICAqIEBwYXJhbSBjdXJyZW5jeSBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byByZWNlaXZlIHRo
ZSBwYXJzZWQgbnVsbC0KICAqIHRlcm1pbmF0ZWQgY3VycmVuY3kuICBUaGlzIGJ1ZmZlciBtdXN0
IGhhdmUgYSBjYXBhY2l0eSBvZiBhdCBsZWFzdApAQCAtNTcxLDkgKzcyNiwzNyBAQCB1bnVtX3Bh
cnNlRG91YmxlQ3VycmVuY3koY29uc3QgVU51bWJlckZvcm1hdCogZm10LAogICAgICAgICAgICAg
ICAgICAgICAgICAgIFVDaGFyKiBjdXJyZW5jeSwKICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlKiBzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8qKgorICog
UGFyc2UgYSBVQ2hhciBzdHJpbmcgaW50byBhIFVGb3JtYXR0YWJsZS4KKyAqIEV4YW1wbGUgY29k
ZToKKyAqIFxzbmlwcGV0IHRlc3QvY2ludGx0c3QvY251bXRzdC5jIHVudW1fcGFyc2VUb1VGb3Jt
YXR0YWJsZQorICogQHBhcmFtIGZtdCB0aGUgZm9ybWF0dGVyIHRvIHVzZQorICogQHBhcmFtIHJl
c3VsdCB0aGUgVUZvcm1hdHRhYmxlIHRvIGhvbGQgdGhlIHJlc3VsdC4gSWYgTlVMTCwgYSBuZXcg
VUZvcm1hdHRhYmxlIHdpbGwgYmUgYWxsb2NhdGVkICh3aGljaCB0aGUgY2FsbGVyIG11c3QgY2xv
c2Ugd2l0aCB1Zm10X2Nsb3NlKS4KKyAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIHBhcnNlCisg
KiBAcGFyYW0gdGV4dExlbmd0aCB0aGUgbGVuZ3RoIG9mIHRleHQsIG9yIC0xIGlmIG51bGwtdGVy
bWluYXRlZAorICogQHBhcmFtIHBhcnNlUG9zIGEgcG9pbnRlciB0byBhbiBvZmZzZXQgaW5kZXgg
aW50byB0ZXh0IGF0IHdoaWNoIHRvCisgKiBiZWdpbiBwYXJzaW5nLiBPbiBvdXRwdXQsICpwYXJz
ZVBvcyB3aWxsIHBvaW50IGFmdGVyIHRoZSBsYXN0CisgKiBwYXJzZWQgY2hhcmFjdGVyLiAgVGhp
cyBwYXJhbWV0ZXIgbWF5IGJlIE5VTEwgaW4gd2hpY2ggY2FzZSBwYXJzaW5nCisgKiBiZWdpbnMg
YXQgb2Zmc2V0IDAuCisgKiBAcGFyYW0gc3RhdHVzIGEgcG9pbnRlciB0byBhbiBpbnB1dC1vdXRw
dXQgVUVycm9yQ29kZQorICogQHJldHVybiB0aGUgVUZvcm1hdHRhYmxlLiAgV2lsbCBiZSA9PXJl
c3VsdCB1bmxlc3MgTlVMTCB3YXMgcGFzc2VkIGluIGZvciByZXN1bHQsIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbCBiZSB0aGUgbmV3bHkgb3BlbmVkIFVGb3JtYXR0YWJsZS4KKyAqIEBzZWUgdWZtdF9n
ZXRUeXBlCisgKiBAc2VlIHVmbXRfY2xvc2UKKyAqIEBkcmFmdCBJQ1UgNTIKKyAqLworVV9EUkFG
VCBVRm9ybWF0dGFibGUqIFVfRVhQT1JUMgordW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlKGNvbnN0
IFVOdW1iZXJGb3JtYXQqIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRm9ybWF0dGFi
bGUgKnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogdGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCogcGFyc2VQb3MsIC8qIDAgPSBzdGFydCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUqIHN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElE
RV9EUkFGVF9BUEkgKi8KKwogLyoqCiAgKiBTZXQgdGhlIHBhdHRlcm4gdXNlZCBieSBhIFVOdW1i
ZXJGb3JtYXQuICBUaGlzIGNhbiBvbmx5IGJlIHVzZWQKLSAqIG9uIGEgRGVjaW1hbEZvcm1hdCwg
b3RoZXIgZm9ybWF0cyByZXR1cm4gVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCisgKiBvbiBhIERl
Y2ltYWxGb3JtYXQsIG90aGVyIGZvcm1hdHMgcmV0dXJuIFVfVU5TVVBQT1JURURfRVJST1IKICAq
IGluIHRoZSBzdGF0dXMuCiAgKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXR0ZXIgdG8gc2V0Lgog
ICogQHBhcmFtIGxvY2FsaXplZCBUUlVFIGlmIHRoZSBwYXR0ZXJuIGlzIGxvY2FsaXplZCwgRkFM
U0Ugb3RoZXJ3aXNlLgpAQCAtNjIxLDYgKzgwNCwyMCBAQCB1bnVtX2dldEF2YWlsYWJsZShpbnQz
Ml90IGxvY2FsZUluZGV4KTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAogdW51bV9jb3Vu
dEF2YWlsYWJsZSh2b2lkKTsKIAorI2lmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisvKioK
KyAqIEBpbnRlcm5hbAorICovCit0eXBlZGVmIGVudW0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZVZh
bHVlIHsKKyAgLyoqIEBpbnRlcm5hbCAqLworICBVTlVNX05PID0gMCwKKyAgLyoqIEBpbnRlcm5h
bCAqLworICBVTlVNX1lFUyA9IDEsCisgIC8qKiBAaW50ZXJuYWwgKi8KKyAgVU5VTV9NQVlCRSA9
IDIKK30gVU51bWJlckZvcm1hdEF0dHJpYnV0ZVZhbHVlOworI2VuZGlmCisKIC8qKiBUaGUgcG9z
c2libGUgVU51bWJlckZvcm1hdCBudW1lcmljIGF0dHJpYnV0ZXMgQHN0YWJsZSBJQ1UgMi4wICov
CiB0eXBlZGVmIGVudW0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZSB7CiAgIC8qKiBQYXJzZSBpbnRl
Z2VycyBvbmx5ICovCkBAIC02NjcsNyArODY0LDU3IEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9y
bWF0QXR0cmlidXRlIHsKICAgLyoqIExlbmllbnQgcGFyc2UgbW9kZSB1c2VkIGJ5IHJ1bGUtYmFz
ZWQgZm9ybWF0cy4KICAgICogQHN0YWJsZSBJQ1UgMy4wCiAgICAqLwotICBVTlVNX0xFTklFTlRf
UEFSU0UKKyAgVU5VTV9MRU5JRU5UX1BBUlNFLAorI2lmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElO
UFVUCisgIC8qKiBDb25zdW1lIGFsbCBpbnB1dC4gKG1heSB1c2UgZmFzdHBhdGgpLiBTZXQgdG8g
VU5VTV9ZRVMgKHJlcXVpcmUgZmFzdHBhdGgpLCBVTlVNX05PIChza2lwIGZhc3RwYXRoKSwgb3Ig
VU5VTV9NQVlCRSAoaGV1cmlzdGljKS4KKyAgICogVGhpcyBpcyBhbiBpbnRlcm5hbCBJQ1UgQVBJ
LiBEbyBub3QgdXNlLgorICAgKiBAaW50ZXJuYWwKKyAgICovCisgIFVOVU1fUEFSU0VfQUxMX0lO
UFVUID0gVU5VTV9MRU5JRU5UX1BBUlNFICsgMSwKKyNlbmRpZgorI2lmbmRlZiBVX0hJREVfRFJB
RlRfQVBJCisgIC8qKiAKKyAgICAqIFNjYWxlLCB3aGljaCBhZGp1c3RzIHRoZSBwb3NpdGlvbiBv
ZiB0aGUKKyAgICAqIGRlY2ltYWwgcG9pbnQgd2hlbiBmb3JtYXR0aW5nLiAgQW1vdW50cyB3aWxs
IGJlIG11bHRpcGxpZWQgYnkgMTAgXiAoc2NhbGUpCisgICAgKiBiZWZvcmUgdGhleSBhcmUgZm9y
bWF0dGVkLiAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzY2FsZSBpcyAwICggbm8gYWRqdXN0
bWVudCApLgorICAgICoKKyAgICAqIDxwPkV4YW1wbGU6IHNldHRpbmcgdGhlIHNjYWxlIHRvIDMs
IDEyMyBmb3JtYXRzIGFzICIxMjMsMDAwIgorICAgICogPHA+RXhhbXBsZTogc2V0dGluZyB0aGUg
c2NhbGUgdG8gLTQsIDEyMyBmb3JtYXRzIGFzICIwLjAxMjMiCisgICAgKgorICAgKiBAZHJhZnQg
SUNVIDUxICovCisgIFVOVU1fU0NBTEUgPSBVTlVNX0xFTklFTlRfUEFSU0UgKyAyLAorI2VuZGlm
IC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisg
IC8qKiBDb3VudCBvZiAicmVndWxhciIgbnVtZXJpYyBhdHRyaWJ1dGVzLgorICAgKiBAaW50ZXJu
YWwgKi8KKyAgVU5VTV9OVU1FUklDX0FUVFJJQlVURV9DT1VOVCA9IFVOVU1fTEVOSUVOVF9QQVJT
RSArIDMsCisKKyAgLyoqIE9uZSBiZWxvdyB0aGUgZmlyc3QgYml0ZmllbGQtYm9vbGVhbiBpdGVt
LgorICAgKiBBbGwgaXRlbXMgYWZ0ZXIgdGhpcyBvbmUgYXJlIHN0b3JlZCBpbiBib29sZWFuIGZv
cm0uCisgICAqIEBpbnRlcm5hbCAqLworICBVTlVNX01BWF9OT05CT09MRUFOX0FUVFJJQlVURSA9
IDB4MEZGRiwKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgIC8qKiBJZiAx
LCBzcGVjaWZpZXMgdGhhdCBpZiBzZXR0aW5nIHRoZSAibWF4IGludGVnZXIgZGlnaXRzIiBhdHRy
aWJ1dGUgd291bGQgdHJ1bmNhdGUgYSB2YWx1ZSwgc2V0IGFuIGVycm9yIHN0YXR1cyByYXRoZXIg
dGhhbiBzaWxlbnRseSB0cnVuY2F0aW5nLgorICAgKiBGb3IgZXhhbXBsZSwgIGZvcm1hdHRpbmcg
dGhlIHZhbHVlIDEyMzQgd2l0aCA0IG1heCBpbnQgZGlnaXRzIHdvdWxkIHN1Y2NlZWQsIGJ1dCBm
b3JtYXR0aW5nIDEyMzQ1IHdvdWxkIGZhaWwuIFRoZXJlIGlzIG5vIGVmZmVjdCBvbiBwYXJzaW5n
LgorICAgKiBEZWZhdWx0OiAwIChub3Qgc2V0KQorICAgKiBAc3RhYmxlIElDVSA1MAorICAgKi8K
KyAgVU5VTV9GT1JNQVRfRkFJTF9JRl9NT1JFX1RIQU5fTUFYX0RJR0lUUyA9IDB4MTAwMCwKKyAg
LyoqIAorICAgKiBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gMSwgc3BlY2lmaWVzIHRoYXQs
IGlmIHRoZSBwYXR0ZXJuIGRvZXNuJ3QgY29udGFpbiBhbiBleHBvbmVudCwgdGhlIGV4cG9uZW50
IHdpbGwgbm90IGJlIHBhcnNlZC4gSWYgdGhlIHBhdHRlcm4gZG9lcyBjb250YWluIGFuIGV4cG9u
ZW50LCB0aGlzIGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0LgorICAgKiBIYXMgbm8gZWZmZWN0IG9u
IGZvcm1hdHRpbmcuCisgICAqIERlZmF1bHQ6IDAgKHVuc2V0KQorICAgKiBAc3RhYmxlIElDVSA1
MAorICAgKi8KKyAgVU5VTV9QQVJTRV9OT19FWFBPTkVOVCwKKworI2lmbmRlZiBVX0hJREVfSU5U
RVJOQUxfQVBJCisgIC8qKiBMaW1pdCBvZiBib29sZWFuIGF0dHJpYnV0ZXMuCisgICAqIEBpbnRl
cm5hbCAqLworICBVTlVNX0xJTUlUX0JPT0xFQU5fQVRUUklCVVRFCisjZW5kaWYgIC8qIFVfSElE
RV9JTlRFUk5BTF9BUEkgKi8KIH0gVU51bWJlckZvcm1hdEF0dHJpYnV0ZTsKIAogLyoqCkBAIC02
NzcsNyArOTI0LDggQEAgdHlwZWRlZiBlbnVtIFVOdW1iZXJGb3JtYXRBdHRyaWJ1dGUgewogKiBA
cGFyYW0gYXR0ciBUaGUgYXR0cmlidXRlIHRvIHF1ZXJ5OyBvbmUgb2YgVU5VTV9QQVJTRV9JTlRf
T05MWSwgVU5VTV9HUk9VUElOR19VU0VELAogKiBVTlVNX0RFQ0lNQUxfQUxXQVlTX1NIT1dOLCBV
TlVNX01BWF9JTlRFR0VSX0RJR0lUUywgVU5VTV9NSU5fSU5URUdFUl9ESUdJVFMsIFVOVU1fSU5U
RUdFUl9ESUdJVFMsCiAqIFVOVU1fTUFYX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9NSU5fRlJBQ1RJ
T05fRElHSVRTLCBVTlVNX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9NVUxUSVBMSUVSLAotKiBVTlVN
X0dST1VQSU5HX1NJWkUsIFVOVU1fUk9VTkRJTkdfTU9ERSwgVU5VTV9GT1JNQVRfV0lEVEgsIFVO
VU1fUEFERElOR19QT1NJVElPTiwgVU5VTV9TRUNPTkRBUllfR1JPVVBJTkdfU0laRS4KKyogVU5V
TV9HUk9VUElOR19TSVpFLCBVTlVNX1JPVU5ESU5HX01PREUsIFVOVU1fRk9STUFUX1dJRFRILCBV
TlVNX1BBRERJTkdfUE9TSVRJT04sIFVOVU1fU0VDT05EQVJZX0dST1VQSU5HX1NJWkUsCisqIFVO
VU1fU0NBTEUuCiAqIEByZXR1cm4gVGhlIHZhbHVlIG9mIGF0dHIuCiAqIEBzZWUgdW51bV9zZXRB
dHRyaWJ1dGUKICogQHNlZSB1bnVtX2dldERvdWJsZUF0dHJpYnV0ZQpAQCAtNzAwLDcgKzk0OCw3
IEBAIHVudW1fZ2V0QXR0cmlidXRlKGNvbnN0IFVOdW1iZXJGb3JtYXQqICAgICAgICAgIGZtdCwK
ICogVU5VTV9ERUNJTUFMX0FMV0FZU19TSE9XTiwgVU5VTV9NQVhfSU5URUdFUl9ESUdJVFMsIFVO
VU1fTUlOX0lOVEVHRVJfRElHSVRTLCBVTlVNX0lOVEVHRVJfRElHSVRTLAogKiBVTlVNX01BWF9G
UkFDVElPTl9ESUdJVFMsIFVOVU1fTUlOX0ZSQUNUSU9OX0RJR0lUUywgVU5VTV9GUkFDVElPTl9E
SUdJVFMsIFVOVU1fTVVMVElQTElFUiwKICogVU5VTV9HUk9VUElOR19TSVpFLCBVTlVNX1JPVU5E
SU5HX01PREUsIFVOVU1fRk9STUFUX1dJRFRILCBVTlVNX1BBRERJTkdfUE9TSVRJT04sIFVOVU1f
U0VDT05EQVJZX0dST1VQSU5HX1NJWkUsCi0qIG9yIFVOVU1fTEVOSUVOVF9QQVJTRS4KKyogVU5V
TV9MRU5JRU5UX1BBUlNFLCBvciBVTlVNX1NDQUxFLgogKiBAcGFyYW0gbmV3VmFsdWUgVGhlIG5l
dyB2YWx1ZSBvZiBhdHRyLgogKiBAc2VlIHVudW1fZ2V0QXR0cmlidXRlCiAqIEBzZWUgdW51bV9n
ZXREb3VibGVBdHRyaWJ1dGUKQEAgLTc4Myw3ICsxMDMxLDcgQEAgdHlwZWRlZiBlbnVtIFVOdW1i
ZXJGb3JtYXRUZXh0QXR0cmlidXRlIHsKIC8qKgogKiBHZXQgYSB0ZXh0IGF0dHJpYnV0ZSBhc3Nv
Y2lhdGVkIHdpdGggYSBVTnVtYmVyRm9ybWF0LgogKiBBbiBleGFtcGxlIG9mIGEgdGV4dCBhdHRy
aWJ1dGUgaXMgdGhlIHN1ZmZpeCBmb3IgcG9zaXRpdmUgbnVtYmVycy4gIElmIHRoZSBmb3JtYXR0
ZXIKLSogZG9lcyBub3QgdW5kZXJzdGFuZCB0aGUgYXR0cmlidXRyZSwgVV9VTlNVUFBPUlRFRF9F
UlJPUiBpcyByZXR1cm5lZCBhcyB0aGUgc3RhdHVzLgorKiBkb2VzIG5vdCB1bmRlcnN0YW5kIHRo
ZSBhdHRyaWJ1dGUsIFVfVU5TVVBQT1JURURfRVJST1IgaXMgcmV0dXJuZWQgYXMgdGhlIHN0YXR1
cy4KICogUnVsZS1iYXNlZCBmb3JtYXR0ZXJzIG9ubHkgdW5kZXJzdGFuZCBVTlVNX0RFRkFVTFRf
UlVMRVNFVCBhbmQgVU5VTV9QVUJMSUNfUlVMRVNFVFMuCiAqIEBwYXJhbSBmbXQgVGhlIGZvcm1h
dHRlciB0byBxdWVyeS4KICogQHBhcmFtIHRhZyBUaGUgYXR0cmlidXRlIHRvIHF1ZXJ5OyBvbmUg
b2YgVU5VTV9QT1NJVElWRV9QUkVGSVgsIFVOVU1fUE9TSVRJVkVfU1VGRklYLApAQCAtODk1LDQx
ICsxMTQzLDQxIEBAIHR5cGVkZWYgZW51bSBVTnVtYmVyRm9ybWF0U3ltYm9sIHsKICAgLyoqIFRo
ZSBtb25ldGFyeSBncm91cGluZyBzZXBhcmF0b3IgCiAgICAqIEBzdGFibGUgSUNVIDMuNgogICAg
Ki8KLSAgVU5VTV9NT05FVEFSWV9HUk9VUElOR19TRVBBUkFUT1JfU1lNQk9MID0gMTcsICAKKyAg
VU5VTV9NT05FVEFSWV9HUk9VUElOR19TRVBBUkFUT1JfU1lNQk9MID0gMTcsCiAgIC8qKiBPbmUK
LSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVN
X09ORV9ESUdJVF9TWU1CT0wgPSAxOCwKICAgLyoqIFR3bwotICAgKiBAZHJhZnQgSUNVIDQuNgor
ICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICovCiAgIFVOVU1fVFdPX0RJR0lUX1NZTUJPTCA9IDE5
LAogICAvKiogVGhyZWUKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42
CiAgICAqLwogICBVTlVNX1RIUkVFX0RJR0lUX1NZTUJPTCA9IDIwLAogICAvKiogRm91cgotICAg
KiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICovCiAgIFVOVU1fRk9V
Ul9ESUdJVF9TWU1CT0wgPSAyMSwKICAgLyoqIEZpdmUKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAg
ICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX0ZJVkVfRElHSVRfU1lNQk9MID0gMjIs
CiAgIC8qKiBTaXgKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAg
ICAqLwogICBVTlVNX1NJWF9ESUdJVF9TWU1CT0wgPSAyMywKICAgLyoqIFNldmVuCi0gICAgKiBA
ZHJhZnQgSUNVIDQuNgorICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX1NFVkVO
X0RJR0lUX1NZTUJPTCA9IDI0LAogICAvKiogRWlnaHQKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAg
ICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICBVTlVNX0VJR0hUX0RJR0lUX1NZTUJPTCA9IDI1
LAogICAvKiogTmluZQotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYK
ICAgICovCiAgIFVOVU1fTklORV9ESUdJVF9TWU1CT0wgPSAyNiwKICAgLyoqIGNvdW50IHN5bWJv
bCBjb25zdGFudHMgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5p
Y29kZS91cmVuYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXJlbmFt
ZS5oCmluZGV4IDQ2OGJkYmQwZjQ2OTI0ZGMyZWU5MzM3NDA4ZTg2NzJhMmU4NjdhNDkuLjZiMWY0
OTA5ODc1MDY5YjRkOWZlZWZkZDc0ODNmNWEwM2ZjNTA3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ljdS91bmljb2RlL3VyZW5hbWUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTAsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtOSw3ICs5
LDcgQEAKICogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKICogICBpbmRlbnRhdGlvbjo0CiAq
Ci0qICAgQ3JlYXRlZCBieTogUGVybCBzY3JpcHQgd3JpdHRlbiBieSBWbGFkaW1pciBXZWluc3Rl
aW4KKyogICBDcmVhdGVkIGJ5OiBQZXJsIHNjcmlwdCB0b29scy9nZW5yZW4ucGwgd3JpdHRlbiBi
eSBWbGFkaW1pciBXZWluc3RlaW4KICoKICogIENvbnRhaW5zIGRhdGEgZm9yIHJlbmFtaW5nIElD
VSBleHBvcnRzLgogKiAgR2V0cyBpbmNsdWRlZCBieSB1bWFjaGluZS5oCkBAIC0yMSw5ICsyMSwx
MyBAQAogI2lmbmRlZiBVUkVOQU1FX0gKICNkZWZpbmUgVVJFTkFNRV9ICiAKLS8qIFVuY29tbWVu
dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gZGlzYWJsZSByZW5hbWluZyBvbiBwbGF0Zm9ybXMKLSAg
IHRoYXQgZG8gbm90IHVzZSBBdXRvY29uZi4gKi8KLS8qICNkZWZpbmUgVV9ESVNBQkxFX1JFTkFN
SU5HIDEgKi8KKy8qIFVfRElTQUJMRV9SRU5BTUlORyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgZm9s
bG93aW5nIHdheXM6CisgKiAgIC0gd2hlbiBydW5uaW5nIGNvbmZpZ3VyZSwgZS5nLgorICogICAg
ICAgIHJ1bkNvbmZpZ3VyZUlDVSBMaW51eCAtLWRpc2FibGUtcmVuYW1pbmcKKyAqICAgLSBieSBj
aGFuZ2luZyB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIFVfRElTQUJMRV9SRU5BTUlORyBpbiB1Y29u
ZmlnLmgKKyAqLworCisjaW5jbHVkZSAidW5pY29kZS91Y29uZmlnLmgiCiAKICNpZiAhVV9ESVNB
QkxFX1JFTkFNSU5HCiAKQEAgLTMxLDYgKzM1LDcgQEAKICAgIHRoZSBwbGF0Zm9ybSBhIGNoYW5j
ZSB0byBkZWZpbmUgaXQgZmlyc3QuCiAgICBOb3JtYWxseSAoaWYgdXR5cGVzLmggb3IgdW1hY2hp
bmUuaCB3YXMgaW5jbHVkZWQgZmlyc3QpIHRoaXMgd2lsbCBub3QgYmUgbmVjZXNzYXJ5IGFzIGl0
IHdpbGwgYWxyZWFkeSBiZSBkZWZpbmVkLgogICovCisKICNpZm5kZWYgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FCiAjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2VuZGlmCkBAIC00OCwx
NCArNTMsOSBAQAogCiAvKiBDIGV4cG9ydHMgcmVuYW1pbmcgZGF0YSAqLwogCi0jZGVmaW5lIERF
Q1BPV0VSUyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoREVDUE9XRVJTKQotI2RlZmluZSBERUNT
VElDS1lUQUIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERFQ1NUSUNLWVRBQikKLSNkZWZpbmUg
TE5ubiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTE5ubikKICNkZWZpbmUgVF9DU3RyaW5nX2lu
dDY0VG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19pbnQ2NFRvU3Ry
aW5nKQogI2RlZmluZSBUX0NTdHJpbmdfaW50ZWdlclRvU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShUX0NTdHJpbmdfaW50ZWdlclRvU3RyaW5nKQotI2RlZmluZSBUX0NTdHJpbmdfc3Ry
aWNtcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cmljbXApCiAjZGVmaW5l
IFRfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0
cmluZ19zdHJpbmdUb0ludGVnZXIpCi0jZGVmaW5lIFRfQ1N0cmluZ19zdHJuaWNtcCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cm5pY21wKQogI2RlZmluZSBUX0NTdHJpbmdf
dG9Mb3dlckNhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ190b0xvd2VyQ2Fz
ZSkKICNkZWZpbmUgVF9DU3RyaW5nX3RvVXBwZXJDYXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUX0NTdHJpbmdfdG9VcHBlckNhc2UpCiAjZGVmaW5lIFVDTlZfRlJPTV9VX0NBTExCQUNLX0VT
Q0FQRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNOVl9GUk9NX1VfQ0FMTEJBQ0tfRVNDQVBF
KQpAQCAtNzUsNiArNzUsNyBAQAogI2RlZmluZSBfQVNDSUlEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShfQVNDSUlEYXRhKQogI2RlZmluZSBfQm9jdTFEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShfQm9jdTFEYXRhKQogI2RlZmluZSBfQ0VTVThEYXRhIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShfQ0VTVThEYXRhKQorI2RlZmluZSBfQ29tcG91bmRUZXh0RGF0YSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoX0NvbXBvdW5kVGV4dERhdGEpCiAjZGVmaW5lIF9IWkRhdGEgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKF9IWkRhdGEpCiAjZGVmaW5lIF9JTUFQRGF0YSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoX0lNQVBEYXRhKQogI2RlZmluZSBfSVNDSUlEYXRhIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShfSVNDSUlEYXRhKQpAQCAtMTAyLDIxICsxMDMsOCBAQAogI2RlZmluZSBf
VVRGMzJMRURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9VVEYzMkxFRGF0YSkKICNkZWZp
bmUgX1VURjdEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfVVRGN0RhdGEpCiAjZGVmaW5l
IF9VVEY4RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX1VURjhEYXRhKQotI2RlZmluZSBi
bXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19jbG9zZSkKLSNkZWZpbmUgYm1z
X2VtcHR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfZW1wdHkpCi0jZGVmaW5lIGJtc19n
ZXREYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfZ2V0RGF0YSkKLSNkZWZpbmUgYm1z
X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19vcGVuKQotI2RlZmluZSBibXNfc2Vh
cmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfc2VhcmNoKQotI2RlZmluZSBibXNfc2V0
VGFyZ2V0U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNfc2V0VGFyZ2V0U3RyaW5n
KQotI2RlZmluZSBidWlsZFdTQ29uZnVzYWJsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KGJ1aWxkV1NDb25mdXNhYmxlRGF0YSkKICNkZWZpbmUgY21lbW9yeV9jbGVhbnVwIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShjbWVtb3J5X2NsZWFudXApCiAjZGVmaW5lIGNtZW1vcnlfaW5Vc2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGNtZW1vcnlfaW5Vc2UpCi0jZGVmaW5lIGQydXRhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkMnV0YWJsZSkKLSNkZWZpbmUgZGVsZXRlQ0VMaXN0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDRUxpc3QpCi0jZGVmaW5lIGRlbGV0ZUNo
YXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDaGFycykKLSNkZWZpbmUgZGVsZXRl
Q29sbERhdGFDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVDb2xsRGF0
YUNhY2hlRW50cnkpCi0jZGVmaW5lIGRlbGV0ZVN0cmluZ0xpc3QgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGRlbGV0ZVN0cmluZ0xpc3QpCi0jZGVmaW5lIGRlbGV0ZVVuaWNvZGVTdHJpbmdLZXkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZVVuaWNvZGVTdHJpbmdLZXkpCiAjZGVmaW5l
IGl6cnVsZV9jbG9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Nsb25lKQogI2Rl
ZmluZSBpenJ1bGVfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGl6cnVsZV9jbG9zZSkK
ICNkZWZpbmUgaXpydWxlX2VxdWFscyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Vx
dWFscykKQEAgLTIxMiw4ICsyMDAsNiBAQAogI2RlZmluZSByZXNfbG9hZCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUocmVzX2xvYWQpCiAjZGVmaW5lIHJlc19yZWFkIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShyZXNfcmVhZCkKICNkZWZpbmUgcmVzX3VubG9hZCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUocmVzX3VubG9hZCkKLSNkZWZpbmUgdG11dGZtdEhhc2hUYWJsZVZhbHVlQ29tcGFyYXRv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodG11dGZtdEhhc2hUYWJsZVZhbHVlQ29tcGFyYXRv
cikKLSNkZWZpbmUgdHJpZWRpY3Rfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodHJpZWRp
Y3Rfc3dhcCkKICNkZWZpbmUgdV9VQ2hhcnNUb0NoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X1VDaGFyc1RvQ2hhcnMpCiAjZGVmaW5lIHVfYXVzdHJjcHkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVfYXVzdHJjcHkpCiAjZGVmaW5lIHVfYXVzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2F1c3RybmNweSkKQEAgLTIzOSw2ICsyMjUsNyBAQAogI2RlZmluZSB1X2Zlb2Yg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmVvZikKICNkZWZpbmUgdV9mZmx1c2ggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfZmZsdXNoKQogI2RlZmluZSB1X2ZnZXRDb252ZXJ0ZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldENvbnZlcnRlcikKKyNkZWZpbmUgdV9mZ2V0TnVt
YmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXROdW1iZXJGb3JtYXQpCiAj
ZGVmaW5lIHVfZmdldGMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGMpCiAjZGVmaW5l
IHVfZmdldGNvZGVwYWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXRjb2RlcGFnZSkK
ICNkZWZpbmUgdV9mZ2V0Y3ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGN4KQpAQCAt
MjY3LDYgKzI1NCw3IEBACiAjZGVmaW5lIHVfZnNldHRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2ZzZXR0cmFuc2xpdGVyYXRvcikKICNkZWZpbmUgdV9mc3Ryb3BlbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mc3Ryb3BlbikKICNkZWZpbmUgdV9mdW5nZXRjIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2Z1bmdldGMpCisjZGVmaW5lIHVfZ2V0QmlkaVBhaXJl
ZEJyYWNrZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0QmlkaVBhaXJlZEJyYWNrZXQp
CiAjZGVmaW5lIHVfZ2V0Q29tYmluaW5nQ2xhc3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
Z2V0Q29tYmluaW5nQ2xhc3MpCiAjZGVmaW5lIHVfZ2V0RGF0YURpcmVjdG9yeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9nZXREYXRhRGlyZWN0b3J5KQogI2RlZmluZSB1X2dldERhdGFWZXJz
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldERhdGFWZXJzaW9uKQpAQCAtMjc2LDYg
KzI2NCw3IEBACiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKQogI2RlZmluZSB1X2dldEludFBy
b3BlcnR5TWluVmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlN
aW5WYWx1ZSkKICNkZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eVZhbHVlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2dldEludFByb3BlcnR5VmFsdWUpCisjZGVmaW5lIHVfZ2V0TWFpblByb3BlcnRp
ZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0TWFpblByb3BlcnRpZXMpCiAjZGVmaW5l
IHVfZ2V0TnVtZXJpY1ZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldE51bWVyaWNW
YWx1ZSkKICNkZWZpbmUgdV9nZXRQcm9wZXJ0eUVudW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVfZ2V0UHJvcGVydHlFbnVtKQogI2RlZmluZSB1X2dldFByb3BlcnR5TmFtZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9nZXRQcm9wZXJ0eU5hbWUpCkBAIC0yODQsOSArMjczLDkgQEAKICNk
ZWZpbmUgdV9nZXRVbmljb2RlUHJvcGVydGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9n
ZXRVbmljb2RlUHJvcGVydGllcykKICNkZWZpbmUgdV9nZXRVbmljb2RlVmVyc2lvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9nZXRVbmljb2RlVmVyc2lvbikKICNkZWZpbmUgdV9nZXRWZXJz
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFZlcnNpb24pCisjZGVmaW5lIHVfZ2V0
X3N0ZG91dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRfc3Rkb3V0KQogI2RlZmluZSB1
X2hhc0JpbmFyeVByb3BlcnR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2hhc0JpbmFyeVBy
b3BlcnR5KQogI2RlZmluZSB1X2luaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaW5pdCkK
LSNkZWZpbmUgdV9pc0RhdGFPbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0RhdGFP
bGRlcikKICNkZWZpbmUgdV9pc0lESWdub3JhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2lzSURJZ25vcmFibGUpCiAjZGVmaW5lIHVfaXNJRFBhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfaXNJRFBhcnQpCiAjZGVmaW5lIHVfaXNJRFN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2lzSURTdGFydCkKQEAgLTMxOCw3ICszMDcsNiBAQAogI2RlZmluZSB1X2lzdGl0bGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXN0aXRsZSkKICNkZWZpbmUgdV9pc3VwcGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzdXBwZXIpCiAjZGVmaW5lIHVfaXN4ZGlnaXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXN4ZGlnaXQpCi0jZGVmaW5lIHVfbGVuZ3RoT2ZJZGVu
dGljYWxMZXZlbFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sZW5ndGhPZklkZW50aWNh
bExldmVsUnVuKQogI2RlZmluZSB1X2xvY2J1bmRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfbG9jYnVuZF9jbG9zZSkKICNkZWZpbmUgdV9sb2NidW5kX2dldE51bWJlckZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2dldE51bWJlckZvcm1hdCkKICNkZWZp
bmUgdV9sb2NidW5kX2luaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbG9jYnVuZF9pbml0
KQpAQCAtMzM0LDcgKzMyMiw5IEBACiAjZGVmaW5lIHVfbWVtc2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X21lbXNldCkKICNkZWZpbmUgdV9wYXJzZU1lc3NhZ2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfcGFyc2VNZXNzYWdlKQogI2RlZmluZSB1X3BhcnNlTWVzc2FnZVdpdGhFcnJv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wYXJzZU1lc3NhZ2VXaXRoRXJyb3IpCisjZGVm
aW5lIHVfcHJpbnRmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3ByaW50ZikKICNkZWZpbmUg
dV9wcmludGZfcGFyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmX3BhcnNlKQor
I2RlZmluZSB1X3ByaW50Zl91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3ByaW50Zl91KQog
I2RlZmluZSB1X3JlbGVhc2VEZWZhdWx0Q29udmVydGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1X3JlbGVhc2VEZWZhdWx0Q29udmVydGVyKQogI2RlZmluZSB1X3NjYW5mX3BhcnNlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X3NjYW5mX3BhcnNlKQogI2RlZmluZSB1X3NldEF0b21pY0lu
Y0RlY0Z1bmN0aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9zZXRBdG9taWNJbmNEZWNG
dW5jdGlvbnMpCkBAIC00NDYsNyArNDM2LDEwIEBACiAjZGVmaW5lIHViaWRpX2dldE1heFZhbHVl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNYXhWYWx1ZSkKICNkZWZpbmUgdWJp
ZGlfZ2V0TWVtb3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNZW1vcnkpCiAj
ZGVmaW5lIHViaWRpX2dldE1pcnJvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0
TWlycm9yKQorI2RlZmluZSB1YmlkaV9nZXRQYWlyZWRCcmFja2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1YmlkaV9nZXRQYWlyZWRCcmFja2V0KQorI2RlZmluZSB1YmlkaV9nZXRQYWlyZWRC
cmFja2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFpcmVkQnJhY2tl
dFR5cGUpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFMZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWJpZGlfZ2V0UGFyYUxldmVsKQorI2RlZmluZSB1YmlkaV9nZXRQYXJhTGV2ZWxBdEluZGV4
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhTGV2ZWxBdEluZGV4KQogI2Rl
ZmluZSB1YmlkaV9nZXRQYXJhZ3JhcGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dl
dFBhcmFncmFwaCkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYWdyYXBoQnlJbmRleCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFyYWdyYXBoQnlJbmRleCkKICNkZWZpbmUgdWJpZGlf
Z2V0UHJvY2Vzc2VkTGVuZ3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQcm9j
ZXNzZWRMZW5ndGgpCkBAIC00NzEsNiArNDY0LDcgQEAKICNkZWZpbmUgdWJpZGlfcmVvcmRlckxv
Z2ljYWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3Jlb3JkZXJMb2dpY2FsKQogI2Rl
ZmluZSB1YmlkaV9yZW9yZGVyVmlzdWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9y
ZW9yZGVyVmlzdWFsKQogI2RlZmluZSB1YmlkaV9zZXRDbGFzc0NhbGxiYWNrIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRDbGFzc0NhbGxiYWNrKQorI2RlZmluZSB1YmlkaV9zZXRD
b250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRDb250ZXh0KQogI2RlZmlu
ZSB1YmlkaV9zZXRJbnZlcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9zZXRJbnZl
cnNlKQogI2RlZmluZSB1YmlkaV9zZXRMaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Ymlk
aV9zZXRMaW5lKQogI2RlZmluZSB1YmlkaV9zZXRQYXJhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1YmlkaV9zZXRQYXJhKQpAQCAtNDk1LDYgKzQ4OSw3IEBACiAjZGVmaW5lIHVicmtfb3BlblJ1
bGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX29wZW5SdWxlcykKICNkZWZpbmUgdWJy
a19wcmVjZWRpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcHJlY2VkaW5nKQogI2Rl
ZmluZSB1YnJrX3ByZXZpb3VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3ByZXZpb3Vz
KQorI2RlZmluZSB1YnJrX3JlZnJlc2hVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJy
a19yZWZyZXNoVVRleHQpCiAjZGVmaW5lIHVicmtfc2FmZUNsb25lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1YnJrX3NhZmVDbG9uZSkKICNkZWZpbmUgdWJya19zZXRUZXh0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1YnJrX3NldFRleHQpCiAjZGVmaW5lIHVicmtfc2V0VVRleHQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVicmtfc2V0VVRleHQpCkBAIC01MTMsNiArNTA4LDcgQEAKICNk
ZWZpbmUgdWNhbF9nZXREU1RTYXZpbmdzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dl
dERTVFNhdmluZ3MpCiAjZGVmaW5lIHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhbF9nZXREYXlPZldlZWtUeXBlKQogI2RlZmluZSB1Y2FsX2dldERlZmF1
bHRUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXREZWZhdWx0VGltZVpv
bmUpCisjZGVmaW5lIHVjYWxfZ2V0RmllbGREaWZmZXJlbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2dldEZpZWxkRGlmZmVyZW5jZSkKICNkZWZpbmUgdWNhbF9nZXRHcmVnb3JpYW5D
aGFuZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0R3JlZ29yaWFuQ2hhbmdlKQog
I2RlZmluZSB1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSkKICNkZWZpbmUgdWNhbF9nZXRM
aW1pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRMaW1pdCkKQEAgLTUyMSwxMyAr
NTE3LDE4IEBACiAjZGVmaW5lIHVjYWxfZ2V0Tm93IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX2dldE5vdykKICNkZWZpbmUgdWNhbF9nZXRUWkRhdGFWZXJzaW9uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FsX2dldFRaRGF0YVZlcnNpb24pCiAjZGVmaW5lIHVjYWxfZ2V0VGltZVpv
bmVEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZURp
c3BsYXlOYW1lKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lSUQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVJRCkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZUlERm9y
V2luZG93c0lEIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lSURGb3JX
aW5kb3dzSUQpCisjZGVmaW5lIHVjYWxfZ2V0VGltZVpvbmVUcmFuc2l0aW9uRGF0ZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRlKQogI2RlZmlu
ZSB1Y2FsX2dldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VHlwZSkKICNk
ZWZpbmUgdWNhbF9nZXRXZWVrZW5kVHJhbnNpdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNhbF9nZXRXZWVrZW5kVHJhbnNpdGlvbikKKyNkZWZpbmUgdWNhbF9nZXRXaW5kb3dzVGltZVpv
bmVJRCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRXaW5kb3dzVGltZVpvbmVJRCkK
ICNkZWZpbmUgdWNhbF9pbkRheWxpZ2h0VGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNh
bF9pbkRheWxpZ2h0VGltZSkKICNkZWZpbmUgdWNhbF9pc1NldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNhbF9pc1NldCkKICNkZWZpbmUgdWNhbF9pc1dlZWtlbmQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjYWxfaXNXZWVrZW5kKQogI2RlZmluZSB1Y2FsX29wZW4gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYWxfb3BlbikKICNkZWZpbmUgdWNhbF9vcGVuQ291bnRyeVRpbWVab25l
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuQ291bnRyeVRpbWVab25lcykKKyNk
ZWZpbmUgdWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX29wZW5UaW1lWm9uZUlERW51bWVyYXRpb24pCiAjZGVmaW5lIHVjYWxfb3BlblRp
bWVab25lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuVGltZVpvbmVzKQogI2Rl
ZmluZSB1Y2FsX3JvbGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfcm9sbCkKICNkZWZp
bmUgdWNhbF9zZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfc2V0KQpAQCAtNTYwLDYg
KzU2MSw4IEBACiAjZGVmaW5lIHVjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IpCiAjZGVmaW5lIHVjYXNlbWFw
X2dldExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0TG9jYWxlKQog
I2RlZmluZSB1Y2FzZW1hcF9nZXRPcHRpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2Fz
ZW1hcF9nZXRPcHRpb25zKQorI2RlZmluZSB1Y2FzZW1hcF9pbnRlcm5hbFVURjhUb1RpdGxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9pbnRlcm5hbFVURjhUb1RpdGxlKQorI2Rl
ZmluZSB1Y2FzZW1hcF9tYXBVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9t
YXBVVEY4KQogI2RlZmluZSB1Y2FzZW1hcF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FzZW1hcF9vcGVuKQogI2RlZmluZSB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKQogI2RlZmluZSB1Y2Fz
ZW1hcF9zZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3NldExvY2Fs
ZSkKQEAgLTU2OSwxMSArNTcyLDYgQEAKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvTG93ZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3V0ZjhUb0xvd2VyKQogI2RlZmluZSB1Y2Fz
ZW1hcF91dGY4VG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRv
VGl0bGUpCiAjZGVmaW5lIHVjYXNlbWFwX3V0ZjhUb1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FzZW1hcF91dGY4VG9VcHBlcikKLSNkZWZpbmUgdWNkX2Nsb3NlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y2RfY2xvc2UpCi0jZGVmaW5lIHVjZF9mbHVzaENhY2hlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2RfZmx1c2hDYWNoZSkKLSNkZWZpbmUgdWNkX2ZyZWVDYWNoZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2ZyZWVDYWNoZSkKLSNkZWZpbmUgdWNkX2dldENv
bGxhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2RfZ2V0Q29sbGF0b3IpCi0jZGVmaW5l
IHVjZF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2Rfb3BlbikKICNkZWZpbmUgdWNo
YXJfYWRkUHJvcGVydHlTdGFydHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjaGFyX2FkZFBy
b3BlcnR5U3RhcnRzKQogI2RlZmluZSB1Y2hhcl9zd2FwTmFtZXMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjaGFyX3N3YXBOYW1lcykKICNkZWZpbmUgdWNsbl9jbGVhbnVwT25lIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2xuX2NsZWFudXBPbmUpCkBAIC02NTYsNiArNjU0LDcgQEAKICNk
ZWZpbmUgdWNudl9pb19zdHJpcEFTQ0lJRm9yQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNudl9pb19zdHJpcEFTQ0lJRm9yQ29tcGFyZSkKICNkZWZpbmUgdWNudl9pb19zdHJpcEVC
Q0RJQ0ZvckNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaW9fc3RyaXBFQkNE
SUNGb3JDb21wYXJlKQogI2RlZmluZSB1Y252X2lzQW1iaWd1b3VzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y252X2lzQW1iaWd1b3VzKQorI2RlZmluZSB1Y252X2lzRml4ZWRXaWR0aCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pc0ZpeGVkV2lkdGgpCiAjZGVmaW5lIHVjbnZfbG9h
ZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9sb2FkKQogI2RlZmluZSB1Y252X2xvYWRT
aGFyZWREYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2xvYWRTaGFyZWREYXRhKQog
I2RlZmluZSB1Y252X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfb3BlbikKQEAg
LTY5Nyw3ICs2OTYsNiBAQAogI2RlZmluZSB1Y29sX2NhbGNTb3J0S2V5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y29sX2NhbGNTb3J0S2V5KQogI2RlZmluZSB1Y29sX2NhbGNTb3J0S2V5U2lt
cGxlVGVydGlhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2FsY1NvcnRLZXlTaW1w
bGVUZXJ0aWFyeSkKICNkZWZpbmUgdWNvbF9jbG9uZUJpbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9jbG9uZUJpbmFyeSkKLSNkZWZpbmUgdWNvbF9jbG9uZVJ1bGVEYXRhIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb25lUnVsZURhdGEpCiAjZGVmaW5lIHVjb2xfY2xv
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvc2UpCiAjZGVmaW5lIHVjb2xfY2xv
c2VFbGVtZW50cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9zZUVsZW1lbnRzKQog
I2RlZmluZSB1Y29sX2NvdW50QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29s
X2NvdW50QXZhaWxhYmxlKQpAQCAtNzE0LDkgKzcxMiwxMSBAQAogI2RlZmluZSB1Y29sX2dldEF2
YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRBdmFpbGFibGUpCiAjZGVm
aW5lIHVjb2xfZ2V0Qm91bmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Qm91bmQp
CiAjZGVmaW5lIHVjb2xfZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjb2xfZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UpCisjZGVmaW5lIHVjb2xfZ2V0Q29s
bGF0aW9uS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENvbGxhdGlvbktleSkK
ICNkZWZpbmUgdWNvbF9nZXRDb250cmFjdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfZ2V0Q29udHJhY3Rpb25zKQogI2RlZmluZSB1Y29sX2dldENvbnRyYWN0aW9uc0FuZEV4cGFu
c2lvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Q29udHJhY3Rpb25zQW5kRXhw
YW5zaW9ucykKICNkZWZpbmUgdWNvbF9nZXREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9nZXREaXNwbGF5TmFtZSkKKyNkZWZpbmUgdWNvbF9nZXRFcXVpdmFsZW50UmVv
cmRlckNvZGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEVxdWl2YWxlbnRSZW9y
ZGVyQ29kZXMpCiAjZGVmaW5lIHVjb2xfZ2V0Rmlyc3RDRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNvbF9nZXRGaXJzdENFKQogI2RlZmluZSB1Y29sX2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50KQog
I2RlZmluZSB1Y29sX2dldEtleXdvcmRWYWx1ZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfZ2V0S2V5d29yZFZhbHVlcykKQEAgLTczNSw4ICs3MzUsNiBAQAogI2RlZmluZSB1Y29sX2dl
dFJ1bGVzRXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0UnVsZXNFeCkKICNkZWZp
bmUgdWNvbF9nZXRTaG9ydERlZmluaXRpb25TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfZ2V0U2hvcnREZWZpbml0aW9uU3RyaW5nKQogI2RlZmluZSB1Y29sX2dldFNvcnRLZXkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0U29ydEtleSkKLSNkZWZpbmUgdWNvbF9n
ZXRTb3J0S2V5U2l6ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5U2l6
ZSkKLSNkZWZpbmUgdWNvbF9nZXRTb3J0S2V5V2l0aEFsbG9jYXRpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjb2xfZ2V0U29ydEtleVdpdGhBbGxvY2F0aW9uKQogI2RlZmluZSB1Y29sX2dl
dFN0cmVuZ3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFN0cmVuZ3RoKQogI2Rl
ZmluZSB1Y29sX2dldFRhaWxvcmVkU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dl
dFRhaWxvcmVkU2V0KQogI2RlZmluZSB1Y29sX2dldFVDQVZlcnNpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjb2xfZ2V0VUNBVmVyc2lvbikKQEAgLTc4OCw2ICs3ODYsNyBAQAogI2RlZmlu
ZSB1Y29sX3NldFZhcmlhYmxlVG9wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3NldFZh
cmlhYmxlVG9wKQogI2RlZmluZSB1Y29sX3N0cmNvbGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfc3RyY29sbCkKICNkZWZpbmUgdWNvbF9zdHJjb2xsSXRlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9zdHJjb2xsSXRlcikKKyNkZWZpbmUgdWNvbF9zdHJjb2xsVVRGOCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zdHJjb2xsVVRGOCkKICNkZWZpbmUgdWNvbF9zd2Fw
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXApCiAjZGVmaW5lIHVjb2xfc3dhcEJp
bmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zd2FwQmluYXJ5KQogI2RlZmluZSB1
Y29sX3N3YXBJbnZlcnNlVUNBIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXBJbnZl
cnNlVUNBKQpAQCAtODA1LDEyICs4MDQsMTQgQEAKICNkZWZpbmUgdWNzZGV0X2VuYWJsZUlucHV0
RmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZW5hYmxlSW5wdXRGaWx0ZXIp
CiAjZGVmaW5lIHVjc2RldF9nZXRBbGxEZXRlY3RhYmxlQ2hhcnNldHMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjc2RldF9nZXRBbGxEZXRlY3RhYmxlQ2hhcnNldHMpCiAjZGVmaW5lIHVjc2Rl
dF9nZXRDb25maWRlbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0Q29uZmlk
ZW5jZSkKKyNkZWZpbmUgdWNzZGV0X2dldERldGVjdGFibGVDaGFyc2V0cyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNzZGV0X2dldERldGVjdGFibGVDaGFyc2V0cykKICNkZWZpbmUgdWNzZGV0
X2dldExhbmd1YWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0TGFuZ3VhZ2Up
CiAjZGVmaW5lIHVjc2RldF9nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRf
Z2V0TmFtZSkKICNkZWZpbmUgdWNzZGV0X2dldFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNzZGV0X2dldFVDaGFycykKICNkZWZpbmUgdWNzZGV0X2lzSW5wdXRGaWx0ZXJFbmFibGVk
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfaXNJbnB1dEZpbHRlckVuYWJsZWQpCiAj
ZGVmaW5lIHVjc2RldF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfb3BlbikK
ICNkZWZpbmUgdWNzZGV0X3NldERlY2xhcmVkRW5jb2RpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjc2RldF9zZXREZWNsYXJlZEVuY29kaW5nKQorI2RlZmluZSB1Y3NkZXRfc2V0RGV0ZWN0
YWJsZUNoYXJzZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9zZXREZXRlY3RhYmxl
Q2hhcnNldCkKICNkZWZpbmUgdWNzZGV0X3NldFRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjc2RldF9zZXRUZXh0KQogI2RlZmluZSB1Y3Vycl9jb3VudEN1cnJlbmNpZXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjdXJyX2NvdW50Q3VycmVuY2llcykKICNkZWZpbmUgdWN1cnJfZm9y
TG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9mb3JMb2NhbGUpCkBAIC04MTgs
OCArODE5LDEwIEBACiAjZGVmaW5lIHVjdXJyX2dldERlZmF1bHRGcmFjdGlvbkRpZ2l0cyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKQogI2Rl
ZmluZSB1Y3Vycl9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y3Vycl9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlKQogI2RlZmluZSB1Y3Vycl9nZXRO
YW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXROYW1lKQorI2RlZmluZSB1Y3Vy
cl9nZXROdW1lcmljQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0TnVtZXJp
Y0NvZGUpCiAjZGVmaW5lIHVjdXJyX2dldFBsdXJhbE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjdXJyX2dldFBsdXJhbE5hbWUpCiAjZGVmaW5lIHVjdXJyX2dldFJvdW5kaW5nSW5jcmVt
ZW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXRSb3VuZGluZ0luY3JlbWVudCkK
KyNkZWZpbmUgdWN1cnJfaXNBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJy
X2lzQXZhaWxhYmxlKQogI2RlZmluZSB1Y3Vycl9vcGVuSVNPQ3VycmVuY2llcyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWN1cnJfb3BlbklTT0N1cnJlbmNpZXMpCiAjZGVmaW5lIHVjdXJyX3Jl
Z2lzdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9yZWdpc3RlcikKICNkZWZpbmUg
dWN1cnJfdW5yZWdpc3RlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfdW5yZWdpc3Rl
cikKQEAgLTgzMyw2ICs4MzYsNyBAQAogI2RlZmluZSB1ZGF0X2dldDJEaWdpdFllYXJTdGFydCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXQyRGlnaXRZZWFyU3RhcnQpCiAjZGVmaW5l
IHVkYXRfZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldEF2YWls
YWJsZSkKICNkZWZpbmUgdWRhdF9nZXRDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWRhdF9nZXRDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9nZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZGF0X2dldENvbnRleHQpCiAjZGVmaW5lIHVkYXRfZ2V0TG9jYWxlQnlUeXBl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldExvY2FsZUJ5VHlwZSkKICNkZWZpbmUg
dWRhdF9nZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0TnVt
YmVyRm9ybWF0KQogI2RlZmluZSB1ZGF0X2dldFN5bWJvbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkYXRfZ2V0U3ltYm9scykKQEAgLTg0MCw4ICs4NDQsMTAgQEAKICNkZWZpbmUgdWRhdF9v
cGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X29wZW4pCiAjZGVmaW5lIHVkYXRfcGFy
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfcGFyc2UpCiAjZGVmaW5lIHVkYXRfcGFy
c2VDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9wYXJzZUNhbGVuZGFyKQor
I2RlZmluZSB1ZGF0X3JlZ2lzdGVyT3BlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0
X3JlZ2lzdGVyT3BlbmVyKQogI2RlZmluZSB1ZGF0X3NldDJEaWdpdFllYXJTdGFydCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXQyRGlnaXRZZWFyU3RhcnQpCiAjZGVmaW5lIHVkYXRf
c2V0Q2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0Q2FsZW5kYXIpCisj
ZGVmaW5lIHVkYXRfc2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRD
b250ZXh0KQogI2RlZmluZSB1ZGF0X3NldExlbmllbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVkYXRfc2V0TGVuaWVudCkKICNkZWZpbmUgdWRhdF9zZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1ZGF0X3NldFN5
bWJvbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0U3ltYm9scykKQEAgLTg0OSw2
ICs4NTUsNyBAQAogI2RlZmluZSB1ZGF0X3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWRhdF90b1BhdHRlcm4pCiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVyblJlbGF0aXZlRGF0ZSkKICNkZWZp
bmUgdWRhdF90b1BhdHRlcm5SZWxhdGl2ZVRpbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRfdG9QYXR0ZXJuUmVsYXRpdmVUaW1lKQorI2RlZmluZSB1ZGF0X3VucmVnaXN0ZXJPcGVuZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdW5yZWdpc3Rlck9wZW5lcikKICNkZWZpbmUg
dWRhdGFfY2hlY2tDb21tb25EYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0YV9jaGVj
a0NvbW1vbkRhdGEpCiAjZGVmaW5lIHVkYXRhX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1ZGF0YV9jbG9zZSkKICNkZWZpbmUgdWRhdGFfY2xvc2VTd2FwcGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZGF0YV9jbG9zZVN3YXBwZXIpCkBAIC04OTIsMTIgKzg5OSwxNyBAQAogI2Rl
ZmluZSB1ZGF0cGdfc2V0QXBwZW5kSXRlbU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRwZ19zZXRBcHBlbmRJdGVtTmFtZSkKICNkZWZpbmUgdWRhdHBnX3NldERhdGVUaW1lRm9ybWF0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0RGF0ZVRpbWVGb3JtYXQpCiAjZGVm
aW5lIHVkYXRwZ19zZXREZWNpbWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0
RGVjaW1hbCkKKyNkZWZpbmUgdWRpY3Rfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRp
Y3Rfc3dhcCkKKyNkZWZpbmUgdWR0aXR2Zm10X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1ZHRpdHZmbXRfY2xvc2UpCisjZGVmaW5lIHVkdGl0dmZtdF9mb3JtYXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVkdGl0dmZtdF9mb3JtYXQpCisjZGVmaW5lIHVkdGl0dmZtdF9vcGVuIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZHRpdHZmbXRfb3BlbikKICNkZWZpbmUgdWVudW1fY2xv
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX2Nsb3NlKQogI2RlZmluZSB1ZW51bV9j
b3VudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fY291bnQpCiAjZGVmaW5lIHVlbnVt
X25leHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX25leHQpCiAjZGVmaW5lIHVlbnVt
X25leHREZWZhdWx0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9uZXh0RGVmYXVsdCkK
ICNkZWZpbmUgdWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVlbnVtX29wZW5DaGFyU3RyaW5nc0VudW1lcmF0aW9uKQogI2RlZmluZSB1ZW51
bV9vcGVuRnJvbVN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51
bV9vcGVuRnJvbVN0cmluZ0VudW1lcmF0aW9uKQorI2RlZmluZSB1ZW51bV9vcGVuVUNoYXJTdHJp
bmdzRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX29wZW5VQ2hhclN0
cmluZ3NFbnVtZXJhdGlvbikKICNkZWZpbmUgdWVudW1fcmVzZXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVlbnVtX3Jlc2V0KQogI2RlZmluZSB1ZW51bV91bmV4dCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWVudW1fdW5leHQpCiAjZGVmaW5lIHVlbnVtX3VuZXh0RGVmYXVsdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWVudW1fdW5leHREZWZhdWx0KQpAQCAtOTA4LDM0ICs5MjAsNDkg
QEAKICNkZWZpbmUgdWZpbGVfZ2V0Y2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmaWxlX2dl
dGNoKQogI2RlZmluZSB1ZmlsZV9nZXRjaDMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zmls
ZV9nZXRjaDMyKQogI2RlZmluZSB1Zm10XzY0dG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Zm10XzY0dG91KQorI2RlZmluZSB1Zm10X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Zm10X2Nsb3NlKQogI2RlZmluZSB1Zm10X2RlZmF1bHRDUFRvVW5pY29kZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWZtdF9kZWZhdWx0Q1BUb1VuaWNvZGUpCiAjZGVmaW5lIHVmbXRfZGlnaXR2
YWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9kaWdpdHZhbHVlKQorI2RlZmluZSB1
Zm10X2dldEFycmF5SXRlbUJ5SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0
QXJyYXlJdGVtQnlJbmRleCkKKyNkZWZpbmUgdWZtdF9nZXRBcnJheUxlbmd0aCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWZtdF9nZXRBcnJheUxlbmd0aCkKKyNkZWZpbmUgdWZtdF9nZXREYXRl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldERhdGUpCisjZGVmaW5lIHVmbXRfZ2V0
RGVjTnVtQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RGVjTnVtQ2hhcnMp
CisjZGVmaW5lIHVmbXRfZ2V0RG91YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dl
dERvdWJsZSkKKyNkZWZpbmUgdWZtdF9nZXRJbnQ2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWZtdF9nZXRJbnQ2NCkKKyNkZWZpbmUgdWZtdF9nZXRMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Zm10X2dldExvbmcpCisjZGVmaW5lIHVmbXRfZ2V0T2JqZWN0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Zm10X2dldE9iamVjdCkKKyNkZWZpbmUgdWZtdF9nZXRUeXBlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldFR5cGUpCisjZGVmaW5lIHVmbXRfZ2V0VUNoYXJzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldFVDaGFycykKKyNkZWZpbmUgdWZtdF9pc051
bWVyaWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfaXNOdW1lcmljKQogI2RlZmluZSB1
Zm10X2lzZGlnaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfaXNkaWdpdCkKKyNkZWZp
bmUgdWZtdF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X29wZW4pCiAjZGVmaW5l
IHVmbXRfcHRvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9wdG91KQogI2RlZmluZSB1
Zm10X3V0bzY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X3V0bzY0KQogI2RlZmluZSB1
Zm10X3V0b3AgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfdXRvcCkKKyNkZWZpbmUgdWdl
bmRlcl9nZXRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWdlbmRlcl9nZXRJbnN0
YW5jZSkKKyNkZWZpbmUgdWdlbmRlcl9nZXRMaXN0R2VuZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Z2VuZGVyX2dldExpc3RHZW5kZXIpCiAjZGVmaW5lIHVoYXNoX2Nsb3NlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jbG9zZSkKICNkZWZpbmUgdWhhc2hfY29tcGFyZUNhc2Vs
ZXNzVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUNh
c2VsZXNzVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUNoYXJzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2NvbXBh
cmVJQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVJQ2hhcnMpCiAj
ZGVmaW5lIHVoYXNoX2NvbXBhcmVMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9j
b21wYXJlTG9uZykKKyNkZWZpbmUgdWhhc2hfY29tcGFyZVNjcmlwdFNldCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZVNjcmlwdFNldCkKICNkZWZpbmUgdWhhc2hfY29tcGFy
ZVVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZVVDaGFycykKICNk
ZWZpbmUgdWhhc2hfY29tcGFyZVVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2NvbXBhcmVVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFzaF9jb3VudCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY291bnQpCiAjZGVmaW5lIHVoYXNoX2RlbGV0ZUhhc2h0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlSGFzaHRhYmxlKQotI2Rl
ZmluZSB1aGFzaF9kZWxldGVVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9k
ZWxldGVVT2JqZWN0KQotI2RlZmluZSB1aGFzaF9kZWxldGVVbmljb2RlU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9kZWxldGVVbmljb2RlU3RyaW5nKQorI2RlZmluZSB1aGFz
aF9kZWxldGVTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVNj
cmlwdFNldCkKICNkZWZpbmUgdWhhc2hfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
aGFzaF9lcXVhbHMpCisjZGVmaW5lIHVoYXNoX2VxdWFsc1NjcmlwdFNldCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWhhc2hfZXF1YWxzU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9maW5kIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9maW5kKQotI2RlZmluZSB1aGFzaF9mcmVlQmxv
Y2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2ZyZWVCbG9jaykKICNkZWZpbmUgdWhh
c2hfZ2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9nZXQpCiAjZGVmaW5lIHVoYXNo
X2dldGkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2dldGkpCiAjZGVmaW5lIHVoYXNo
X2hhc2hDYXNlbGVzc1VuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNo
X2hhc2hDYXNlbGVzc1VuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2hhc2hDaGFycyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaENoYXJzKQogI2RlZmluZSB1aGFzaF9oYXNo
SUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoSUNoYXJzKQogI2RlZmlu
ZSB1aGFzaF9oYXNoTG9uZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaExvbmcp
CisjZGVmaW5lIHVoYXNoX2hhc2hTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2hhc2hTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2hhc2hVQ2hhcnMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hVQ2hhcnMpCi0jZGVmaW5lIHVoYXNoX2hhc2hVQ2hhcnNO
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoVUNoYXJzTikKICNkZWZpbmUgdWhh
c2hfaGFzaFVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hV
bmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFzaF9pZ2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1aGFzaF9pZ2V0KQogI2RlZmluZSB1aGFzaF9pZ2V0aSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWhhc2hfaWdldGkpCkBAIC05ODUsNiArMTAxMiw3IEBACiAjZGVmaW5lIHVpdGVyX3NldFVU
RjE2QkUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVpdGVyX3NldFVURjE2QkUpCiAjZGVmaW5l
IHVpdGVyX3NldFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVpdGVyX3NldFVURjgpCiAj
ZGVmaW5lIHVsZG5fY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fY2xvc2UpCisj
ZGVmaW5lIHVsZG5fZ2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9nZXRD
b250ZXh0KQogI2RlZmluZSB1bGRuX2dldERpYWxlY3RIYW5kbGluZyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWxkbl9nZXREaWFsZWN0SGFuZGxpbmcpCiAjZGVmaW5lIHVsZG5fZ2V0TG9jYWxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldExvY2FsZSkKICNkZWZpbmUgdWxkbl9r
ZXlEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9rZXlEaXNwbGF5TmFt
ZSkKQEAgLTk5Miw2ICsxMDIwLDcgQEAKICNkZWZpbmUgdWxkbl9sYW5ndWFnZURpc3BsYXlOYW1l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2xhbmd1YWdlRGlzcGxheU5hbWUpCiAjZGVm
aW5lIHVsZG5fbG9jYWxlRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5f
bG9jYWxlRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWxkbl9vcGVuKQorI2RlZmluZSB1bGRuX29wZW5Gb3JDb250ZXh0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bGRuX29wZW5Gb3JDb250ZXh0KQogI2RlZmluZSB1bGRuX3JlZ2lvbkRp
c3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX3JlZ2lvbkRpc3BsYXlOYW1l
KQogI2RlZmluZSB1bGRuX3NjcmlwdENvZGVEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWxkbl9zY3JpcHRDb2RlRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fc2NyaXB0RGlz
cGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fc2NyaXB0RGlzcGxheU5hbWUp
CkBAIC0xMDI4LDYgKzEwNTcsNyBAQAogI2RlZmluZSB1bG9jX2dldERpc3BsYXlMYW5ndWFnZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5TGFuZ3VhZ2UpCiAjZGVmaW5l
IHVsb2NfZ2V0RGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlz
cGxheU5hbWUpCiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheVNjcmlwdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWxvY19nZXREaXNwbGF5U2NyaXB0KQorI2RlZmluZSB1bG9jX2dldERpc3BsYXlT
Y3JpcHRJbkNvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVNj
cmlwdEluQ29udGV4dCkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5VmFyaWFudCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5VmFyaWFudCkKICNkZWZpbmUgdWxvY19nZXRJ
U08zQ291bnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRJU08zQ291bnRyeSkK
ICNkZWZpbmUgdWxvY19nZXRJU08zTGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVs
b2NfZ2V0SVNPM0xhbmd1YWdlKQpAQCAtMTA3NSwxOCArMTEwNSwyMSBAQAogI2RlZmluZSB1bXNn
X3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ190b1BhdHRlcm4pCiAjZGVm
aW5lIHVtc2dfdmZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ192Zm9ybWF0KQog
I2RlZmluZSB1bXNnX3ZwYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW1zZ192cGFyc2Up
Ci0jZGVmaW5lIHVtdHhfYXRvbWljX2RlYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9h
dG9taWNfZGVjKQotI2RlZmluZSB1bXR4X2F0b21pY19pbmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVtdHhfYXRvbWljX2luYykKLSNkZWZpbmUgdW10eF9jbGVhbnVwIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bXR4X2NsZWFudXApCi0jZGVmaW5lIHVtdHhfZGVzdHJveSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW10eF9kZXN0cm95KQotI2RlZmluZSB1bXR4X2luaXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVtdHhfaW5pdCkKICNkZWZpbmUgdW10eF9sb2NrIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bXR4X2xvY2spCiAjZGVmaW5lIHVtdHhfdW5sb2NrIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bXR4X3VubG9jaykKICNkZWZpbmUgdW5pc2V0X2dldFVuaWNvZGUzMklu
c3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bmlzZXRfZ2V0VW5pY29kZTMySW5zdGFu
Y2UpCiAjZGVmaW5lIHVub3JtMl9hcHBlbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3Jt
Ml9hcHBlbmQpCiAjZGVmaW5lIHVub3JtMl9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW5vcm0yX2Nsb3NlKQorI2RlZmluZSB1bm9ybTJfY29tcG9zZVBhaXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVub3JtMl9jb21wb3NlUGFpcikKKyNkZWZpbmUgdW5vcm0yX2dldENvbWJpbmlu
Z0NsYXNzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3Mp
CiAjZGVmaW5lIHVub3JtMl9nZXREZWNvbXBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bm9ybTJfZ2V0RGVjb21wb3NpdGlvbikKICNkZWZpbmUgdW5vcm0yX2dldEluc3RhbmNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0SW5zdGFuY2UpCisjZGVmaW5lIHVub3Jt
Ml9nZXRORkNJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GQ0lu
c3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZESW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtMl9nZXRORkRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0NDYXNl
Zm9sZEluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZLQ0Nhc2Vm
b2xkSW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRORktDSW5zdGFuY2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktDSW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRO
RktESW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktESW5zdGFu
Y2UpCisjZGVmaW5lIHVub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbikKICNkZWZpbmUgdW5vcm0yX2hhc0Jv
dW5kYXJ5QWZ0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9oYXNCb3VuZGFyeUFm
dGVyKQogI2RlZmluZSB1bm9ybTJfaGFzQm91bmRhcnlCZWZvcmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtMl9oYXNCb3VuZGFyeUJlZm9yZSkKICNkZWZpbmUgdW5vcm0yX2lzSW5lcnQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9pc0luZXJ0KQpAQCAtMTEwMCw3ICsxMTMz
LDcgQEAKICNkZWZpbmUgdW5vcm1fY2xvc2VJdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bm9ybV9jbG9zZUl0ZXIpCiAjZGVmaW5lIHVub3JtX2NvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtX2NvbXBhcmUpCiAjZGVmaW5lIHVub3JtX2NvbmNhdGVuYXRlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9jb25jYXRlbmF0ZSkKLSNkZWZpbmUgdW5vcm1fZ2V0RkNE
VHJpZUluZGV4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRGQ0RUcmllSW5kZXgp
CisjZGVmaW5lIHVub3JtX2dldEZDRDE2IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9n
ZXRGQ0QxNikKICNkZWZpbmUgdW5vcm1fZ2V0UXVpY2tDaGVjayBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW5vcm1fZ2V0UXVpY2tDaGVjaykKICNkZWZpbmUgdW5vcm1faXNOb3JtYWxpemVkIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9pc05vcm1hbGl6ZWQpCiAjZGVmaW5lIHVub3Jt
X2lzTm9ybWFsaXplZFdpdGhPcHRpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9p
c05vcm1hbGl6ZWRXaXRoT3B0aW9ucykKQEAgLTExMjAsNiArMTE1Myw3IEBACiAjZGVmaW5lIHVu
dW1fZm9ybWF0RG91YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdERvdWJs
ZSkKICNkZWZpbmUgdW51bV9mb3JtYXREb3VibGVDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW51bV9mb3JtYXREb3VibGVDdXJyZW5jeSkKICNkZWZpbmUgdW51bV9mb3JtYXRJbnQ2
NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9mb3JtYXRJbnQ2NCkKKyNkZWZpbmUgdW51
bV9mb3JtYXRVRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0
VUZvcm1hdHRhYmxlKQogI2RlZmluZSB1bnVtX2dldEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodW51bV9nZXRBdHRyaWJ1dGUpCiAjZGVmaW5lIHVudW1fZ2V0QXZhaWxhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2dldEF2YWlsYWJsZSkKICNkZWZpbmUgdW51bV9n
ZXREb3VibGVBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0RG91Ymxl
QXR0cmlidXRlKQpAQCAtMTEzMiwxMSArMTE2NiwyNCBAQAogI2RlZmluZSB1bnVtX3BhcnNlRG91
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3BhcnNlRG91YmxlKQogI2RlZmluZSB1
bnVtX3BhcnNlRG91YmxlQ3VycmVuY3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFy
c2VEb3VibGVDdXJyZW5jeSkKICNkZWZpbmUgdW51bV9wYXJzZUludDY0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtX3BhcnNlSW50NjQpCisjZGVmaW5lIHVudW1fcGFyc2VUb1VGb3JtYXR0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlKQog
I2RlZmluZSB1bnVtX3NldEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9z
ZXRBdHRyaWJ1dGUpCiAjZGVmaW5lIHVudW1fc2V0RG91YmxlQXR0cmlidXRlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bnVtX3NldERvdWJsZUF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9zZXRT
eW1ib2wgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0U3ltYm9sKQogI2RlZmluZSB1
bnVtX3NldFRleHRBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0VGV4
dEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV90b1BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVudW1fdG9QYXR0ZXJuKQorI2RlZmluZSB1bnVtc3lzX2Nsb3NlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtc3lzX2Nsb3NlKQorI2RlZmluZSB1bnVtc3lzX2dldERlc2NyaXB0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX2dldERlc2NyaXB0aW9uKQorI2RlZmlu
ZSB1bnVtc3lzX2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0TmFt
ZSkKKyNkZWZpbmUgdW51bXN5c19nZXRSYWRpeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51
bXN5c19nZXRSYWRpeCkKKyNkZWZpbmUgdW51bXN5c19pc0FsZ29yaXRobWljIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bnVtc3lzX2lzQWxnb3JpdGhtaWMpCisjZGVmaW5lIHVudW1zeXNfb3Bl
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19vcGVuKQorI2RlZmluZSB1bnVtc3lz
X29wZW5BdmFpbGFibGVOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19vcGVu
QXZhaWxhYmxlTmFtZXMpCisjZGVmaW5lIHVudW1zeXNfb3BlbkJ5TmFtZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW51bXN5c19vcGVuQnlOYW1lKQorI2RlZmluZSB1cGxydWxlc19jbG9zZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfY2xvc2UpCisjZGVmaW5lIHVwbHJ1bGVz
X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX29wZW4pCisjZGVmaW5lIHVw
bHJ1bGVzX29wZW5Gb3JUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxydWxlc19vcGVu
Rm9yVHlwZSkKKyNkZWZpbmUgdXBscnVsZXNfc2VsZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cGxydWxlc19zZWxlY3QpCiAjZGVmaW5lIHVwbHVnX2Nsb3NlTGlicmFyeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBsdWdfY2xvc2VMaWJyYXJ5KQogI2RlZmluZSB1cGx1Z19maW5kTGli
cmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfZmluZExpYnJhcnkpCiAjZGVmaW5l
IHVwbHVnX2dldENvbmZpZ3VyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX2dl
dENvbmZpZ3VyYXRpb24pCkBAIC0xMTYwLDEyICsxMjA3LDEyIEBACiAjZGVmaW5lIHVwbHVnX3Nl
dFBsdWdMZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfc2V0UGx1Z0xldmVsKQog
I2RlZmluZSB1cGx1Z19zZXRQbHVnTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdf
c2V0UGx1Z05hbWUpCiAjZGVmaW5lIHVwbHVnX3NldFBsdWdOb1VubG9hZCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBsdWdfc2V0UGx1Z05vVW5sb2FkKQotI2RlZmluZSB1cG5hbWVfc3dhcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBuYW1lX3N3YXApCiAjZGVmaW5lIHVwcm9wc19nZXRT
b3VyY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcm9wc19nZXRTb3VyY2UpCiAjZGVmaW5l
IHVwcm9wc3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
b3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzKQogI2RlZmluZSB1cHJ2X2Flc3RybmNweSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9hZXN0cm5jcHkpCiAjZGVmaW5lIHVwcnZfYXNjaWlGcm9t
RWJjZGljIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2FzY2lpRnJvbUViY2RpYykKICNk
ZWZpbmUgdXBydl9hc2NpaXRvbG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYXNj
aWl0b2xvd2VyKQorI2RlZmluZSB1cHJ2X2NhbGxvYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9jYWxsb2MpCiAjZGVmaW5lIHVwcnZfY2VpbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9jZWlsKQogI2RlZmluZSB1cHJ2X2NudHRhYl9hZGRDb250cmFjdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9jbnR0YWJfYWRkQ29udHJhY3Rpb24pCiAjZGVmaW5lIHVwcnZf
Y250dGFiX2NoYW5nZUNvbnRyYWN0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Nu
dHRhYl9jaGFuZ2VDb250cmFjdGlvbikKQEAgLTEyMDIsNyArMTI0OSw2IEBACiAjZGVmaW5lIHVw
cnZfZGVjQ29udGV4dFNldFN0YXR1c0Zyb21TdHJpbmdRdWlldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWNDb250ZXh0U2V0U3RhdHVzRnJvbVN0cmluZ1F1aWV0KQogI2RlZmluZSB1
cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNRdWlldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9kZWNDb250ZXh0U2V0U3RhdHVzUXVpZXQpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFN0YXR1
c1RvU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTdGF0dXNU
b1N0cmluZykKLSNkZWZpbmUgdXBydl9kZWNDb250ZXh0VGVzdEVuZGlhbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0VGVzdEVuZGlhbikKICNkZWZpbmUgdXBydl9kZWND
b250ZXh0VGVzdFNhdmVkU3RhdHVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0Nv
bnRleHRUZXN0U2F2ZWRTdGF0dXMpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRlc3RTdGF0dXMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RTdGF0dXMpCiAjZGVm
aW5lIHVwcnZfZGVjQ29udGV4dFplcm9TdGF0dXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfZGVjQ29udGV4dFplcm9TdGF0dXMpCkBAIC0xMjY4LDEyICsxMzE0LDE0IEBACiAjZGVmaW5l
IHVwcnZfZGVjTnVtYmVyVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNO
dW1iZXJWZXJzaW9uKQogI2RlZmluZSB1cHJ2X2RlY051bWJlclhvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9kZWNOdW1iZXJYb3IpCiAjZGVmaW5lIHVwcnZfZGVjTnVtYmVyWmVybyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNOdW1iZXJaZXJvKQorI2RlZmluZSB1cHJ2
X2RlbGV0ZVVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVsZXRlVU9iamVj
dCkKICNkZWZpbmUgdXBydl9kZWxldGVfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfZGVsZXRlX2NvbGxJdGVyYXRlKQogI2RlZmluZSB1cHJ2X2RsX2Nsb3NlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RsX2Nsb3NlKQogI2RlZmluZSB1cHJ2X2RsX29wZW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfb3BlbikKLSNkZWZpbmUgdXBydl9kbF9z
eW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfc3ltKQorI2RlZmluZSB1cHJ2X2Rs
c3ltX2Z1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxzeW1fZnVuYykKICNkZWZp
bmUgdXBydl9lYXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWFzdHJuY3B5
KQogI2RlZmluZSB1cHJ2X2ViY2RpY0Zyb21Bc2NpaSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9lYmNkaWNGcm9tQXNjaWkpCisjZGVmaW5lIHVwcnZfZWJjZGljVG9Mb3dlcmNhc2VBc2Np
aSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYmNkaWNUb0xvd2VyY2FzZUFzY2lpKQog
I2RlZmluZSB1cHJ2X2ViY2RpY3RvbG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZf
ZWJjZGljdG9sb3dlcikKICNkZWZpbmUgdXBydl9mYWJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2ZhYnMpCiAjZGVmaW5lIHVwcnZfZmxvb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfZmxvb3IpCkBAIC0xMjk1LDEzICsxMzQzLDEzIEBACiAjZGVmaW5lIHVwcnZfaW5pdF9j
b2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pbml0X2NvbGxJdGVyYXRl
KQogI2RlZmluZSB1cHJ2X2luaXRfcGNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lu
aXRfcGNlKQogI2RlZmluZSB1cHJ2X2ludDMyQ29tcGFyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9pbnQzMkNvbXBhcmF0b3IpCisjZGVmaW5lIHVwcnZfaXNBU0NJSUxldHRlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0FTQ0lJTGV0dGVyKQogI2RlZmluZSB1cHJ2
X2lzSW5maW5pdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNJbmZpbml0ZSkKICNk
ZWZpbmUgdXBydl9pc0ludmFyaWFudFN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9pc0ludmFyaWFudFN0cmluZykKICNkZWZpbmUgdXBydl9pc0ludmFyaWFudFVTdHJpbmcgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNJbnZhcmlhbnRVU3RyaW5nKQogI2RlZmluZSB1
cHJ2X2lzTmFOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzTmFOKQogI2RlZmluZSB1
cHJ2X2lzTmVnYXRpdmVJbmZpbml0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc05l
Z2F0aXZlSW5maW5pdHkpCiAjZGVmaW5lIHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzUG9zaXRpdmVJbmZpbml0eSkKLSNkZWZpbmUgdXBydl9p
c1J1bGVXaGl0ZVNwYWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzUnVsZVdoaXRl
U3BhY2UpCiAjZGVmaW5lIHVwcnZfaXRvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9p
dG91KQogI2RlZmluZSB1cHJ2X2xvZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9sb2cp
CiAjZGVmaW5lIHVwcnZfbWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X21hbGxv
YykKQEAgLTEzMTIsNyArMTM2MCw2IEBACiAjZGVmaW5lIHVwcnZfbWluIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X21pbikKICNkZWZpbmUgdXBydl9tb2RmIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X21vZGYpCiAjZGVmaW5lIHVwcnZfbmV3X2NvbGxJdGVyYXRlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X25ld19jb2xsSXRlcmF0ZSkKLSNkZWZpbmUgdXBydl9vcGVu
UnVsZVdoaXRlU3BhY2VTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfb3BlblJ1bGVX
aGl0ZVNwYWNlU2V0KQogI2RlZmluZSB1cHJ2X3BhcnNlQ3VycmVuY3kgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfcGFyc2VDdXJyZW5jeSkKICNkZWZpbmUgdXBydl9wYXRoSXNBYnNvbHV0
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wYXRoSXNBYnNvbHV0ZSkKICNkZWZpbmUg
dXBydl9wb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcG93KQpAQCAtMTMyMCw5ICsx
MzY3LDEyIEBACiAjZGVmaW5lIHVwcnZfcmVhbGxvYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9yZWFsbG9jKQogI2RlZmluZSB1cHJ2X3JvdW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X3JvdW5kKQogI2RlZmluZSB1cHJ2X3NvcnRBcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9zb3J0QXJyYXkpCisjZGVmaW5lIHVwcnZfc3RhYmxlQmluYXJ5U2VhcmNoIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0YWJsZUJpbmFyeVNlYXJjaCkKICNkZWZpbmUg
dXBydl9zdHJDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0ckNvbXBhcmUp
CiAjZGVmaW5lIHVwcnZfc3RyZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0cmR1
cCkKKyNkZWZpbmUgdXBydl9zdHJpY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0
cmljbXApCiAjZGVmaW5lIHVwcnZfc3RybmR1cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9zdHJuZHVwKQorI2RlZmluZSB1cHJ2X3N0cm5pY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X3N0cm5pY21wKQogI2RlZmluZSB1cHJ2X3N5bnRheEVycm9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cHJ2X3N5bnRheEVycm9yKQogI2RlZmluZSB1cHJ2X3RpbWV6b25lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3RpbWV6b25lKQogI2RlZmluZSB1cHJ2X3RvdXBwZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfdG91cHBlcikKQEAgLTEzODYsNiArMTQzNiw3
IEBACiAjZGVmaW5lIHVyZWdleF9vcGVuVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVy
ZWdleF9vcGVuVVRleHQpCiAjZGVmaW5lIHVyZWdleF9wYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVnZXhfcGF0dGVybikKICNkZWZpbmUgdXJlZ2V4X3BhdHRlcm5VVGV4dCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3BhdHRlcm5VVGV4dCkKKyNkZWZpbmUgdXJlZ2V4
X3JlZnJlc2hVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZnJlc2hVVGV4
dCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvbkVuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJl
Z2V4X3JlZ2lvbkVuZCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvbkVuZDY0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cmVnZXhfcmVnaW9uRW5kNjQpCiAjZGVmaW5lIHVyZWdleF9yZWdpb25TdGFy
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZ2lvblN0YXJ0KQpAQCAtMTQxNCw2
ICsxNDY1LDE5IEBACiAjZGVmaW5lIHVyZWdleF91c2VBbmNob3JpbmdCb3VuZHMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVyZWdleF91c2VBbmNob3JpbmdCb3VuZHMpCiAjZGVmaW5lIHVyZWdl
eF91c2VUcmFuc3BhcmVudEJvdW5kcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3Vz
ZVRyYW5zcGFyZW50Qm91bmRzKQogI2RlZmluZSB1cmVnZXhfdXRleHRfdW5lc2NhcGVfY2hhckF0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXRleHRfdW5lc2NhcGVfY2hhckF0KQor
I2RlZmluZSB1cmVnaW9uX2FyZUVxdWFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9u
X2FyZUVxdWFsKQorI2RlZmluZSB1cmVnaW9uX2NvbnRhaW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnaW9uX2NvbnRhaW5zKQorI2RlZmluZSB1cmVnaW9uX2dldEF2YWlsYWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRBdmFpbGFibGUpCisjZGVmaW5lIHVyZWdp
b25fZ2V0Q29udGFpbmVkUmVnaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9n
ZXRDb250YWluZWRSZWdpb25zKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnNP
ZlR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9u
c09mVHlwZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluaW5nUmVnaW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb24pCisjZGVmaW5lIHVyZWdp
b25fZ2V0Q29udGFpbmluZ1JlZ2lvbk9mVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJl
Z2lvbl9nZXRDb250YWluaW5nUmVnaW9uT2ZUeXBlKQorI2RlZmluZSB1cmVnaW9uX2dldE51bWVy
aWNDb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldE51bWVyaWNDb2RlKQor
I2RlZmluZSB1cmVnaW9uX2dldFByZWZlcnJlZFZhbHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXJlZ2lvbl9nZXRQcmVmZXJyZWRWYWx1ZXMpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9u
Q29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Db2RlKQorI2Rl
ZmluZSB1cmVnaW9uX2dldFJlZ2lvbkZyb21Db2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnaW9uX2dldFJlZ2lvbkZyb21Db2RlKQorI2RlZmluZSB1cmVnaW9uX2dldFJlZ2lvbkZyb21O
dW1lcmljQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Gcm9t
TnVtZXJpY0NvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXJlZ2lvbl9nZXRUeXBlKQogI2RlZmluZSB1cmVzX2Nsb3NlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cmVzX2Nsb3NlKQogI2RlZmluZSB1cmVzX2NvcHlSZXNiIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVzX2NvcHlSZXNiKQogI2RlZmluZSB1cmVzX2NvdW50QXJyYXlJdGVt
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jb3VudEFycmF5SXRlbXMpCkBAIC0xNDU3
LDEzICsxNTIxLDE5IEBACiAjZGVmaW5lIHVyZXNfb3BlblUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVyZXNfb3BlblUpCiAjZGVmaW5lIHVyZXNfcmVzZXRJdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXJlc19yZXNldEl0ZXJhdG9yKQogI2RlZmluZSB1cmVzX3N3YXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfc3dhcCkKKyNkZWZpbmUgdXNjcmlwdF9icmVha3NCZXR3
ZWVuTGV0dGVycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9icmVha3NCZXR3ZWVu
TGV0dGVycykKICNkZWZpbmUgdXNjcmlwdF9jbG9zZVJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXNjcmlwdF9jbG9zZVJ1bikKICNkZWZpbmUgdXNjcmlwdF9nZXRDb2RlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldENvZGUpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0TmFtZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXROYW1lKQorI2RlZmluZSB1c2NyaXB0
X2dldFNhbXBsZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTYW1w
bGVTdHJpbmcpCisjZGVmaW5lIHVzY3JpcHRfZ2V0U2FtcGxlVW5pY29kZVN0cmluZyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3RyaW5nKQogI2RlZmlu
ZSB1c2NyaXB0X2dldFNjcmlwdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRT
Y3JpcHQpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zKQogI2RlZmluZSB1c2NyaXB0
X2dldFNob3J0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRTaG9ydE5h
bWUpCisjZGVmaW5lIHVzY3JpcHRfZ2V0VXNhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
Y3JpcHRfZ2V0VXNhZ2UpCiAjZGVmaW5lIHVzY3JpcHRfaGFzU2NyaXB0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c2NyaXB0X2hhc1NjcmlwdCkKKyNkZWZpbmUgdXNjcmlwdF9pc0Nhc2VkIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lzQ2FzZWQpCisjZGVmaW5lIHVzY3JpcHRf
aXNSaWdodFRvTGVmdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9pc1JpZ2h0VG9M
ZWZ0KQogI2RlZmluZSB1c2NyaXB0X25leHRSdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
Y3JpcHRfbmV4dFJ1bikKICNkZWZpbmUgdXNjcmlwdF9vcGVuUnVuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c2NyaXB0X29wZW5SdW4pCiAjZGVmaW5lIHVzY3JpcHRfcmVzZXRSdW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfcmVzZXRSdW4pCkBAIC0xNTY3LDYgKzE2MzcsMTEg
QEAKICNkZWZpbmUgdXNwb29mX2dldEFsbG93ZWRMb2NhbGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3Bvb2ZfZ2V0QWxsb3dlZExvY2FsZXMpCiAjZGVmaW5lIHVzcG9vZl9nZXRBbGxvd2Vk
VW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEFsbG93ZWRVbmlj
b2RlU2V0KQogI2RlZmluZSB1c3Bvb2ZfZ2V0Q2hlY2tzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c3Bvb2ZfZ2V0Q2hlY2tzKQorI2RlZmluZSB1c3Bvb2ZfZ2V0SW5jbHVzaW9uU2V0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0SW5jbHVzaW9uU2V0KQorI2RlZmluZSB1c3Bv
b2ZfZ2V0SW5jbHVzaW9uVW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29m
X2dldEluY2x1c2lvblVuaWNvZGVTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZWNvbW1lbmRlZFNl
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlY29tbWVuZGVkU2V0KQorI2Rl
ZmluZSB1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRVbmljb2RlU2V0KQorI2RlZmluZSB1c3Bvb2ZfZ2V0
UmVzdHJpY3Rpb25MZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlc3Ry
aWN0aW9uTGV2ZWwpCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXNwb29mX2dldFNrZWxldG9uKQogI2RlZmluZSB1c3Bvb2ZfZ2V0U2tlbGV0b25V
VEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0b25VVEY4KQogI2Rl
ZmluZSB1c3Bvb2ZfZ2V0U2tlbGV0b25Vbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0b25Vbmljb2RlU3RyaW5nKQpAQCAtMTU3OCwyMyArMTY1Mywy
NSBAQAogI2RlZmluZSB1c3Bvb2Zfc2V0QWxsb3dlZExvY2FsZXMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9zZXRBbGxvd2VkTG9jYWxlcykKICNkZWZpbmUgdXNwb29mX3NldEFsbG93
ZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0QWxsb3dlZFVu
aWNvZGVTZXQpCiAjZGVmaW5lIHVzcG9vZl9zZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzcG9vZl9zZXRDaGVja3MpCisjZGVmaW5lIHVzcG9vZl9zZXRSZXN0cmljdGlvbkxldmVs
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0UmVzdHJpY3Rpb25MZXZlbCkKICNk
ZWZpbmUgdXNwb29mX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zd2FwKQog
I2RlZmluZSB1c3ByZXBfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9jbG9z
ZSkKICNkZWZpbmUgdXNwcmVwX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9v
cGVuKQogI2RlZmluZSB1c3ByZXBfb3BlbkJ5VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXNwcmVwX29wZW5CeVR5cGUpCiAjZGVmaW5lIHVzcHJlcF9wcmVwYXJlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c3ByZXBfcHJlcGFyZSkKICNkZWZpbmUgdXNwcmVwX3N3YXAgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzcHJlcF9zd2FwKQotI2RlZmluZSB1c3RyX2ZvbGRDYXNlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2ZvbGRDYXNlKQotI2RlZmluZSB1c3RyX3RvTG93ZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfdG9Mb3dlcikKLSNkZWZpbmUgdXN0cl90b1Rp
dGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvVGl0bGUpCi0jZGVmaW5lIHVzdHJf
dG9VcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90b1VwcGVyKQotI2RlZmluZSB1
dGV4dF9jYXNlQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2FzZUNvbXBh
cmUpCi0jZGVmaW5lIHV0ZXh0X2Nhc2VDb21wYXJlTmF0aXZlTGltaXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHV0ZXh0X2Nhc2VDb21wYXJlTmF0aXZlTGltaXQpCisjZGVmaW5lIHVzdHJfaGFz
aENoYXJzTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl9oYXNoQ2hhcnNOKQorI2RlZmlu
ZSB1c3RyX2hhc2hJQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2hhc2hJQ2hh
cnNOKQorI2RlZmluZSB1c3RyX2hhc2hVQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3RyX2hhc2hVQ2hhcnNOKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5hbEZvbGQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsRm9sZCkKKyNkZWZpbmUgdXN0cmNhc2Vf
aW50ZXJuYWxUb0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5h
bFRvTG93ZXIpCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9UaXRsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJuYWxUb1RpdGxlKQorI2RlZmluZSB1c3RyY2FzZV9p
bnRlcm5hbFRvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFs
VG9VcHBlcikKKyNkZWZpbmUgdXN0cmNhc2VfbWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c3RyY2FzZV9tYXApCisjZGVmaW5lIHVzdHJjYXNlX3NldFRlbXBDYXNlTWFwTG9jYWxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9zZXRUZW1wQ2FzZU1hcExvY2FsZSkKICNkZWZp
bmUgdXRleHRfY2hhcjMyQXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NoYXIzMkF0
KQogI2RlZmluZSB1dGV4dF9jbG9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2xv
bmUpCiAjZGVmaW5lIHV0ZXh0X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9j
bG9zZSkKLSNkZWZpbmUgdXRleHRfY29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRl
eHRfY29tcGFyZSkKLSNkZWZpbmUgdXRleHRfY29tcGFyZU5hdGl2ZUxpbWl0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1dGV4dF9jb21wYXJlTmF0aXZlTGltaXQpCiAjZGVmaW5lIHV0ZXh0X2Nv
cHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvcHkpCiAjZGVmaW5lIHV0ZXh0X2N1
cnJlbnQzMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY3VycmVudDMyKQogI2RlZmlu
ZSB1dGV4dF9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2VxdWFscykKQEAg
LTE3NDMsNDk5ICsxODIwLDYgQEAKICNkZWZpbmUgenRyYW5zX3NldFRpbWUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHp0cmFuc19zZXRUaW1lKQogI2RlZmluZSB6dHJhbnNfc2V0VG8gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHp0cmFuc19zZXRUbykKIAotCi0vKiBDKysgY2xhc3MgbmFtZXMg
cmVuYW1pbmcgZGVmaW5lcyAqLwotCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCi0jaWYgIVVfSEFWRV9O
QU1FU1BBQ0UKLQotI2RlZmluZSBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uKQotI2RlZmluZSBBbHRlcm5h
dGVTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQWx0ZXJuYXRl
U3Vic3RpdHV0aW9uU3VidGFibGUpCi0jZGVmaW5lIEFuY2hvclRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShBbmNob3JUYWJsZSkKLSNkZWZpbmUgQW5kQ29uc3RyYWludCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQW5kQ29uc3RyYWludCkKLSNkZWZpbmUgQW5udWFsVGltZVpvbmVSdWxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbm51YWxUaW1lWm9uZVJ1bGUpCi0jZGVmaW5lIEFu
eVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbnlUcmFuc2xpdGVyYXRv
cikKLSNkZWZpbmUgQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBBcmFiaWNTaGFwaW5n
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBcmFiaWNTaGFwaW5nKQotI2RlZmluZSBBcmdFeHRy
YWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFyZ0V4dHJhY3RvcikKLSNkZWZpbmUgQk1Q
U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCTVBTZXQpCi0jZGVmaW5lIEJhY2t3YXJkVVRy
aWUyU3RyaW5nSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhY2t3YXJkVVRyaWUy
U3RyaW5nSXRlcmF0b3IpCi0jZGVmaW5lIEJhZENoYXJhY3RlclRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShCYWRDaGFyYWN0ZXJUYWJsZSkKLSNkZWZpbmUgQmFzaWNDYWxlbmRhckZhY3Rv
cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhc2ljQ2FsZW5kYXJGYWN0b3J5KQotI2RlZmlu
ZSBCYXNpY1RpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCYXNpY1RpbWVab25lKQot
I2RlZmluZSBCaW5hcnlTZWFyY2hMb29rdXBUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QmluYXJ5U2VhcmNoTG9va3VwVGFibGUpCi0jZGVmaW5lIEJveWVyTW9vcmVTZWFyY2ggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEJveWVyTW9vcmVTZWFyY2gpCi0jZGVmaW5lIEJyZWFrSXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJyZWFrSXRlcmF0b3IpCi0jZGVmaW5lIEJyZWFr
VHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJyZWFrVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIEJ1ZGRoaXN0Q2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1
ZGRoaXN0Q2FsZW5kYXIpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVIb3Jpem9udGFsTm9kZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRDb21wYWN0VHJpZUhvcml6b250YWxOb2RlKQot
I2RlZmluZSBCdWlsZENvbXBhY3RUcmllTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVp
bGRDb21wYWN0VHJpZU5vZGUpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVWZXJ0aWNhbE5vZGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFjdFRyaWVWZXJ0aWNhbE5vZGUpCi0j
ZGVmaW5lIEJ1aWxkZXJTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkZXJT
Y3JpcHRTZXQpCi0jZGVmaW5lIEJ5dGVTaW5rIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCeXRl
U2luaykKLSNkZWZpbmUgQ0VCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFQnVmZmVy
KQotI2RlZmluZSBDRUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDRUNhbGVuZGFy
KQotI2RlZmluZSBDRUxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFTGlzdCkKLSNkZWZp
bmUgQ0VUb1N0cmluZ3NNYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFVG9TdHJpbmdzTWFw
KQotI2RlZmluZSBDRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0ZhY3RvcnkpCi0j
ZGVmaW5lIENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhcikKLSNkZWZp
bmUgQ2FsZW5kYXJBc3Ryb25vbWVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckFz
dHJvbm9tZXIpCi0jZGVmaW5lIENhbGVuZGFyQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENhbGVuZGFyQ2FjaGUpCi0jZGVmaW5lIENhbGVuZGFyRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2FsZW5kYXJEYXRhKQotI2RlZmluZSBDYWxlbmRhclNlcnZpY2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENhbGVuZGFyU2VydmljZSkKLSNkZWZpbmUgQ2Fub25JdGVyRGF0YSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2Fub25JdGVyRGF0YSkKLSNkZWZpbmUgQ2Fub25JdGVyRGF0
YVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2Fub25JdGVyRGF0YVNpbmdsZXRv
bikKLSNkZWZpbmUgQ2Fub25NYXJrRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5v
bk1hcmtGaWx0ZXIpCi0jZGVmaW5lIENhbm9uU2hhcGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2Fub25TaGFwaW5nKQotI2RlZmluZSBDYW5vbmljYWxJdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2Fub25pY2FsSXRlcmF0b3IpCi0jZGVmaW5lIENhc2VNYXBUcmFuc2xpdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yKQotI2Rl
ZmluZSBDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFT
dWJ0YWJsZSkKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1
YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0
dXRpb25Gb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1
dGlvbkZvcm1hdDNTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdDb250
ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlKQotI2RlZmluZSBDaGFpbmluZ0NvbnRl
eHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5p
bmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUpCi0jZGVmaW5lIENoYXJTdHJpbmcgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJTdHJpbmcpCi0jZGVmaW5lIENoYXJTdWJzdGl0dXRp
b25GaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJTdWJzdGl0dXRpb25GaWx0ZXIp
Ci0jZGVmaW5lIENoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
YWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgQ2hhcmFjdGVyTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcmFjdGVyTm9kZSkKLSNkZWZpbmUgQ2hhcnNldERldGVjdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0RGV0ZWN0b3IpCi0jZGVmaW5lIENoYXJzZXRNYXRjaCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldE1hdGNoKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
MjAyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjIpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ18yMDIyQ04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z18yMDIyQ04pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIySlAgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ18yMDIySlApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIyS1Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ18yMDIyS1IpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184
ODU5XzEpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZGEgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfZGEpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5
XzFfZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfZGUpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ184ODU5XzFfZW4pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfZXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfZXMpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzFfZnIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z184ODU5XzFfZnIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfaXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfaXQpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z184ODU5XzFfbmwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFf
bmwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFfbm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYXJzZXRSZWNvZ184ODU5XzFfbm8pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzFf
cHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzFfcHQpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ184ODU5XzFfc3YgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ184ODU5XzFfc3YpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzIpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z184ODU5XzJfY3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzJf
Y3MpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzJfaHUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYXJzZXRSZWNvZ184ODU5XzJfaHUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzJf
cGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzJfcGwpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ184ODU5XzJfcm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ184ODU5XzJfcm8pCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzUpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z184ODU5XzVfcnUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzVf
cnUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ184ODU5XzYpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzZfYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzZfYXIpCi0jZGVmaW5lIENo
YXJzZXRSZWNvZ184ODU5XzcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184
ODU5XzcpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzdfZWwgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzdfZWwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5
XzggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzgpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ184ODU5XzhfSV9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nXzg4NTlfOF9JX2hlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV84X2hlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV84X2hlKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfODg1OV85IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1
OV85KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV85X3RyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfODg1OV85X3RyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDIw
X2FyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyKQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX2x0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhcnNldFJlY29nX0lCTTQyMF9hcl9sdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBf
YXJfcnRsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX3J0
bCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nX0lCTTQyNF9oZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9o
ZV9sdHIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGVfbHRy
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX3J0bCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9ydGwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19L
T0k4X1IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19LT0k4X1IpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ19VVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfVVRGOCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8xNl9CRSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8xNl9CRSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VU
Rl8xNl9MRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8xNl9MRSkK
LSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8zMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nX1VURl8zMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURl8zMl9CRSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURl8zMl9CRSkKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nX1VURl8zMl9MRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VU
Rl8zMl9MRSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VuaWNvZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ19Vbmljb2RlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfYmlnNSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2JpZzUpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ19ldWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19ldWMpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ19ldWNfanAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ19ldWNfanApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19ldWNfa3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19ldWNfa3IpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19n
Yl8xODAzMCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2diXzE4MDMwKQot
I2RlZmluZSBDaGFyc2V0UmVjb2dfbWJjcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nX21iY3MpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19zYmNzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfc2JjcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3NqaXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19zamlzKQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfd2luZG93c18xMjUxIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
d2luZG93c18xMjUxKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfd2luZG93c18xMjU2IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfd2luZG93c18xMjU2KQotI2RlZmluZSBDaGFy
c2V0UmVjb2duaXplciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nbml6ZXIp
Ci0jZGVmaW5lIENoZWNrZWRBcnJheUJ5dGVTaW5rIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGVja2VkQXJyYXlCeXRlU2luaykKLSNkZWZpbmUgQ2hpbmVzZUNhbGVuZGFyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGluZXNlQ2FsZW5kYXIpCi0jZGVmaW5lIENob2ljZUZvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hvaWNlRm9ybWF0KQotI2RlZmluZSBDbGFzc0RlZkZvcm1h
dDFUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZGb3JtYXQxVGFibGUpCi0j
ZGVmaW5lIENsYXNzRGVmRm9ybWF0MlRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFz
c0RlZkZvcm1hdDJUYWJsZSkKLSNkZWZpbmUgQ2xhc3NEZWZpbml0aW9uVGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENsYXNzRGVmaW5pdGlvblRhYmxlKQotI2RlZmluZSBDbG9ja01hdGgg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENsb2NrTWF0aCkKLSNkZWZpbmUgQ29sbERhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxEYXRhKQotI2RlZmluZSBDb2xsRGF0YUNhY2hlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsRGF0YUNhY2hlKQotI2RlZmluZSBDb2xsRGF0YUNh
Y2hlRW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxEYXRhQ2FjaGVFbnRyeSkKLSNk
ZWZpbmUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b2xsYXRpb25FbGVtZW50SXRlcmF0b3IpCi0jZGVmaW5lIENvbGxhdGlvbktleSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uS2V5KQotI2RlZmluZSBDb2xsYXRpb25Mb2NhbGVMaXN0
RW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbkxvY2FsZUxpc3RF
bnVtZXJhdGlvbikKLSNkZWZpbmUgQ29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENv
bGxhdG9yKQotI2RlZmluZSBDb2xsYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENvbGxhdG9yRmFjdG9yeSkKLSNkZWZpbmUgQ29tcGFjdFRyaWVEaWN0aW9uYXJ5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb21wYWN0VHJpZURpY3Rpb25hcnkpCi0jZGVmaW5lIENvbXBhY3RU
cmllRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBhY3RUcmllRW51bWVy
YXRpb24pCi0jZGVmaW5lIENvbXBvc2VOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ29tcG9zZU5vcm1hbGl6ZXIyKQotI2RlZmluZSBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBD
b25mdXNhYmxlZGF0YUJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbmZ1c2FibGVk
YXRhQnVpbGRlcikKLSNkZWZpbmUgQ29udGV4dHVhbEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9j
ZXNzb3IpCi0jZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25CYXNlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uQmFzZSkKLSNkZWZpbmUgQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29u
dGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1
YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4
dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0
aXR1dGlvbkZvcm1hdDNTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkZvcm1hdDNTdWJ0YWJsZSkKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1
dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0
aW9uU3VidGFibGUpCi0jZGVmaW5lIENvcHRpY0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb3B0aWNDYWxlbmRhcikKLSNkZWZpbmUgQ292ZXJhZ2VGb3JtYXQxVGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvdmVyYWdlRm9ybWF0MVRhYmxlKQotI2RlZmluZSBDb3ZlcmFn
ZUZvcm1hdDJUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VGb3JtYXQyVGFi
bGUpCi0jZGVmaW5lIENvdmVyYWdlVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvdmVy
YWdlVGFibGUpCi0jZGVmaW5lIEN1cnJlbmN5QW1vdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDdXJyZW5jeUFtb3VudCkKLSNkZWZpbmUgQ3VycmVuY3lGb3JtYXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEN1cnJlbmN5Rm9ybWF0KQotI2RlZmluZSBDdXJyZW5jeVBsdXJhbEluZm8gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5UGx1cmFsSW5mbykKLSNkZWZpbmUgQ3VycmVu
Y3lVbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeVVuaXQpCi0jZGVmaW5lIEN1
cnNpdmVBdHRhY2htZW50U3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnNpdmVB
dHRhY2htZW50U3VidGFibGUpCi0jZGVmaW5lIERUUmVkdW5kYW50RW51bWVyYXRpb24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKERUUmVkdW5kYW50RW51bWVyYXRpb24pCi0jZGVmaW5lIERUU2tl
bGV0b25FbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRFRTa2VsZXRvbkVudW1l
cmF0aW9uKQotI2RlZmluZSBEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRl
Rm9ybWF0KQotI2RlZmluZSBEYXRlRm9ybWF0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRGF0ZUZvcm1hdFN5bWJvbHMpCi0jZGVmaW5lIERhdGVJbnRlcnZhbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRGF0ZUludGVydmFsKQotI2RlZmluZSBEYXRlSW50ZXJ2YWxGb3JtYXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVJbnRlcnZhbEZvcm1hdCkKLSNkZWZpbmUgRGF0ZUlu
dGVydmFsSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZUludGVydmFsSW5mbykKLSNk
ZWZpbmUgRGF0ZVRpbWVNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZU1h
dGNoZXIpCi0jZGVmaW5lIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKQotI2RlZmluZSBEYXRlVGltZVJ1bGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lUnVsZSkKLSNkZWZpbmUgRGVjaW1hbEZv
cm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1hbEZvcm1hdCkKLSNkZWZpbmUgRGVj
aW1hbEZvcm1hdFN5bWJvbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY2ltYWxGb3JtYXRT
eW1ib2xzKQotI2RlZmluZSBEZWNvbXBvc2VOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGVjb21wb3NlTm9ybWFsaXplcjIpCi0jZGVmaW5lIERlZmF1bHRDYWxlbmRhckZhY3Rv
cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlZmF1bHRDYWxlbmRhckZhY3RvcnkpCi0jZGVm
aW5lIERlZmF1bHRDaGFyTWFwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWZhdWx0Q2hh
ck1hcHBlcikKLSNkZWZpbmUgRGV2aWNlVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERl
dmljZVRhYmxlKQotI2RlZmluZSBEaWN0aW9uYXJ5QnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKERpY3Rpb25hcnlCcmVha0VuZ2luZSkKLSNkZWZpbmUgRGlnaXRMaXN0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShEaWdpdExpc3QpCi0jZGVmaW5lIERpc3RhbmNlSW5mbyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoRGlzdGFuY2VJbmZvKQotI2RlZmluZSBFbnVtVG9PZmZzZXQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEVudW1Ub09mZnNldCkKLSNkZWZpbmUgRXJyb3JDb2Rl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFcnJvckNvZGUpCi0jZGVmaW5lIEVzY2FwZVRyYW5z
bGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFc2NhcGVUcmFuc2xpdGVyYXRvcikK
LSNkZWZpbmUgRXRoaW9waWNDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXRoaW9w
aWNDYWxlbmRhcikKLSNkZWZpbmUgRXZlbnRMaXN0ZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRXZlbnRMaXN0ZW5lcikKLSNkZWZpbmUgRXh0ZW5zaW9uU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEV4dGVuc2lvblN1YnRhYmxlKQotI2RlZmluZSBGQ0ROb3JtYWxpemVyMiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRkNETm9ybWFsaXplcjIpCi0jZGVmaW5lIEZDRFRyaWVT
aW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZDRFRyaWVTaW5nbGV0b24pCi0jZGVm
aW5lIEZlYXR1cmVMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZlYXR1cmVMaXN0
VGFibGUpCi0jZGVmaW5lIEZpZWxkUG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZp
ZWxkUG9zaXRpb24pCi0jZGVmaW5lIEZpZWxkUG9zaXRpb25IYW5kbGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uSGFuZGxlcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkl0
ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uSXRlcmF0b3IpCi0j
ZGVmaW5lIEZpZWxkUG9zaXRpb25JdGVyYXRvckhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZpZWxkUG9zaXRpb25JdGVyYXRvckhhbmRsZXIpCi0jZGVmaW5lIEZpZWxkUG9zaXRpb25P
bmx5SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbk9ubHlIYW5k
bGVyKQotI2RlZmluZSBGaWx0ZXJlZE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShGaWx0ZXJlZE5vcm1hbGl6ZXIyKQotI2RlZmluZSBGb250UnVucyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRm9udFJ1bnMpCi0jZGVmaW5lIEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRm9ybWF0KQotI2RlZmluZSBGb3JtYXQxQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEZvcm1hdDFBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0MkFuY2hvclRhYmxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQyQW5jaG9yVGFibGUpCi0jZGVmaW5lIEZvcm1h
dDNBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0M0FuY2hvclRhYmxl
KQotI2RlZmluZSBGb3JtYXROYW1lRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEZvcm1hdE5hbWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgRm9ybWF0UGFyc2VyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShGb3JtYXRQYXJzZXIpCi0jZGVmaW5lIEZvcm1hdHRhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShGb3JtYXR0YWJsZSkKLSNkZWZpbmUgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Ip
Ci0jZGVmaW5lIEZvcndhcmRVVHJpZTJTdHJpbmdJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRm9yd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yKQotI2RlZmluZSBGcmFjdGlvbmFsUGFy
dFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRnJhY3Rpb25hbFBhcnRTdWJz
dGl0dXRpb24pCi0jZGVmaW5lIEZ1bmN0aW9uUmVwbGFjZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZ1bmN0aW9uUmVwbGFjZXIpCi0jZGVmaW5lIEdERUZNYXJrRmlsdGVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShHREVGTWFya0ZpbHRlcikKLSNkZWZpbmUgR1hMYXlvdXRFbmdpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEdYTGF5b3V0RW5naW5lKQotI2RlZmluZSBHbHlwaERlZmlu
aXRpb25UYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhEZWZpbml0aW9u
VGFibGVIZWFkZXIpCi0jZGVmaW5lIEdseXBoSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEdseXBoSXRlcmF0b3IpCi0jZGVmaW5lIEdseXBoTG9va3VwVGFibGVIZWFkZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEdseXBoTG9va3VwVGFibGVIZWFkZXIpCi0jZGVmaW5lIEdseXBo
UG9zaXRpb25BZGp1c3RtZW50cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlv
bkFkanVzdG1lbnRzKQotI2RlZmluZSBHbHlwaFBvc2l0aW9uaW5nTG9va3VwUHJvY2Vzc29yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uaW5nTG9va3VwUHJvY2Vzc29yKQot
I2RlZmluZSBHbHlwaFBvc2l0aW9uaW5nVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEdseXBoUG9zaXRpb25pbmdUYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhTdWJzdGl0dXRp
b25Mb29rdXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoU3Vic3RpdHV0
aW9uTG9va3VwUHJvY2Vzc29yKQotI2RlZmluZSBHbHlwaFN1YnN0aXR1dGlvblRhYmxlSGVhZGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFN1YnN0aXR1dGlvblRhYmxlSGVhZGVyKQot
I2RlZmluZSBHb29kU3VmZml4VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdvb2RTdWZm
aXhUYWJsZSkKLSNkZWZpbmUgR3JlZ28gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdyZWdvKQot
I2RlZmluZSBHcmVnb3JpYW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR3JlZ29y
aWFuQ2FsZW5kYXIpCi0jZGVmaW5lIEhhbk9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShIYW5PcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSGFuZ3VsT3Bl
blR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEhhbmd1bE9wZW5UeXBl
TGF5b3V0RW5naW5lKQotI2RlZmluZSBIZWJyZXdDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoSGVicmV3Q2FsZW5kYXIpCi0jZGVmaW5lIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeSkKLSNkZWZpbmUg
SUNVQnJlYWtJdGVyYXRvclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUJyZWFr
SXRlcmF0b3JTZXJ2aWNlKQotI2RlZmluZSBJQ1VDb2xsYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKElDVUNvbGxhdG9yRmFjdG9yeSkKLSNkZWZpbmUgSUNVQ29sbGF0b3JTZXJ2
aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VDb2xsYXRvclNlcnZpY2UpCi0jZGVmaW5l
IElDVURhdGFUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVRGF0YVRhYmxlKQotI2Rl
ZmluZSBJQ1VMYW5ndWFnZUJyZWFrRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNV
TGFuZ3VhZ2VCcmVha0ZhY3RvcnkpCi0jZGVmaW5lIElDVUxvY2FsZVNlcnZpY2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKElDVUxvY2FsZVNlcnZpY2UpCi0jZGVmaW5lIElDVU5vdGlmaWVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VOb3RpZmllcikKLSNkZWZpbmUgSUNVTnVtYmVyRm9y
bWF0RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTnVtYmVyRm9ybWF0RmFjdG9y
eSkKLSNkZWZpbmUgSUNVTnVtYmVyRm9ybWF0U2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoSUNVTnVtYmVyRm9ybWF0U2VydmljZSkKLSNkZWZpbmUgSUNVUmVzb3VyY2VCdW5kbGVGYWN0
b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkpCi0j
ZGVmaW5lIElDVVNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2UpCi0j
ZGVmaW5lIElDVVNlcnZpY2VGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VTZXJ2
aWNlRmFjdG9yeSkKLSNkZWZpbmUgSUNVU2VydmljZUtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoSUNVU2VydmljZUtleSkKLSNkZWZpbmUgSUNVX1V0aWxpdHkgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKElDVV9VdGlsaXR5KQotI2RlZmluZSBJRE5BIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShJRE5BKQotI2RlZmluZSBJbmRpYW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
SW5kaWFuQ2FsZW5kYXIpCi0jZGVmaW5lIEluZGljQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoSW5kaWNDbGFzc1RhYmxlKQotI2RlZmluZSBJbmRpY09wZW5UeXBlTGF5b3V0RW5n
aW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY09wZW5UeXBlTGF5b3V0RW5naW5lKQot
I2RlZmluZSBJbmRpY1JlYXJyYW5nZW1lbnRQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEluZGljUmVhcnJhbmdlbWVudFByb2Nlc3NvcikKLSNkZWZpbmUgSW5kaWNSZW9yZGVyaW5n
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY1Jlb3JkZXJpbmcpCi0jZGVmaW5lIEluaXRp
YWxUaW1lWm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluaXRpYWxUaW1lWm9uZVJ1
bGUpCi0jZGVmaW5lIElucHV0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5wdXRUZXh0
KQotI2RlZmluZSBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEludGVncmFsUGFydFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgSXNsYW1pY0NhbGVuZGFyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJc2xhbWljQ2FsZW5kYXIpCi0jZGVmaW5lIEl0ZXJhdGVk
Q2hhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSXRlcmF0ZWRDaGFyKQotI2RlZmluZSBKYXBh
bmVzZUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShKYXBhbmVzZUNhbGVuZGFyKQot
I2RlZmluZSBLZXJuVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtlcm5UYWJsZSkKLSNk
ZWZpbmUgS2V5d29yZEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShLZXl3b3Jk
RW51bWVyYXRpb24pCi0jZGVmaW5lIEtobWVyQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoS2htZXJDbGFzc1RhYmxlKQotI2RlZmluZSBLaG1lck9wZW5UeXBlTGF5b3V0RW5naW5l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShLaG1lck9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2Rl
ZmluZSBLaG1lclJlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyUmVvcmRl
cmluZykKLSNkZWZpbmUgTEVDaGFyTWFwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUNo
YXJNYXBwZXIpCi0jZGVmaW5lIExFRm9udEluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMRUZvbnRJbnN0YW5jZSkKLSNkZWZpbmUgTEVHbHlwaEZpbHRlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTEVHbHlwaEZpbHRlcikKLSNkZWZpbmUgTEVHbHlwaFN0b3JhZ2UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKExFR2x5cGhTdG9yYWdlKQotI2RlZmluZSBMRUluc2VydGlvbkNhbGxi
YWNrIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUluc2VydGlvbkNhbGxiYWNrKQotI2RlZmlu
ZSBMRUluc2VydGlvbkxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFSW5zZXJ0aW9uTGlz
dCkKLSNkZWZpbmUgTFhVdGlsaXRpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExYVXRpbGl0
aWVzKQotI2RlZmluZSBMYW5ndWFnZUJyZWFrRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMYW5ndWFnZUJyZWFrRW5naW5lKQotI2RlZmluZSBMYW5ndWFnZUJyZWFrRmFjdG9yeSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTGFuZ3VhZ2VCcmVha0ZhY3RvcnkpCi0jZGVmaW5lIExheW91
dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGF5b3V0RW5naW5lKQotI2RlZmluZSBM
aWdhdHVyZVN1YnN0aXR1dGlvblByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGln
YXR1cmVTdWJzdGl0dXRpb25Qcm9jZXNzb3IpCi0jZGVmaW5lIExpZ2F0dXJlU3Vic3RpdHV0aW9u
U3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExpZ2F0dXJlU3Vic3RpdHV0aW9uU3Vi
dGFibGUpCi0jZGVmaW5lIExvY0RhdGFQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExv
Y0RhdGFQYXJzZXIpCi0jZGVmaW5lIExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9j
YWxlKQotI2RlZmluZSBMb2NhbGVCYXNlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxl
QmFzZWQpCi0jZGVmaW5lIExvY2FsZURpc3BsYXlOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTG9jYWxlRGlzcGxheU5hbWVzKQotI2RlZmluZSBMb2NhbGVEaXNwbGF5TmFtZXNJbXBsIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVEaXNwbGF5TmFtZXNJbXBsKQotI2RlZmluZSBM
b2NhbGVLZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZUtleSkKLSNkZWZpbmUgTG9j
YWxlS2V5RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlS2V5RmFjdG9yeSkK
LSNkZWZpbmUgTG9jYWxlUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlUnVucykK
LSNkZWZpbmUgTG9jYWxlVXRpbGl0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlVXRp
bGl0eSkKLSNkZWZpbmUgTG9jYWxpemF0aW9uSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TG9jYWxpemF0aW9uSW5mbykKLSNkZWZpbmUgTG9va3VwTGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShMb29rdXBMaXN0VGFibGUpCi0jZGVmaW5lIExvb2t1cFByb2Nlc3NvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3VwUHJvY2Vzc29yKQotI2RlZmluZSBMb29rdXBTdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3VwU3VidGFibGUpCi0jZGVmaW5lIExv
b2t1cFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBUYWJsZSkKLSNkZWZpbmUg
TG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvd2VyY2Fz
ZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBNUHJlRml4dXBzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShNUHJlRml4dXBzKQotI2RlZmluZSBNYXJrQXJyYXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE1hcmtBcnJheSkKLSNkZWZpbmUgTWFya1RvQmFzZVBvc2l0aW9uaW5nU3VidGFibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKE1hcmtUb0Jhc2VQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2Rl
ZmluZSBNYXJrVG9MaWdhdHVyZVBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE1hcmtUb0xpZ2F0dXJlUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWFya1Rv
TWFya1Bvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1hcmtUb01h
cmtQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBNZWFzdXJlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShNZWFzdXJlKQotI2RlZmluZSBNZWFzdXJlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShNZWFzdXJlRm9ybWF0KQotI2RlZmluZSBNZWFzdXJlVW5pdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTWVhc3VyZVVuaXQpCi0jZGVmaW5lIE1lc3NhZ2VGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE1lc3NhZ2VGb3JtYXQpCi0jZGVmaW5lIE1lc3NhZ2VGb3JtYXRBZGFw
dGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZXNzYWdlRm9ybWF0QWRhcHRlcikKLSNkZWZp
bmUgTW9kdWx1c1N1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9kdWx1c1N1
YnN0aXR1dGlvbikKLSNkZWZpbmUgTW9vblJpc2VTZXRDb29yZEZ1bmMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE1vb25SaXNlU2V0Q29vcmRGdW5jKQotI2RlZmluZSBNb29uVGltZUFuZ2xlRnVu
YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9vblRpbWVBbmdsZUZ1bmMpCi0jZGVmaW5lIE1v
cnBoU3VidGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1vcnBoU3VidGFibGVI
ZWFkZXIpCi0jZGVmaW5lIE1vcnBoVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KE1vcnBoVGFibGVIZWFkZXIpCi0jZGVmaW5lIE11bHRpcGxlU3Vic3RpdHV0aW9uU3VidGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11bHRpcGxlU3Vic3RpdHV0aW9uU3VidGFibGUpCi0j
ZGVmaW5lIE11bHRpcGxpZXJTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11
bHRpcGxpZXJTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE11dGFibGVUcmllRGljdGlvbmFyeSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTXV0YWJsZVRyaWVEaWN0aW9uYXJ5KQotI2RlZmluZSBNdXRh
YmxlVHJpZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdXRhYmxlVHJpZUVu
dW1lcmF0aW9uKQotI2RlZmluZSBORkZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5G
RmFjdG9yeSkKLSNkZWZpbmUgTkZLREJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZL
REJ1ZmZlcikKLSNkZWZpbmUgTkZSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1bGUp
Ci0jZGVmaW5lIE5GUnVsZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZSdWxlU2V0KQot
I2RlZmluZSBORlN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZTdWJzdGl0
dXRpb24pCi0jZGVmaW5lIE5HcmFtUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOR3Jh
bVBhcnNlcikKLSNkZWZpbmUgTmFtZVRvRW51bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTmFt
ZVRvRW51bSkKLSNkZWZpbmUgTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTmFtZVVuaWNvZGVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTm9uQ29udGV4
dHVhbEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
b25Db250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IpCi0jZGVmaW5lIE5vbkNvbnRp
Z3VvdXNFbnVtVG9PZmZzZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vbkNvbnRpZ3VvdXNF
bnVtVG9PZmZzZXQpCi0jZGVmaW5lIE5vb3BOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTm9vcE5vcm1hbGl6ZXIyKQotI2RlZmluZSBOb3JtMkFsbE1vZGVzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShOb3JtMkFsbE1vZGVzKQotI2RlZmluZSBOb3JtYWxpemF0aW9uVHJhbnNs
aXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6YXRpb25UcmFuc2xpdGVy
YXRvcikKLSNkZWZpbmUgTm9ybWFsaXplciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFs
aXplcikKLSNkZWZpbmUgTm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1h
bGl6ZXIyKQotI2RlZmluZSBOb3JtYWxpemVyMkZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE5vcm1hbGl6ZXIyRmFjdG9yeSkKLSNkZWZpbmUgTm9ybWFsaXplcjJJbXBsIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyMkltcGwpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyV2l0
aEltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIyV2l0aEltcGwpCi0jZGVm
aW5lIE51bGxTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bGxTdWJzdGl0
dXRpb24pCi0jZGVmaW5lIE51bGxUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTnVsbFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE51bWJlckZvcm1hdCkKLSNkZWZpbmUgTnVtYmVyRm9ybWF0RmFjdG9yeSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVtYmVyRm9ybWF0RmFjdG9yeSkKLSNkZWZpbmUgTnVt
YmVyaW5nU3lzdGVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJpbmdTeXN0ZW0pCi0j
ZGVmaW5lIE51bWVyYXRvclN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVt
ZXJhdG9yU3Vic3RpdHV0aW9uKQotI2RlZmluZSBPbHNvblRpbWVab25lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShPbHNvblRpbWVab25lKQotI2RlZmluZSBPcGVuVHlwZUxheW91dEVuZ2luZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIE9w
ZW5UeXBlVXRpbGl0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPcGVuVHlwZVV0aWxpdGll
cykKLSNkZWZpbmUgT3JDb25zdHJhaW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPckNvbnN0
cmFpbnQpCi0jZGVmaW5lIFBDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUENFQnVm
ZmVyKQotI2RlZmluZSBQYWlyUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgUGFp
clBvc2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWly
UG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ1N1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWlyUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNk
ZWZpbmUgUGFyYWdyYXBoTGF5b3V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJhZ3JhcGhM
YXlvdXQpCi0jZGVmaW5lIFBhcnNlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFyc2VE
YXRhKQotI2RlZmluZSBQYXJzZVBvc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJz
ZVBvc2l0aW9uKQotI2RlZmluZSBQYXR0ZXJuTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQ
YXR0ZXJuTWFwKQotI2RlZmluZSBQYXR0ZXJuTWFwSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFBhdHRlcm5NYXBJdGVyYXRvcikKLSNkZWZpbmUgUGVyc2lhbkNhbGVuZGFyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShQZXJzaWFuQ2FsZW5kYXIpCi0jZGVmaW5lIFBsdXJhbEZvcm1h
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsRm9ybWF0KQotI2RlZmluZSBQbHVyYWxL
ZXl3b3JkRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBsdXJhbEtleXdvcmRF
bnVtZXJhdGlvbikKLSNkZWZpbmUgUGx1cmFsUnVsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFBsdXJhbFJ1bGVzKQotI2RlZmluZSBQcm9wZXJ0eUFsaWFzZXMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFByb3BlcnR5QWxpYXNlcykKLSNkZWZpbmUgUHRuRWxlbSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUHRuRWxlbSkKLSNkZWZpbmUgUHRuU2tlbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFB0blNrZWxldG9uKQotI2RlZmluZSBRdWFudGlmaWVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShRdWFudGlmaWVyKQotI2RlZmluZSBSQkJJRGF0YVdyYXBwZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFJCQklEYXRhV3JhcHBlcikKLSNkZWZpbmUgUkJCSU5vZGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFJCQklOb2RlKQotI2RlZmluZSBSQkJJUnVsZUJ1aWxkZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFJCQklSdWxlQnVpbGRlcikKLSNkZWZpbmUgUkJCSVJ1bGVTY2Fu
bmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJUnVsZVNjYW5uZXIpCi0jZGVmaW5lIFJC
QklTZXRCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJU2V0QnVpbGRlcikKLSNk
ZWZpbmUgUkJCSVN0YXRlRGVzY3JpcHRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN0
YXRlRGVzY3JpcHRvcikKLSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShSQkJJU3ltYm9sVGFibGUpCi0jZGVmaW5lIFJCQklTeW1ib2xUYWJsZUVudHJ5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJU3ltYm9sVGFibGVFbnRyeSkKLSNkZWZpbmUgUkJC
SVRhYmxlQnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVRhYmxlQnVpbGRlcikK
LSNkZWZpbmUgUkNFQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQ0VCdWZmZXIpCi0j
ZGVmaW5lIFJhbmdlRGVzY3JpcHRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmFuZ2VEZXNj
cmlwdG9yKQotI2RlZmluZSBSZWdleENvbXBpbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJl
Z2V4Q29tcGlsZSkKLSNkZWZpbmUgUmVnZXhNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSZWdleE1hdGNoZXIpCi0jZGVmaW5lIFJlZ2V4UGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUmVnZXhQYXR0ZXJuKQotI2RlZmluZSBSZWdleFN0YXRpY1NldHMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFJlZ2V4U3RhdGljU2V0cykKLSNkZWZpbmUgUmVndWxhckV4cHJlc3Npb24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ3VsYXJFeHByZXNzaW9uKQotI2RlZmluZSBSZWxh
dGl2ZURhdGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlbGF0aXZlRGF0ZUZvcm1h
dCkKLSNkZWZpbmUgUmVtb3ZlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFJlbW92ZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBSZW9yZGVyaW5nQnVmZmVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShSZW9yZGVyaW5nQnVmZmVyKQotI2RlZmluZSBSZXBsYWNlYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVwbGFjZWFibGUpCi0jZGVmaW5lIFJlcGxhY2VhYmxl
R2x1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVwbGFjZWFibGVHbHVlKQotI2RlZmluZSBS
ZXNvdXJjZUJ1bmRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVzb3VyY2VCdW5kbGUpCi0j
ZGVmaW5lIFJpc2VTZXRDb29yZEZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJpc2VTZXRD
b29yZEZ1bmMpCi0jZGVmaW5lIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVCYXNlZENvbGxh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRDb2xsYXRvcikKLSNkZWZpbmUg
UnVsZUJhc2VkTnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRO
dW1iZXJGb3JtYXQpCi0jZGVmaW5lIFJ1bGVCYXNlZFRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShSdWxlQmFzZWRUaW1lWm9uZSkKLSNkZWZpbmUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKQotI2Rl
ZmluZSBSdWxlQ2hhaW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVDaGFpbikKLSNkZWZp
bmUgUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQ2hh
cmFjdGVySXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVIYWxmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSdWxlSGFsZikKLSNkZWZpbmUgUnVsZVBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UnVsZVBhcnNlcikKLSNkZWZpbmUgUnVuQXJyYXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1
bkFycmF5KQotI2RlZmluZSBTUFVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNQVVN0
cmluZykKLSNkZWZpbmUgU1BVU3RyaW5nUG9vbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU1BV
U3RyaW5nUG9vbCkKLSNkZWZpbmUgU2FmZVpvbmVTdHJpbmdGb3JtYXRQdHIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNhZmVab25lU3RyaW5nRm9ybWF0UHRyKQotI2RlZmluZSBTYW1lVmFsdWVT
dWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNhbWVWYWx1ZVN1YnN0aXR1dGlv
bikKLSNkZWZpbmUgU2NyaXB0TGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTY3Jp
cHRMaXN0VGFibGUpCi0jZGVmaW5lIFNjcmlwdFJ1bkl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTY3JpcHRSdW5JdGVyYXRvcikKLSNkZWZpbmUgU2NyaXB0U2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTY3JpcHRTZXQpCi0jZGVmaW5lIFNjcmlwdFRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTY3JpcHRUYWJsZSkKLSNkZWZpbmUgU2VhcmNoSXRlcmF0b3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNlYXJjaEl0ZXJhdG9yKQotI2RlZmluZSBTZWdtZW50QXJyYXlQ
cm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlZ21lbnRBcnJheVByb2Nlc3NvcikK
LSNkZWZpbmUgU2VnbWVudFNpbmdsZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U2VnbWVudFNpbmdsZVByb2Nlc3NvcikKLSNkZWZpbmUgU2VsZWN0Rm9ybWF0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTZWxlY3RGb3JtYXQpCi0jZGVmaW5lIFNlcnZpY2VFbnVtZXJhdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VydmljZUVudW1lcmF0aW9uKQotI2RlZmluZSBTZXJ2
aWNlTGlzdGVuZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlcnZpY2VMaXN0ZW5lcikKLSNk
ZWZpbmUgU2ltcGxlQXJyYXlQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBs
ZUFycmF5UHJvY2Vzc29yKQotI2RlZmluZSBTaW1wbGVEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTaW1wbGVEYXRlRm9ybWF0KQotI2RlZmluZSBTaW1wbGVGYWN0b3J5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVGYWN0b3J5KQotI2RlZmluZSBTaW1wbGVMb2NhbGVL
ZXlGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVMb2NhbGVLZXlGYWN0b3J5
KQotI2RlZmluZSBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBTaW1wbGVTaW5nbGV0b24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZVNpbmdsZXRvbikKLSNkZWZpbmUgU2ltcGxl
VGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZVRpbWVab25lKQotI2RlZmlu
ZSBTaW5nbGVQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVBvc2l0
aW9uaW5nRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3Np
dGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdTdWJ0YWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNk
ZWZpbmUgU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIFNpbmds
ZVN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2lu
Z2xlU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRp
b25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlU3Vic3RpdHV0aW9uU3Vi
dGFibGUpCi0jZGVmaW5lIFNpbmdsZVRhYmxlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTaW5nbGVUYWJsZVByb2Nlc3NvcikKLSNkZWZpbmUgU3Bvb2ZEYXRhIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTcG9vZkRhdGEpCi0jZGVmaW5lIFNwb29mSW1wbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU3Bvb2ZJbXBsKQotI2RlZmluZSBTdGF0ZVRhYmxlUHJvY2Vzc29yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShTdGF0ZVRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IpCi0jZGVmaW5lIFN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTdHJpbmdFbnVtZXJhdGlvbikKLSNkZWZpbmUgU3RyaW5nTGlzdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU3RyaW5nTGlzdCkKLSNkZWZpbmUgU3RyaW5nTG9jYWxpemF0aW9uSW5mbyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nTG9jYWxpemF0aW9uSW5mbykKLSNkZWZpbmUg
U3RyaW5nTWF0Y2hlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nTWF0Y2hlcikKLSNk
ZWZpbmUgU3RyaW5nUGFpciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUGFpcikKLSNk
ZWZpbmUgU3RyaW5nUGllY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ1BpZWNlKQot
I2RlZmluZSBTdHJpbmdSZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUmVw
bGFjZXIpCi0jZGVmaW5lIFN0cmluZ1NlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Ry
aW5nU2VhcmNoKQotI2RlZmluZSBTdHJpbmdUb0NFc01hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoU3RyaW5nVG9DRXNNYXApCi0jZGVmaW5lIFN0eWxlUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU3R5bGVSdW5zKQotI2RlZmluZSBTdWJzdGl0dXRpb25Mb29rdXAgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFN1YnN0aXR1dGlvbkxvb2t1cCkKLSNkZWZpbmUgU3VidGFibGVQcm9jZXNz
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN1YnRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBT
dW5UaW1lQW5nbGVGdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdW5UaW1lQW5nbGVGdW5j
KQotI2RlZmluZSBTeW1ib2xUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3ltYm9sVGFi
bGUpCi0jZGVmaW5lIFRaRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRaRW51
bWVyYXRpb24pCi0jZGVmaW5lIFRhaXdhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUYWl3YW5DYWxlbmRhcikKLSNkZWZpbmUgVGFyZ2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUYXJnZXQpCi0jZGVmaW5lIFRlcm5hcnlOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
ZXJuYXJ5Tm9kZSkKLSNkZWZpbmUgVGV4dFRyaWVNYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRleHRUcmllTWFwKQotI2RlZmluZSBUZXh0VHJpZU1hcFNlYXJjaFJlc3VsdEhhbmRsZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFRleHRUcmllTWFwU2VhcmNoUmVzdWx0SGFuZGxlcikKLSNk
ZWZpbmUgVGhhaUJyZWFrRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaGFpQnJlYWtF
bmdpbmUpCi0jZGVmaW5lIFRoYWlMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRoYWlMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIFRoYWlTaGFwaW5nIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShUaGFpU2hhcGluZykKLSNkZWZpbmUgVGliZXRhbkNsYXNzVGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRpYmV0YW5DbGFzc1RhYmxlKQotI2RlZmluZSBUaWJldGFuT3BlblR5
cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpYmV0YW5PcGVuVHlwZUxh
eW91dEVuZ2luZSkKLSNkZWZpbmUgVGliZXRhblJlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRpYmV0YW5SZW9yZGVyaW5nKQotI2RlZmluZSBUaW1lQXJyYXlUaW1lWm9uZVJ1bGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVBcnJheVRpbWVab25lUnVsZSkKLSNkZWZpbmUg
VGltZVVuaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVVbml0KQotI2RlZmluZSBUaW1l
VW5pdEFtb3VudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVVuaXRBbW91bnQpCi0jZGVm
aW5lIFRpbWVVbml0Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lVW5pdEZvcm1h
dCkKLSNkZWZpbmUgVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lKQot
I2RlZmluZSBUaW1lWm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lUnVs
ZSkKLSNkZWZpbmUgVGltZVpvbmVUcmFuc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
aW1lWm9uZVRyYW5zaXRpb24pCi0jZGVmaW5lIFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShUaXRsZWNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVHJh
bnNsaXRlcmF0aW9uUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0aW9u
UnVsZSkKLSNkZWZpbmUgVHJhbnNsaXRlcmF0aW9uUnVsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1bGVEYXRhKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25S
dWxlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlU2V0KQot
I2RlZmluZSBUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRl
cmF0b3IpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yQWxpYXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFRyYW5zbGl0ZXJhdG9yQWxpYXMpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yRW50cnkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yRW50cnkpCi0jZGVmaW5lIFRyYW5z
bGl0ZXJhdG9ySURQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9y
SURQYXJzZXIpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShUcmFuc2xpdGVyYXRvclBhcnNlcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JSZWdp
c3RyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSkKLSNk
ZWZpbmUgVHJhbnNsaXRlcmF0b3JTcGVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xp
dGVyYXRvclNwZWMpCi0jZGVmaW5lIFRyaVN0YXRlU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShUcmlTdGF0ZVNpbmdsZXRvbikKLSNkZWZpbmUgVHJpZVdvcmREaWN0aW9uYXJ5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmllV29yZERpY3Rpb25hcnkpCi0jZGVmaW5lIFRyaW1t
ZWRBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpbW1lZEFycmF5UHJv
Y2Vzc29yKQotI2RlZmluZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBVQ29sbGF0aW9uUENFIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVQ29sbGF0aW9uUENFKQotI2RlZmluZSBVRGF0YVBhdGhJ
dGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVURhdGFQYXRoSXRlcmF0b3IpCi0jZGVm
aW5lIFVMb2NSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVTG9jUnVucykKLSNkZWZpbmUg
VU1lbW9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVU1lbW9yeSkKLSNkZWZpbmUgVU9iamVj
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVU9iamVjdCkKLSNkZWZpbmUgVVN0YWNrIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShVU3RhY2spCi0jZGVmaW5lIFVTdHJpbmdFbnVtZXJhdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVN0cmluZ0VudW1lcmF0aW9uKQotI2RlZmluZSBVVFM0
NiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVRTNDYpCi0jZGVmaW5lIFVUcmllMlNpbmdsZXRv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVRyaWUyU2luZ2xldG9uKQotI2RlZmluZSBVVmVj
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yKQotI2RlZmluZSBVVmVjdG9yMzIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3IzMikKLSNkZWZpbmUgVVZlY3RvcjY0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yNjQpCi0jZGVmaW5lIFVuZXNjYXBlVHJhbnNs
aXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuZXNjYXBlVHJhbnNsaXRlcmF0b3Ip
Ci0jZGVmaW5lIFVuaGFuZGxlZEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5oYW5k
bGVkRW5naW5lKQotI2RlZmluZSBVbmljb2RlQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSkK
LSNkZWZpbmUgVW5pY29kZUZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUZp
bHRlcikKLSNkZWZpbmUgVW5pY29kZUZ1bmN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVu
aWNvZGVGdW5jdG9yKQotI2RlZmluZSBVbmljb2RlTWF0Y2hlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVW5pY29kZU1hdGNoZXIpCi0jZGVmaW5lIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IpCi0jZGVm
aW5lIFVuaWNvZGVSZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVJlcGxh
Y2VyKQotI2RlZmluZSBVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2Rl
U2V0KQotI2RlZmluZSBVbmljb2RlU2V0SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFVuaWNvZGVTZXRJdGVyYXRvcikKLSNkZWZpbmUgVW5pY29kZVNldFN0cmluZ1NwYW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVTZXRTdHJpbmdTcGFuKQotI2RlZmluZSBVbmljb2Rl
U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU3RyaW5nKQotI2RlZmluZSBV
cHBlcmNhc2VUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVXBwZXJjYXNl
VHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFZUWlJlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVlRaUmVhZGVyKQotI2RlZmluZSBWVFpXcml0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFZUWldyaXRlcikKLSNkZWZpbmUgVlRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShW
VGltZVpvbmUpCi0jZGVmaW5lIFZhbHVlUmVjb3JkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShW
YWx1ZVJlY29yZCkKLSNkZWZpbmUgVmFsdWVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShW
YWx1ZVJ1bnMpCi0jZGVmaW5lIFpTRkNhY2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZD
YWNoZSkKLSNkZWZpbmUgWlNGQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWlNG
Q2FjaGVFbnRyeSkKLSNkZWZpbmUgWlNGU3RyaW5nUG9vbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoWlNGU3RyaW5nUG9vbCkKLSNkZWZpbmUgWlNGU3RyaW5nUG9vbENodW5rIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShaU0ZTdHJpbmdQb29sQ2h1bmspCi0jZGVmaW5lIFpvbmVNZXRhIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShab25lTWV0YSkKLSNkZWZpbmUgWm9uZVN0cmluZ0Zvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ0Zvcm1hdCkKLSNkZWZpbmUgWm9uZVN0
cmluZ0luZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdJbmZvKQotI2RlZmlu
ZSBab25lU3RyaW5nU2VhcmNoUmVzdWx0SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Wm9uZVN0cmluZ1NlYXJjaFJlc3VsdEhhbmRsZXIpCi0jZGVmaW5lIFpvbmVTdHJpbmdzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3RyaW5ncykKLSNkZWZpbmUgY29sbEl0ZXJhdGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKGNvbGxJdGVyYXRlKQotI2RlZmluZSBsb2NhbGVfc2V0X2Rl
ZmF1bHRfaW50ZXJuYWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGxvY2FsZV9zZXRfZGVmYXVs
dF9pbnRlcm5hbCkKLSNkZWZpbmUgdXRpbDY0X2Zyb21Eb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHV0aWw2NF9mcm9tRG91YmxlKQotI2RlZmluZSB1dGlsNjRfcG93IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1dGlsNjRfcG93KQotI2RlZmluZSB1dGlsNjRfdG91IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1dGlsNjRfdG91KQotCi0jZW5kaWYKLSNlbmRpZgotCiAjZW5kaWYKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXNj
cmlwdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRl
eCBlZTIxYzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRh
ZmFiNTNmZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaWN1L3VuaWNvZGUvdXNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
Y3UvdW5pY29kZS91c2NyaXB0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
LSAqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKICAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTQ0LDE4MiArNDQsMzY5IEBACiAgKiBAc3Rh
YmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVTY3JpcHRDb2RlIHsKKyAgICAvKgorICAg
ICAqIE5vdGU6IFVTY3JpcHRDb2RlIGNvbnN0YW50cyBhbmQgdGhlaXIgSVNPIHNjcmlwdCBjb2Rl
IGNvbW1lbnRzCisgICAgICogYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJ
dCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVVNDUklQVF88VW5pY29kZSBTY3JpcHQg
dmFsdWUgbmFtZT4gPSA8aW50ZWdlcj4sICAvICogPElTTyBzY3JpcHQgY29kZT4gKiAvCisgICAg
ICovCisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSU5WQUxJ
RF9DT0RFID0gLTEsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBU
X0NPTU1PTiAgICAgICA9ICAwLCAgLyogWnl5eSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MiAqLwogICAgICAgVVNDUklQVF9JTkhFUklURUQgICAgPSAgMSwgIC8qIFppbmggKi8gLyogIkNv
ZGUgZm9yIGluaGVyaXRlZCBzY3JpcHQiLCBmb3Igbm9uLXNwYWNpbmcgY29tYmluaW5nIG1hcmtz
OyBhbHNvIFFhYWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfQVJBQklDICAgICAgID0gIDIsICAvKiBBcmFiICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0FSTUVOSUFOICAgICA9ICAzLCAgLyogQXJtbiAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CRU5HQUxJICAgICAgPSAg
NCwgIC8qIEJlbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfQk9QT01PRk8gICAgID0gIDUsICAvKiBCb3BvICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0NIRVJPS0VFICAgICA9ICA2LCAgLyogQ2hlciAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DT1BUSUMgICAgICAgPSAg
NywgIC8qIENvcHQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfQ1lSSUxMSUMgICAgID0gIDgsICAvKiBDeXJsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0RFU0VSRVQgICAgICA9ICA5LCAgLyogRHNydCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ERVZBTkFHQVJJICAgPSAx
MCwgIC8qIERldmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfRVRISU9QSUMgICAgID0gMTEsICAvKiBFdGhpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0dFT1JHSUFOICAgICA9IDEyLCAgLyogR2VvciAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HT1RISUMgICAgICAgPSAx
MywgIC8qIEdvdGggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfR1JFRUsgICAgICAgID0gMTQsICAvKiBHcmVrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0dVSkFSQVRJICAgICA9IDE1LCAgLyogR3VqciAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HVVJNVUtISSAgICAgPSAx
NiwgIC8qIEd1cnUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfSEFOICAgICAgICAgID0gMTcsICAvKiBIYW5pICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0hBTkdVTCAgICAgICA9IDE4LCAgLyogSGFuZyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IRUJSRVcgICAgICAgPSAx
OSwgIC8qIEhlYnIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfSElSQUdBTkEgICAgID0gMjAsICAvKiBIaXJhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0tBTk5BREEgICAgICA9IDIxLCAgLyogS25kYSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LQVRBS0FOQSAgICAgPSAy
MiwgIC8qIEthbmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfS0hNRVIgICAgICAgID0gMjMsICAvKiBLaG1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX0xBTyAgICAgICAgICA9IDI0LCAgLyogTGFvbyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9MQVRJTiAgICAgICAgPSAy
NSwgIC8qIExhdG4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfTUFMQVlBTEFNICAgID0gMjYsICAvKiBNbHltICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX01PTkdPTElBTiAgICA9IDI3LCAgLyogTW9uZyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NWUFOTUFSICAgICAgPSAy
OCwgIC8qIE15bXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfT0dIQU0gICAgICAgID0gMjksICAvKiBPZ2FtICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX09MRF9JVEFMSUMgICA9IDMwLCAgLyogSXRhbCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PUklZQSAgICAgICAgPSAz
MSwgIC8qIE9yeWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfUlVOSUMgICAgICAgID0gMzIsICAvKiBSdW5yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX1NJTkhBTEEgICAgICA9IDMzLCAgLyogU2luaCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9TWVJJQUMgICAgICAgPSAz
NCwgIC8qIFN5cmMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfVEFNSUwgICAgICAgID0gMzUsICAvKiBUYW1sICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX1RFTFVHVSAgICAgICA9IDM2LCAgLyogVGVsdSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USEFBTkEgICAgICAgPSAz
NywgIC8qIFRoYWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJ
UFRfVEhBSSAgICAgICAgID0gMzgsICAvKiBUaGFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4yICovCiAgICAgICBVU0NSSVBUX1RJQkVUQU4gICAgICA9IDM5LCAgLyogVGlidCAqLwogICAg
ICAgLyoqIENhbmFkaWFuX0Fib3JpZ2luYWwgc2NyaXB0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAg
ICAgIFVTQ1JJUFRfQ0FOQURJQU5fQUJPUklHSU5BTCA9IDQwLCAgLyogQ2FucyAqLwogICAgICAg
LyoqIENhbmFkaWFuX0Fib3JpZ2luYWwgc2NyaXB0IChhbGlhcykuIEBzdGFibGUgSUNVIDIuMiAq
LwogICAgICAgVVNDUklQVF9VQ0FTICAgICAgICAgPSBVU0NSSVBUX0NBTkFESUFOX0FCT1JJR0lO
QUwsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1lJICAgICAg
ICAgICA9IDQxLCAgLyogWWlpaSAqLworICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSAz
LjIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEFHQUxP
RyAgICAgID0gNDIsICAvKiBUZ2xnICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0hBTlVOT08gICAgICA9IDQzLCAgLyogSGFubyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CVUhJRCAgICAgICAgPSA0NCwgIC8qIEJ1
aGQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEFHQkFO
V0EgICAgID0gNDUsICAvKiBUYWdiICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNv
ZGUgNCBAc3RhYmxlIElDVSAyLjYgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUg
NCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9CUkFJTExF
ICAgICAgPSA0NiwgIC8qIEJyYWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAg
ICAgIFVTQ1JJUFRfQ1lQUklPVCAgICAgID0gNDcsICAvKiBDcHJ0ICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX0xJTUJVICAgICAgICA9IDQ4LCAgLyogTGlt
YiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9MSU5FQVJf
QiAgICAgPSA0OSwgIC8qIExpbmIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAg
ICAgIFVTQ1JJUFRfT1NNQU5ZQSAgICAgID0gNTAsICAvKiBPc21hICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX1NIQVZJQU4gICAgICA9IDUxLCAgLyogU2hh
dyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9UQUlfTEUg
ICAgICAgPSA1MiwgIC8qIFRhbGUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAg
ICAgIFVTQ1JJUFRfVUdBUklUSUMgICAgID0gNTMsICAvKiBVZ2FyICovCiAKICAgICAgIC8qKiBO
ZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjAuMSBAc3RhYmxlIElDVSAzLjAgKi8KICAgICAg
IFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEgPSA1NCwvKkhya3QgKi8KIAotICAgICAgLyog
TmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0LjEgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgICAvKiBO
ZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQuMSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAq
LwogICAgICAgVVNDUklQVF9CVUdJTkVTRSAgICAgID0gNTUsIC8qIEJ1Z2kgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfR0xBR09MSVRJQyAgICA9IDU2LCAv
KiBHbGFnICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0tI
QVJPU0hUSEkgICAgPSA1NywgLyogS2hhciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAq
LwogICAgICAgVVNDUklQVF9TWUxPVElfTkFHUkkgID0gNTgsIC8qIFN5bG8gKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfTkVXX1RBSV9MVUUgICA9IDU5LCAv
KiBUYWx1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX1RJ
RklOQUdIICAgICAgPSA2MCwgLyogVGZuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAq
LwogICAgICAgVVNDUklQVF9PTERfUEVSU0lBTiAgID0gNjEsIC8qIFhwZW8gKi8KIAotICAgICAg
LyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSAzLjYgKi8KKyAg
ICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQkFMSU5FU0UgICAgICAgICAgICAgICAgICAg
ICAgPSA2MiwgLyogQmFsaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9CQVRBSyAgICAgICAgICAgICAgICAgICAgICAgICA9IDYzLCAvKiBCYXRrICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JMSVNTWU1CT0xTICAg
ICAgICAgICAgICAgICAgID0gNjQsIC8qIEJsaXMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfQlJBSE1JICAgICAgICAgICAgICAgICAgICAgICAgPSA2NSwg
LyogQnJhaCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9D
SEFNICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY2LCAvKiBDaGFtICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0NJUlRIICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNjcsIC8qIENpcnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfT0xEX0NIVVJDSF9TTEFWT05JQ19DWVJJTExJQyAgPSA2OCwgLyogQ3lycyAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ERU1PVElDX0VH
WVBUSUFOICAgICAgICAgICAgICA9IDY5LCAvKiBFZ3lkICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX0hJRVJBVElDX0VHWVBUSUFOICAgICAgICAgICAgID0g
NzAsIC8qIEVneWggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfRUdZUFRJQU5fSElFUk9HTFlQSFMgICAgICAgICAgPSA3MSwgLyogRWd5cCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9LSFVUU1VSSSAgICAgICAgICAg
ICAgICAgICAgICA9IDcyLCAvKiBHZW9rICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX1NJTVBMSUZJRURfSEFOICAgICAgICAgICAgICAgID0gNzMsIC8qIEhh
bnMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVFJBRElU
SU9OQUxfSEFOICAgICAgICAgICAgICAgPSA3NCwgLyogSGFudCAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9QQUhBV0hfSE1PTkcgICAgICAgICAgICAgICAg
ICA9IDc1LCAvKiBIbW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX09MRF9IVU5HQVJJQU4gICAgICAgICAgICAgICAgID0gNzYsIC8qIEh1bmcgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfSEFSQVBQQU5fSU5EVVMg
ICAgICAgICAgICAgICAgPSA3NywgLyogSW5kcyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9KQVZBTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDc4LCAv
KiBKYXZhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0tB
WUFIX0xJICAgICAgICAgICAgICAgICAgICAgID0gNzksIC8qIEthbGkgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU5fRlJBS1RVUiAgICAgICAgICAg
ICAgICAgPSA4MCwgLyogTGF0ZiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9MQVRJTl9HQUVMSUMgICAgICAgICAgICAgICAgICA9IDgxLCAvKiBMYXRnICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xFUENIQSAgICAg
ICAgICAgICAgICAgICAgICAgID0gODIsIC8qIExlcGMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTElORUFSX0EgICAgICAgICAgICAgICAgICAgICAgPSA4
MywgLyogTGluYSAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQ
VF9NQU5EQUlDICAgICAgICAgICAgICAgICAgICAgICA9IDg0LCAvKiBNYW5kICovCiAgICAgICAv
KiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01BTkRBRUFOICAgICAgICAgICAg
ICAgICAgICAgID0gVVNDUklQVF9NQU5EQUlDLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAq
LwogICAgICAgVVNDUklQVF9NQVlBTl9ISUVST0dMWVBIUyAgICAgICAgICAgICA9IDg1LCAvKiBN
YXlhICovCiAgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01FUk9J
VElDX0hJRVJPR0xZUEhTICAgICAgICAgID0gODYsIC8qIE1lcm8gKi8KICAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTUVST0lUSUMgICAgICAgICAgICAgICAgICAg
ICAgPSBVU0NSSVBUX01FUk9JVElDX0hJRVJPR0xZUEhTLAorICAgICAgLyoqIEBzdGFibGUgSUNV
IDMuNiAqLwogICAgICAgVVNDUklQVF9OS08gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDg3
LCAvKiBOa29vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBU
X09SS0hPTiAgICAgICAgICAgICAgICAgICAgICAgID0gODgsIC8qIE9ya2ggKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX1BFUk1JQyAgICAgICAgICAg
ICAgICAgICAgPSA4OSwgLyogUGVybSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwog
ICAgICAgVVNDUklQVF9QSEFHU19QQSAgICAgICAgICAgICAgICAgICAgICA9IDkwLCAvKiBQaGFn
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1BIT0VOSUNJ
QU4gICAgICAgICAgICAgICAgICAgID0gOTEsIC8qIFBobnggKi8KLSAgICAgIFVTQ1JJUFRfUEhP
TkVUSUNfUE9MTEFSRCAgICAgICAgICAgICAgPSA5MiwgLyogUGxyZCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX01JQU8gICAgICAgICAgICAgICAgICAgICAg
ICAgID0gOTIsIC8qIFBscmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KKyAgICAg
IFVTQ1JJUFRfUEhPTkVUSUNfUE9MTEFSRCAgICAgICAgICAgICAgPSBVU0NSSVBUX01JQU8sCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1JPTkdPUk9OR08gICAg
ICAgICAgICAgICAgICAgID0gOTMsIC8qIFJvcm8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfU0FSQVRJICAgICAgICAgICAgICAgICAgICAgICAgPSA5NCwg
LyogU2FyYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9F
U1RSQU5HRUxPX1NZUklBQyAgICAgICAgICAgICA9IDk1LCAvKiBTeXJlICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1dFU1RFUk5fU1lSSUFDICAgICAgICAg
ICAgICAgID0gOTYsIC8qIFN5cmogKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfRUFTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NywgLyogU3lybiAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9URU5HV0FSICAg
ICAgICAgICAgICAgICAgICAgICA9IDk4LCAvKiBUZW5nICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX1ZBSSAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
OTksIC8qIFZhaWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfVklTSUJMRV9TUEVFQ0ggICAgICAgICAgICAgICAgPSAxMDAsLyogVmlzcCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DVU5FSUZPUk0gICAgICAgICAg
ICAgICAgICAgICA9IDEwMSwvKiBYc3V4ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX1VOV1JJVFRFTl9MQU5HVUFHRVMgICAgICAgICAgID0gMTAyLC8qIFp4
eHggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVU5LTk9X
TiAgICAgICAgICAgICAgICAgICAgICAgPSAxMDMsLyogWnp6eiAqLyAvKiBVbmtub3duPSJDb2Rl
IGZvciB1bmNvZGVkIHNjcmlwdCIsIGZvciB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzICovCiAKLSAg
ICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgMy44ICov
CisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX0NBUklBTiAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTA0LC8qIENhcmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAg
ICAgIFVTQ1JJUFRfSkFQQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSAxMDUsLyogSnBhbiAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MQU5OQSAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEwNiwvKiBMYW5hICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy44ICovCiAgICAgICBVU0NSSVBUX0xZQ0lBTiAgICAgICAgICAgICAgICAgICAgICAgID0g
MTA3LC8qIEx5Y2kgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJ
UFRfTFlESUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDgsLyogTHlkaSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9PTF9DSElLSSAgICAgICAgICAg
ICAgICAgICAgICA9IDEwOSwvKiBPbGNrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICov
CiAgICAgICBVU0NSSVBUX1JFSkFORyAgICAgICAgICAgICAgICAgICAgICAgID0gMTEwLC8qIFJq
bmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU0FVUkFT
SFRSQSAgICAgICAgICAgICAgICAgICAgPSAxMTEsLyogU2F1ciAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9TSUdOX1dSSVRJTkcgICAgICAgICAgICAgICAg
ICA9IDExMiwvKiBTZ253ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBV
U0NSSVBUX1NVTkRBTkVTRSAgICAgICAgICAgICAgICAgICAgID0gMTEzLC8qIFN1bmQgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTU9PTiAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxMTQsLyogTW9vbiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
OCAqLwogICAgICAgVVNDUklQVF9NRUlURUlfTUFZRUsgICAgICAgICAgICAgICAgICA9IDExNSwv
KiBNdGVpICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0
YWJsZSBJQ1UgNC4wICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0lNUEVSSUFM
X0FSQU1BSUMgICAgICAgICAgICAgID0gMTE2LC8qIEFybWkgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQVZFU1RBTiAgICAgICAgICAgICAgICAgICAgICAg
PSAxMTcsLyogQXZzdCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVND
UklQVF9DSEFLTUEgICAgICAgICAgICAgICAgICAgICAgICA9IDExOCwvKiBDYWttICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0tPUkVBTiAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTE5LC8qIEtvcmUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAg
Ki8KICAgICAgIFVTQ1JJUFRfS0FJVEhJICAgICAgICAgICAgICAgICAgICAgICAgPSAxMjAsLyog
S3RoaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9NQU5J
Q0hBRUFOICAgICAgICAgICAgICAgICAgICA9IDEyMSwvKiBNYW5pICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0lOU0NSSVBUSU9OQUxfUEFITEFWSSAgICAg
ICAgID0gMTIyLC8qIFBobGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAg
IFVTQ1JJUFRfUFNBTFRFUl9QQUhMQVZJICAgICAgICAgICAgICAgPSAxMjMsLyogUGhscCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9CT09LX1BBSExBVkkg
ICAgICAgICAgICAgICAgICA9IDEyNCwvKiBQaGx2ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC4wICovCiAgICAgICBVU0NSSVBUX0lOU0NSSVBUSU9OQUxfUEFSVEhJQU4gICAgICAgID0gMTI1
LC8qIFBydGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRf
U0FNQVJJVEFOICAgICAgICAgICAgICAgICAgICAgPSAxMjYsLyogU2FtciAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9UQUlfVklFVCAgICAgICAgICAgICAg
ICAgICAgICA9IDEyNywvKiBUYXZ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAg
ICAgICBVU0NSSVBUX01BVEhFTUFUSUNBTF9OT1RBVElPTiAgICAgICAgID0gMTI4LC8qIFptdGgg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfU1lNQk9MUyAg
ICAgICAgICAgICAgICAgICAgICAgPSAxMjksLyogWnN5bSAqLwogCi0gICAgICAvKiBOZXcgc2Ny
aXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDQuNCAqLworICAgICAgLyogTmV3
IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQu
NCAqLwogICAgICAgVVNDUklQVF9CQU1VTSAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMCwv
KiBCYW11ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX0xJ
U1UgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMxLC8qIExpc3UgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfTkFLSElfR0VCQSAgICAgICAgICAgICAg
ICAgICAgPSAxMzIsLyogTmtnYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAg
ICAgVVNDUklQVF9PTERfU09VVEhfQVJBQklBTiAgICAgICAgICAgICA9IDEzMywvKiBTYXJiICov
CiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1Ug
NC42ICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0JBU1NBX1ZBSCAgICAgICAg
ICAgICAgICAgICAgID0gMTM0LC8qIEJhc3MgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYg
Ki8KICAgICAgIFVTQ1JJUFRfRFVQTE9ZQU5fU0hPUlRBTkQgICAgICAgICAgICAgPSAxMzUsLyog
RHVwbCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9FTEJB
U0FOICAgICAgICAgICAgICAgICAgICAgICA9IDEzNiwvKiBFbGJhICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0dSQU5USEEgICAgICAgICAgICAgICAgICAg
ICAgID0gMTM3LC8qIEdyYW4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAg
IFVTQ1JJUFRfS1BFTExFICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzgsLyogS3BlbCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9MT01BICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEzOSwvKiBMb21hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC42ICovCiAgICAgICBVU0NSSVBUX01FTkRFICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQw
LC8qIE1lbmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRf
TUVST0lUSUNfQ1VSU0lWRSAgICAgICAgICAgICAgPSAxNDEsLyogTWVyYyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9PTERfTk9SVEhfQVJBQklBTiAgICAg
ICAgICAgICA9IDE0MiwvKiBOYXJiICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAg
ICAgICBVU0NSSVBUX05BQkFUQUVBTiAgICAgICAgICAgICAgICAgICAgID0gMTQzLC8qIE5iYXQg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfUEFMTVlSRU5F
ICAgICAgICAgICAgICAgICAgICAgPSAxNDQsLyogUGFsbSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9TSU5ESEkgICAgICAgICAgICAgICAgICAgICAgICA9
IDE0NSwvKiBTaW5kICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NS
SVBUX1dBUkFOR19DSVRJICAgICAgICAgICAgICAgICAgID0gMTQ2LC8qIFdhcmEgKi8KIAorICAg
ICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9BRkFLQSAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDE0NywvKiBBZmFrICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44
ICovCisgICAgICBVU0NSSVBUX0pVUkNIRU4gICAgICAgICAgICAgICAgICAgICAgID0gMTQ4LC8q
IEp1cmMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfTVJP
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDksLyogTXJvbyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9OVVNIVSAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDE1MCwvKiBOc2h1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAg
ICBVU0NSSVBUX1NIQVJBREEgICAgICAgICAgICAgICAgICAgICAgID0gMTUxLC8qIFNocmQgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfU09SQV9TT01QRU5H
ICAgICAgICAgICAgICAgICAgPSAxNTIsLyogU29yYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuOCAqLworICAgICAgVVNDUklQVF9UQUtSSSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE1
MywvKiBUYWtyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBU
X1RBTkdVVCAgICAgICAgICAgICAgICAgICAgICAgID0gMTU0LC8qIFRhbmcgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfV09MRUFJICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNTUsLyogV29sZSAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8K
KyAgICAgIFVTQ1JJUFRfQU5BVE9MSUFOX0hJRVJPR0xZUEhTICAgICAgICAgPSAxNTYsLyogSGx1
dyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBVU0NSSVBUX0tIT0pLSSAg
ICAgICAgICAgICAgICAgICAgICAgID0gMTU3LC8qIEtob2ogKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0OSAqLworICAgICAgVVNDUklQVF9USVJIVVRBICAgICAgICAgICAgICAgICAgICAgICA9
IDE1OCwvKiBUaXJoICovCisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgICAgVVND
UklQVF9DQVVDQVNJQU5fQUxCQU5JQU4gICAgICAgICAgICA9IDE1OSwvKiBBZ2hiICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAgIFVTQ1JJUFRfTUFIQUpBTkkgICAgICAgICAg
ICAgICAgICAgICAgPSAxNjAsLyogTWFoaiAqLworCiAgICAgICAvKiBQcml2YXRlIHVzZSBjb2Rl
cyBmcm9tIFFhYWEgLSBRYWJ4IGFyZSBub3Qgc3VwcG9ydGVkICovCi0gICAgICBVU0NSSVBUX0NP
REVfTElNSVQgICAgPSAxNDcKKworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLworICAgICAg
VVNDUklQVF9DT0RFX0xJTUlUICAgID0gMTYxCiB9IFVTY3JpcHRDb2RlOwogCiAvKioKQEAgLTI3
Nyw5ICs0NjQsOSBAQCBVX1NUQUJMRSBVU2NyaXB0Q29kZSAgVV9FWFBPUlQyCiB1c2NyaXB0X2dl
dFNjcmlwdChVQ2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJyKTsKIAogLyoqCi0gKiBJ
cyBjb2RlIHBvaW50IGMgdXNlZCBpbiBzY3JpcHQgc2M/Ci0gKiBUaGF0IGlzLCBkb2VzIGNvZGUg
cG9pbnQgYyBoYXZlIHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUgc2MsCi0gKiBvciBkbyBjb2Rl
IHBvaW50IGMncyBTY3JpcHRfRXh0ZW5zaW9ucyBpbmNsdWRlIHNjcmlwdCBjb2RlIHNjPworICog
RG8gdGhlIFNjcmlwdF9FeHRlbnNpb25zIG9mIGNvZGUgcG9pbnQgYyBjb250YWluIHNjcmlwdCBz
Yz8KKyAqIElmIGMgZG9lcyBub3QgaGF2ZSBleHBsaWNpdCBTY3JpcHRfRXh0ZW5zaW9ucywgdGhl
biB0aGlzIHRlc3RzIHdoZXRoZXIKKyAqIGMgaGFzIHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUg
c2MuCiAgKgogICogU29tZSBjaGFyYWN0ZXJzIGFyZSBjb21tb25seSB1c2VkIGluIG11bHRpcGxl
IHNjcmlwdHMuCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93
d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI0Ly4KQEAgLTI4OCwxNSArNDc1LDIyIEBAIHVzY3Jp
cHRfZ2V0U2NyaXB0KFVDaGFyMzIgY29kZXBvaW50LCBVRXJyb3JDb2RlICplcnIpOwogICogaW4g
ZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBVbmljb2RlIFN0YW5kYXJkLCBhbmQgdGh1cyBpbiBJQ1Uu
CiAgKiBAcGFyYW0gYyBjb2RlIHBvaW50CiAgKiBAcGFyYW0gc2Mgc2NyaXB0IGNvZGUKLSAqIEBy
ZXR1cm4gVFJVRSBpZiBTY3JpcHQoYyk9PXNjIG9yIHNjIGlzIGluIFNjcmlwdF9FeHRlbnNpb25z
KGMpCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHJldHVybiBUUlVFIGlmIHNjIGlzIGluIFNjcmlw
dF9FeHRlbnNpb25zKGMpCisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZUIFVCb29sIFVf
RVhQT1JUMgorVV9TVEFCTEUgVUJvb2wgVV9FWFBPUlQyCiB1c2NyaXB0X2hhc1NjcmlwdChVQ2hh
cjMyIGMsIFVTY3JpcHRDb2RlIHNjKTsKIAogLyoqCiAgKiBXcml0ZXMgY29kZSBwb2ludCBjJ3Mg
U2NyaXB0X0V4dGVuc2lvbnMgYXMgYSBsaXN0IG9mIFVTY3JpcHRDb2RlIHZhbHVlcwotICogdG8g
dGhlIG91dHB1dCBzY3JpcHRzIGFycmF5LgorICogdG8gdGhlIG91dHB1dCBzY3JpcHRzIGFycmF5
IGFuZCByZXR1cm5zIHRoZSBudW1iZXIgb2Ygc2NyaXB0IGNvZGVzLgorICogLSBJZiBjIGRvZXMg
aGF2ZSBTY3JpcHRfRXh0ZW5zaW9ucywgdGhlbiB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlCisg
KiAgIChub3JtYWxseSBDb21tb24gb3IgSW5oZXJpdGVkKSBpcyBub3QgaW5jbHVkZWQuCisgKiAt
IElmIGMgZG9lcyBub3QgaGF2ZSBTY3JpcHRfRXh0ZW5zaW9ucywgdGhlbiB0aGUgb25lIFNjcmlw
dCBjb2RlIGlzIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBhcnJheS4KKyAqIC0gSWYgYyBpcyBub3Qg
YSB2YWxpZCBjb2RlIHBvaW50LCB0aGVuIHRoZSBvbmUgVVNDUklQVF9VTktOT1dOIGNvZGUgaXMg
d3JpdHRlbi4KKyAqIEluIG90aGVyIHdvcmRzLCBpZiB0aGUgcmV0dXJuIHZhbHVlIGlzIDEsCisg
KiB0aGVuIHRoZSBvdXRwdXQgYXJyYXkgY29udGFpbnMgZXhhY3RseSBjJ3Mgc2luZ2xlIFNjcmlw
dCBjb2RlLgorICogSWYgdGhlIHJldHVybiB2YWx1ZSBpcyBuPj0yLCB0aGVuIHRoZSBvdXRwdXQg
YXJyYXkgY29udGFpbnMgYydzIG4gU2NyaXB0X0V4dGVuc2lvbnMgc2NyaXB0IGNvZGVzLgogICoK
ICAqIFNvbWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRz
LgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNv
ZGUub3JnL3JlcG9ydHMvdHIyNC8uCkBAIC0zMTQsMTMgKzUwOCwxMjAgQEAgdXNjcmlwdF9oYXNT
Y3JpcHQoVUNoYXIzMiBjLCBVU2NyaXB0Q29kZSBzYyk7CiAgKiAgICAgICAgICAgICAgICAgIHBh
c3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKICAq
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcu
IChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCi0gKiBAcmV0dXJuIG51bWJlciBvZiBzY3Jp
cHQgY29kZXMgaW4gYydzIFNjcmlwdF9FeHRlbnNpb25zLAorICogQHJldHVybiBudW1iZXIgb2Yg
c2NyaXB0IGNvZGVzIGluIGMncyBTY3JpcHRfRXh0ZW5zaW9ucywgb3IgMSBmb3IgdGhlIHNpbmds
ZSBTY3JpcHQgdmFsdWUsCiAgKiAgICAgICAgIHdyaXR0ZW4gdG8gc2NyaXB0cyB1bmxlc3MgVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IgaW5kaWNhdGVzIGluc3VmZmljaWVudCBjYXBhY2l0eQotICog
QGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQ5CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBV
X0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1c2NyaXB0X2dldFNjcmlwdEV4
dGVuc2lvbnMoVUNoYXIzMiBjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTY3JpcHRD
b2RlICpzY3JpcHRzLCBpbnQzMl90IGNhcGFjaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKmVycm9yQ29kZSk7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorCisv
KioKKyAqIFNjcmlwdCB1c2FnZSBjb25zdGFudHMuCisgKiBTZWUgVUFYICMzMSBVbmljb2RlIElk
ZW50aWZpZXIgYW5kIFBhdHRlcm4gU3ludGF4LgorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9y
ZXBvcnRzL3RyMzEvI1RhYmxlX0NhbmRpZGF0ZV9DaGFyYWN0ZXJzX2Zvcl9FeGNsdXNpb25fZnJv
bV9JZGVudGlmaWVycworICoKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLwordHlwZWRlZiBlbnVtIFVT
Y3JpcHRVc2FnZSB7CisgICAgLyoqIE5vdCBlbmNvZGVkIGluIFVuaWNvZGUuIEBkcmFmdCBJQ1Ug
NTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX05PVF9FTkNPREVELAorICAgIC8qKiBVbmtub3duIHNj
cmlwdCB1c2FnZS4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfVU5LTk9XTiwK
KyAgICAvKiogQ2FuZGlkYXRlIGZvciBFeGNsdXNpb24gZnJvbSBJZGVudGlmaWVycy4gQGRyYWZ0
IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfRVhDTFVERUQsCisgICAgLyoqIExpbWl0ZWQg
VXNlIHNjcmlwdC4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfTElNSVRFRF9V
U0UsCisgICAgLyoqIEFzcGlyYXRpb25hbCBVc2Ugc2NyaXB0LiBAZHJhZnQgSUNVIDUxICovCisg
ICAgVVNDUklQVF9VU0FHRV9BU1BJUkFUSU9OQUwsCisgICAgLyoqIFJlY29tbWVuZGVkIHNjcmlw
dC4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfUkVDT01NRU5ERUQKK30gVVNj
cmlwdFVzYWdlOworCisvKioKKyAqIFdyaXRlcyB0aGUgc2NyaXB0IHNhbXBsZSBjaGFyYWN0ZXIg
c3RyaW5nLgorICogVGhpcyBzdHJpbmcgbm9ybWFsbHkgY29uc2lzdHMgb2Ygb25lIGNvZGUgcG9p
bnQgYnV0IG1pZ2h0IGJlIGxvbmdlci4KKyAqIFRoZSBzdHJpbmcgaXMgZW1wdHkgaWYgdGhlIHNj
cmlwdCBpcyBub3QgZW5jb2RlZC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisg
KiBAcGFyYW0gZGVzdCBvdXRwdXQgc3RyaW5nIGFycmF5CisgKiBAcGFyYW0gY2FwYWNpdHkgbnVt
YmVyIG9mIFVDaGFycyBpbiB0aGUgZGVzdCBhcnJheQorICogQHBhcmFtIHBFcnJvckNvZGUgc3Rh
bmRhcmQgSUNVIGluL291dCBlcnJvciBjb2RlLCBtdXN0IHBhc3MgVV9TVUNDRVNTKCkgb24gaW5w
dXQKKyAqIEByZXR1cm4gdGhlIHN0cmluZyBsZW5ndGgsIGV2ZW4gaWYgVV9CVUZGRVJfT1ZFUkZM
T1dfRVJST1IKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JU
MgordXNjcmlwdF9nZXRTYW1wbGVTdHJpbmcoVVNjcmlwdENvZGUgc2NyaXB0LCBVQ2hhciAqZGVz
dCwgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiBVX1NI
T1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorY2xhc3MgVW5pY29kZVN0cmlu
ZzsKK1VfTkFNRVNQQUNFX0VORAorCisvKioKKyAqIFJldHVybnMgdGhlIHNjcmlwdCBzYW1wbGUg
Y2hhcmFjdGVyIHN0cmluZy4KKyAqIFRoaXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9u
ZSBjb2RlIHBvaW50IGJ1dCBtaWdodCBiZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5
IGlmIHRoZSBzY3JpcHQgaXMgbm90IGVuY29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3Jp
cHQgY29kZQorICogQHJldHVybiB0aGUgc2FtcGxlIGNoYXJhY3RlciBzdHJpbmcKKyAqIEBkcmFm
dCBJQ1UgNTEKKyAqLworVV9DT01NT05fQVBJIGljdTo6VW5pY29kZVN0cmluZyBVX0VYUE9SVDIK
K3VzY3JpcHRfZ2V0U2FtcGxlVW5pY29kZVN0cmluZyhVU2NyaXB0Q29kZSBzY3JpcHQpOworCisj
ZW5kaWYKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHQgdXNhZ2UgYWNjb3JkaW5nIHRvIFVB
WCAjMzEgVW5pY29kZSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheC4KKyAqIFJldHVybnMg
VVNDUklQVF9VU0FHRV9OT1RfRU5DT0RFRCBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkIGlu
IFVuaWNvZGUuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHJldHVybiBz
Y3JpcHQgdXNhZ2UKKyAqIEBzZWUgVVNjcmlwdFVzYWdlCisgKiBAZHJhZnQgSUNVIDUxCisgKi8K
K1VfRFJBRlQgVVNjcmlwdFVzYWdlIFVfRVhQT1JUMgordXNjcmlwdF9nZXRVc2FnZShVU2NyaXB0
Q29kZSBzY3JpcHQpOworCisvKioKKyAqIFJldHVybnMgVFJVRSBpZiB0aGUgc2NyaXB0IGlzIHdy
aXR0ZW4gcmlnaHQtdG8tbGVmdC4KKyAqIEZvciBleGFtcGxlLCBBcmFiIGFuZCBIZWJyLgorICoK
KyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc2Ny
aXB0IGlzIHJpZ2h0LXRvLWxlZnQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVQm9v
bCBVX0VYUE9SVDIKK3VzY3JpcHRfaXNSaWdodFRvTGVmdChVU2NyaXB0Q29kZSBzY3JpcHQpOwor
CisvKioKKyAqIFJldHVybnMgVFJVRSBpZiB0aGUgc2NyaXB0IGFsbG93cyBsaW5lIGJyZWFrcyBi
ZXR3ZWVuIGxldHRlcnMgKGV4Y2x1ZGluZyBoeXBoZW5hdGlvbikuCisgKiBTdWNoIGEgc2NyaXB0
IHR5cGljYWxseSByZXF1aXJlcyBkaWN0aW9uYXJ5LWJhc2VkIGxpbmUgYnJlYWtpbmcuCisgKiBG
b3IgZXhhbXBsZSwgSGFuaSBhbmQgVGhhaS4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBj
b2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGluZSBicmVha3MgYmV0
d2VlbiBsZXR0ZXJzCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBP
UlQyCit1c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisK
Ky8qKgorICogUmV0dXJucyBUUlVFIGlmIGluIG1vZGVybiAob3IgbW9zdCByZWNlbnQpIHVzYWdl
IG9mIHRoZSBzY3JpcHQgY2FzZSBkaXN0aW5jdGlvbnMgYXJlIGN1c3RvbWFyeS4KKyAqIEZvciBl
eGFtcGxlLCBMYXRuIGFuZCBDeXJsLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUK
KyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc2NyaXB0IGlzIGNhc2VkCisgKiBAZHJhZnQgSUNVIDUx
CisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1c2NyaXB0X2lzQ2FzZWQoVVNjcmlwdENv
ZGUgc2NyaXB0KTsKKworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3VzZXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91c2V0LmgKaW5kZXggNzdhYjA2MzQyZjI2
ZTljNzBlMjczMDI0ZmE2ZWJlZjU2MmNkNTk4MS4uNDA1MTBjZDQxNjdjOGY3N2Q1MDY2MWRmZmY3
ZmUwOWI5ZWY4MDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3VzZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXNldC5o
CkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5
cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCkBAIC04OSwxMyArODksNyBAQCBlbnVtIHsKICAgICAgKiBv
ZiBlYWNoIGV4aXN0aW5nIGVsZW1lbnQgaW4gdGhlIHNldC4KICAgICAgKiBAc3RhYmxlIElDVSAz
LjIKICAgICAgKi8KLSAgICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNCwKLSAgICAKLSAgICAv
KioKLSAgICAgKiBFbm91Z2ggZm9yIGFueSBzaW5nbGUtY29kZSBwb2ludCBzZXQKLSAgICAgKiBA
aW50ZXJuYWwKLSAgICAgKi8KLSAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFD
SVRZPTgKKyAgICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNAogfTsKIAogLyoqCkBAIC0yMDcs
NiArMjAxLDE2IEBAIHR5cGVkZWYgZW51bSBVU2V0U3BhbkNvbmRpdGlvbiB7CiAgICAgVVNFVF9T
UEFOX0NPTkRJVElPTl9DT1VOVAogfSBVU2V0U3BhbkNvbmRpdGlvbjsKIAorZW51bSB7CisgICAg
LyoqCisgICAgICogQ2FwYWNpdHkgb2YgVVNlcmlhbGl6ZWRTZXQ6OnN0YXRpY0FycmF5LgorICAg
ICAqIEVub3VnaCBmb3IgYW55IHNpbmdsZS1jb2RlIHBvaW50IHNldC4KKyAgICAgKiBBbHNvIHBy
b3ZpZGVzIHBhZGRpbmcgZm9yIG5pY2Ugc2l6ZW9mKFVTZXJpYWxpemVkU2V0KS4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZ
X0NBUEFDSVRZPTgKK307CisKIC8qKgogICogQSBzZXJpYWxpemVkIGZvcm0gb2YgYSBVbmljb2Rl
IHNldC4gIExpbWl0ZWQgbWFuaXB1bGF0aW9ucyBhcmUKICAqIHBvc3NpYmxlIGRpcmVjdGx5IG9u
IGEgc2VyaWFsaXplZCBzZXQuICBTZWUgYmVsb3cuCkBAIC0yNDcsNyArMjUxLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgVVNlcmlhbGl6ZWRTZXQgewogICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KIFVfU1RB
QkxFIFVTZXQqIFVfRVhQT1JUMgotdXNldF9vcGVuRW1wdHkoKTsKK3VzZXRfb3BlbkVtcHR5KHZv
aWQpOwogCiAvKioKICAqIENyZWF0ZXMgYSBVU2V0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBy
YW5nZSBvZiBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1
L3VuaWNvZGUvdXN0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3Vz
dHJpbmcuaAppbmRleCAyZWUxNmU5OWNmM2MwMDdhYjc1ZWMxZjZiZDQxYzE1YWVhZDkyOTUyLi5k
MmVhMzFjNjc0N2Y4ZjFjMWViMDM3MGUyODQzYzNmNjQ0OThiMGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXN0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTIsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTIwLDkgKzIwLDE0IEBACiAjaW5j
bHVkZSAidW5pY29kZS9wdXRpbC5oIgogI2luY2x1ZGUgInVuaWNvZGUvdWl0ZXIuaCIKIAotLyoq
IFNpbXBsZSBkZWNsYXJhdGlvbiBmb3IgdV9zdHJUb1RpdGxlKCkgdG8gYXZvaWQgaW5jbHVkaW5n
IHVuaWNvZGUvdWJyay5oLiBAc3RhYmxlIElDVSAyLjEqLworLyoqCisgKiBcZGVmIFVCUktfVFlQ
RURFRl9VQlJFQUtfSVRFUkFUT1IKKyAqIEBpbnRlcm5hbCAKKyAqLworCiAjaWZuZGVmIFVCUktf
VFlQRURFRl9VQlJFQUtfSVRFUkFUT1IKICMgICBkZWZpbmUgVUJSS19UWVBFREVGX1VCUkVBS19J
VEVSQVRPUgorLyoqIFNpbXBsZSBkZWNsYXJhdGlvbiBmb3IgdV9zdHJUb1RpdGxlKCkgdG8gYXZv
aWQgaW5jbHVkaW5nIHVuaWNvZGUvdWJyay5oLiBAc3RhYmxlIElDVSAyLjEqLwogICAgIHR5cGVk
ZWYgc3RydWN0IFVCcmVha0l0ZXJhdG9yIFVCcmVha0l0ZXJhdG9yOwogI2VuZGlmCiAKQEAgLTE0
Niw4ICsxNTEsOCBAQCB1X3N0cmNhdChVQ2hhciAgICAgKmRzdCwKICAqIElmIDxjb2RlPm4mbHQ7
PTA8L2NvZGU+IHRoZW4gZHN0IGlzIG5vdCBtb2RpZmllZC4KICAqCiAgKiBAcGFyYW0gZHN0IFRo
ZSBkZXN0aW5hdGlvbiBzdHJpbmcuCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nLgot
ICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYXBwZW5kLgor
ICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBu
PD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFw
cGVuZDsgbm8tb3AgaWYgPD0wLgogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZHN0PC9j
b2RlPi4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC01NTAsOSArNTU1LDkgQEAgdV9zdHJD
YXNlQ29tcGFyZShjb25zdCBVQ2hhciAqczEsIGludDMyX3QgbGVuZ3RoMSwKICAqIENvbXBhcmUg
dHdvIHVzdHJpbmdzIGZvciBiaXR3aXNlIGVxdWFsaXR5LiAKICAqIENvbXBhcmVzIGF0IG1vc3Qg
PGNvZGU+bjwvY29kZT4gY2hhcmFjdGVycy4KICAqCi0gKiBAcGFyYW0gdWNzMSBBIHN0cmluZyB0
byBjb21wYXJlLgotICogQHBhcmFtIHVjczIgQSBzdHJpbmcgdG8gY29tcGFyZS4KLSAqIEBwYXJh
bSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvbXBhcmUuCisgKiBAcGFy
YW0gdWNzMSBBIHN0cmluZyB0byBjb21wYXJlIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIG48PTAp
LgorICogQHBhcmFtIHVjczIgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52YWxp
ZCBpZiBuPD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJz
IHRvIGNvbXBhcmU7IGFsd2F5cyByZXR1cm5zIDAgaWYgbjw9MC4KICAqIEByZXR1cm4gMCBpZiA8
Y29kZT5zMTwvY29kZT4gYW5kIDxjb2RlPnMyPC9jb2RlPiBhcmUgYml0d2lzZSBlcXVhbDsgYSBu
ZWdhdGl2ZQogICogdmFsdWUgaWYgPGNvZGU+czE8L2NvZGU+IGlzIGJpdHdpc2UgbGVzcyB0aGFu
IDxjb2RlPnMyPC9jb2RlPjsgYSBwb3NpdGl2ZQogICogdmFsdWUgaWYgPGNvZGU+czE8L2NvZGU+
IGlzIGJpdHdpc2UgZ3JlYXRlciB0aGFuIDxjb2RlPnMyPC9jb2RlPi4KQEAgLTY2Nyw4ICs2NzIs
OCBAQCB1X3N0cmNweShVQ2hhciAgICAgKmRzdCwKICAqIGlmIHRoZSBsZW5ndGggb2YgPGNvZGU+
c3JjPC9jb2RlPiBpcyBsZXNzIHRoYW4gPGNvZGU+bjwvY29kZT4uCiAgKgogICogQHBhcmFtIGRz
dCBUaGUgZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmlu
Zy4KLSAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNvcHku
CisgKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlm
IG48PTApLgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8g
Y29weTsgbm8tb3AgaWYgPD0wLgogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZHN0PC9j
b2RlPi4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC03NDIsOCArNzQ3LDggQEAgVV9TVEFC
TEUgY2hhciogVV9FWFBPUlQyIHVfYXVzdHJuY3B5KGNoYXIgKmRzdCwKIC8qKgogICogU3lub255
bSBmb3IgbWVtY3B5KCksIGJ1dCB3aXRoIFVDaGFycyBvbmx5LgogICogQHBhcmFtIGRlc3QgVGhl
IGRlc3RpbmF0aW9uIHN0cmluZwotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZwotICog
QHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb3B5CisgKiBAcGFyYW0g
c3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIGNvdW50PD0wKQor
ICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb3B5OyBuby1vcCBp
ZiA8PTAKICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRlc3Q8L2NvZGU+CiAgKiBAc3Rh
YmxlIElDVSAyLjAKICAqLwpAQCAtNzUzLDggKzc1OCw4IEBAIHVfbWVtY3B5KFVDaGFyICpkZXN0
LCBjb25zdCBVQ2hhciAqc3JjLCBpbnQzMl90IGNvdW50KTsKIC8qKgogICogU3lub255bSBmb3Ig
bWVtbW92ZSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBwYXJhbSBkZXN0IFRoZSBkZXN0
aW5hdGlvbiBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcKLSAqIEBwYXJh
bSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gbW92ZQorICogQHBhcmFtIHNyYyBU
aGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBjb3VudDw9MCkKKyAqIEBw
YXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gbW92ZTsgbm8tb3AgaWYgPD0w
CiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9jb2RlPgogICogQHN0YWJsZSBJ
Q1UgMi4wCiAgKi8KQEAgLTkxOCw3ICs5MjMsNyBAQCB1X21lbXJjaHIzMihjb25zdCBVQ2hhciAq
cywgVUNoYXIzMiBjLCBpbnQzMl90IGNvdW50KTsKICAqICAgIH0KICAqIDwvcHJlPgogICogCi0g
KiBOb3RlIHRoYXQgdGhlIG1hY3JvcyB3aWxsIE5PVCBjb25zaXN0ZW50bHkgd29yayBpZiB0aGVp
ciBhcmd1bWVudCBpcyBhbm90aGVyICNkZWZpbmUuIAorICogTm90ZSB0aGF0IHRoZSBtYWNyb3Mg
d2lsbCBOT1QgY29uc2lzdGVudGx5IHdvcmsgaWYgdGhlaXIgYXJndW1lbnQgaXMgYW5vdGhlciA8
Y29kZT4jZGVmaW5lPC9jb2RlPi4gCiAgKiAgVGhlIGZvbGxvd2luZyB3aWxsIG5vdCB3b3JrIG9u
IGFsbCBwbGF0Zm9ybXMsIGRvbid0IHVzZSBpdC4KICAqIAogICogPHByZT4KQEAgLTkzNCw3ICs5
MzksNyBAQCB1X21lbXJjaHIzMihjb25zdCBVQ2hhciAqcywgVUNoYXIzMiBjLCBpbnQzMl90IGNv
dW50KTsKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiAjaWYgZGVmaW5lZChVX0RFQ0xBUkVfVVRG
MTYpCi0jICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29u
c3QgVUNoYXIgdmFyWyhsZW5ndGgpKzFdPVVfREVDTEFSRV9VVEYxNihjcykKKyMgICBkZWZpbmUg
VV9TVFJJTkdfREVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciAqdmFyPShj
b25zdCBVQ2hhciAqKVVfREVDTEFSRV9VVEYxNihjcykKICAgICAvKipAc3RhYmxlIElDVSAyLjAg
Ki8KICMgICBkZWZpbmUgVV9TVFJJTkdfSU5JVCh2YXIsIGNzLCBsZW5ndGgpCiAjZWxpZiBVX1NJ
WkVPRl9XQ0hBUl9UPT1VX1NJWkVPRl9VQ0hBUiAmJiAoVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJ
SV9GQU1JTFkgfHwgKFVfU0laRU9GX1VDSEFSID09IDIgJiYgZGVmaW5lZChVX1dDSEFSX0lTX1VU
RjE2KSkpCkBAIC05NDIsNyArOTQ3LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVD
aGFyMzIgYywgaW50MzJfdCBjb3VudCk7CiAgICAgLyoqQHN0YWJsZSBJQ1UgMi4wICovCiAjICAg
ZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3RoKQogI2VsaWYgVV9TSVpFT0ZfVUNI
QVI9PTEgJiYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKLSMgICBkZWZpbmUgVV9T
VFJJTkdfREVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0
aCkrMV09eyAoY29uc3QgVUNoYXIgKiljcyB9CisjICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFy
LCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgdmFyWyhsZW5ndGgpKzFdPWNzCiAgICAg
LyoqQHN0YWJsZSBJQ1UgMi4wICovCiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywg
bGVuZ3RoKQogI2Vsc2UKQEAgLTExNTQsMTAgKzExNTksMTIgQEAgdV9zdHJUb1RpdGxlKFVDaGFy
ICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKICNlbmRpZgogCiAvKioKLSAqIENhc2UtZm9s
ZCB0aGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZy4KKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3Rl
cnMgaW4gYSBzdHJpbmcuCisgKgogICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVu
dCBhbmQgbm90IGNvbnRleHQtc2Vuc2l0aXZlLAogICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBm
b3Igd2hldGhlciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCi0g
KiBhbmQgZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdJJyBpbiBDYXNlRm9sZGluZy50
eHQuCisgKiBhbmQgZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9s
ZGluZy50eHQuCisgKgogICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhh
biB0aGUgb3JpZ2luYWwuCiAgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9u
IGJ1ZmZlciBhcmUgYWxsb3dlZCB0byBvdmVybGFwLgogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dGYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
Y3UvdW5pY29kZS91dGYuaAppbmRleCBmNzk0Nzk5MzVkNGExZDZiMWJlZmNkNDA1Y2QwNGY1MjM4
MWI5M2U3Li5mNTk1NGZlOWZlNjk5ODkzYmQzMThlMjQ3NzI5MjZjMTc1YTIwYzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V0Zi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEx
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBA
IC0yMiwxNSArMjIsMjAgQEAKICAqIGEgc3Vycm9nYXRlIG9yIGEgbm9uLWNoYXJhY3RlciBldGMu
CiAgKgogICogVGhlIFVDaGFyIGFuZCBVQ2hhcjMyIGRhdGEgdHlwZXMgZm9yIFVuaWNvZGUgY29k
ZSB1bml0cyBhbmQgY29kZSBwb2ludHMKLSAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lcy5oIGJl
Y2F1c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCisgKiBhcmUgZGVmaW5lZCBpbiB1
bWFjaGluZS5oIGJlY2F1c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCiAgKgotICog
dXRmLmggaXMgaW5jbHVkZWQgYnkgdXR5cGVzLmggYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4Lmgg
YW5kIHV0ZjE2LmggYWZ0ZXIgc29tZQotICogY29tbW9uIGRlZmluaXRpb25zLiBUaG9zZSBmaWxl
cyBkZWZpbmUgbWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCisgKiBJ
ZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyBpcyAwIHRoZW4gdXRmLmggaXMgaW5j
bHVkZWQgYnkgdXR5cGVzLmgKKyAqIGFuZCBpdHNlbGYgaW5jbHVkZXMgdXRmOC5oIGFuZCB1dGYx
Ni5oIGFmdGVyIHNvbWUKKyAqIGNvbW1vbiBkZWZpbml0aW9ucy4KKyAqIElmIFVfTk9fREVGQVVM
VF9JTkNMVURFX1VURl9IRUFERVJTIGlzIDEgdGhlbiBlYWNoIG9mIHRoZXNlIGhlYWRlcnMgbXVz
dCBiZQorICogaW5jbHVkZWQgZXhwbGljaXRseSBpZiB0aGVpciBkZWZpbml0aW9ucyBhcmUgdXNl
ZC4KKyAqCisgKiB1dGY4LmggYW5kIHV0ZjE2LmggZGVmaW5lIG1hY3JvcyBmb3IgZWZmaWNpZW50
bHkgZ2V0dGluZyBjb2RlIHBvaW50cwogICogaW4gYW5kIG91dCBvZiBVVEYtOC8xNiBzdHJpbmdz
LgogICogdXRmMTYuaCBtYWNyb3MgaGF2ZSAiVTE2XyIgcHJlZml4ZXMuCiAgKiB1dGY4LmggZGVm
aW5lcyBzaW1pbGFyIG1hY3JvcyB3aXRoICJVOF8iIHByZWZpeGVzIGZvciBVVEYtOCBzdHJpbmcg
aGFuZGxpbmcuCiAgKgotICogSUNVIHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdzLgor
ICogSUNVIG1vc3RseSBwcm9jZXNzZXMgMTYtYml0IFVuaWNvZGUgc3RyaW5ncy4KICAqIE1vc3Qg
b2YgdGhlIHRpbWUsIHN1Y2ggc3RyaW5ncyBhcmUgd2VsbC1mb3JtZWQgVVRGLTE2LgogICogU2lu
Z2xlLCB1bnBhaXJlZCBzdXJyb2dhdGVzIG11c3QgYmUgaGFuZGxlZCBhcyB3ZWxsLCBhbmQgYXJl
IHRyZWF0ZWQgaW4gSUNVCiAgKiBsaWtlIHJlZ3VsYXIgY29kZSBwb2ludHMgd2hlcmUgcG9zc2li
bGUuCkBAIC00MiwxNSArNDcsMTYgQEAKICAqIElDVSBmdW5jdGlvbnMgaGFuZGxlIHN1cHBsZW1l
bnRhcnkgY29kZSBwb2ludHMgKFUrMTAwMDAuLlUrMTBmZmZmKQogICogYnV0IGFyZSBvcHRpbWl6
ZWQgZm9yIHRoZSBtdWNoIG1vcmUgZnJlcXVlbnRseSBvY2N1cnJpbmcgQk1QIGNvZGUgcG9pbnRz
LgogICoKLSAqIHV0Zi5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0IGlu
dGVnZXIuIElmIHRoaXMgbWF0Y2hlcyB3Y2hhcl90LCB0aGVuCi0gKiBVQ2hhciBpcyBkZWZpbmVk
IHRvIGJlIGV4YWN0bHkgd2NoYXJfdCwgb3RoZXJ3aXNlIHVpbnQxNl90LgorICogdW1hY2hpbmUu
aCBkZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgorICogV2hl
cmUgYXZhaWxhYmxlLCBVQ2hhciBpcyBkZWZpbmVkIHRvIGJlIGEgY2hhcjE2X3QKKyAqIG9yIGEg
d2NoYXJfdCAoaWYgdGhhdCBpcyBhbiB1bnNpZ25lZCAxNi1iaXQgdHlwZSksIG90aGVyd2lzZSB1
aW50MTZfdC4KICAqCiAgKiBVQ2hhcjMyIGlzIGRlZmluZWQgdG8gYmUgYSBzaWduZWQgMzItYml0
IGludGVnZXIgKGludDMyX3QpLCBsYXJnZSBlbm91Z2ggZm9yIGEgMjEtYml0CiAgKiBVbmljb2Rl
IGNvZGUgcG9pbnQgKFVuaWNvZGUgc2NhbGFyIHZhbHVlLCAwLi4weDEwZmZmZikuCiAgKiBCZWZv
cmUgSUNVIDIuNCwgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIzMiB3YXMgc2ltaWxhcmx5IHBsYXRm
b3JtLWRlcGVuZGVudCBhcwogICogdGhlIGRlZmluaXRpb24gb2YgVUNoYXIuIEZvciBkZXRhaWxz
IHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgVUNoYXIzMiBpdHNlbGYuCiAgKgotICogdXRmLmgg
YWxzbyBkZWZpbmVzIGEgc21hbGwgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBzaW5nbGUgVW5pY29k
ZSBjb2RlIHBvaW50cy4KKyAqIHV0Zi5oIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNy
b3MgZm9yIHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgogICogVGhlc2UgYXJlIHNpbXBsZSBj
aGVja3MgZm9yIHN1cnJvZ2F0ZXMgYW5kIG5vbi1jaGFyYWN0ZXJzLgogICogRm9yIGFjdHVhbCBV
bmljb2RlIGNoYXJhY3RlciBwcm9wZXJ0aWVzIHNlZSB1Y2hhci5oLgogICoKQEAgLTU5LDkgKzY1
LDYgQEAKICAqIFRoZSBtYWNyb3Mgd2lsbCBkZXRlY3QgaWYgYSBzdXJyb2dhdGUgY29kZSB1bml0
IGlzIHVucGFpcmVkCiAgKiAobGVhZCB1bml0IHdpdGhvdXQgdHJhaWwgdW5pdCBvciB2aWNlIHZl
cnNhKSBhbmQganVzdCByZXR1cm4gdGhlIHVuaXQgaXRzZWxmCiAgKiBhcyB0aGUgY29kZSBwb2lu
dC4KLSAqIChJdCBpcyBhbiBhY2NpZGVudGFsIHByb3BlcnR5IG9mIFVuaWNvZGUgYW5kIFVURi0x
NiB0aGF0IGFsbAotICogbWFsZm9ybWVkIHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIHVuYW1i
aWd1b3VzbHkgd2l0aCBhIGRpc3RpbmN0IHN1YnJhbmdlCi0gKiBvZiBVbmljb2RlIGNvZGUgcG9p
bnRzLikKICAqCiAgKiBUaGUgcmVndWxhciAic2FmZSIgbWFjcm9zIHJlcXVpcmUgdGhhdCB0aGUg
aW5pdGlhbCwgcGFzc2VkLWluIHN0cmluZyBpbmRleAogICogaXMgd2l0aGluIGJvdW5kcy4gVGhl
eSBvbmx5IGNoZWNrIHRoZSBpbmRleCB3aGVuIHRoZXkgcmVhZCBtb3JlIHRoYW4gb25lCkBAIC05
NSw3ICs5OCw3IEBACiAgKiBjb2RlIHBvaW50IHZhbHVlcyAoMC4uVSsxMGZmZmYpLiBUaGV5IGFy
ZSBpbmRpY2F0ZWQgd2l0aCBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4KICAqCiAgKiBGb3IgbW9y
ZSBpbmZvcm1hdGlvbiBzZWUgdGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICog
KGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0
cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdl
OjwvZW0+CiAgKiBJQ1UgY29kaW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91
bGQgYmUgZm9sbG93ZWQgd2hlbiB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0xMDgsMzIgKzExMSwx
MiBAQAogI2lmbmRlZiBfX1VURl9IX18KICNkZWZpbmUgX19VVEZfSF9fCiAKLSNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hpbmUuaCIKIC8qIGluY2x1
ZGUgdGhlIHV0ZlhYLmggYWZ0ZXIgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyAqLwogCiAvKiBz
aW5nbGUtY29kZSBwb2ludCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKLSAqIFRoaXMgdmFsdWUgaXMgaW50ZW5kZWQgZm9y
IHNlbnRpbmVsIHZhbHVlcyBmb3IgQVBJcyB0aGF0Ci0gKiAodGFrZSBvcikgcmV0dXJuIHNpbmds
ZSBjb2RlIHBvaW50cyAoVUNoYXIzMikuCi0gKiBJdCBpcyBvdXRzaWRlIG9mIHRoZSBVbmljb2Rl
IGNvZGUgcG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCi0gKiAKLSAqIEZvciBleGFtcGxlLCBhICJk
b25lIiBvciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQotICogY291bGQgYmUgaW5kaWNhdGVk
IHdpdGggVV9TRU5USU5FTC4KLSAqCi0gKiBJQ1UgQVBJcyBkZXNpZ25lZCBiZWZvcmUgSUNVIDIu
NCB1c3VhbGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgotICogdmFsdWVzLCBtb3N0
bHkgMHhmZmZmLgotICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tCi0g
KiBhY3R1YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5jdGlvbnMgbGlrZQot
ICogQ2hhcmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3RyaW5nOjpsZW5ndGgo
KS4KLSAqCi0gKiBAcmV0dXJuIC0xCi0gKiBAc2VlIFVDaGFyMzIKLSAqIEBzdGFibGUgSUNVIDIu
NAotICovCi0jZGVmaW5lIFVfU0VOVElORUwgKC0xKQotCi0vKioKICAqIElzIHRoaXMgY29kZSBw
b2ludCBhIFVuaWNvZGUgbm9uY2hhcmFjdGVyPwogICogQHBhcmFtIGMgMzItYml0IGNvZGUgcG9p
bnQKICAqIEByZXR1cm4gVFJVRSBvciBGQUxTRQpAQCAtMjI3LDEwICsyMTAsMTQgQEAKIAogLyog
aW5jbHVkZSB0aGUgdXRmWFguaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKi8KIAorI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVB
REVSUworCiAjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCiAjaW5jbHVkZSAidW5pY29kZS91dGYx
Ni5oIgogCiAvKiB1dGZfb2xkLmggY29udGFpbnMgZGVwcmVjYXRlZCwgcHJlLUlDVSAyLjQgZGVm
aW5pdGlvbnMgKi8KICNpbmNsdWRlICJ1bmljb2RlL3V0Zl9vbGQuaCIKIAotI2VuZGlmCisjZW5k
aWYgIC8qICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAqLworCisjZW5kaWYgIC8q
IF9fVVRGX0hfXyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmlj
b2RlL3V0ZjE2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmMTYuaApp
bmRleCA1MDc5YzExNDZiM2QzNDcyMzBjZDY5OGEwZTEzOTY4OTdlNDg0NWFkLi5iZGQ4OGE4Yjlj
NGYwMGVhMGRmMjcyYWMwMmY2OTY3ZWY2MTA4OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmMTYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aWN1L3VuaWNvZGUvdXRmMTYuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTAsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMiwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksMTEgKzE5LDkg
QEAKICAqIFxicmllZiBDIEFQSTogMTYtYml0IFVuaWNvZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAK
ICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggMTYtYml0IFVuaWNvZGUg
KFVURi0xNikgY29kZSB1bml0cyBhbmQgc3RyaW5ncy4KLSAqIHV0ZjE2LmggaXMgaW5jbHVkZWQg
YnkgdXRmLmggYWZ0ZXIgdW5pY29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24gZGVm
aW5pdGlvbnMuCiAgKgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUg
SUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9y
Zy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9q
ZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2Rpbmcg
Z3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVz
aW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19VVEYxNl9IX18K
ICNkZWZpbmUgX19VVEYxNl9IX18KIAotLyogdXRmLmggbXVzdCBiZSBpbmNsdWRlZCBmaXJzdC4g
Ki8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjaWZuZGVmIF9fVVRGX0hfXwogIyAg
IGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAgLTE4Miw2ICsxODAsOSBAQAogICog
VGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIG9yIHRyYWlsIHN1cnJvZ2F0
ZSB1bml0CiAgKiBmb3IgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2Ug
dGhlIG1hY3JvIHdpbGwgcmVhZAogICogdGhlIGFkamFjZW50IG1hdGNoaW5nIHN1cnJvZ2F0ZSBh
cyB3ZWxsLgorICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJt
aW5hdGVkIHN0cmluZy4KKyAqCiAgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHNpbmdsZSwg
dW5wYWlyZWQgc3Vycm9nYXRlLCB0aGVuIHRoYXQgaXRzZWxmCiAgKiB3aWxsIGJlIHJldHVybmVk
IGFzIHRoZSBjb2RlIHBvaW50LgogICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9y
ZSBlZmZpY2llbnQgd2l0aCBVMTZfTkVYVF9VTlNBRkUgb3IgVTE2X05FWFQuCkBAIC0xOTksNyAr
MjAwLDcgQEAKICAgICBpZihVMTZfSVNfU1VSUk9HQVRFKGMpKSB7IFwKICAgICAgICAgdWludDE2
X3QgX19jMjsgXAogICAgICAgICBpZihVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAotICAg
ICAgICAgICAgaWYoKGkpKzE8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsx
XSkpIHsgXAorICAgICAgICAgICAgaWYoKGkpKzEhPShsZW5ndGgpICYmIFUxNl9JU19UUkFJTChf
X2MyPShzKVsoaSkrMV0pKSB7IFwKICAgICAgICAgICAgICAgICAoYyk9VTE2X0dFVF9TVVBQTEVN
RU5UQVJZKChjKSwgX19jMik7IFwKICAgICAgICAgICAgIH0gXAogICAgICAgICB9IGVsc2UgeyBc
CkBAIC0yNDQsNiArMjQ1LDggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJh
dGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQg
Y2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBu
ZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogVGhlIG9mZnNldCBt
YXkgcG9pbnQgdG8gdGhlIGxlYWQgc3Vycm9nYXRlIHVuaXQKICAqIGZvciBhIHN1cHBsZW1lbnRh
cnkgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkCiAgKiB0aGUg
Zm9sbG93aW5nIHRyYWlsIHN1cnJvZ2F0ZSBhcyB3ZWxsLgpAQCAtMjYyLDcgKzI2NSw3IEBACiAg
ICAgKGMpPShzKVsoaSkrK107IFwKICAgICBpZihVMTZfSVNfTEVBRChjKSkgeyBcCiAgICAgICAg
IHVpbnQxNl90IF9fYzI7IFwKLSAgICAgICAgaWYoKGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJ
TChfX2MyPShzKVsoaSldKSkgeyBcCisgICAgICAgIGlmKChpKSE9KGxlbmd0aCkgJiYgVTE2X0lT
X1RSQUlMKF9fYzI9KHMpWyhpKV0pKSB7IFwKICAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAg
ICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZKChjKSwgX19jMik7IFwKICAgICAgICAgfSBc
CkBAIC0zNDAsNiArMzQzLDggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQog
ICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBm
b3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUg
Zm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFy
ICogc3RyaW5nCiAgKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCiAg
KiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKQEAgLTM0Nyw3ICszNTIsNyBAQAogICogQHN0
YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVTE2X0ZXRF8xKHMsIGksIGxlbmd0aCkgeyBcCi0g
ICAgaWYoVTE2X0lTX0xFQUQoKHMpWyhpKSsrXSkgJiYgKGkpPChsZW5ndGgpICYmIFUxNl9JU19U
UkFJTCgocylbaV0pKSB7IFwKKyAgICBpZihVMTZfSVNfTEVBRCgocylbKGkpKytdKSAmJiAoaSkh
PShsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKICAgICAgICAgKysoaSk7IFwK
ICAgICB9IFwKIH0KQEAgLTM3OCwxNiArMzgzLDE4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcg
aXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVz
IGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2Fu
IGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0g
cyBjb25zdCBVQ2hhciAqIHN0cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBi
ZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBp
bnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGgg
aW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMg
dG8gc2tpcAogICogQHNlZSBVMTZfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAq
LwogI2RlZmluZSBVMTZfRldEX04ocywgaSwgbGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9f
Tj0obik7IFwKLSAgICB3aGlsZShfX04+MCAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxl
KF9fTj4wICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsg
XAogICAgICAgICBVMTZfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAgICAgICAtLV9fTjsgXAog
ICAgIH0gXApAQCAtNTk4LDE1ICs2MDUsMTcgQEAKICAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJl
IHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVz
IHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAg
KgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3Ry
aW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3RyaW5nCi0gKiBAcGFyYW0gc3Rh
cnQgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQotICogQHBhcmFtIGkgc3RyaW5n
IG9mZnNldCwgc3RhcnQ8PWk8PWxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3Ro
CisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5
IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgK
KyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFUxNl9TRVRf
Q1BfTElNSVRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVMTZfU0VU
X0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYm
IChpKTwobGVuZ3RoKSAmJiBVMTZfSVNfTEVBRCgocylbKGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwo
KHMpW2ldKSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8fCAobGVu
Z3RoKTwwKSAmJiBVMTZfSVNfTEVBRCgocylbKGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ld
KSkgeyBcCiAgICAgICAgICsrKGkpOyBcCiAgICAgfSBcCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmOC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ljdS91bmljb2RlL3V0ZjguaAppbmRleCA2NDA1Nzk1YTVhMWM1MzY5ODg0NmQxMTAxNTY5OWI2
MWMzMTAyMjI0Li4yMWU1ZjNkMDQ3OTA1MzE1NWYyOTRjNDI4ODRmNDI3NGRhNTQ0ZWI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXRmOC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dGY4LmgKQEAgLTEsNyArMSw3IEBACiAv
KgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA5
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKQEAgLTE5LDExICsxOSw5IEBACiAgKiBcYnJpZWYgQyBBUEk6IDgtYml0IFVuaWNvZGUgaGFu
ZGxpbmcgbWFjcm9zCiAgKiAKICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdp
dGggOC1iaXQgVW5pY29kZSAoVVRGLTgpIGNvZGUgdW5pdHMgKGJ5dGVzKSBhbmQgc3RyaW5ncy4K
LSAqIHV0ZjguaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmgK
LSAqIGFuZCBzb21lIGNvbW1vbiBkZWZpbml0aW9ucy4KICAqCiAgKiBGb3IgbW9yZSBpbmZvcm1h
dGlvbiBzZWUgdXRmLmggYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBTdHJpbmdzIGNoYXB0ZXIKLSAq
IChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9zdHJpbmdzLmh0bWwpLgorICogKGh0
dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL3N0cmluZ3MpLgogICoKICAqIDxlbT5Vc2Fn
ZTo8L2VtPgogICogSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hv
dWxkIGJlIGZvbGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgpAQCAtMzQsNyArMzIsNyBA
QAogI2lmbmRlZiBfX1VURjhfSF9fCiAjZGVmaW5lIF9fVVRGOF9IX18KIAotLyogdXRmLmggbXVz
dCBiZSBpbmNsdWRlZCBmaXJzdC4gKi8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAj
aWZuZGVmIF9fVVRGX0hfXwogIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAg
LTYyLDEzICs2MCw0MSBAQCBVX0NGVU5DIFVfSU1QT1JUIGNvbnN0IHVpbnQ4X3QgLyogVV9JTVBP
UlQyPyAqLyAvKlVfSU1QT1JUKi8KIHV0ZjhfY291bnRUcmFpbEJ5dGVzWzI1Nl07CiAKIC8qKgot
ICogQ291bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIENvdW50
cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlLgorICogUmV0dXJucyAwIGZv
ciAwLi4weGJmIGFzIHdlbGwgYXMgZm9yIDB4ZmUgYW5kIDB4ZmYuCiAgKgogICogVGhpcyBpcyBp
bnRlcm5hbCBzaW5jZSBpdCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IGV4
dGVybmFsIGNsaWVudHM7CiAgKiBob3dldmVyIGl0IGlzIGNhbGxlZCBieSBwdWJsaWMgbWFjcm9z
IGluIHRoaXMgZmlsZSBhbmQgdGh1cyBtdXN0IHJlbWFpbiBzdGFibGUuCisgKgorICogTm90ZTog
QmVnaW5uaW5nIHdpdGggSUNVIDUwLCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhIG11bHRpLWNv
bmRpdGlvbiBleHByZXNzaW9uCisgKiB3aGljaCB3YXMgc2hvd24gaW4gMjAxMiAob24geDg2LTY0
KSB0byBjb21waWxlIHRvIGZhc3QsIGJyYW5jaC1mcmVlIGNvZGUuCisgKiBsZWFkQnl0ZSBpcyBl
dmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMuCisgKgorICogVGhlIHByZS1JQ1UgNTAgaW1wbGVtZW50
YXRpb24gdXNlZCB0aGUgZXhwb3J0ZWQgYXJyYXkgdXRmOF9jb3VudFRyYWlsQnl0ZXM6CisgKiAj
ZGVmaW5lIFU4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0
ZXNbbGVhZEJ5dGVdKQorICogbGVhZEJ5dGUgd2FzIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCisg
KgorICogQHBhcmFtIGxlYWRCeXRlIFRoZSBmaXJzdCBieXRlIG9mIGEgVVRGLTggc2VxdWVuY2Uu
IE11c3QgYmUgMC4uMHhmZi4KICAqIEBpbnRlcm5hbAogICovCi0jZGVmaW5lIFU4X0NPVU5UX1RS
QUlMX0JZVEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5
dGVdKQorI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgXAorICAgICgobGVh
ZEJ5dGUpPDB4ZjAgPyBcCisgICAgICAgICgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49
MHhlMCkgOiBcCisgICAgICAgIChsZWFkQnl0ZSk8MHhmZSA/IDMrKChsZWFkQnl0ZSk+PTB4Zjgp
KygobGVhZEJ5dGUpPj0weGZjKSA6IDApCisKKy8qKgorICogQ291bnRzIHRoZSB0cmFpbCBieXRl
cyBmb3IgYSBVVEYtOCBsZWFkIGJ5dGUgb2YgYSB2YWxpZCBVVEYtOCBzZXF1ZW5jZS4KKyAqIFRo
ZSBtYXhpbXVtIHN1cHBvcnRlZCBsZWFkIGJ5dGUgaXMgMHhmNCBjb3JyZXNwb25kaW5nIHRvIFUr
MTBGRkZGLgorICogbGVhZEJ5dGUgbWlnaHQgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgor
ICoKKyAqIFRoaXMgaXMgaW50ZXJuYWwgc2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxl
ZCBkaXJlY3RseSBieSBleHRlcm5hbCBjbGllbnRzOworICogaG93ZXZlciBpdCBpcyBjYWxsZWQg
YnkgcHVibGljIG1hY3JvcyBpbiB0aGlzIGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxl
LgorICoKKyAqIEBwYXJhbSBsZWFkQnl0ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVl
bmNlLiBNdXN0IGJlIDAuLjB4ZmYuCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVOF9DT1VO
VF9UUkFJTF9CWVRFU19VTlNBRkUobGVhZEJ5dGUpIFwKKyAgICAoKChsZWFkQnl0ZSk+PTB4YzAp
KygobGVhZEJ5dGUpPj0weGUwKSsoKGxlYWRCeXRlKT49MHhmMCkpCiAKIC8qKgogICogTWFzayBh
IFVURi04IGxlYWQgYnl0ZSwgbGVhdmUgb25seSB0aGUgbG93ZXIgYml0cyB0aGF0IGZvcm0gcGFy
dCBvZiB0aGUgY29kZSBwb2ludCB2YWx1ZS4KQEAgLTIwNiwyNCArMjMyLDYwIEBAIHV0ZjhfYmFj
azFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwog
ICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9m
IHRoZSB0cmFpbCBieXRlcwogICogZm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUg
bWFjcm8gd2lsbCByZWFkIGFsbCBvZiB0aGUgYnl0ZXMKICAqIGZvciB0aGUgY29kZSBwb2ludC4K
KyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBz
dHJpbmcuCisgKgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBi
eXRlIHNlcXVlbmNlLCB0aGVuCiAgKiBjIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICog
SXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhU
X1VOU0FGRSBvciBVOF9ORVhULgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJp
bmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0Ci0gKiBAcGFyYW0gaSBz
dHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBz
dHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zm
c2V0CisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8
bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFt
IGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0byA8MCBpbiBjYXNlIG9mIGFuIGVycm9y
CiAgKiBAc2VlIFU4X0dFVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5l
IFU4X0dFVChzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSB7IFwKLSAgICBpbnQzMl90IF91OF9nZXRf
aW5kZXg9KGludDMyX3QpKGkpOyBcCisgICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAog
ICAgIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgX3U4X2dldF9pbmRleCk7IFwKICAgICBVOF9O
RVhUKHMsIF91OF9nZXRfaW5kZXgsIGxlbmd0aCwgYyk7IFwKIH0KIAorI2lmbmRlZiBVX0hJREVf
RFJBRlRfQVBJCisvKioKKyAqIEdldCBhIGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIHJh
bmRvbS1hY2Nlc3Mgb2Zmc2V0LAorICogd2l0aG91dCBjaGFuZ2luZyB0aGUgb2Zmc2V0LgorICog
VGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRo
ZSB0cmFpbCBieXRlcworICogZm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFj
cm8gd2lsbCByZWFkIGFsbCBvZiB0aGUgYnl0ZXMKKyAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAq
CisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJp
bmcuCisgKgorICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRl
IHNlcXVlbmNlLCB0aGVuCisgKiBjIGlzIHNldCB0byBVK0ZGRkQuCisgKiBJdGVyYXRpb24gdGhy
b3VnaCBhIHN0cmluZyBpcyBtb3JlIGVmZmljaWVudCB3aXRoIFU4X05FWFRfVU5TQUZFIG9yIFU4
X05FWFRfT1JfRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJl
dHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBm
b3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9HRVQoKSBpZiB0aGF0IGRpc3Rp
bmN0aW9uIGlzIGltcG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3Ry
aW5nCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBA
cGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisg
KiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0
IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICog
QHNlZSBVOF9HRVQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9HRVRfT1JfRkZG
RChzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSB7IFwKKyAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9
KGkpOyBcCisgICAgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBfdThfZ2V0X2luZGV4KTsgXAor
ICAgIFU4X05FWFRfT1JfRkZGRChzLCBfdThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBcCit9Cisj
ZW5kaWYgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCiAvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndh
cmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwog
CiAvKioKQEAgLTI0NSwxOSArMzA3LDE2IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50
OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICovCiAjZGVmaW5lIFU4X05FWFRf
VU5TQUZFKHMsIGksIGMpIHsgXAogICAgIChjKT0odWludDhfdCkocylbKGkpKytdOyBcCi0gICAg
aWYoKHVpbnQ4X3QpKChjKS0weGMwKTwweDM1KSB7IFwKLSAgICAgICAgdWludDhfdCBfX2NvdW50
PVU4X0NPVU5UX1RSQUlMX0JZVEVTKGMpOyBcCi0gICAgICAgIFU4X01BU0tfTEVBRF9CWVRFKGMs
IF9fY291bnQpOyBcCi0gICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKLSAgICAgICAgLyogZWFj
aCBmb2xsb3dpbmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKLSAg
ICAgICAgY2FzZSAzOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgz
Zik7IFwKLSAgICAgICAgY2FzZSAyOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVso
aSkrK10mMHgzZik7IFwKLSAgICAgICAgY2FzZSAxOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8
Nil8KChzKVsoaSkrK10mMHgzZik7IFwKLSAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8g
b3B0aW1pemUgc3dpdGNoKCkgKi8gXAotICAgICAgICAgICAgYnJlYWs7IFwKKyAgICBpZigoYyk+
PTB4ODApIHsgXAorICAgICAgICBpZigoYyk8MHhlMCkgeyBcCisgICAgICAgICAgICAoYyk9KCgo
YykmMHgxZik8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIH0gZWxzZSBpZigoYyk8
MHhmMCkgeyBcCisgICAgICAgICAgICAvKiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhl
IHVwcGVyIGJpdHMgYXJlIHRydW5jYXRlZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hh
cikgKi8gXAorICAgICAgICAgICAgKGMpPShVQ2hhcikoKChjKTw8MTIpfCgoKHMpW2ldJjB4M2Yp
PDw2KXwoKHMpWyhpKSsxXSYweDNmKSk7IFwKKyAgICAgICAgICAgIChpKSs9MjsgXAorICAgICAg
ICB9IGVsc2UgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmNyk8PDE4KXwoKChzKVtpXSYweDNm
KTw8MTIpfCgoKHMpWyhpKSsxXSYweDNmKTw8Nil8KChzKVsoaSkrMl0mMHgzZik7IFwKKyAgICAg
ICAgICAgIChpKSs9MzsgXAogICAgICAgICB9IFwKICAgICB9IFwKIH0KQEAgLTI2OCwxNCArMzI3
LDE2IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0
LCBpbnQzMl90IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikK
ICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0
cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBh
IE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0
aGUgbGVhZCBieXRlIG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZSwKICAqIGluIHdoaWNoIGNhc2Ug
dGhlIG1hY3JvIHdpbGwgcmVhZCB0aGUgd2hvbGUgc2VxdWVuY2UuCiAgKiBJZiB0aGUgb2Zmc2V0
IHBvaW50cyB0byBhIHRyYWlsIGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhl
bgogICogYyBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZS4KICAqCiAgKiBAcGFyYW0gcyBjb25z
dCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8
bGVuZ3RoCi0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMy
X3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQz
Ml90IHN0cmluZyBsZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBz
ZXQgdG8gPDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9ORVhUX1VOU0FGRQogICog
QHN0YWJsZSBJQ1UgMi40CkBAIC0yODYsNyArMzQ3LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNv
bnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgIHVpbnQ4
X3QgX190MSwgX190MjsgXAogICAgICAgICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlu
bGluZSAqLyBcCiAgICAgICAgICAgICAoMHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCi0gICAg
ICAgICAgICAoKChpKSsxKTwobGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxl
bmd0aCkgfHwgKGxlbmd0aCk8MCkgJiYgXAogICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChz
KVtpXS0weDgwKSk8PTB4M2YgJiYgXAogICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVso
aSkrMV0tMHg4MCkpPD0gMHgzZiBcCiAgICAgICAgICkgeyBcCkBAIC0yOTUsMTkgKzM1Niw3MCBA
QCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50
MzJfdCBpKTsKICAgICAgICAgICAgIChpKSs9MjsgXAogICAgICAgICB9IGVsc2UgaWYoIC8qIGhh
bmRsZSBVKzAwODAuLlUrMDdGRiBpbmxpbmUgKi8gXAogICAgICAgICAgICAgKChjKTwweGUwICYm
IChjKT49MHhjMikgJiYgXAotICAgICAgICAgICAgKChpKTwobGVuZ3RoKSkgJiYgXAorICAgICAg
ICAgICAgKChpKSE9KGxlbmd0aCkpICYmIFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgo
cylbaV0tMHg4MCkpPD0weDNmIFwKICAgICAgICAgKSB7IFwKLSAgICAgICAgICAgIChjKT0oVUNo
YXIpKCgoKGMpJjB4MWYpPDw2KXxfX3QxKTsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYp
PDw2KXxfX3QxOyBcCiAgICAgICAgICAgICArKyhpKTsgXAotICAgICAgICB9IGVsc2UgaWYoVThf
SVNfTEVBRChjKSkgeyBcCisgICAgICAgIH0gZWxzZSB7IFwKICAgICAgICAgICAgIC8qIGZ1bmN0
aW9uIGNhbGwgZm9yICJjb21wbGljYXRlZCIgYW5kIGVycm9yIGNhc2VzICovIFwKLSAgICAgICAg
ICAgIChjKT11dGY4X25leHRDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCAmKGkpLCAo
aW50MzJfdCkobGVuZ3RoKSwgYywgLTEpOyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hh
clNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0xKTsgXAor
ICAgICAgICB9IFwKKyAgICB9IFwKK30KKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioK
KyAqIEdldCBhIGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIGNvZGUgcG9pbnQgYm91bmRh
cnkgb2Zmc2V0LAorICogYW5kIGFkdmFuY2UgdGhlIG9mZnNldCB0byB0aGUgbmV4dCBjb2RlIHBv
aW50IGJvdW5kYXJ5LgorICogKFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikK
KyAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0
cmluZyBib3VuZGFyaWVzLgorICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBh
IE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCisgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0
aGUgbGVhZCBieXRlIG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZSwKKyAqIGluIHdoaWNoIGNhc2Ug
dGhlIG1hY3JvIHdpbGwgcmVhZCB0aGUgd2hvbGUgc2VxdWVuY2UuCisgKiBJZiB0aGUgb2Zmc2V0
IHBvaW50cyB0byBhIHRyYWlsIGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhl
bgorICogYyBpcyBzZXQgdG8gVStGRkZELgorICoKKyAqIFRoaXMgbWFjcm8gZG9lcyBub3QgZGlz
dGluZ3Vpc2ggYmV0d2VlbiBhIHJlYWwgVStGRkZEIGluIHRoZSB0ZXh0CisgKiBhbmQgVStGRkZE
IHJldHVybmVkIGZvciBhbiBpbGwtZm9ybWVkIHNlcXVlbmNlLgorICogVXNlIFU4X05FWFQoKSBp
ZiB0aGF0IGRpc3RpbmN0aW9uIGlzIGltcG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1
aW50OF90ICogc3RyaW5nCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3Qg
YmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCisgKiBA
cGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9m
IGFuIGVycm9yCisgKiBAc2VlIFU4X05FWFQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmlu
ZSBVOF9ORVhUX09SX0ZGRkQocywgaSwgbGVuZ3RoLCBjKSB7IFwKKyAgICAoYyk9KHVpbnQ4X3Qp
KHMpWyhpKSsrXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIHVpbnQ4X3QgX190
MSwgX190MjsgXAorICAgICAgICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAq
LyBcCisgICAgICAgICAgICAoMHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCisgICAgICAgICAg
ICAoKChpKSsxKTwobGVuZ3RoKSB8fCAobGVuZ3RoKTwwKSAmJiBcCisgICAgICAgICAgICAoX190
MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiAmJiBcCisgICAgICAgICAgICAoX190Mj0o
dWludDhfdCkoKHMpWyhpKSsxXS0weDgwKSk8PSAweDNmIFwKKyAgICAgICAgKSB7IFwKKyAgICAg
ICAgICAgIC8qIG5vIG5lZWQgZm9yIChjJjB4ZikgYmVjYXVzZSB0aGUgdXBwZXIgYml0cyBhcmUg
dHJ1bmNhdGVkIGFmdGVyIDw8MTIgaW4gdGhlIGNhc3QgdG8gKFVDaGFyKSAqLyBcCisgICAgICAg
ICAgICAoYyk9KFVDaGFyKSgoKGMpPDwxMil8KF9fdDE8PDYpfF9fdDIpOyBcCisgICAgICAgICAg
ICAoaSkrPTI7IFwKKyAgICAgICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYg
aW5saW5lICovIFwKKyAgICAgICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKKyAg
ICAgICAgICAgICgoaSkhPShsZW5ndGgpKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhf
dCkoKHMpW2ldLTB4ODApKTw9MHgzZiBcCisgICAgICAgICkgeyBcCisgICAgICAgICAgICAoYyk9
KCgoYykmMHgxZik8PDYpfF9fdDE7IFwKKyAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgIH0g
ZWxzZSB7IFwKLSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBcCisgICAgICAgICAgICAvKiBm
dW5jdGlvbiBjYWxsIGZvciAiY29tcGxpY2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCisgICAg
ICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihp
KSwgKGxlbmd0aCksIGMsIC0zKTsgXAogICAgICAgICB9IFwKICAgICB9IFwKIH0KKyNlbmRpZiAv
KiBVX0hJREVfRFJBRlRfQVBJICovCiAKIC8qKgogICogQXBwZW5kIGEgY29kZSBwb2ludCB0byBh
IHN0cmluZywgb3ZlcndyaXRpbmcgMSB0byA0IGJ5dGVzLgpAQCAtMzUxLDkgKzQ2Myw5IEBAIHV0
ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90
IGkpOwogICogdGhlbiBpc0Vycm9yIGlzIHNldCB0byBUUlVFLgogICoKICAqIEBwYXJhbSBzIGNv
bnN0IHVpbnQ4X3QgKiBzdHJpbmcgYnVmZmVyCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBt
dXN0IGJlIGk8Y2FwYWNpdHkKLSAqIEBwYXJhbSBjYXBhY2l0eSBzaXplIG9mIHRoZSBzdHJpbmcg
YnVmZmVyCi0gKiBAcGFyYW0gYyBjb2RlIHBvaW50IHRvIGFwcGVuZAorICogQHBhcmFtIGkgaW50
MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8Y2FwYWNpdHkKKyAqIEBwYXJhbSBjYXBhY2l0
eSBpbnQzMl90IHNpemUgb2YgdGhlIHN0cmluZyBidWZmZXIKKyAqIEBwYXJhbSBjIFVDaGFyMzIg
Y29kZSBwb2ludCB0byBhcHBlbmQKICAqIEBwYXJhbSBpc0Vycm9yIG91dHB1dCBVQm9vbCBzZXQg
dG8gVFJVRSBpZiBhbiBlcnJvciBvY2N1cnMsIG90aGVyd2lzZSBub3QgbW9kaWZpZWQKICAqIEBz
ZWUgVThfQVBQRU5EX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC0zNjksNyArNDgxLDcg
QEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGlu
dDMyX3QgaSk7CiAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3QpKCgoKGMpPj42KSYweDNmKXww
eDgwKTsgXAogICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpJjB4M2YpfDB4ODApOyBc
CiAgICAgfSBlbHNlIHsgXAotICAgICAgICAoaSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywg
KGludDMyX3QpKGkpLCAoaW50MzJfdCkoY2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAorICAg
ICAgICAoaSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGkpLCAoY2FwYWNpdHkpLCBjLCAm
KGlzRXJyb3IpKTsgXAogICAgIH0gXAogfQogCkBAIC0zODQsNyArNDk2LDcgQEAgdXRmOF9iYWNr
MVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAg
KiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9GV0RfMV9VTlNBRkUocywgaSkgeyBc
Ci0gICAgKGkpKz0xK1U4X0NPVU5UX1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKKyAgICAoaSkrPTEr
VThfQ09VTlRfVFJBSUxfQllURVNfVU5TQUZFKCh1aW50OF90KShzKVtpXSk7IFwKIH0KIAogLyoq
CkBAIC0zOTIsOSArNTA0LDExIEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpz
LCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJh
dGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5k
IGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2
ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgdWlu
dDhfdCAqIHN0cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0
aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0
cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBz
dHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFU4X0ZXRF8xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40
CiAgKi8KQEAgLTQwMiw3ICs1MTYsNyBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhf
dCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAgICB1aW50OF90IF9fYj0odWludDhf
dCkocylbKGkpKytdOyBcCiAgICAgaWYoVThfSVNfTEVBRChfX2IpKSB7IFwKICAgICAgICAgdWlu
dDhfdCBfX2NvdW50PVU4X0NPVU5UX1RSQUlMX0JZVEVTKF9fYik7IFwKLSAgICAgICAgaWYoKGkp
K19fY291bnQ+KGxlbmd0aCkpIHsgXAorICAgICAgICBpZigoaSkrX19jb3VudD4obGVuZ3RoKSAm
JiAobGVuZ3RoKT49MCkgeyBcCiAgICAgICAgICAgICBfX2NvdW50PSh1aW50OF90KSgobGVuZ3Ro
KS0oaSkpOyBcCiAgICAgICAgIH0gXAogICAgICAgICB3aGlsZShfX2NvdW50PjAgJiYgVThfSVNf
VFJBSUwoKHMpW2ldKSkgeyBcCkBAIC00MzgsMTYgKzU1MiwxOCBAQCB1dGY4X2JhY2sxU2FmZUJv
ZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0
LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGls
bGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxl
bmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAq
IEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZz
ZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICog
QHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFy
YW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNv
ZGUgcG9pbnRzIHRvIHNraXAKICAqIEBzZWUgVThfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElD
VSAyLjQKICAqLwogI2RlZmluZSBVOF9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIHsgXAogICAgIGlu
dDMyX3QgX19OPShuKTsgXAotICAgIHdoaWxlKF9fTj4wICYmIChpKTwobGVuZ3RoKSkgeyBcCisg
ICAgd2hpbGUoX19OPjAgJiYgKChpKTwobGVuZ3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0h
PTApKSkgeyBcCiAgICAgICAgIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAgLS1f
X047IFwKICAgICB9IFwKQEAgLTQ3OSwxNCArNTk1LDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShj
b25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1h
Y3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJp
ZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0
YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmlu
ZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0
aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5n
IG9mZnNldCwgbXVzdCBiZSBzdGFydDw9aQogICogQHNlZSBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZF
CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9TRVRfQ1BfU1RBUlQocywgc3Rh
cnQsIGkpIHsgXAogICAgIGlmKFU4X0lTX1RSQUlMKChzKVsoaSldKSkgeyBcCi0gICAgICAgIChp
KT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAgICAg
KGkpPXV0ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQogCkBA
IC01NDcsOCArNjYzLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGlu
dDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBp
bGxlZ2FsIFVURi04IHNlcXVlbmNlLCB0aGVuIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUu
CiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0
IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBv
ZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcg
c3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zm
c2V0LCBtdXN0IGJlIHN0YXJ0PGkKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxl
LCBzZXQgdG8gPDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9QUkVWX1VOU0FGRQog
ICogQHN0YWJsZSBJQ1UgMi40CkBAIC01NTYsMTMgKzY3Miw0MiBAQCB1dGY4X2JhY2sxU2FmZUJv
ZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICNkZWZpbmUg
VThfUFJFVihzLCBzdGFydCwgaSwgYykgeyBcCiAgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07
IFwKICAgICBpZigoYyk+PTB4ODApIHsgXAotICAgICAgICBpZigoYyk8PTB4YmYpIHsgXAotICAg
ICAgICAgICAgKGMpPXV0ZjhfcHJldkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0
YXJ0LCAmKGkpLCBjLCAtMSk7IFwKLSAgICAgICAgfSBlbHNlIHsgXAotICAgICAgICAgICAgKGMp
PVVfU0VOVElORUw7IFwKLSAgICAgICAgfSBcCisgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2Fm
ZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBcCisgICAgfSBc
Cit9CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBNb3ZlIHRoZSBzdHJpbmcg
b2Zmc2V0IGZyb20gb25lIGNvZGUgcG9pbnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZQor
ICogYW5kIGdldCB0aGUgY29kZSBwb2ludCBiZXR3ZWVuIHRoZW0uCisgKiAoUHJlLWRlY3JlbWVu
dGluZyBiYWNrd2FyZCBpdGVyYXRpb24uKQorICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGls
bGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCisgKgorICogVGhlIGlu
cHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0cmluZyBsZW5ndGguCisgKiBJZiB0
aGUgb2Zmc2V0IGlzIGJlaGluZCBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsIHRoZW4gdGhlIG1hY3Jv
IHdpbGwgcmVhZAorICogdGhlIHdob2xlIHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBpcyBi
ZWhpbmQgYSBsZWFkIGJ5dGUsIHRoZW4gdGhhdCBpdHNlbGYKKyAqIHdpbGwgYmUgcmV0dXJuZWQg
YXMgdGhlIGNvZGUgcG9pbnQuCisgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2Fs
IFVURi04IHNlcXVlbmNlLCB0aGVuIGMgaXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1h
Y3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4
dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAq
IFVzZSBVOF9QUkVWKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICog
QHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qg
c3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBz
dHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMy
IHZhcmlhYmxlLCBzZXQgdG8gVStGRkZEIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThf
UFJFVgorICogQGRyYWZ0IElDVSA1MQorICovCisjZGVmaW5lIFU4X1BSRVZfT1JfRkZGRChzLCBz
dGFydCwgaSwgYykgeyBcCisgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKKyAgICBpZigo
Yyk+PTB4ODApIHsgXAorICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1
aW50OF90ICopcywgc3RhcnQsICYoaSksIGMsIC0zKTsgXAogICAgIH0gXAogfQorI2VuZGlmIC8q
IFVfSElERV9EUkFGVF9BUEkgKi8KIAogLyoqCiAgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZy
b20gb25lIGNvZGUgcG9pbnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZS4KQEAgLTU4Niwx
NCArNzMxLDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90
IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwg
c2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29u
c3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZz
ZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8
aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxs
eSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkK
ICAqIEBzZWUgVThfQkFDS18xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZp
bmUgVThfQkFDS18xKHMsIHN0YXJ0LCBpKSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylbLS0o
aSldKSkgeyBcCi0gICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQz
Ml90KShpKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkp
KTsgXAogICAgIH0gXAogfQogCkBAIC02MjYsOCArNzcxLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5
KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAiU2FmZSIg
bWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRh
cmllcy4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0g
c3RhcnQgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmlu
ZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3QgaW5kZXgg
b2YgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9m
ZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMg
dG8gc2tpcAogICogQHNlZSBVOF9CQUNLX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKQEAg
LTY2NiwxNSArODExLDE3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBp
bnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhl
IHNhbWUgYXMgdGhlIHN0cmluZyBsZW5ndGguCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3Ig
aWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUg
bGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgog
ICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0
aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQs
IG11c3QgYmUgc3RhcnQ8PWk8PWxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3Ro
CisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5
IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8
PWxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBzZWUg
VThfU0VUX0NQX0xJTUlUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUg
VThfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8
KGkpICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVu
Z3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFU4X0JBQ0tf
MShzLCBzdGFydCwgaSk7IFwKICAgICAgICAgVThfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAg
IH0gXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V0Zl9v
bGQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dGZfb2xkLmgKaW5kZXgg
ODUwNGEwMzBkZGZjNGRiYWUzNjNlNWI1ZmE2YzVkMTU4YmI3Y2NlMy4uZjkxMjViMWRkMmVkN2Ux
YzY4NGRhMTY1NGY1ZTQ3ZGQ3Y2Q1ZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ljdS91bmljb2RlL3V0Zl9vbGQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1
L3VuaWNvZGUvdXRmX29sZC5oCkBAIC0xICsxLDExNjkgQEAKLS8qIFRoaXMgZmlsZSBpcyBpbnRl
bnRpb25hbGx5IGxlZnQgYmxhbmsuICovCisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdXRmX29sZC5oCisqICAg
ZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBp
bmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMnNlcDIxCisqICAgY3JlYXRlZCBi
eTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQyBB
UEk6IERlcHJlY2F0ZWQgbWFjcm9zIGZvciBVbmljb2RlIHN0cmluZyBoYW5kbGluZworICovCisK
Ky8qKgorICogCisgKiBUaGUgbWFjcm9zIGluIHV0Zl9vbGQuaCBhcmUgYWxsIGRlcHJlY2F0ZWQg
YW5kIHRoZWlyIHVzZSBkaXNjb3VyYWdlZC4KKyAqIFNvbWUgb2YgdGhlIGRlc2lnbiBwcmluY2lw
bGVzIGJlaGluZCB0aGUgc2V0IG9mIFVURiBtYWNyb3MKKyAqIGhhdmUgY2hhbmdlZCBvciBwcm92
ZWQgaW1wcmFjdGljYWwuCisgKiBBbG1vc3QgYWxsIG9mIHRoZSBvbGQgIlVURiBtYWNyb3MiIGFy
ZSBhdCBsZWFzdCByZW5hbWVkLgorICogSWYgeW91IGFyZSBsb29raW5nIGZvciBhIG5ldyBlcXVp
dmFsZW50IHRvIGFuIG9sZCBtYWNybywgcGxlYXNlIHNlZSB0aGUKKyAqIGNvbW1lbnQgYXQgdGhl
IG9sZCBvbmUuCisgKgorICogQnJpZWYgc3VtbWFyeSBvZiByZWFzb25zIGZvciBkZXByZWNhdGlv
bjoKKyAqIC0gU3dpdGNoIG9uIFVURl9TSVpFIChzZWxlY3Rpb24gb2YgVVRGLTgvMTYvMzIgZGVm
YXVsdCBzdHJpbmcgcHJvY2Vzc2luZykKKyAqICAgd2FzIGltcHJhY3RpY2FsLgorICogLSBTd2l0
Y2ggb24gVVRGX1NBRkUgZXRjLiAoc2VsZWN0aW9uIG9mIHVuc2FmZS9zYWZlL3N0cmljdCBkZWZh
dWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgb2YgbGl0dGxlIHVzZSBhbmQgaW1wcmFj
dGljYWwuCisgKiAtIFdob2xlIGNsYXNzZXMgb2YgbWFjcm9zIGJlY2FtZSBvYnNvbGV0ZSBvdXRz
aWRlIG9mIHRoZSBVVEZfU0laRS9VVEZfU0FGRQorICogICBzZWxlY3Rpb24gZnJhbWV3b3JrOiBV
VEYzMl8gbWFjcm9zIChhbGwgdHJpdmlhbCkKKyAqICAgYW5kIFVURl8gZGVmYXVsdCBhbmQgaW50
ZXJtZWRpYXRlIG1hY3JvcyAoYWxsIGFsaWFzZXMpLgorICogLSBUaGUgc2VsZWN0aW9uIGZyYW1l
d29yayBhbHNvIGNhdXNlZCBtYW55IG1hY3JvIGFsaWFzZXMuCisgKiAtIENoYW5nZSBpbiBVbmlj
b2RlIHN0YW5kYXJkOiAiaXJyZWd1bGFyIiBzZXF1ZW5jZXMgKDMuMCkgYmVjYW1lIGlsbGVnYWwg
KDMuMikuCisgKiAtIENoYW5nZSBvZiBsYW5ndWFnZSBpbiBVbmljb2RlIHN0YW5kYXJkOgorICog
ICBHcm93aW5nIGRpc3RpbmN0aW9uIGJldHdlZW4gaW50ZXJuYWwgeC1iaXQgVW5pY29kZSBzdHJp
bmdzIGFuZCBleHRlcm5hbCBVVEYteAorICogICBmb3Jtcywgd2l0aCB0aGUgZm9ybWVyIG1vcmUg
bGVuaWVudC4KKyAqICAgU3VnZ2VzdHMgcmVuYW1pbmcgb2YgVVRGMTZfIG1hY3JvcyB0byBVMTZf
LgorICogLSBUaGUgcHJlZml4ICJVVEZfIiB3aXRob3V0IGEgd2lkdGggbnVtYmVyIGNvbmZ1c2Vk
IHNvbWUgdXNlcnMuCisgKiAtICJTYWZlIiBhcHBlbmQgbWFjcm9zIG5lZWRlZCB0aGUgYWRkaXRp
b24gb2YgYW4gZXJyb3IgaW5kaWNhdG9yIG91dHB1dC4KKyAqIC0gIlNhZmUiIFVURi04IG1hY3Jv
cyB1c2VkIGxlZ2l0aW1hdGUgKGlmIHJhcmVseSB1c2VkKSBjb2RlIHBvaW50IHZhbHVlcworICog
ICB0byBpbmRpY2F0ZSBlcnJvciBjb25kaXRpb25zLgorICogLSBUaGUgdXNlIG9mIHRoZSAiX0NI
QVIiIGluZml4IGZvciBjb2RlIHBvaW50IG9wZXJhdGlvbnMgY29uZnVzZWQgc29tZSB1c2Vycy4K
KyAqCisgKiBNb3JlIGRldGFpbHM6CisgKgorICogVW50aWwgSUNVIDIuMiwgdXRmLmggdGhlb3Jl
dGljYWxseSBhbGxvd2VkIHRvIGNob29zZSBhbW9uZyBVVEYtOC8xNi8zMgorICogZm9yIHN0cmlu
ZyBwcm9jZXNzaW5nLCBhbmQgYW1vbmcgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1bHQgbWFjcm9z
IGZvciB0aGF0LgorICoKKyAqIEl0IHByb3ZlZCBuZWFybHkgaW1wb3NzaWJsZSB0byB3cml0ZSBu
b24tdHJpdmlhbCwgaGlnaC1wZXJmb3JtYW5jZSBjb2RlCisgKiB0aGF0IGlzIFVURi1nZW5lcmlj
LgorICogVW5zYWZlIGRlZmF1bHQgbWFjcm9zIHdvdWxkIGJlIGRhbmdlcm91cyBmb3IgZGVmYXVs
dCBzdHJpbmcgcHJvY2Vzc2luZywKKyAqIGFuZCB0aGUgbWFpbiByZWFzb24gZm9yIHRoZSAic3Ry
aWN0IiB2ZXJzaW9ucyBkaXNhcHBlYXJlZDoKKyAqIEJldHdlZW4gVW5pY29kZSAzLjAgYW5kIDMu
MiBhbGwgImlycmVndWxhciIgVVRGLTggc2VxdWVuY2VzIGJlY2FtZSBpbGxlZ2FsLgorICogVGhl
IG9ubHkgb3RoZXIgY29uZGl0aW9ucyB0aGF0ICJzdHJpY3QiIGNoZWNrZWQgZm9yIHdlcmUgbm9u
LWNoYXJhY3RlcnMsCisgKiB3aGljaCBhcmUgdmFsaWQgZHVyaW5nIHByb2Nlc3NpbmcuIE9ubHkg
ZHVyaW5nIHRleHQgaW5wdXQvb3V0cHV0IHNob3VsZCB0aGV5CisgKiBiZSBjaGVja2VkLCBhbmQg
YXQgdGhhdCB0aW1lIG90aGVyIHdlbGwtZm9ybWVkbmVzcyBjaGVja3MgbWF5IGJlCisgKiBuZWNl
c3Nhcnkgb3IgdXNlZnVsIGFzIHdlbGwuCisgKiBUaGlzIGNhbiBzdGlsbCBiZSBkb25lIGJ5IHVz
aW5nIFUxNl9ORVhUIGFuZCBVX0lTX1VOSUNPREVfTk9OQ0hBUgorICogb3IgVV9JU19VTklDT0RF
X0NIQVIuCisgKgorICogVGhlIG9sZCBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBhbHNvIHVzZWQgc29t
ZSBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cworICogdG8gaW5kaWNhdGUgbWFsZm9ybWVkIHNl
cXVlbmNlcy4KKyAqIFRoZSBuZXcgVVRGOF8gbWFjcm9zIHdpdGhvdXQgc3VmZml4IHVzZSBuZWdh
dGl2ZSB2YWx1ZXMgaW5zdGVhZC4KKyAqCisgKiBUaGUgZW50aXJlIGNvbnRlbnRzIG9mIHV0ZjMy
Lmggd2FzIG1vdmVkIGhlcmUgd2l0aG91dCByZXBsYWNlbWVudAorICogYmVjYXVzZSBhbGwgdGhv
c2UgbWFjcm9zIHdlcmUgdHJpdmlhbCBhbmQKKyAqIHdlcmUgbWVhbmluZ2Z1bCBvbmx5IGluIHRo
ZSBmcmFtZXdvcmsgb2YgY2hvb3NpbmcgdGhlIFVURiBzaXplLgorICoKKyAqIFNlZSBKaXR0ZXJi
dWcgMjE1MCBhbmQgaXRzIGRpc2N1c3Npb24gb24gdGhlIElDVSBtYWlsaW5nIGxpc3QKKyAqIGlu
IFNlcHRlbWJlciAyMDAyLgorICoKKyAqIDxocj4KKyAqCisgKiA8ZW0+T2Jzb2xldGUgcGFydDwv
ZW0+IG9mIHByZS1JQ1UgMi40IHV0Zi5oIGZpbGUgZG9jdW1lbnRhdGlvbjoKKyAqCisgKiA8cD5U
aGUgb3JpZ2luYWwgY29uY2VwdCBmb3IgdGhlc2UgZmlsZXMgd2FzIGZvciBJQ1UgdG8gYWxsb3cK
KyAqIGluIHByaW5jaXBsZSB0byBzZXQgd2hpY2ggVVRGIChVVEYtOC8xNi8zMikgaXMgdXNlZCBp
bnRlcm5hbGx5CisgKiBieSBkZWZpbmluZyBVVEZfU0laRSB0byBlaXRoZXIgOCwgMTYsIG9yIDMy
LiB1dGYuaCB3b3VsZCB0aGVuIGRlZmluZSB0aGUgVUNoYXIgdHlwZQorICogYWNjb3JkaW5nbHku
IFVURi0xNiB3YXMgdGhlIGRlZmF1bHQuPC9wPgorICoKKyAqIDxwPlRoaXMgY29uY2VwdCBoYXMg
YmVlbiBhYmFuZG9uZWQuCisgKiBBIGxvdCBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFzc3VtZXMg
VUNoYXIgc3RyaW5ncyBhcmUgaW4gVVRGLTE2LgorICogVGhpcyBpcyBlc3BlY2lhbGx5IHRydWUg
Zm9yIGxvdy1sZXZlbCBjb2RlIGxpa2UKKyAqIGNvbnZlcnNpb24sIG5vcm1hbGl6YXRpb24sIGFu
ZCBjb2xsYXRpb24uCisgKiBUaGUgdXRmLmggaGVhZGVyIGVuZm9yY2VzIHRoZSBkZWZhdWx0IG9m
IFVURi0xNi4KKyAqIFRoZSBVVEYtOCBhbmQgVVRGLTMyIG1hY3JvcyByZW1haW4gZm9yIG5vdyBm
b3IgY29tcGxldGVuZXNzIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LjwvcD4KKyAqCisgKiA8
cD5BY2NvcmRpbmdseSwgdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25lZCAxNi1i
aXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KKyAqIFVDaGFyIGlzIGRl
ZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2X3QuPC9wPgorICoK
KyAqIDxwPlVDaGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAo
aW50MzJfdCksIGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQKKyAqIFVuaWNvZGUgY29kZSBwb2lu
dCAoVW5pY29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KKyAqIEJlZm9yZSBJQ1UgMi40
LCB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5k
ZW50IGFzCisgKiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBk
b2N1bWVudGF0aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi48L3A+CisgKgorICogPHA+dXRmLmggYWxz
byBkZWZpbmVzIGEgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBoYW5kbGluZyBzaW5nbGUgVW5pY29k
ZSBjb2RlIHBvaW50cyBhbmQKKyAqIGZvciB1c2luZyBVVEYgVW5pY29kZSBzdHJpbmdzLiBJdCBp
bmNsdWRlcyB1dGY4LmgsIHV0ZjE2LmgsIGFuZCB1dGYzMi5oIGZvciB0aGUgYWN0dWFsCisgKiBp
bXBsZW1lbnRhdGlvbnMgb2YgdGhvc2UgbWFjcm9zIGFuZCB0aGVuIGFsaWFzZXMgb25lIHNldCBv
ZiB0aGVtIChmb3IgVVRGLTE2KSBmb3IgZ2VuZXJhbCB1c2UuCisgKiBUaGUgVVRGLXNwZWNpZmlj
IG1hY3JvcyBoYXZlIHRoZSBVVEYgc2l6ZSBpbiB0aGUgbWFjcm8gbmFtZSBwcmVmaXhlcyAoVVRG
MTZfLi4uKSwgd2hpbGUKKyAqIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhbHdheXMgYmVnaW4g
d2l0aCBVVEZfLi4uPC9wPgorICoKKyAqIDxwPk1hbnkgc3RyaW5nIG9wZXJhdGlvbnMgY2FuIGJl
IGRvbmUgd2l0aCBvciB3aXRob3V0IGVycm9yIGNoZWNraW5nLgorICogV2hlcmUgc3VjaCBhIGRp
c3RpbmN0aW9uIGlzIHVzZWZ1bCwgdGhlcmUgYXJlIHR3byB2ZXJzaW9ucyBvZiB0aGUgbWFjcm9z
LCAidW5zYWZlIiBhbmQgInNhZmUiCisgKiBvbmVzIHdpdGggLi4uX1VOU0FGRSBhbmQgLi4uX1NB
RkUgc3VmZml4ZXMuIFRoZSB1bnNhZmUgbWFjcm9zIGFyZSBmYXN0IGJ1dCBtYXkgY2F1c2UKKyAq
IHByb2dyYW0gZmFpbHVyZXMgaWYgdGhlIHN0cmluZ3MgYXJlIG5vdCB3ZWxsLWZvcm1lZC4gVGhl
IHNhZmUgbWFjcm9zIGhhdmUgYW4gYWRkaXRpb25hbCwgYm9vbGVhbgorICogcGFyYW1ldGVyICJz
dHJpY3QiLiBJZiBzdHJpY3QgaXMgRkFMU0UsIHRoZW4gb25seSBpbGxlZ2FsIHNlcXVlbmNlcyBh
cmUgZGV0ZWN0ZWQuCisgKiBPdGhlcndpc2UsIGlycmVndWxhciBzZXF1ZW5jZXMgYW5kIG5vbi1j
aGFyYWN0ZXJzIGFyZSBkZXRlY3RlZCBhcyB3ZWxsIChsaWtlIHNpbmdsZSBzdXJyb2dhdGVzKS4K
KyAqIFNhZmUgbWFjcm9zIHJldHVybiBzcGVjaWFsIGVycm9yIGNvZGUgcG9pbnRzIGZvciBpbGxl
Z2FsL2lycmVndWxhciBzZXF1ZW5jZXM6CisgKiBUeXBpY2FsbHksIFUrZmZmZiwgb3IgdmFsdWVz
IHRoYXQgd291bGQgcmVzdWx0IGluIGEgY29kZSB1bml0IHNlcXVlbmNlIG9mIHRoZSBzYW1lIGxl
bmd0aAorICogYXMgdGhlIGVycm9uZW91cyBpbnB1dCBzZXF1ZW5jZS48YnI+CisgKiBOb3RlIHRo
YXQgX1VOU0FGRSBtYWNyb3MgaGF2ZSBmZXdlciBwYXJhbWV0ZXJzOiBUaGV5IGRvIG5vdCBoYXZl
IHRoZSBzdHJpY3RuZXNzIHBhcmFtZXRlciwgYW5kCisgKiB0aGV5IGRvIG5vdCBoYXZlIHN0YXJ0
L2xlbmd0aCBwYXJhbWV0ZXJzIGZvciBib3VuZGFyeSBjaGVja2luZy48L3A+CisgKgorICogPHA+
SGVyZSwgdGhlIG1hY3JvcyBhcmUgYWxpYXNlZCBpbiB0d28gc3RlcHM6CisgKiBJbiB0aGUgZmly
c3Qgc3RlcCwgdGhlIFVURi1zcGVjaWZpYyBtYWNyb3Mgd2l0aCBVVEYxNl8gcHJlZml4IGFuZCBf
VU5TQUZFIGFuZCBfU0FGRSBzdWZmaXhlcyBhcmUKKyAqIGFsaWFzZWQgYWNjb3JkaW5nIHRvIHRo
ZSBVVEZfU0laRSB0byBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgdGhlIHNhbWUgc3VmZml4
ZXMgYW5kIHNpZ25hdHVyZXMuCisgKiBUaGVuLCBpbiBhIHNlY29uZCBzdGVwLCB0aGUgZGVmYXVs
dCwgZ2VuZXJhbCBhbGlhcyBtYWNyb3MgYXJlIHNldCB0byB1c2UgZWl0aGVyIHRoZSB1bnNhZmUg
b3IKKyAqIHRoZSBzYWZlL25vdCBzdHJpY3QgKGRlZmF1bHQpIG9yIHRoZSBzYWZlL3N0cmljdCBt
YWNybzsKKyAqIHRoZXNlIGdlbmVyYWwgbWFjcm9zIGRvIG5vdCBoYXZlIGEgc3RyaWN0bmVzcyBw
YXJhbWV0ZXIuPC9wPgorICoKKyAqIDxwPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgZGVm
YXVsdCBjaG9pY2UgZm9yIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyB0byBiZSB1bnNhZmUsIHNh
ZmUvbm90IHN0cmljdCBvciBzYWZlL3N0cmljdC4KKyAqIFRoZSBkZWZhdWx0IGlzIHNhZmUvbm90
IHN0cmljdC4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNlbGVjdCB0aGUgdW5zYWZlIG1hY3Jv
cyBhcyB0aGUgYmFzaXMgZm9yCisgKiBVbmljb2RlIHN0cmluZyBoYW5kbGluZyBpbiBJQ1UhIFRv
IHNlbGVjdCB0aGlzLCBkZWZpbmUgVVRGX1NBRkUsIFVURl9TVFJJQ1QsIG9yIFVURl9VTlNBRkUu
PC9wPgorICoKKyAqIDxwPkZvciBnZW5lcmFsIHVzZSwgb25lIHNob3VsZCB1c2UgdGhlIGRlZmF1
bHQsIGdlbmVyYWwgbWFjcm9zIHdpdGggVVRGXyBwcmVmaXggYW5kIG5vIF9TQUZFL19VTlNBRkUg
c3VmZml4LgorICogT25seSBpbiBzb21lIGNhc2VzIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY29u
dHJvbCB0aGUgY2hvaWNlIG9mIG1hY3JvIGRpcmVjdGx5IGFuZCB1c2UgYSBsZXNzIGdlbmVyaWMg
YWxpYXMuCisgKiBGb3IgZXhhbXBsZSwgaWYgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCBhIHN0cmlu
ZyBpcyB3ZWxsLWZvcm1lZCBhbmQgdGhlIGluZGV4IHdpbGwgc3RheSB3aXRoaW4gdGhlIGJvdW5k
cywKKyAqIHRoZW4gdGhlIF9VTlNBRkUgdmVyc2lvbiBtYXkgYmUgdXNlZC4KKyAqIElmIGEgVVRG
LTggc3RyaW5nIGlzIHRvIGJlIHByb2Nlc3NlZCwgdGhlbiB0aGUgbWFjcm9zIHdpdGggVVRGOF8g
cHJlZml4ZXMgbmVlZCB0byBiZSB1c2VkLjwvcD4KKyAqCisgKiA8aHI+CisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIHRoZSBtYWNyb3MgaW4gdXRmLmgsIHV0ZjE2LmgsIHV0ZjguaCBp
bnN0ZWFkLgorICovCisKKyNpZm5kZWYgX19VVEZfT0xEX0hfXworI2RlZmluZSBfX1VURl9PTERf
SF9fCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0Zi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRmOC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRm
MTYuaCIKKworLyogRm9ybWVybHkgdXRmLmgsIHBhcnQgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmZGVmIFVfVVNFX1VURl9ERVBS
RUNBVEVTCisvKioKKyAqIFVuaWNvZGUgc3RyaW5nIGFuZCBhcnJheSBvZmZzZXQgYW5kIGluZGV4
IHR5cGUuCisgKiBJQ1UgYWx3YXlzIGNvdW50cyBVbmljb2RlIGNvZGUgdW5pdHMgKFVDaGFycykg
Zm9yCisgKiBzdHJpbmcgb2Zmc2V0cywgaW5kZXhlcywgYW5kIGxlbmd0aHMsIG5vdCBVbmljb2Rl
IGNvZGUgcG9pbnRzLgorICoKKyAqIEBvYnNvbGV0ZSBJQ1UgMi42LiBVc2UgaW50MzJfdCBkaXJl
Y3RseSBpbnN0ZWFkIHNpbmNlIHRoaXMgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGF0IHJlbGVh
c2UuCisgKi8KK3R5cGVkZWYgaW50MzJfdCBVVGV4dE9mZnNldDsKKyNlbmRpZgorCisvKiogTnVt
YmVyIG9mIGJpdHMgaW4gYSBVbmljb2RlIHN0cmluZyBjb2RlIHVuaXQgLSBJQ1UgdXNlcyAxNi1i
aXQgVW5pY29kZS4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9TSVpFIDE2CisKKy8qKgorICogVGhlIGRlZmF1bHQgY2hvaWNlIGZv
ciBnZW5lcmFsIFVuaWNvZGUgc3RyaW5nIG1hY3JvcyBpcyB0byB1c2UgdGhlIC4uLl9TQUZFIG1h
Y3JvIGltcGxlbWVudGF0aW9ucworICogd2l0aCBzdHJpY3Q9RkFMU0UuCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X1NBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyN1bmRlZiBVVEZfVU5TQUZFCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUs
IHNlZSB1dGZfb2xkLmguICovCisjdW5kZWYgVVRGX1NUUklDVAorCisvKioKKyAqIFVURjhfRVJS
T1JfVkFMVUVfMSBhbmQgVVRGOF9FUlJPUl9WQUxVRV8yIGFyZSBzcGVjaWFsIGVycm9yIHZhbHVl
cyBmb3IgVVRGLTgsCisgKiB3aGljaCBuZWVkIDEgb3IgMiBieXRlcyBpbiBVVEYtODoKKyAqIFxj
b2RlCisgKiBVKzAwMTUgPSBOQUsgPSBOZWdhdGl2ZSBBY2tub3dsZWRnZSwgQzAgY29udHJvbCBj
aGFyYWN0ZXIKKyAqIFUrMDA5ZiA9IGhpZ2hlc3QgQzEgY29udHJvbCBjaGFyYWN0ZXIKKyAqIFxl
bmRjb2RlCisgKgorICogVGhlc2UgYXJlIHVzZWQgYnkgVVRGOF8uLi5fU0FGRSBtYWNyb3Mgc28g
dGhhdCB0aGV5IGNhbiByZXR1cm4gYW4gZXJyb3IgdmFsdWUKKyAqIHRoYXQgbmVlZHMgdGhlIHNh
bWUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgKGJ5dGVzKSBhcyB3ZXJlIHNlZW4gYnkKKyAqIGEgbWFj
cm8uIFRoZXkgc2hvdWxkIGJlIHRlc3RlZCB3aXRoIFVURl9JU19FUlJPUigpIG9yIFVURl9JU19W
QUxJRCgpLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURjhfRVJST1JfVkFMVUVfMSAweDE1CisKKy8qKgorICogU2Vl
IGRvY3VtZW50YXRpb24gb24gVVRGOF9FUlJPUl9WQUxVRV8xIGZvciBkZXRhaWxzLgorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURjhfRVJST1JfVkFMVUVfMiAweDlmCisKKy8qKgorICogRXJyb3IgdmFsdWUgZm9yIGFs
bCBVVEZzLiBUaGlzIGNvZGUgcG9pbnQgdmFsdWUgd2lsbCBiZSBzZXQgYnkgbWFjcm9zIHdpdGgg
ZXJyb3IKKyAqIGNoZWNraW5nIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLgorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVU
Rl9FUlJPUl9WQUxVRSAweGZmZmYKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCBjb2RlIGFu
IGVycm9yIHZhbHVlCisgKiBhcyByZXR1cm5lZCBieSBvbmUgb2YgdGhlIG1hY3JvcyBmb3IgYW55
IFVURj8KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQu
aC4KKyAqLworI2RlZmluZSBVVEZfSVNfRVJST1IoYykgXAorICAgICgoKGMpJjB4ZmZmZSk9PTB4
ZmZmZSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVfMSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVf
MikKKworLyoqCisgKiBUaGlzIGlzIGEgY29tYmluZWQgbWFjcm86IElzIGMgYSB2YWxpZCBVbmlj
b2RlIHZhbHVlIF9hbmRfIG5vdCBhbiBlcnJvciBjb2RlPworICoKKyAqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19WQUxJ
RChjKSBcCisgICAgKFVURl9JU19VTklDT0RFX0NIQVIoYykgJiYgXAorICAgICAoYykhPVVURjhf
RVJST1JfVkFMVUVfMSAmJiAoYykhPVVURjhfRVJST1JfVkFMVUVfMikKKworLyoqCisgKiBJcyB0
aGlzIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGEgc3Vycm9nYXRlIChVK2Q4MDAuLlUrZGZmZik/
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRFIGFuZCBV
MTZfSVNfU1VSUk9HQVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19TVVJS
T0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmODAwKT09MHhkODAwKQorCisvKioKKyAqIElz
IGEgZ2l2ZW4gMzItYml0IGNvZGUgcG9pbnQgYSBVbmljb2RlIG5vbmNoYXJhY3Rlcj8KKyAqCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9OT05DSEFSLCBz
ZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX05PTkNIQVIoYykgXAor
ICAgICgoYyk+PTB4ZmRkMCAmJiBcCisgICAgICgodWludDMyX3QpKGMpPD0weGZkZWYgfHwgKChj
KSYweGZmZmUpPT0weGZmZmUpICYmIFwKKyAgICAgKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpCisK
Ky8qKgorICogSXMgYSBnaXZlbiAzMi1iaXQgdmFsdWUgYSBVbmljb2RlIGNvZGUgcG9pbnQgdmFs
dWUgKDAuLlUrMTBmZmZmKQorICogdGhhdCBjYW4gYmUgYXNzaWduZWQgYSBjaGFyYWN0ZXI/Cisg
KgorICogQ29kZSBwb2ludHMgdGhhdCBhcmUgbm90IGNoYXJhY3RlcnMgaW5jbHVkZToKKyAqIC0g
c2luZ2xlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyAoVStkODAwLi5VK2RmZmYsIDIwNDggY29kZSBw
b2ludHMpCisgKiAtIHRoZSBsYXN0IHR3byBjb2RlIHBvaW50cyBvbiBlYWNoIHBsYW5lIChVK19f
ZmZmZSBhbmQgVStfX2ZmZmYsIDM0IGNvZGUgcG9pbnRzKQorICogLSBVK2ZkZDAuLlUrZmRlZiAo
bmV3IHdpdGggVW5pY29kZSAzLjEsIDMyIGNvZGUgcG9pbnRzKQorICogLSB0aGUgaGlnaGVzdCBV
bmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgaXMgVSsxMGZmZmYKKyAqCisgKiBUaGlzIG1lYW5zIHRo
YXQgYWxsIGNvZGUgcG9pbnRzIGJlbG93IFUrZDgwMCBhcmUgY2hhcmFjdGVyIGNvZGUgcG9pbnRz
LAorICogYW5kIHRoYXQgYm91bmRhcnkgaXMgdGVzdGVkIGZpcnN0IGZvciBwZXJmb3JtYW5jZS4K
KyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9DSEFS
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX0NIQVIoYykgXAor
ICAgICgodWludDMyX3QpKGMpPDB4ZDgwMCB8fCBcCisgICAgICAgICgodWludDMyX3QpKGMpPjB4
ZGZmZiAmJiBcCisgICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiAmJiBcCisgICAgICAg
ICAhVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihjKSkpCisKKy8qIEZvcm1lcmx5IHV0ZjguaCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CisKKy8qKgorICogQ291bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4K
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQ09VTlRfVFJBSUxfQllURVMs
IHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFk
Qnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKworLyoqCisg
KiBNYXNrIGEgVVRGLTggbGVhZCBieXRlLCBsZWF2ZSBvbmx5IHRoZSBsb3dlciBiaXRzIHRoYXQg
Zm9ybSBwYXJ0IG9mIHRoZSBjb2RlIHBvaW50IHZhbHVlLgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9NQVNLX0xFQURfQllURSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2Rl
ZmluZSBVVEY4X01BU0tfTEVBRF9CWVRFKGxlYWRCeXRlLCBjb3VudFRyYWlsQnl0ZXMpICgobGVh
ZEJ5dGUpJj0oMTw8KDYtKGNvdW50VHJhaWxCeXRlcykpKS0xKQorCisvKiogSXMgdGhpcyB0aGlz
IGNvZGUgcG9pbnQgYSBzaW5nbGUgY29kZSB1bml0IChieXRlKT8gQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjhfSVNfU0lOR0xFKHVjaGFyKSAoKCh1Y2hhcikmMHg4MCk9PTApCisvKiogSXMgdGhpcyB0aGlz
IGNvZGUgdW5pdCB0aGUgbGVhZCBjb2RlIHVuaXQgKGJ5dGUpIG9mIGEgY29kZSBwb2ludD8gQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19MRUFELCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEY4X0lTX0xFQUQodWNoYXIpICgodWludDhfdCkoKHVjaGFyKS0weGMwKTww
eDNlKQorLyoqIElzIHRoaXMgdGhpcyBjb2RlIHVuaXQgYSB0cmFpbGluZyBjb2RlIHVuaXQgKGJ5
dGUpIG9mIGEgY29kZSBwb2ludD8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9J
U19UUkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9JU19UUkFJTCh1Y2hhcikg
KCgodWNoYXIpJjB4YzApPT0weDgwKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2RlIHZh
bHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFU4X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4N2YpIGluc3RlYWQs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAo
KHVpbnQzMl90KShjKT4weDdmKQorCisvKioKKyAqIEdpdmVuIHRoZSBsZWFkIGNoYXJhY3Rlciwg
aG93IG1hbnkgYnl0ZXMgYXJlIHRha2VuIGJ5IHRoaXMgY29kZSBwb2ludC4KKyAqIElDVSBkb2Vz
IG5vdCBkZWFsIHdpdGggY29kZSBwb2ludHMgPjB4MTBmZmZmCisgKiB1bmxlc3MgbmVjZXNzYXJ5
IGZvciBhZHZhbmNpbmcgaW4gdGhlIGJ5dGUgc3RyZWFtLgorICoKKyAqIFRoZXNlIGxlbmd0aCBt
YWNyb3MgdGFrZSBpbnRvIGFjY291bnQgdGhhdCBmb3IgdmFsdWVzID4weDEwZmZmZgorICogdGhl
IFVURjhfQVBQRU5EX0NIQVJfU0FGRSBtYWNyb3Mgd291bGQgd3JpdGUgdGhlIGVycm9yIGNvZGUg
cG9pbnQgMHhmZmZmCisgKiB3aXRoIDMgYnl0ZXMuCisgKiBDb2RlIHBvaW50IGNvbXBhcmlzb25z
IG5lZWQgdG8gYmUgaW4gdWludDMyX3QgYmVjYXVzZSBVQ2hhcjMyCisgKiBtYXkgYmUgYSBzaWdu
ZWQgdHlwZSwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBtdXN0IGJlIHJlY29nbml6ZWQuCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0xFTkdUSCBpbnN0ZWFkLCBzZWUgdXRmLmguCisg
Ki8KKyNpZiAxCisjICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVp
bnQzMl90KShjKTw9MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3
ZmYgPyAyIDogXAorICAgICAgICAgICAgICAgICgodWludDMyX3QpKChjKS0weDEwMDAwKT4weGZm
ZmZmID8gMyA6IDQpIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZWxzZQorIyAgIGRl
ZmluZSBVVEY4X0NIQVJfTEVOR1RIKGMpIFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2Yg
PyAxIDogXAorICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmID8gMiA6IFwKKyAgICAg
ICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMyA6IFwKKyAgICAgICAgICAgICAg
ICAgICAgKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmID8gNCA6IFwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICgodWludDMyX3QpKGMpPD0weDNmZmZmZmYgPyA1IDogXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDdmZmZmZmZmID8gNiA6IDMpIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgICAgICAgICApIFwKKyAgICAgICAg
ICAgICAgICApIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZW5kaWYKKworLyoqIFRo
ZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBwZXIgY29kZSBwb2ludC4gQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVOF9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X01BWF9DSEFSX0xFTkdUSCA0CisKKy8qKiBBdmVyYWdlIG51bWJlciBvZiBjb2RlIHVu
aXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVJSQVlfU0laRShzaXplKSAoKDUqKHNpemUp
KS8yKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9HRVRfVU5TQUZF
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFSX1VOU0FGRShzLCBpLCBj
KSB7IFwKKyAgICBpbnQzMl90IF91dGY4X2dldF9jaGFyX3Vuc2FmZV9pbmRleD0oaW50MzJfdCko
aSk7IFwKKyAgICBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBfdXRmOF9nZXRfY2hhcl91
bnNhZmVfaW5kZXgpOyBcCisgICAgVVRGOF9ORVhUX0NIQVJfVU5TQUZFKHMsIF91dGY4X2dldF9j
aGFyX3Vuc2FmZV9pbmRleCwgYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVz
ZSBVOF9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9HRVRfQ0hB
Ul9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgaW50MzJfdCBf
dXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIFVURjhfU0VUX0NI
QVJfU1RBUlRfU0FGRShzLCBzdGFydCwgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCk7IFwKKyAg
ICBVVEY4X05FWFRfQ0hBUl9TQUZFKHMsIF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXgsIGxlbmd0
aCwgYywgc3RyaWN0KTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9ORVhUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORVhUX0NI
QVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoKHVp
bnQ4X3QpKChjKS0weGMwKTwweDM1KSB7IFwKKyAgICAgICAgdWludDhfdCBfX2NvdW50PVVURjhf
Q09VTlRfVFJBSUxfQllURVMoYyk7IFwKKyAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShjLCBf
X2NvdW50KTsgXAorICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBcCisgICAgICAgIC8qIGVhY2gg
Zm9sbG93aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBcCisgICAg
ICAgIGNhc2UgMzogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2Yp
OyBcCisgICAgICAgIGNhc2UgMjogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkp
KytdJjB4M2YpOyBcCisgICAgICAgIGNhc2UgMTogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYp
fCgocylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVzIHRvIG9w
dGltaXplIHN3aXRjaCgpICovIFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAgIH0gXAor
ICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9BUFBF
TkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1VO
U0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAg
ICAgKHMpWyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIGlm
KCh1aW50MzJfdCkoYyk8PTB4N2ZmKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4
X3QpKCgoYyk+PjYpfDB4YzApOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIGlm
KCh1aW50MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgICAgICAgICAgKHMpWyhpKSsrXT0o
dWludDhfdCkoKChjKT4+MTIpfDB4ZTApOyBcCisgICAgICAgICAgICB9IGVsc2UgeyBcCisgICAg
ICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChjKT4+MTgpfDB4ZjApOyBcCisgICAg
ICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKCgoYyk+PjEyKSYweDNmKXwweDgwKTsg
XAorICAgICAgICAgICAgfSBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChj
KT4+NikmMHgzZil8MHg4MCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIChzKVsoaSkrK109KHVp
bnQ4X3QpKCgoYykmMHgzZil8MHg4MCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVThfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKSB7IFwKKyAgICAoaSkrPTErVVRGOF9DT1VO
VF9UUkFJTF9CWVRFUygocylbaV0pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFU4X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBfX049KG4pOyBcCisgICAg
d2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorICAg
ICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lT
X1RSQUlMKChzKVtpXSkpIHsgLS0oaSk7IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFU4X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9O
RVhUX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVso
aSkrK107IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICBpZihVVEY4X0lTX0xFQUQo
YykpIHsgXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keShzLCAmKGkpLCAo
aW50MzJfdCkobGVuZ3RoKSwgYywgc3RyaWN0KTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAg
ICAgICAgICAoYyk9VVRGOF9FUlJPUl9WQUxVRV8xOyBcCisgICAgICAgIH0gXAorICAgIH0gXAor
fQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0FQUEVORCBpbnN0ZWFkLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1NBRkUocywgaSwgbGVuZ3Ro
LCBjKSAgeyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZikgeyBcCisgICAgICAgIChzKVso
aSkrK109KHVpbnQ4X3QpKGMpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAoaSk9dXRmOF9h
cHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50MzJfdCkobGVuZ3RoKSwgYywg
TlVMTCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVThfRldEXzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfRldEXzFfU0FGRShz
LCBpLCBsZW5ndGgpIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVThfRldEX04sIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjhfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIFU4X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfU0VUX0NQX1NUQVJULCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3Rh
cnQsIGkpIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVThfUFJFVl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjhfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkp
XTsgXAorICAgIGlmKFVURjhfSVNfVFJBSUwoYykpIHsgXAorICAgICAgICB1aW50OF90IF9fYiwg
X19jb3VudD0xLCBfX3NoaWZ0PTY7IFwKK1wKKyAgICAgICAgLyogYyBpcyBhIHRyYWlsIGJ5dGUg
Ki8gXAorICAgICAgICAoYykmPTB4M2Y7IFwKKyAgICAgICAgZm9yKDs7KSB7IFwKKyAgICAgICAg
ICAgIF9fYj0ocylbLS0oaSldOyBcCisgICAgICAgICAgICBpZihfX2I+PTB4YzApIHsgXAorICAg
ICAgICAgICAgICAgIFVURjhfTUFTS19MRUFEX0JZVEUoX19iLCBfX2NvdW50KTsgXAorICAgICAg
ICAgICAgICAgIChjKXw9KFVDaGFyMzIpX19iPDxfX3NoaWZ0OyBcCisgICAgICAgICAgICAgICAg
YnJlYWs7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgICAgICAoYyl8PShV
Q2hhcjMyKShfX2ImMHgzZik8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICArK19fY291bnQ7
IFwKKyAgICAgICAgICAgICAgICBfX3NoaWZ0Kz02OyBcCisgICAgICAgICAgICB9IFwKKyAgICAg
ICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS18x
X1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lTX1RSQUlMKChzKVstLShpKV0pKSB7
fSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTl9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1VOU0FGRShzLCBp
LCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisg
ICAgICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1Bf
TElNSVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX0xJ
TUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBVVEY4X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAg
ICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gVXNlIFU4X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9Q
UkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWy0t
KGkpXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKChjKTw9MHhiZikgeyBc
CisgICAgICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KHMsIHN0YXJ0LCAmKGkpLCBj
LCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEY4X0VS
Uk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgVThfQkFDS18xKHMsIHN0YXJ0LCBpKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9CQUNLX04sIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pIFU4X0JB
Q0tfTihzLCBzdGFydCwgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVThfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9D
SEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkgVThfU0VUX0NQX0xJTUlUKHMsIHN0
YXJ0LCBpLCBsZW5ndGgpCisKKy8qIEZvcm1lcmx5IHV0ZjE2LmggLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBJcyB1Y2hh
ciBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
Rl9JU19GSVJTVF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmYzAwKT09MHhkODAw
KQorCisvKiogSXMgdWNoYXIgYSBzZWNvbmQvdHJhaWwgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFy
KSYweGZmZmZmYzAwKT09MHhkYzAwKQorCisvKiogQXNzdW1pbmcgYyBpcyBhIHN1cnJvZ2F0ZSwg
aXMgaXQgYSBmaXJzdC9sZWFkIHN1cnJvZ2F0ZT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVX0lTX1NVUlJPR0FURV9MRUFEIGFuZCBVMTZfSVNfU1VSUk9HQVRFX0xFQUQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9JU19TVVJST0dBVEVfRklSU1QoYykgKCgoYykmMHg0
MDApPT0wKQorCisvKiogSGVscGVyIGNvbnN0YW50IGZvciBVVEYxNl9HRVRfUEFJUl9WQUxVRS4g
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU1VSUk9HQVRFX09GRlNFVCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NVUlJPR0FURV9PRkZTRVQgKCgweGQ4MDA8PDEw
VUwpKzB4ZGMwMC0weDEwMDAwKQorCisvKiogR2V0IHRoZSBVVEYtMzIgdmFsdWUgZnJvbSB0aGUg
c3Vycm9nYXRlIGNvZGUgdW5pdHMuIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0dFVF9TVVBQTEVNRU5UQVJZLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9HRVRf
UEFJUl9WQUxVRShmaXJzdCwgc2Vjb25kKSBcCisgICAgKCgoZmlyc3QpPDwxMFVMKSsoc2Vjb25k
KS1VVEZfU1VSUk9HQVRFX09GRlNFVCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9GSVJTVF9TVVJS
T0dBVEUoc3VwcGxlbWVudGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpPj4xMCkrMHhkN2Mw
KQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfVFJBSUwsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRUNPTkRfU1VSUk9HQVRFKHN1cHBsZW1lbnRhcnkp
IChVQ2hhcikoKChzdXBwbGVtZW50YXJ5KSYweDNmZil8MHhkYzAwKQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGMTZfTEVBRChzdXBwbGVtZW50YXJ5KSBVVEZfRklSU1RfU1VSUk9HQVRFKHN1cHBsZW1l
bnRhcnkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfVFJBSUwoc3VwcGxlbWVudGFyeSkgVVRG
X1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMTZfSVNfU0lOR0xFKHVjaGFyKSAhVVRGX0lTX1NVUlJPR0FURSh1Y2hhcikKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X0lTX0xFQUQodWNoYXIpIFVURl9JU19GSVJTVF9TVVJST0dBVEUo
dWNoYXIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9JU19UUkFJ
TCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfVFJBSUwodWNoYXIpIFVURl9J
U19TRUNPTkRfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmljb2Rl
IHZhbHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGlu
c3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FRURfTVVMVElQTEVfVUNI
QVIoYykgKCh1aW50MzJfdCkoYyk+MHhmZmZmKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9D
SEFSX0xFTkdUSChjKSAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMSA6IDIpCisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEYxNl9NQVhfQ0hBUl9MRU5HVEggMgorCisvKiogQXZlcmFnZSBudW1i
ZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYuIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9BUlJBWV9TSVpFKHNp
emUpIChzaXplKQorCisvKioKKyAqIEdldCBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gYW4gb2Zm
c2V0IHRoYXQgcG9pbnRzIHRvIGFueQorICogb2YgdGhlIGNvZGUgdW5pdHMgdGhhdCBiZWxvbmcg
dG8gdGhhdCBjb2RlIHBvaW50LgorICogQXNzdW1lIDA8PWk8bGVuZ3RoLgorICoKKyAqIFRoaXMg
Y291bGQgYmUgdXNlZCBmb3IgaXRlcmF0aW9uIHRvZ2V0aGVyIHdpdGgKKyAqIFVURjE2X0NIQVJf
TEVOR1RIKCkgYW5kIFVURl9JU19FUlJPUigpLAorICogYnV0IHRoZSB1c2Ugb2YgVVRGMTZfTkVY
VF9DSEFSW19VTlNBRkVdKCkgYW5kCisgKiBVVEYxNl9QUkVWX0NIQVJbX1VOU0FGRV0oKSBpcyBt
b3JlIGVmZmljaWVudCBmb3IgdGhhdC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGMTZfR0VU
X0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZf
SVNfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NVUlJPR0FURV9GSVJTVChj
KSkgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCAocylbKGkp
KzFdKTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BB
SVJfVkFMVUUoKHMpWyhpKS0xXSwgKGMpKTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjE2X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwg
Yywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCisgICAgaWYoVVRGX0lTX1NVUlJPR0FU
RShjKSkgeyBcCisgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NV
UlJPR0FURV9GSVJTVChjKSkgeyBcCisgICAgICAgICAgICBpZigoaSkrMTwobGVuZ3RoKSAmJiBV
VEZfSVNfU0VDT05EX1NVUlJPR0FURShfX2MyPShzKVsoaSkrMV0pKSB7IFwKKyAgICAgICAgICAg
ICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCBfX2MyKTsgXAorICAgICAgICAgICAg
ICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19F
UlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAgfSBlbHNl
IGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9n
YXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAg
ICAgICB9IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYoKGkpLTE+PShzdGFy
dCkgJiYgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURShfX2MyPShzKVsoaSktMV0pKSB7IFwKKyAgICAg
ICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoX19jMiwgKGMpKTsgXAorICAgICAg
ICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVU
Rl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAg
fSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgc2Vjb25k
IHN1cnJvZ2F0ZSAqLyBcCisgICAgICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAor
ICAgICAgICAgICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3RyaWN0KSAmJiAh
VVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJf
VU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoVVRGX0lT
X0ZJUlNUX1NVUlJPR0FURShjKSkgeyBcCisgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxV
RSgoYyksIChzKVsoaSkrK10pOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9BUFBFTkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYxNl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgaWYoKHVpbnQz
Ml90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKGMpOyBc
CisgICAgfSBlbHNlIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKT4+MTAp
KzB4ZDdjMCk7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYykmMHgzZmYpfDB4
ZGMwMCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0ZXRF8xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldE
XzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoKHMpWyhp
KSsrXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYxNl9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBf
X049KG4pOyBcCisgICAgd2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEYxNl9GV0RfMV9VTlNB
RkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwK
KyAgICBpZihVVEZfSVNfU0VDT05EX1NVUlJPR0FURSgocylbaV0pKSB7IFwKKyAgICAgICAgLS0o
aSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfTkVY
VCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NIQVJfU0FG
RShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAg
ICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19j
MjsgXAorICAgICAgICBpZigoaSk8KGxlbmd0aCkgJiYgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUo
X19jMj0ocylbKGkpXSkpIHsgXAorICAgICAgICAgICAgKysoaSk7IFwKKyAgICAgICAgICAgIChj
KT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAvKiBzdHJp
Y3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNhdWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQg
VVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAgICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wK
KyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAg
ICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0
cmljdCkgJiYgIVVURl9JU19VTklDT0RFX0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1bm1hdGNo
ZWQgc2Vjb25kIHN1cnJvZ2F0ZSBvciBvdGhlciBub24tY2hhcmFjdGVyICovIFwKKyAgICAgICAg
KGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFUxNl9BUFBFTkQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpIHsgXAorICAgIGlmKCh1aW50
MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KShjKTsg
XAorICAgIH0gZWxzZSBpZigodWludDMyX3QpKGMpPD0weDEwZmZmZikgeyBcCisgICAgICAgIGlm
KChpKSsxPChsZW5ndGgpKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgo
KGMpPj4xMCkrMHhkN2MwKTsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgo
YykmMHgzZmYpfDB4ZGMwMCk7IFwKKyAgICAgICAgfSBlbHNlIC8qIG5vdCBlbm91Z2ggc3BhY2Ug
Ki8geyBcCisgICAgICAgICAgICAocylbKGkpKytdPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAg
ICB9IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgZXJyb3IgdmFsdWUgKi8geyBc
CisgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShz
LCBpLCBsZW5ndGgpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9G
V0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEX05fU0FGRShzLCBpLCBs
ZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1Bf
U1RBUlQocywgc3RhcnQsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFUxNl9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfUFJFVl9D
SEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVU
Rl9JU19TRUNPTkRfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlS
X1ZBTFVFKChzKVstLShpKV0sIChjKSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX1NF
Q09ORF9TVVJST0dBVEUoKHMpWy0tKGkpXSkpIHsgXAorICAgICAgICAtLShpKTsgXAorICAgIH0g
XAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OX1VO
U0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19OX1VOU0FGRShzLCBp
LCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisg
ICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAg
ICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9D
UF9MSU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFS
X0xJTUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKChz
KVsoaSktMV0pKSB7IFwKKyAgICAgICAgKysoaSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEYxNl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwK
KyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKGMp
KSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZigoaSk+KHN0YXJ0KSAm
JiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAgICAgICAg
ICAgLS0oaSk7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAo
YykpOyBcCisgICAgICAgICAgICAvKiBzdHJpY3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNh
dWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQgVVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAg
ICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNv
bmQgc3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFVVEZfSVNfVU5JQ09ERV9DSEFS
KGMpKSB7IFwKKyAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSBvciBvdGhlciBu
b24tY2hhcmFjdGVyICovIFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0g
XAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkg
VTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19O
X1NBRkUocywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04ocywgc3RhcnQsIGksIG4pCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGks
IGxlbmd0aCkgVTE2X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKQorCisvKiBGb3Jt
ZXJseSB1dGYzMi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLworCisvKgorKiBPbGQgZG9jdW1lbnRhdGlvbjoKKyoKKyogICBUaGlz
IGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIFVURi0zMiBjb2RlIHVuaXRzIGFuZCBj
b2RlIHBvaW50cy4KKyogICBTaWduYXR1cmVzIGFuZCBzZW1hbnRpY3MgYXJlIHRoZSBzYW1lIGFz
IGZvciB0aGUgc2ltaWxhcmx5IG5hbWVkIG1hY3JvcworKiAgIGluIHV0ZjE2LmguCisqICAgdXRm
MzIuaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmg8L3A+Cisq
ICAgYW5kIHNvbWUgY29tbW9uIGRlZmluaXRpb25zLgorKiAgIDxwPjxiPlVzYWdlOjwvYj4gIElD
VSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dl
ZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KKyogICAgICAgICAgICAgICAgICBDb21wb3VuZCBz
dGF0ZW1lbnRzIChjdXJseSBicmFjZXMge30pIG11c3QgYmUgdXNlZCAgZm9yIGlmLWVsc2Utd2hp
bGUuLi4KKyogICAgICAgICAgICAgICAgICBib2RpZXMgYW5kIGFsbCBtYWNybyBzdGF0ZW1lbnRz
IHNob3VsZCBiZSB0ZXJtaW5hdGVkIHdpdGggc2VtaWNvbG9uLjwvcD4KKyovCisKKy8qIGludGVy
bmFsIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpIFwKKyAgICAo
IShzdHJpY3QpID8gXAorICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiA6IFwKKyAgICAg
ICAgVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkKKworLyoKKyAqIEZvciB0aGUgc2VtYW50aWNzIG9m
IGFsbCBvZiB0aGVzZSBtYWNyb3MsIHNlZSB1dGYxNi5oLgorICogVGhlIFVURi0zMiB2ZXJzaW9u
cyBhcmUgdHJpdmlhbCBiZWNhdXNlIGFueSBjb2RlIHBvaW50IGlzCisgKiBlbmNvZGVkIHVzaW5n
IGV4YWN0bHkgb25lIGNvZGUgdW5pdC4KKyAqLworCisvKiBzaW5nbGUtY29kZSBwb2ludCBkZWZp
bml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
CisvKiBjbGFzc2VzIG9mIGNvZGUgdW5pdCB2YWx1ZXMgKi8KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TSU5H
TEUodWNoYXIpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfTEVBRCh1Y2hhcikgMAorLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19U
UkFJTCh1Y2hhcikgMAorCisvKiBudW1iZXIgb2YgY29kZSB1bml0cyBwZXIgY29kZSBwb2ludCAq
LworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjMyX05FRURfTVVMVElQTEVfVUNIQVIoYykgMAorLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9DSEFS
X0xFTkdUSChjKSAxCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjMyX01BWF9DSEFSX0xFTkdUSCAxCisKKy8qIGF2ZXJhZ2Ug
bnVtYmVyIG9mIGNvZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2ICovCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJf
QVJSQVlfU0laRShzaXplKSAoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9HRVRfQ0hBUl9VTlNBRkUocywg
aSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1NB
RkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBc
CisgICAgaWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZf
RVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30KKworLyogZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJk
IGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYzMl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkp
KytdOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAor
ICAgIChzKVsoaSkrK109KGMpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEXzFfVU5TQUZFKHMsIGkp
IHsgXAorICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEX05fVU5TQUZFKHMsIGksIG4p
IHsgXAorICAgIChpKSs9KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNv
bGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfU1RBUlRfVU5T
QUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0
aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKCFVVEYzMl9J
U19TQUZFKGMsIHN0cmljdCkpIHsgXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMp
IHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhp
KSsrXT0oYyk7IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgMHhmZmZkICovIHsg
XAorICAgICAgICAocylbKGkpKytdPTB4ZmZmZDsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMy
X0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSB7IFwKKyAgICArKyhpKTsgXAorfQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjMyX0ZXRF9OX1NBRkUocywgaSwgbGVuZ3RoLCBuKSB7IFwKKyAgICBpZigoKGkpKz0obikpPihs
ZW5ndGgpKSB7IFwKKyAgICAgICAgKGkpPShsZW5ndGgpOyBcCisgICAgfSBcCit9CisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMzJfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgeyBcCit9CisKKy8qIGRlZmlu
aXRpb25zIHdpdGggYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7
IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9VTlNBRkUo
cywgaSkgeyBcCisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fVU5TQUZFKHMs
IGksIG4pIHsgXAorICAgIChpKS09KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElN
SVRfVU5TQUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX1BSRVZfQ0hBUl9TQUZFKHMsIHN0
YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoIVVU
RjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgeyBc
CisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwg
bikgeyBcCisgICAgKGkpLT0obik7IFwKKyAgICBpZigoaSk8KHN0YXJ0KSkgeyBcCisgICAgICAg
IChpKT0oc3RhcnQpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfTElNSVRf
U0FGRShzLCBpLCBsZW5ndGgpIHsgXAorfQorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAyIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisv
KioKKyAqIEVzdGltYXRlIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBmb3IgYSBzdHJpbmcgYmFz
ZWQgb24gdGhlIG51bWJlciBvZiBVVEYtMTYgY29kZSB1bml0cy4KKyAqCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQVJS
QVlfU0laRShzaXplKSBVVEYxNl9BUlJBWV9TSVpFKHNpemUpCisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFUxNl9HRVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEZfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgICBVVEYxNl9H
RVRfQ0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBV
MTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUl9T
QUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgVVRGMTZfR0VUX0NIQVJfU0FGRShz
LCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEZfTkVYVF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgICBVVEYxNl9ORVhU
X0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2
X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX05FWFRfQ0hBUl9T
QUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSAgVVRGMTZfTkVYVF9DSEFSX1NBRkUocywgaSwg
bGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9BUFBF
TkRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgIFVURjE2X0FQUEVORF9DSEFSX1VO
U0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9BUFBFTkQg
aW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSX1NBRkUo
cywgaSwgbGVuZ3RoLCBjKSAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5n
dGgsIGMpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8x
X1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF8xX1VOU0FGRShzLCBp
KSAgICAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldEXzFfVU5TQUZFKHMsIGkpCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSAgICAgICAgICAgICAgICAg
VVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGX0ZXRF9OX1VOU0FGRShzLCBpLCBuKSAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldE
X05fVU5TQUZFKHMsIGksIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFUxNl9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF9OX1NBRkUocywg
aSwgbGVuZ3RoLCBuKSAgICAgICAgICAgICAgVVRGMTZfRldEX05fU0FGRShzLCBpLCBsZW5ndGgs
IG4pCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9T
VEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFS
VF9VTlNBRkUocywgaSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShz
LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NU
QVJULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfU1RBUlRfU0FGRShz
LCBzdGFydCwgaSkgICAgICAgICBVVEYxNl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBp
KQorCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9QUkVWX1VOU0FG
RSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9VTlNBRkUocywgaSwg
YykgICAgICAgICAgICAgICAgVVRGMTZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSAg
IFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpCisKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLXzFfVU5TQUZFKHMsIGkpICAgICAgICAgICAgICAg
ICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS18xX1NB
RkUocywgc3RhcnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0JBQ0tfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLX05f
VU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgIFVURjE2X0JBQ0tfTl9VTlNBRkUocywg
aSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0LCBpLCBu
KSAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pCisKKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVF9VTlNBRkUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9VTlNBRkUocywg
aSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwg
bGVuZ3RoKSBVVEYxNl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisK
Ky8qIERlZmluZSBkZWZhdWx0IG1hY3JvcyAoVVRGLTE2ICJzYWZlIikgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICogRG9lcyB0aGlzIGNvZGUgdW5pdCBh
bG9uZSBlbmNvZGUgYSBjb2RlIHBvaW50IChCTVAsIG5vdCBhIHN1cnJvZ2F0ZSk/CisgKiBTYW1l
IGFzIFVURjE2X0lTX1NJTkdMRS4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VV9JU19TSU5HTEUgYW5kIFUxNl9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX0lTX1NJTkdMRSh1Y2hhcikgVTE2X0lTX1NJTkdMRSh1Y2hhcikKKworLyoqCisgKiBJ
cyB0aGlzIGNvZGUgdW5pdCB0aGUgZmlyc3Qgb25lIG9mIHNldmVyYWwgKGEgbGVhZCBzdXJyb2dh
dGUpPworICogU2FtZSBhcyBVVEYxNl9JU19MRUFELgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVX0lTX0xFQUQgYW5kIFUxNl9JU19MRUFELCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9JU19MRUFEKHVjaGFyKSBVMTZfSVNfTEVBRCh1Y2hhcikKKworLyoqCisg
KiBJcyB0aGlzIGNvZGUgdW5pdCBvbmUgb2Ygc2V2ZXJhbCBidXQgbm90IHRoZSBmaXJzdCBvbmUg
KGEgdHJhaWwgc3Vycm9nYXRlKT8KKyAqIFNhbWUgYXMgVVRGMTZfSVNfVFJBSUwuCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwg
c2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfSVNfVFJBSUwodWNoYXIpIFUxNl9JU19U
UkFJTCh1Y2hhcikKKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSBwb2ludCByZXF1aXJlIG11bHRp
cGxlIGNvZGUgdW5pdHMgKGlzIGl0IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50KT8KKyAqIFNh
bWUgYXMgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hBUi4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFVzZSBVMTZfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHhmZmZmKSBpbnN0ZWFkLgor
ICovCisjZGVmaW5lIFVURl9ORUVEX01VTFRJUExFX1VDSEFSKGMpIFVURjE2X05FRURfTVVMVElQ
TEVfVUNIQVIoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIHRvIGVu
Y29kZSB0aGlzIGNvZGUgcG9pbnQgKDEgb3IgMik/CisgKiBTYW1lIGFzIFVURjE2X0NIQVJfTEVO
R1RILgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9DSEFSX0xFTkdUSChjKSBVMTZfTEVOR1RIKGMp
CisKKy8qKgorICogSG93IG1hbnkgY29kZSB1bml0cyBhcmUgdXNlZCBhdCBtb3N0IGZvciBhbnkg
VW5pY29kZSBjb2RlIHBvaW50ICgyKT8KKyAqIFNhbWUgYXMgVVRGMTZfTUFYX0NIQVJfTEVOR1RI
LgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTUFYX0xFTkdUSCwgc2Vl
IHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTUFYX0NIQVJfTEVOR1RIIFUxNl9NQVhfTEVO
R1RICisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBjb250YWlucyB0aGUg
Y29kZSB1bml0IGkuCisgKiBpIGNvdWxkIHBvaW50IHRvIHRoZSBsZWFkIG9yIHRoZSB0cmFpbCBz
dXJyb2dhdGUgZm9yIHRoZSBjb2RlIHBvaW50LgorICogaSBpcyBub3QgbW9kaWZpZWQuCisgKiBT
YW1lIGFzIFVURjE2X0dFVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLwor
I2RlZmluZSBVVEZfR0VUX0NIQVIocywgc3RhcnQsIGksIGxlbmd0aCwgYykgVTE2X0dFVChzLCBz
dGFydCwgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRo
YXQgc3RhcnRzIGF0IGNvZGUgdW5pdCBpCisgKiBhbmQgYWR2YW5jZSBpIHRvIGJleW9uZCB0aGUg
Y29kZSB1bml0cyBvZiB0aGlzIGNvZGUgcG9pbnQgKHBvc3QtaW5jcmVtZW50KS4KKyAqIGkgbXVz
dCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIGEgY29kZSBwb2ludC4KKyAqIE90aGVy
d2lzZSBjIGlzIHNldCB0byB0aGUgdHJhaWwgdW5pdCAoc3Vycm9nYXRlKSBpdHNlbGYuCisgKiBT
YW1lIGFzIFVURjE2X05FWFRfQ0hBUi4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8
aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVY
VCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSKHMsIGksIGxlbmd0
aCwgYykgVTE2X05FWFQocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFwcGVuZCB0aGUgY29k
ZSB1bml0cyBvZiBjb2RlIHBvaW50IGMgdG8gdGhlIHN0cmluZyBhdCBpbmRleCBpCisgKiBhbmQg
YWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgbmV3IGNvZGUgdW5pdHMgKHBvc3QtaW5jcmVtZW50KS4K
KyAqIFRoZSBjb2RlIHVuaXRzIGJlZ2lubmluZyBhdCBpbmRleCBpIHdpbGwgYmUgb3ZlcndyaXR0
ZW4uCisgKiBTYW1lIGFzIFVURjE2X0FQUEVORF9DSEFSLgorICogXHByZSAwPD1jPD0weDEwZmZm
ZgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxpPD1sZW5ndGgKKyAqCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9BUFBFTkRfQ0hBUihzLCBpLCBsZW5ndGgsIGMpIFVURjE2X0FQUEVO
RF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFkdmFuY2UgaSB0byBiZXlv
bmQgdGhlIGNvZGUgdW5pdHMgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBiZWdpbnMgYXQgaS4KKyAq
IEkuZS4sIGFkdmFuY2UgaSBieSBvbmUgY29kZSBwb2ludC4KKyAqIFNhbWUgYXMgVVRGMTZfRldE
XzEuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLgor
ICovCisjZGVmaW5lIFVURl9GV0RfMShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShzLCBpLCBsZW5n
dGgpCisKKy8qKgorICogQWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1bml0cyBvZiB0aGUg
biBjb2RlIHBvaW50cyB3aGVyZSB0aGUgZmlyc3Qgb25lIGJlZ2lucyBhdCBpLgorICogSS5lLiwg
YWR2YW5jZSBpIGJ5IG4gY29kZSBwb2ludHMuCisgKiBTYW1lIGFzIFVUMTZfRldEX04uCisgKiBc
cHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4p
CisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBpIGFuZCBhZGp1c3QgaXQg
c28gdGhhdCBpdCBwb2ludHMgdG8gdGhlIGJlZ2lubmluZworICogb2YgYSBjb2RlIHBvaW50Lgor
ICogVGhlIGlucHV0IGluZGV4IHBvaW50cyB0byBhbnkgY29kZSB1bml0IG9mIGEgY29kZSBwb2lu
dCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgdG8KKyAqIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhl
IHNhbWUgY29kZSBwb2ludC4gaSBpcyBuZXZlciBpbmNyZW1lbnRlZC4KKyAqIEluIG90aGVyIHdv
cmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHByZWNlZGVkIGJ5
IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgZGVjcmVtZW50ZWQuIE90
aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN0YXJ0
IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9ORVhUX0NIQVIoKSBmcm9tIGEgcmFuZG9tIGluZGV4Lgor
ICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9TVEFSVC4KKyAqIFxwcmUgc3RhcnQ8PWk8bGVuZ3Ro
CisgKiBccG9zdCBzdGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUg
VVRGX1NFVF9DSEFSX1NUQVJUKHMsIHN0YXJ0LCBpKSBVMTZfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0
LCBpKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRoYXQgaGFzIGNvZGUgdW5p
dHMgYmVmb3JlIGkKKyAqIGFuZCBtb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGlzIGNvZGUg
cG9pbnQgKHByZS1pbmNyZW1lbnQpLgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2Rl
IHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBh
bGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfUFJFVl9DSEFSLgorICogXHByZSBzdGFydDxpPD1s
ZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X1BSRVYsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X1BSRVZfQ0hBUihzLCBzdGFydCwgaSwgYykgVTE2X1BSRVYocywgc3RhcnQsIGksIGMpCisKKy8q
KgorICogTW92ZSBpIGJhY2t3YXJkICh0b3dhcmRzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmlu
ZykKKyAqIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMg
Y29kZSB1bml0cyBiZWZvcmUgaS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBvbmUgY29k
ZSBwb2ludC4KKyAqIGkgbXVzdCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IGFmdGVyIHRo
ZSBsYXN0IHVuaXQgb2YgYSBjb2RlIHBvaW50IChpPT1sZW5ndGggaXMgYWxsb3dlZCkuCisgKiBT
YW1lIGFzIFVURjE2X0JBQ0tfMS4KKyAqIFxwcmUgc3RhcnQ8aTw9bGVuZ3RoCisgKiBccG9zdCBz
dGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9CQUNLXzEsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMShzLCBzdGFy
dCwgaSkgVTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqCisgKiBNb3ZlIGkgYmFja3dhcmQg
KHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNv
ZGUgdW5pdCBvZiB0aGUgbiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgY29kZSB1bml0cyBiZWZvcmUg
aS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBuIGNvZGUgcG9pbnRzLgorICogaSBtdXN0
IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNv
ZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfQkFDS19O
LgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoK
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9v
bGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKSBVMTZfQkFDS19O
KHMsIHN0YXJ0LCBpLCBuKQorCisvKioKKyAqIFRha2UgdGhlIHJhbmRvbS1hY2Nlc3MgaW5kZXgg
aSBhbmQgYWRqdXN0IGl0IHNvIHRoYXQgaXQgcG9pbnRzIGJleW9uZAorICogYSBjb2RlIHBvaW50
LiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIGJleW9uZCBhbnkgY29kZSB1bml0CisgKiBvZiBhIGNv
ZGUgcG9pbnQgYW5kIGlzIG1vdmVkIHRvIHBvaW50IGJleW9uZCB0aGUgbGFzdCBjb2RlIHVuaXQg
b2YgdGhlIHNhbWUKKyAqIGNvZGUgcG9pbnQuIGkgaXMgbmV2ZXIgZGVjcmVtZW50ZWQuCisgKiBJ
biBvdGhlciB3b3JkcywgaWYgaSBwb2ludHMgdG8gYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBpcyBw
cmVjZWRlZCBieSBhIG1hdGNoaW5nCisgKiBsZWFkIHN1cnJvZ2F0ZSwgdGhlbiBpIGlzIGluY3Jl
bWVudGVkLiBPdGhlcndpc2UgaXQgaXMgbm90IG1vZGlmaWVkLgorICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBzdGFydCBhbiBpdGVyYXRpb24gd2l0aCBVVEZfUFJFVl9DSEFSKCkgZnJvbSBhIHJhbmRv
bSBpbmRleC4KKyAqIFNhbWUgYXMgVVRGMTZfU0VUX0NIQVJfTElNSVQuCisgKiBccHJlIHN0YXJ0
PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSBVMTZfU0VU
X0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVD
QVRFRF9BUEkgKi8KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pY3UvdW5pY29kZS91dHlwZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29k
ZS91dHlwZXMuaAppbmRleCAxYmNmN2Y1ZDM5MDlmZjY2YjY1OGVhOTViYTRhMmNkZWI1NDljOWMz
Li44ZjkyNGM5ZDE0MjQxNzkyODQ2NGI3OTQ0Nzk2MTIxNzYwMTAyOWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNvZGUvdXR5cGVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V0eXBlcy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDEyLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zNCw5ICszNCwxMyBAQAogCiAK
ICNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCi0jaW5jbHVkZSAidW5pY29kZS91dGYuaCIK
ICNpbmNsdWRlICJ1bmljb2RlL3V2ZXJzaW9uLmgiCiAjaW5jbHVkZSAidW5pY29kZS91Y29uZmln
LmgiCisjaW5jbHVkZSA8ZmxvYXQuaD4KKworI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZf
SEVBREVSUworIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCisjZW5kaWYKIAogLyohCiAgKiBc
ZmlsZQpAQCAtNTMsNyArNTcsNyBAQAogICogXGRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQogICog
QGludGVybmFsCiAgKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwog
IyAgIGlmbmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQogIyAgICAgICBkZWZpbmUgVV9TSE9XX0NQ
TFVTUExVU19BUEkgMAogIyAgIGVuZGlmCkBAIC02Nyw2ICs3MSwxMiBAQAogLyoqCiAgKiBcZGVm
IFVfSElERV9EUkFGVF9BUEkKICAqIERlZmluZSB0aGlzIHRvIDEgdG8gcmVxdWVzdCB0aGF0IGRy
YWZ0IEFQSSBiZSAiaGlkZGVuIgorICogQGludGVybmFsCisgKi8KKy8qKgorICogXGRlZiBVX0hJ
REVfSU5URVJOQUxfQVBJCisgKiBEZWZpbmUgdGhpcyB0byAxIHRvIHJlcXVlc3QgdGhhdCBpbnRl
cm5hbCBBUEkgYmUgImhpZGRlbiIKKyAqIEBpbnRlcm5hbAogICovCiAjaWYgIVVfREVGQVVMVF9T
SE9XX0RSQUZUICYmICFkZWZpbmVkKFVfU0hPV19EUkFGVF9BUEkpCiAjZGVmaW5lIFVfSElERV9E
UkFGVF9BUEkgMQpAQCAtNzUsMTE2ICs4NSw4IEBACiAjZGVmaW5lIFVfSElERV9JTlRFUk5BTF9B
UEkgMQogI2VuZGlmCiAKLSNpZmRlZiBVX0hJREVfRFJBRlRfQVBJCi0jaW5jbHVkZSAidW5pY29k
ZS91ZHJhZnQuaCIKLSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCi0jaW5j
bHVkZSAidW5pY29kZS91ZGVwcmN0ZC5oIgotI2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVD
QVRFRF9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3VvYnNsZXRlLmgiCi0jZW5kaWYKLQotI2lmZGVm
IFVfSElERV9JTlRFUk5BTF9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3VpbnRybmFsLmgiCi0jZW5k
aWYKLQotI2lmZGVmIFVfSElERV9TWVNURU1fQVBJCi0jaW5jbHVkZSAidW5pY29kZS91c3lzdGVt
LmgiCi0jZW5kaWYKLQogLyoqIEB9ICovCiAKLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyog
Y2hhciBDaGFyYWN0ZXIgc2V0IGZhbWlseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0vKioKLSAqIFVf
Q0hBUlNFVF9GQU1JTFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBp
cyBhbiBBU0NJSSBiYXNlZCBwbGF0Zm9ybS4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVm
aW5lIFVfQVNDSUlfRkFNSUxZIDAKLQotLyoqCi0gKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFs
IHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gRUJDRElDIGJhc2VkIHBsYXRm
b3JtLgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNkZWZpbmUgVV9FQkNESUNfRkFNSUxZIDEK
LQotLyoqCi0gKiBcZGVmIFVfQ0hBUlNFVF9GQU1JTFkKLSAqCi0gKiA8cD5UaGVzZSBkZWZpbml0
aW9ucyBhbGxvdyB0byBzcGVjaWZ5IHRoZSBlbmNvZGluZyBvZiB0ZXh0Ci0gKiBpbiB0aGUgY2hh
ciBkYXRhIHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgcGxhdGZvcm0gYW5kIHRoZSBjb21waWxlci4K
LSAqIEl0IGlzIGVub3VnaCB0byBkZXRlcm1pbmUgdGhlIGNvZGUgcG9pbnQgdmFsdWVzIG9mICJp
bnZhcmlhbnQgY2hhcmFjdGVycyIsCi0gKiB3aGljaCBhcmUgdGhlIG9uZXMgc2hhcmVkIGJ5IGFs
bCBlbmNvZGluZ3MgdGhhdCBhcmUgaW4gdXNlCi0gKiBvbiBhIGdpdmVuIHBsYXRmb3JtLjwvcD4K
LSAqCi0gKiA8cD5UaG9zZSAiaW52YXJpYW50IGNoYXJhY3RlcnMiIHNob3VsZCBiZSBhbGwgdGhl
IHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlCi0gKiBsYXRpbiBsZXR0ZXJzLCB0aGUgZGlnaXRzLCB0
aGUgc3BhY2UsIGFuZCAiYmFzaWMgcHVuY3R1YXRpb24iLgotICogQWxzbywgJ1xcbicsICdcXHIn
LCAnXFx0JyBzaG91bGQgYmUgYXZhaWxhYmxlLjwvcD4KLSAqCi0gKiA8cD5UaGUgbGlzdCBvZiAi
aW52YXJpYW50IGNoYXJhY3RlcnMiIGlzOjxicj4KLSAqIFxjb2RlCi0gKiAgICBBLVogIGEteiAg
MC05ICBTUEFDRSAgIiAgJSAgJmFtcDsgICcgICggICkgICogICsgICwgIC0gIC4gIC8gIDogIDsg
IDwgID0gID4gID8gIF8KLSAqIFxlbmRjb2RlCi0gKiA8YnI+Ci0gKiAoNTIgbGV0dGVycyArIDEw
IG51bWJlcnMgKyAyMCBwdW5jL3N5bS9zcGFjZSA9IDgyIHRvdGFsKTwvcD4KLSAqCi0gKiA8cD5U
aGlzIG1hdGNoZXMgdGhlIElCTSBTeW50YWN0aWMgQ2hhcmFjdGVyIFNldCAoQ1MgNjQwKS48L3A+
Ci0gKgotICogPHA+SW4gb3RoZXIgd29yZHMsIGFsbCB0aGUgZ3JhcGhpYyBjaGFyYWN0ZXJzIGlu
IDctYml0IEFTQ0lJIHNob3VsZAotICogYmUgc2FmZWx5IGFjY2Vzc2libGUgZXhjZXB0IHRoZSBm
b2xsb3dpbmc6PC9wPgotICoKLSAqIFxjb2RlCi0gKiAgICAnXCcgPGJhY2tzbGFzaD4KLSAqICAg
ICdbJyA8bGVmdCBicmFja2V0PgotICogICAgJ10nIDxyaWdodCBicmFja2V0PgotICogICAgJ3sn
IDxsZWZ0IGJyYWNlPgotICogICAgJ30nIDxyaWdodCBicmFjZT4KLSAqICAgICdeJyA8Y2lyY3Vt
ZmxleD4KLSAqICAgICd+JyA8dGlsZGU+Ci0gKiAgICAnIScgPGV4Y2xhbWF0aW9uIG1hcms+Ci0g
KiAgICAnIycgPG51bWJlciBzaWduPgotICogICAgJ3wnIDx2ZXJ0aWNhbCBsaW5lPgotICogICAg
JyQnIDxkb2xsYXIgc2lnbj4KLSAqICAgICdAJyA8Y29tbWVyY2lhbCBhdD4KLSAqICAgICdgJyA8
Z3JhdmUgYWNjZW50PgotICogXGVuZGNvZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0KLSNp
Zm5kZWYgVV9DSEFSU0VUX0ZBTUlMWQotIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIDAKLSNl
bmRpZgotCi0vKioKLSAqIFxkZWYgVV9DSEFSU0VUX0lTX1VURjgKLSAqCi0gKiBIYXJkY29kZSB0
aGUgZGVmYXVsdCBjaGFyc2V0IHRvIFVURi04LgotICoKLSAqIElmIHRoaXMgaXMgc2V0IHRvIDEs
IHRoZW4KLSAqIC0gSUNVIHdpbGwgYXNzdW1lIHRoYXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhcios
IFN0cmluZ1BpZWNlLCBzdGQ6OnN0cmluZyBldGMuCi0gKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwg
cmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzeXN0ZW0gQVBJIHVzZXMKLSAqIC0gc29tZSBJQ1UgY29k
ZSB3aWxsIHVzZSBmYXN0IGZ1bmN0aW9ucyBsaWtlIHVfc3RyRnJvbVVURjgoKQotICogICByYXRo
ZXIgdGhhbiB0aGUgbW9yZSBnZW5lcmFsIGFuZCBtb3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9u
IEFQSSAodWNudi5oKQotICogLSB1Y252X2dldERlZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMg
IlVURi04IgotICogLSB1Y252X3NldERlZmF1bHROYW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwg
bm90IGNoYW5nZSB0aGUgZGVmYXVsdCBjaGFyc2V0Ci0gKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNV
IGFyZSBzbWFsbGVyCi0gKiAtIG1vcmUgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0
aGUgVUNPTkZJR19OT19DT05WRVJTSU9OIGJ1aWxkLXRpbWUKLSAqICAgY29uZmlndXJhdGlvbiBv
cHRpb24gKHNlZSB1bmljb2RlL3Vjb25maWcuaCkKLSAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVS
U0lPTiBidWlsZCBvcHRpb24gaW4gdWNvbmZpZy5oIGlzIG1vcmUgdXNhYmxlCi0gKgotICogQHN0
YWJsZSBJQ1UgNC4yCi0gKiBAc2VlIFVDT05GSUdfTk9fQ09OVkVSU0lPTgotICovCi0jaWZuZGVm
IFVfQ0hBUlNFVF9JU19VVEY4Ci0jICAgZGVmaW5lIFVfQ0hBUlNFVF9JU19VVEY4IDAKLSNlbmRp
ZgotCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBJQ1VEQVRBIG5hbWluZyBzY2hlbWUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCkBAIC0yMzIsOSArMTM0LDExIEBACiAgKiBJQ1UgMS44Lnggb24g
RUJDRElDLCBldGMuLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRB
X05BTUUgICAgImljdWR0IiBVX0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRF
UiAgLyoqPCBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBV
X0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUgorI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCiAjZGVmaW5lIFVfVVNSREFUQV9OQU1FICAgICJ1c3JkdCIgVV9JQ1VfVkVS
U0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9MRVRURVIgIC8qKjwgQGludGVybmFsICovCi0jZGVm
aW5lIFVfVVNFX1VTUkRBVEEgICAgIDAgIC8qKjwgQGludGVybmFsICovCisjZGVmaW5lIFVfVVNF
X1VTUkRBVEEgICAgIDEgIC8qKjwgQGludGVybmFsICovCisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KIAogLyoqCiAgKiAgVV9JQ1VfRU5UUllfUE9JTlQgaXMgdGhlIG5hbWUgb2Yg
dGhlIERMTCBlbnRyeSBwb2ludCB0byB0aGUgSUNVIGRhdGEgbGlicmFyeS4KQEAgLTI0NywzOCAr
MTUxLDI4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcI2RlZmluZSBV
X0lDVV9FTlRSWV9QT0lOVCBpY3VkdDE5X2RhdAogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNk
ZWZpbmUgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UICBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChV
X0lDVV9WRVJTSU9OX01BSk9SX05VTSwgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0pCisjZGVmaW5l
IFVfSUNVREFUQV9FTlRSWV9QT0lOVCAgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQoVV9JQ1Vf
VkVSU0lPTl9NQUpPUl9OVU0sVV9MSUJfU1VGRklYX0NfTkFNRSkKIAorI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCiAvKioKLSAqIERvIG5vdCB1c2UuCisgKiBEbyBub3QgdXNlLiBOb3RlIHRo
YXQgaXQncyBPSyBmb3IgdGhlIDJuZCBhcmd1bWVudCB0byBiZSB1bmRlZmluZWQgKGxpdGVyYWwp
LgogICogQGludGVybmFsCiAgKi8KLSNkZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQo
bWFqb3IsIG1pbm9yKSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikKKyNk
ZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3Isc3VmZikgVV9ERUZfSUNVREFU
QV9FTlRSWV9QT0lOVChtYWpvcixzdWZmKQorCiAvKioKICAqIERvIG5vdCB1c2UuCiAgKiBAaW50
ZXJuYWwKICAqLwogI2lmbmRlZiBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UCiAvKiBhZmZlY3Rl
ZCBieSBzeW1ib2wgcmVuYW1pbmcuIFNlZSBwbGF0Zm9ybS5oICovCi0jZGVmaW5lIFVfREVGX0lD
VURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBpY3VkdCMjbWFqb3IjI21pbm9yIyNfZGF0
Ci0jZW5kaWYKLQotLyoqCi0gKiBcZGVmIFVfQ0FMTENPTlYKLSAqIFNpbWlsYXIgdG8gVV9DREVD
TF9CRUdJTi9VX0NERUNMX0VORCwgdGhpcyBxdWFsaWZpZXIgaXMgbmVjZXNzYXJ5Ci0gKiBpbiBj
YWxsYmFjayBmdW5jdGlvbiB0eXBlZGVmcyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBj
b252ZW50aW9uCi0gKiBpcyBjb21wYXRpYmxlLgotICoKLSAqIFRoaXMgaXMgb25seSB1c2VkIGZv
ciBub24tSUNVLUFQSSBmdW5jdGlvbnMuCi0gKiBXaGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMg
SUNVIEFQSSwKLSAqIHlvdSBtdXN0IHVzZSB0aGUgVV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlm
aWVycy4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jaWYgZGVmaW5lZChPUzM5MCkgJiYgZGVm
aW5lZChYUF9DUExVU1BMVVMpCi0jICAgIGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wKKyNpZm5k
ZWYgVV9MSUJfU1VGRklYX0NfTkFNRQorI2RlZmluZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5U
KG1ham9yLCBzdWZmKSBpY3VkdCMjbWFqb3IjI19kYXQKICNlbHNlCi0jICAgIGRlZmluZSBVX0NB
TExDT05WIFVfRVhQT1JUMgorI2RlZmluZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9y
LCBzdWZmKSBpY3VkdCMjc3VmZiAjIyBtYWpvciMjX2RhdAorI2VuZGlmCiAjZW5kaWYKKyNlbmRp
ZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqIFxkZWYgTlVMTApAQCAtMjg2
LDcgKzE4MCw3IEBACiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmbmRlZiBOVUxMCi0jaWZk
ZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCAgICAwCiAj
ZWxzZQogI2RlZmluZSBOVUxMICAgICgodm9pZCAqKTApCkBAIC0zMTUsNTQgKzIwOSwxNyBAQCB0
eXBlZGVmIGRvdWJsZSBVRGF0ZTsKIC8qKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBwZXIg
ZGF5IEBzdGFibGUgSUNVIDIuMCAqLwogI2RlZmluZSBVX01JTExJU19QRVJfREFZICAgICAgICg4
NjQwMDAwMCkKIAotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiBVQ2xhc3NJRC1iYXNlZCBS
VFRJICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogCisgKiBNYXhpbXVtIFVEYXRlIHZh
bHVlIAorICogQHN0YWJsZSBJQ1UgNC44IAorICovIAorI2RlZmluZSBVX0RBVEVfTUFYIERCTF9N
QVgKIAogLyoqCi0gKiBVQ2xhc3NJRCBpcyB1c2VkIHRvIGlkZW50aWZ5IGNsYXNzZXMgd2l0aG91
dCB1c2luZyBSVFRJLCBzaW5jZSBSVFRJCi0gKiBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwg
QysrIGNvbXBpbGVycy4gIEVhY2ggY2xhc3MgaGllcmFyY2h5IHdoaWNoIG5lZWRzCi0gKiB0byBp
bXBsZW1lbnQgcG9seW1vcnBoaWMgY2xvbmUoKSBvciBvcGVyYXRvcj09KCkgZGVmaW5lcyB0d28g
bWV0aG9kcywKLSAqIGRlc2NyaWJlZCBpbiBkZXRhaWwgYmVsb3cuICBVQ2xhc3NJRCB2YWx1ZXMg
Y2FuIGJlIGNvbXBhcmVkIHVzaW5nCi0gKiBvcGVyYXRvcj09KCkuIE5vdGhpbmcgZWxzZSBzaG91
bGQgYmUgZG9uZSB3aXRoIHRoZW0uCi0gKgotICogXHBhcgotICogZ2V0RHluYW1pY0NsYXNzSUQo
KSBpcyBkZWNsYXJlZCBpbiB0aGUgYmFzZSBjbGFzcyBvZiB0aGUgaGllcmFyY2h5IGFzCi0gKiBh
IHB1cmUgdmlydHVhbC4gIEVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBpdCBpbiB0
aGUgc2FtZSB3YXk6Ci0gKgotICogXGNvZGUKLSAqICAgICAgY2xhc3MgQmFzZSB7Ci0gKiAgICAg
IHB1YmxpYzoKLSAqICAgICAgICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQo
KSBjb25zdCA9IDA7Ci0gKiAgICAgIH0KLSAqCi0gKiAgICAgIGNsYXNzIERlcml2ZWQgewotICog
ICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFz
c0lEKCkgY29uc3QKLSAqICAgICAgICAgICAgeyByZXR1cm4gRGVyaXZlZDo6Z2V0U3RhdGljQ2xh
c3NJRCgpOyB9Ci0gKiAgICAgIH0KLSAqIFxlbmRjb2RlCi0gKgotICogRWFjaCBjb25jcmV0ZSBj
bGFzcyBpbXBsZW1lbnRzIGdldFN0YXRpY0NsYXNzSUQoKSBhcyB3ZWxsLCB3aGljaCBhbGxvd3MK
LSAqIGNsaWVudHMgdG8gdGVzdCBmb3IgYSBzcGVjaWZpYyB0eXBlLgotICoKLSAqIFxjb2RlCi0g
KiAgICAgIGNsYXNzIERlcml2ZWQgewotICogICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICBzdGF0
aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQoKTsKLSAqICAgICAgcHJpdmF0
ZToKLSAqICAgICAgICAgIHN0YXRpYyBjaGFyIGZnQ2xhc3NJRDsKLSAqICAgICAgfQotICoKLSAq
ICAgICAgLy8gSW4gRGVyaXZlZC5jcHA6Ci0gKiAgICAgIFVDbGFzc0lEIERlcml2ZWQ6OmdldFN0
YXRpY0NsYXNzSUQoKQotICogICAgICAgIHsgcmV0dXJuIChVQ2xhc3NJRCkmRGVyaXZlZDo6ZmdD
bGFzc0lEOyB9Ci0gKiAgICAgIGNoYXIgRGVyaXZlZDo6ZmdDbGFzc0lEID0gMDsgLy8gVmFsdWUg
aXMgaXJyZWxldmFudAotICogXGVuZGNvZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi10eXBl
ZGVmIHZvaWQqIFVDbGFzc0lEOworICogTWluaW11bSBVRGF0ZSB2YWx1ZSAKKyAqIEBzdGFibGUg
SUNVIDQuOCAKKyAqLyAKKyNkZWZpbmUgVV9EQVRFX01JTiAtVV9EQVRFX01BWAogCiAvKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSovCiAvKiBTaGFyZWQgbGlicmFyeS9ETEwgaW1wb3J0LWV4cG9ydCBBUEkg
Y29udHJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCkBAIC0zNzMsNyArMjMwLDcg
QEAgdHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKICAqIElDVSBpcyBzZXBhcmF0ZWQgaW50byB0aHJl
ZSBsaWJyYXJpZXMuCiAgKi8KIAotLyoKKy8qKgogICogXGRlZiBVX0NPTUJJTkVEX0lNUExFTUVO
VEFUSU9OCiAgKiBTZXQgdG8gZXhwb3J0IGxpYnJhcnkgc3ltYm9scyBmcm9tIGluc2lkZSB0aGUg
SUNVIGxpYnJhcnkKICAqIHdoZW4gYWxsIG9mIElDVSBpcyBpbiBhIHNpbmdsZSBsaWJyYXJ5LgpA
QCAtNTQwLDkgKzM5Nyw5IEBAIHR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CiAgKgogICogTm90ZTog
VGhpcyBpcyBjdXJyZW50bHkgb25seSBkb25lIG9uIFdpbmRvd3MgYmVjYXVzZQogICogc29tZSBM
aW51eC9Vbml4IGNvbXBpbGVycyBoYXZlIHByb2JsZW1zIHdpdGggZGVmaW5pbmcgZ2xvYmFsIG5l
dy9kZWxldGUuCi0gKiBPbiBXaW5kb3dzLCBVX1dJTkRPV1MgaXMgZGVmaW5lZCwgYW5kIGl0IGlz
IF9NU0NfVkVSPj0xMjAwIGZvciBNU1ZDIDYuMCBhbmQgaGlnaGVyLgorICogT24gV2luZG93cywg
aXQgaXMgX01TQ19WRVI+PTEyMDAgZm9yIE1TVkMgNi4wIGFuZCBoaWdoZXIuCiAgKi8KLSNpZiBk
ZWZpbmVkKFhQX0NQTFVTUExVUykgJiYgZGVmaW5lZChXSU4zMikgJiYgVV9ERUJVRyAmJiBVX09W
RVJSSURFX0NYWF9BTExPQ0FUSU9OICYmIChfTVNDX1ZFUj49MTIwMCkgJiYgIWRlZmluZWQoVV9T
VEFUSUNfSU1QTEVNRU5UQVRJT04pICYmIChkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9O
KSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExF
TUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VUX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVk
KFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJT04pKQorI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYm
IFVfREVCVUcgJiYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDAp
ICYmICFkZWZpbmVkKFVfU1RBVElDX0lNUExFTUVOVEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1P
Tl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRl
ZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRB
VElPTikgfHwgZGVmaW5lZChVX0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSkKIAogI2lmbmRlZiBV
X0hJREVfSU5URVJOQUxfQVBJCiAvKioKQEAgLTc0Myw2ICs2MDAsNyBAQCB0eXBlZGVmIGVudW0g
VUVycm9yQ29kZSB7CiAgICAgVV9VTkRFRklORURfS0VZV09SRCwgICAgICAgICAgICAgIC8qKjwg
VW5kZWZpbmVkIFBsdXJhbCBrZXl3b3JkICovCiAgICAgVV9ERUZBVUxUX0tFWVdPUkRfTUlTU0lO
RywgICAgICAgIC8qKjwgTWlzc2luZyBERUZBVUxUIHJ1bGUgaW4gcGx1cmFsIHJ1bGVzICovCiAg
ICAgVV9ERUNJTUFMX05VTUJFUl9TWU5UQVhfRVJST1IsICAgIC8qKjwgRGVjaW1hbCBudW1iZXIg
c3ludGF4IGVycm9yICovCisgICAgVV9GT1JNQVRfSU5FWEFDVF9FUlJPUiwgICAgICAgICAgIC8q
KjwgQ2Fubm90IGZvcm1hdCBhIG51bWJlciBleGFjdGx5IGFuZCByb3VuZGluZyBtb2RlIGlzIFJP
VU5EX1VOTkVDRVNTQVJZIEBzdGFibGUgSUNVIDQuOCAqLwogICAgIFVfRk1UX1BBUlNFX0VSUk9S
X0xJTUlULCAgICAgICAgICAvKio8IFRoZSBsaW1pdCBmb3IgZm9ybWF0IGxpYnJhcnkgZXJyb3Jz
ICovCiAKICAgICAvKgpAQCAtODI2LDcgKzY4NCw3IEBAIHR5cGVkZWYgZW51bSBVRXJyb3JDb2Rl
IHsKIC8qIFVzZSB0aGUgZm9sbG93aW5nIHRvIGRldGVybWluZSBpZiBhbiBVRXJyb3JDb2RlIHJl
cHJlc2VudHMgKi8KIC8qIG9wZXJhdGlvbmFsIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gKi8KIAotI2lm
ZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAgICAgLyoqCiAgICAgICogRG9l
cyB0aGUgZXJyb3IgY29kZSBpbmRpY2F0ZSBzdWNjZXNzPwogICAgICAqIEBzdGFibGUgSUNVIDIu
MApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dmVybnVtLmgKaW5kZXggNzIy
MTYxMjkyMDkyZGE2MDYyODljMDZlYzIzNjEzMDg1MzkxYzQxOC4uYmQwYjBjOTg5OGEyMzU3OWU4
ZmI4MTE5ZjZjZDE2MzlhYzJhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ljdS91bmljb2RlL3V2ZXJudW0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3Vu
aWNvZGUvdXZlcm51bS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2lu
ZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0xMiw1NyArMTIsNjYgQEAKICog
ICBDcmVhdGVkIGJ5OiBWbGFkaW1pciBXZWluc3RlaW4KICogICBVcGRhdGVkIGJ5OiBTdGV2ZW4g
Ui4gTG9vbWlzCiAqCi0qICBHZXRzIGluY2x1ZGVkIGJ5IHV2ZXJzaW9uLmggYW5kIG90aGVyIGZp
bGVzLgotKgotKiBJTVBPUlRBTlQ6IFdoZW4gdXBkYXRpbmcgdmVyc2lvbiwgdGhlIGZvbGxvd2lu
ZyB0aGluZ3MgbmVlZCB0byBiZSBkb25lOgotKiBzb3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51
bS5oIC0gdGhpcyBmaWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAotKiAgICAgICAgcGF0Y2hsZXZl
bCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50cywgbmFtZXNwYWNlLAot
KiAgICAgICAgICAgICAgICAgICAgcmVuYW1pbmcgbWFjcm8sIGFuZCBjb3B5cmlnaHQKLSoKLSog
VGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCwgd2hpY2ggY2Fu
IGJlIGRvbmUKLSogIGJ5IHJ1bm5pbmcgdGhlIFVOSVggbWFrZWZpbGUgdGFyZ2V0ICd1cGRhdGUt
d2luZG93cy1tYWtlZmlsZXMnIGluIGljdS9zb3VyY2UuCi0qCi0qCi0qIHNvdXJjZS9jb21tb24v
Y29tbW9uLnZjcHJvaiAtIHVwZGF0ZSAnT3V0cHV0IGZpbGUgbmFtZScgb24gdGhlIGxpbmsgdGFi
IHNvCi0qICAgICAgICAgICAgICAgICAgIHRoYXQgaXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9t
aW5vciBjb21iaW5hdGlvbgotKiBzb3VyY2UvaTE4bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9y
IHRoZSBjb21tb24udmNwcm9qCi0qIHNvdXJjZS9sYXlvdXQvbGF5b3V0LnZjcHJvaiAtIHNhbWUg
YXMgZm9yIHRoZSBjb21tb24udmNwcm9qCi0qIHNvdXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3By
b2ogLSBzYW1lCi0qIHNvdXJjZS9zdHViZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZv
ciB0aGUgY29tbW9uLnZjcHJvagotKiBzb3VyY2UvaW8vaW8udmNwcm9qIC0gc2FtZSBhcyBmb3Ig
dGhlIGNvbW1vbi52Y3Byb2oKLSogc291cmNlL2RhdGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVf
SUNVREFUQV9OQU1FIHNvIHRoYXQgaXQgY29udGFpbnMKLSogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVy
c2lvbi4KICovCiAKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogZGVmaW5pdGlvbnMg
b2YgSUNVIHZlcnNpb24gbnVtYmVycworICoKKyAqIFRoaXMgZmlsZSBpcyBpbmNsdWRlZCBieSB1
dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkKKyAqIG1h
Y3JvcyBhbmQgZGVmaW5pdGlvbnMuIFRoZSBhY3R1YWwgdmVyc2lvbiBudW1iZXJzIGFyZSBkZWZp
bmVkIGhlcmUuCisgKi8KKworIC8qCisgICogSU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNp
b24sIHRoZSBmb2xsb3dpbmcgdGhpbmdzIG5lZWQgdG8gYmUgZG9uZToKKyAgKiBzb3VyY2UvY29t
bW9uL3VuaWNvZGUvdXZlcm51bS5oIC0gdGhpcyBmaWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAor
ICAqICAgICAgICBwYXRjaGxldmVsLCBzdWZmaXgsIHZlcnNpb24sIHNob3J0IHZlcnNpb24gY29u
c3RhbnRzLCBuYW1lc3BhY2UsCisgICogICAgICAgICAgICAgICAgICAgIHJlbmFtaW5nIG1hY3Jv
LCBhbmQgY29weXJpZ2h0CisgICoKKyAgKiBUaGUgZm9sbG93aW5nIGZpbGVzIG5lZWQgdG8gYmUg
dXBkYXRlZCBhcyB3ZWxsLCB3aGljaCBjYW4gYmUgZG9uZQorICAqICBieSBydW5uaW5nIHRoZSBV
TklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRvd3MtbWFrZWZpbGVzJyBpbiBpY3Uvc291
cmNlLgorICAqCisgICoKKyAgKiBzb3VyY2UvY29tbW9uL2NvbW1vbi52Y3Byb2ogLSB1cGRhdGUg
J091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbworICAqICAgICAgICAgICAgICAg
ICAgIHRoYXQgaXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbgorICAq
IHNvdXJjZS9pMThuL2kxOG4udmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oK
KyAgKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9u
LnZjcHJvagorICAqIHNvdXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3Byb2ogLSBzYW1lCisgICog
c291cmNlL3N0dWJkYXRhL3N0dWJkYXRhLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24u
dmNwcm9qCisgICogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24u
dmNwcm9qCisgICogc291cmNlL2RhdGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9O
QU1FIHNvIHRoYXQgaXQgY29udGFpbnMKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGUgbmV3IG1ham9yL21pbm9yIGNvbWJpbmF0aW9uIGFuZCB0aGUgVW5pY29kZSB2ZXJzaW9uLgor
ICAqLworCiAjaWZuZGVmIFVWRVJOVU1fSAogI2RlZmluZSBVVkVSTlVNX0gKIAotLyoqIFRoZSBz
dGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVhY2ggbGli
cmFyeS4gCisvKiogVGhlIHN0YW5kYXJkIGNvcHlyaWdodCBub3RpY2UgdGhhdCBnZXRzIGNvbXBp
bGVkIGludG8gZWFjaCBsaWJyYXJ5LgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhl
IHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNk
ZWZpbmUgVV9DT1BZUklHSFRfU1RSSU5HIFwKLSAgIiBDb3B5cmlnaHQgKEMpIDIwMTEsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4gIgorICAiIENvcHlyaWdodCAoQykgMjAxMywgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLiAiCiAKLS8qKiBUaGUgY3VycmVudCBJQ1UgbWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2Vy
LiAKKy8qKiBUaGUgY3VycmVudCBJQ1UgbWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICog
IFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNV
CiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9O
VU0gNAorI2RlZmluZSBVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA1MgogCi0vKiogVGhlIGN1cnJl
bnQgSUNVIG1pbm9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisvKiogVGhlIGN1cnJlbnQgSUNV
IG1pbm9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdl
IGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgog
ICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNIDYKKyNkZWZpbmUgVV9JQ1VfVkVS
U0lPTl9NSU5PUl9OVU0gMQogCi0vKiogVGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lv
biBhcyBhbiBpbnRlZ2VyLiAgCisvKiogVGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lv
biBhcyBhbiBpbnRlZ2VyLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNl
cXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUg
VV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVMX05VTSAxCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fUEFU
Q0hMRVZFTF9OVU0gMAogCi0vKiogVGhlIGN1cnJlbnQgSUNVIGJ1aWxkIGxldmVsIHZlcnNpb24g
YXMgYW4gaW50ZWdlci4gIAorLyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9u
IGFzIGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSBpcyBmb3IgdXNlIGJ5IElDVSBjbGllbnRz
LiBJdCBkZWZhdWx0cyB0byAwLgogICogIEBzdGFibGUgSUNVIDQuMAogICovCkBAIC03MCwzOSAr
NzksNTkgQEAKICNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9CVUlMRExFVkVMX05VTSAwCiAjZW5kaWYK
IAotLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZvciByZW5hbWVycyAKKy8qKiBHbHVlZCB2ZXJz
aW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMKICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRo
ZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0j
ZGVmaW5lIFVfSUNVX1ZFUlNJT05fU1VGRklYIF80NgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NV
RkZJWCBfNTIKIAotLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVy
cyAKKy8qKgorICogXGRlZiBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVy
bmFsCisgKi8KKy8qKgorICogXGRlZiBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCisgKiBA
aW50ZXJuYWwKKyAqLworLyoqIEdsdWVkIHZlcnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5h
bWVycwogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFz
ZXMgb2YgSUNVLgogICogIElmIGEgY3VzdG9tIHN1ZmZpeCAoc3VjaCBhcyBtYXRjaGluZyBsaWJy
YXJ5IHN1ZmZpeGVzKSBpcyBkZXNpcmVkLCB0aGlzIGNhbiBiZSBtb2RpZmllZC4KICAqICBOb3Rl
IHRoYXQgaWYgcHJlc2VudCwgcGxhdGZvcm0uaCBtYXkgY29udGFpbiBhbiBlYXJsaWVyIGRlZmlu
aXRpb24gb2YgdGhpcyBtYWNyby4KKyAqICBcZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQog
ICogIEBzdGFibGUgSUNVIDQuMgogICovCisKICNpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FCi0jZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICB4ICMjIF80NgorI2lm
ZGVmIFVfSEFWRV9MSUJfU1VGRklYCisjZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoeCx5LHopIHggIyMgeSAjIyAgegorI2RlZmluZSBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh4LHkseikgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkseikKKyNkZWZpbmUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHgsVV9JQ1VfVkVSU0lPTl9TVUZGSVgsVV9MSUJfU1VGRklYX0NfTkFNRSkKKyNlbHNlCisj
ZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5KSB4ICMjIHkKKyNkZWZpbmUg
VV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5KSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHgseSkKKyNkZWZpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVG
Ml9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgsVV9JQ1VfVkVSU0lPTl9TVUZGSVgpCisjZW5kaWYK
ICNlbmRpZgogCiAvKiogVGhlIGN1cnJlbnQgSUNVIGxpYnJhcnkgdmVyc2lvbiBhcyBhIGRvdHRl
ZC1kZWNpbWFsIHN0cmluZy4gVGhlIHBhdGNobGV2ZWwKLSAqICBvbmx5IGFwcGVhcnMgaW4gdGhp
cyBzdHJpbmcgaWYgaXQgbm9uLXplcm8uIAorICogIG9ubHkgYXBwZWFycyBpbiB0aGlzIHN0cmlu
ZyBpZiBpdCBub24temVyby4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJz
ZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5l
IFVfSUNVX1ZFUlNJT04gIjQuNi4xIgorI2RlZmluZSBVX0lDVV9WRVJTSU9OICI1Mi4xIgogCi0v
KiogVGhlIGN1cnJlbnQgSUNVIGxpYnJhcnkgbWFqb3IvbWlub3IgdmVyc2lvbiBhcyBhIHN0cmlu
ZyB3aXRob3V0IGRvdHMsIGZvciBsaWJyYXJ5IG5hbWUgc3VmZml4ZXMuIAorLyoqIFRoZSBjdXJy
ZW50IElDVSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBk
b3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFu
Z2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi42
CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TSE9SVCAiNDYiCisjZGVmaW5lIFVfSUNVX1ZF
UlNJT05fU0hPUlQgIjUyIgogCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKiBEYXRh
IHZlcnNpb24gaW4gSUNVNEMuCiAgKiBAaW50ZXJuYWwgSUNVIDQuNCBJbnRlcm5hbCBVc2UgT25s
eQogICoqLwotI2RlZmluZSBVX0lDVV9EQVRBX1ZFUlNJT04gIjQuNiIKKyNkZWZpbmUgVV9JQ1Vf
REFUQV9WRVJTSU9OICI1Mi4xIgorI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAK
IC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CiAgKiBJQ1UgY29sbGF0aW9uIGZyYW1ld29yayB2ZXJzaW9u
IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaWN1L3VuaWNv
ZGUvdXZlcnNpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dmVyc2lv
bi5oCmluZGV4IGU1NGNkNTVhNjdjYmM0Y2M2OTJlNGUzNjkyMWRhMmIzNmFkMTVhNWYuLjc0ZTMw
OTEwNTUxNGFkZjM4MjM3YTNiN2E0MDk4MDFhODE1YTVkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDExLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC02Nyw3
ICs2Nyw4IEBAIHR5cGVkZWYgdWludDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5H
VEhdOwogICogV2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgYmVnaW5zIGFuIGV4dGVybiAiQysr
IiBsaW5rYWdlIGJsb2NrICh0byBwcm90ZWN0CiAgKiBhZ2FpbnN0IGNhc2VzIGluIHdoaWNoIGFu
IGV4dGVybmFsIGNsaWVudCBpbmNsdWRlcyBJQ1UgaGVhZGVyIGZpbGVzIGluc2lkZQogICogYW4g
ZXh0ZXJuICJDIiBsaW5rYWdlIGJsb2NrKS4KLSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3VwcG9y
dHMgbmFtZXNwYWNlcywgaXQgYWxzbyBiZWdpbnMgYSBuYW1lc3BhY2UgYmxvY2suCisgKgorICog
SXQgYWxzbyBiZWdpbnMgYSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jay4KICAqIEBzdGFi
bGUgSUNVIDIuNAogICovCiAKQEAgLTc3LDggKzc4LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJz
aW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBXaGVuIG5vdCBjb21waWxpbmcgZm9y
IEMrKywgaXQgZG9lcyBub3RoaW5nLgogICogV2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgZW5k
cyB0aGUgZXh0ZXJuICJDKysiIGJsb2NrIGJlZ3VuIGJ5CiAgKiBVX05BTUVTUEFDRV9CRUdJTi4K
LSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgbmFtZXNwYWNlcywgaXQgYWxzbyBlbmRz
IHRoZSBuYW1lc3BhY2UgYmxvY2sKLSAqIGJlZ3VuIGJ5IFVfTkFNRVNQQUNFX0JFR0lOLgorICoK
KyAqIEl0IGFsc28gZW5kcyB0aGUgdmVyc2lvbmVkLUlDVS1uYW1lc3BhY2UgYmxvY2sgYmVndW4g
YnkgVV9OQU1FU1BBQ0VfQkVHSU4uCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC04Niw3
ICs4Nyw5IEBAIHR5cGVkZWYgdWludDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5H
VEhdOwogICogXGRlZiBVX05BTUVTUEFDRV9VU0UKICAqIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5
IHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgdXNlcyB0aGUKICAqIHB1YmxpYyBJQ1UgQysrIEFQ
SSBuYW1lc3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFj
ZXMsIHRoaXMgZG9lcyBub3RoaW5nLgorICogVGhpcyBpcyBpbnZva2VkIGJ5IGRlZmF1bHQ7IHdl
IHJlY29tbWVuZCB0aGF0IHlvdSB0dXJuIGl0IG9mZjoKKyAqIFNlZSB0aGUgIlJlY29tbWVuZGVk
IEJ1aWxkIE9wdGlvbnMiIHNlY3Rpb24gb2YgdGhlIElDVTRDIHJlYWRtZQorICogKGh0dHA6Ly9z
b3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdHJ1bmsvcmVhZG1lLmh0bWwjUmVj
QnVpbGQpCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC05NCwxMyArOTcsMTQgQEAgdHlw
ZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBcZGVm
IFVfTkFNRVNQQUNFX1FVQUxJRklFUgogICogVGhpcyBpcyB1c2VkIHRvIHF1YWxpZnkgdGhhdCBh
IGZ1bmN0aW9uIG9yIGNsYXNzIGlzIHBhcnQgb2YKICAqIHRoZSBwdWJsaWMgSUNVIEMrKyBBUEkg
bmFtZXNwYWNlLgotICogSWYgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBuYW1lc3BhY2Vz
LCB0aGlzIGRvZXMgbm90aGluZy4KKyAqCisgKiBUaGlzIG1hY3JvIGlzIHVubmVjZXNzYXJ5IHNp
bmNlIElDVSA0OSByZXF1aXJlcyBuYW1lc3BhY2Ugc3VwcG9ydC4KKyAqIFlvdSBjYW4ganVzdCB1
c2UgImljdTo6IiBpbnN0ZWFkLgogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KIAogLyogRGVmaW5l
IG5hbWVzcGFjZSBzeW1ib2xzIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyBpdC4gKi8KLSNpZmRl
ZiBYUF9DUExVU1BMVVMKLSNpZiBVX0hBVkVfTkFNRVNQQUNFCisjaWZkZWYgX19jcGx1c3BsdXMK
ICMgICBpZiBVX0RJU0FCTEVfUkVOQU1JTkcKICMgICAgICAgZGVmaW5lIFVfSUNVX05BTUVTUEFD
RSBpY3UKICAgICAgICAgbmFtZXNwYWNlIFVfSUNVX05BTUVTUEFDRSB7IH0KQEAgLTEyMiwxMiAr
MTI2LDYgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdU
SF07CiAgICAgICAgIFVfTkFNRVNQQUNFX1VTRQogIyAgIGVuZGlmCiAjZWxzZQotIyAgIGRlZmlu
ZSBVX05BTUVTUEFDRV9CRUdJTiBleHRlcm4gIkMrKyIgewotIyAgIGRlZmluZSBVX05BTUVTUEFD
RV9FTkQgfQotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UKLSMgICBkZWZpbmUgVV9OQU1FU1BB
Q0VfUVVBTElGSUVSCi0jZW5kaWYKLSNlbHNlCiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0JFR0lO
CiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0VORAogIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UK
QEAgLTE4MCw3ICsxNzgsNyBAQCB1X3ZlcnNpb25Gcm9tVVN0cmluZyhVVmVyc2lvbkluZm8gdmVy
c2lvbkFycmF5LCBjb25zdCBVQ2hhciAqdmVyc2lvblN0cmluZyk7CiAgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVfdmVyc2lvblRvU3RyaW5nKFVWZXJz
aW9uSW5mbyB2ZXJzaW9uQXJyYXksIGNoYXIgKnZlcnNpb25TdHJpbmcpOwordV92ZXJzaW9uVG9T
dHJpbmcoY29uc3QgVVZlcnNpb25JbmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmlu
Zyk7CiAKIC8qKgogICogR2V0cyB0aGUgSUNVIHJlbGVhc2UgdmVyc2lvbi4gIFRoZSB2ZXJzaW9u
IGFycmF5IHN0b3JlcyB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS9ieXRlc3RyZWFtLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2J5
dGVzdHJlYW0uaAppbmRleCBmYjllMDdhMjVkY2Q5Yjk1ZDlhMzdhMGI4YTcyYjM1ZTYzYTFmZmI4
Li4xNzRhYTM4YWZjZTA3MDIwMTRhYmE4OGU1MjkzN2VmZTRhYmVjMTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2J5dGVzdHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2J5dGVzdHJlYW0uaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAoQykgMjAw
OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogLy8gQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIC8vCiAvLyBDb3B5cmlnaHQgMjAw
NyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAqIFZpcnR1YWwgZGVzdHJ1Y3Rvci4KICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAq
LwotICB2aXJ0dWFsIH5CeXRlU2luaygpIHsgfQorICB2aXJ0dWFsIH5CeXRlU2luaygpOwogCiAg
IC8qKgogICAgKiBBcHBlbmQgImJ5dGVzWzAsbi0xXSIgdG8gdGhpcy4KQEAgLTE1MCwxMiArMTUw
LDE3IEBAIHB1YmxpYzoKICAgICovCiAgIENoZWNrZWRBcnJheUJ5dGVTaW5rKGNoYXIqIG91dGJ1
ZiwgaW50MzJfdCBjYXBhY2l0eSk7CiAgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAgKiBAc3Rh
YmxlIElDVSA0LjIKKyAgICovCisgIHZpcnR1YWwgfkNoZWNrZWRBcnJheUJ5dGVTaW5rKCk7Cisg
IC8qKgogICAgKiBSZXR1cm5zIHRoZSBzaW5rIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZSwgd2l0aG91
dCBtb2RpZnlpbmcgdGhlIGJ1ZmZlci4KICAgICogVXNlZnVsIGZvciByZXVzaW5nIGJvdGggdGhl
IGJ1ZmZlciBhbmQgdGhlIHNpbmsgZm9yIG11bHRpcGxlIHN0cmVhbXMuCiAgICAqIFJlc2V0cyB0
aGUgc3RhdGUgdG8gTnVtYmVyT2ZCeXRlc1dyaXR0ZW4oKT1OdW1iZXJPZkJ5dGVzQXBwZW5kZWQo
KT0wCiAgICAqIGFuZCBPdmVyZmxvd2VkKCk9RkFMU0UuCiAgICAqIEByZXR1cm4gKnRoaXMKLSAg
ICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAqLwogICB2aXJ0dWFs
IENoZWNrZWRBcnJheUJ5dGVTaW5rJiBSZXNldCgpOwogICAvKioKQEAgLTIwMSw3ICsyMDYsNyBA
QCBwdWJsaWM6CiAgICAqIElmIE92ZXJmbG93ZWQoKSB0aGVuIE51bWJlck9mQnl0ZXNBcHBlbmRl
ZCgpPk51bWJlck9mQnl0ZXNXcml0dGVuKCkKICAgICogZWxzZSB0aGV5IHJldHVybiB0aGUgc2Ft
ZSBudW1iZXIuCiAgICAqIEByZXR1cm4gbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gdG8gdGhlIGJ1
ZmZlcgotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICovCiAg
IGludDMyX3QgTnVtYmVyT2ZCeXRlc0FwcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gYXBwZW5kZWRf
OyB9CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NhbHBv
aW50ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmgKaW5kZXggYjc2
YTFmODU2Mjk5MjNiZGRiODQ2ZTk4YTA4NDgzMzQ3Y2E0ZWU0YS4uZTNjY2IyNTgxNTRjYzIxNjA5
OGViYzI3MzlmYjdiNjgyMjA1OWM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9sb2NhbHBvaW50ZXIuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2FscG9pbnRl
ci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAq
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNDQsNiArMTQ0LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgcHRyPXA7CiAgICAgfQogcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEFjdHVhbCBw
b2ludGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLwogICAgIFQgKnB0cjsKIHByaXZhdGU6
CiAgICAgLy8gTm8gY29tcGFyaXNvbiBvcGVyYXRvcnMgd2l0aCBvdGhlciBMb2NhbFBvaW50ZXJC
YXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaAppbmRleCAzZGU0MGQyNTY1NTNjNGFhZjFl
YzA0ODMxZTk5YzU1M2ZkN2M0NmU5Li4xYjJhYjMwNmVhMzM3ODI5ZmQ5OWIyYzBmMjgyNzBkMjlj
N2JiMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3BsYXRmb3JtLmgKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oCkBAIC0xLDE1ICsxLDExIEBACiAv
KgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAqCi0qIE5vdGU6IGF1dG9jb25mIGNyZWF0ZXMgcGxhdGZvcm0uaCBmcm9tIHBsYXRmb3JtLmgu
aW4gYXQgY29uZmlndXJlIHRpbWUuCi0qCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSoKICogIEZJ
TEUgTkFNRSA6IHBsYXRmb3JtLmgKICoKICogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNj
cmlwdGlvbgpAQCAtMjMsMzc5ICsxOSw3MzcgQEAKICNpZm5kZWYgX1BMQVRGT1JNX0gKICNkZWZp
bmUgX1BMQVRGT1JNX0gKIAorI2luY2x1ZGUgInVuaWNvZGUvdWNvbmZpZy5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdXZlcm51bS5oIgorCiAvKioKLSAqIFxmaWxlIAotICogXGJyaWVmIEJhc2ljIHR5
cGVzIGZvciB0aGUgcGxhdGZvcm0gCisgKiBcZmlsZQorICogXGJyaWVmIEJhc2ljIHR5cGVzIGZv
ciB0aGUgcGxhdGZvcm0uCisgKgorICogVGhpcyBmaWxlIHVzZWQgdG8gYmUgZ2VuZXJhdGVkIGJ5
IGF1dG9jb25mL2NvbmZpZ3VyZS4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCBwbGF0Zm9ybS5o
IGlzIGEgbm9ybWFsIHNvdXJjZSBmaWxlLAorICogdG8gc2ltcGxpZnkgY3Jvc3MtY29tcGlsaW5n
IGFuZCB3b3JraW5nIHdpdGggbm9uLWF1dG9jb25mL21ha2UgYnVpbGQgc3lzdGVtcy4KKyAqCisg
KiBXaGVuIGEgdmFsdWUgaW4gdGhpcyBmaWxlIGRvZXMgbm90IHdvcmsgb24gYSBwbGF0Zm9ybSwg
dGhlbiBwbGVhc2UKKyAqIHRyeSB0byBkZXJpdmUgaXQgZnJvbSB0aGUgVV9QTEFURk9STSB2YWx1
ZQorICogKGZvciB3aGljaCB3ZSBtaWdodCBuZWVkIGEgbmV3IHZhbHVlIGNvbnN0YW50IGluIHJh
cmUgY2FzZXMpCisgKiBhbmQvb3IgZnJvbSBvdGhlciBtYWNyb3MgdGhhdCBhcmUgcHJlZGVmaW5l
ZCBieSB0aGUgY29tcGlsZXIKKyAqIG9yIGRlZmluZWQgaW4gc3RhbmRhcmQgKFBPU0lYIG9yIHBs
YXRmb3JtIG9yIGNvbXBpbGVyKSBoZWFkZXJzLgorICoKKyAqIEFzIGEgdGVtcG9yYXJ5IHdvcmth
cm91bmQsIHlvdSBjYW4gYWRkIGFuIGV4cGxpY2l0IDxjb2RlPiNkZWZpbmU8L2NvZGU+IGZvciBz
b21lIG1hY3JvcworICogYmVmb3JlIGl0IGlzIGZpcnN0IHRlc3RlZCwgb3IgYWRkIGFuIGVxdWl2
YWxlbnQgLUQgbWFjcm8gZGVmaW5pdGlvbgorICogdG8gdGhlIGNvbXBpbGVyJ3MgY29tbWFuZCBs
aW5lLgorICoKKyAqIE5vdGU6IFNvbWUgY29tcGlsZXJzIHByb3ZpZGUgd2F5cyB0byBzaG93IHRo
ZSBwcmVkZWZpbmVkIG1hY3Jvcy4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGdjYyB5b3UgY2FuIGNv
bXBpbGUgYW4gZW1wdHkgLmMgZmlsZSBhbmQgaGF2ZSB0aGUgY29tcGlsZXIKKyAqIHByaW50IHRo
ZSBwcmVkZWZpbmVkIG1hY3JvcyB3aXRoCisgKiBcY29kZQorICogZ2NjIC1FIC1kTSAteCBjIC9k
ZXYvbnVsbCB8IHNvcnQKKyAqIFxlbmRjb2RlCisgKiAoWW91IGNhbiBwcm92aWRlIGFuIGFjdHVh
bCBlbXB0eSAuYyBmaWxlIHJhdGhlciB0aGFuIC9kZXYvbnVsbC4KKyAqIDxjb2RlPi14IGMrKzwv
Y29kZT4gaXMgZm9yIEMrKy4pCiAgKi8KIAotLyogVGhpcyBmaWxlIHNob3VsZCBiZSBpbmNsdWRl
ZCBiZWZvcmUgdXZlcm51bS5oLiAqLwotI2lmIGRlZmluZWQoVVZFUk5VTV9IKQotIyBlcnJvciBE
byBub3QgaW5jbHVkZSB1bmljb2RlL3V2ZXJudW0uaCBiZWZvcmUgI2luY2x1ZGluZyB1bmljb2Rl
L3BsYXRmb3JtLmguICBJbnN0ZWFkIG9mIHVuaWNvZGUvdXZlcm51bS5oLCAjaW5jbHVkZSB1bmlj
b2RlL3V2ZXJzaW9uLmgKLSNlbmRpZgotCiAvKioKLSAqIERldGVybWluZSB3aGV0ZXIgdG8gZW5h
YmxlIGF1dG8gY2xlYW51cCBvZiBsaWJyYXJpZXMuIAorICogRGVmaW5lIHNvbWUgdGhpbmdzIHNv
IHRoYXQgdGhleSBjYW4gYmUgZG9jdW1lbnRlZC4KICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVm
IFVDTE5fTk9fQVVUT19DTEVBTlVQCi0jZGVmaW5lIFVDTE5fTk9fQVVUT19DTEVBTlVQIDEKLSNl
bmRpZgotCi0vKiBOZWVkIHBsYXRmb3JtLmggd2hlbiB1c2luZyBDWUdXSU5NU1ZDIHRvIGdldCBk
ZWZpbml0aW9ucyBhYm92ZS4gSWdub3JlIGV2ZXJ5dGhpbmcgZWxzZS4gKi8KLSNpZm5kZWYgQ1lH
V0lOTVNWQworI2lmZGVmIFVfSU5fRE9YWUdFTgorLyoKKyAqIFByb2JsZW06ICJwbGF0Zm9ybS5o
OjMzNTogd2FybmluZzogZG9jdW1lbnRhdGlvbiBmb3IgdW5rbm93biBkZWZpbmUgVV9IQVZFX1NU
RF9TVFJJTkcgZm91bmQuIiBtZWFucyB0aGF0IFVfSEFWRV9TVERfU1RSSU5HIGlzIG5vdCBkb2N1
bWVudGVkLgorICogU29sdXRpb246ICNkZWZpbmUgYW55IGRlZmluZXMgZm9yIG5vbiBAaW50ZXJu
YWwgQVBJIGhlcmUsIHNvIHRoYXQgdGhleSBhcmUgdmlzaWJsZSBpbiB0aGUgZG9jcy4gIElmIHlv
dSBqdXN0IHNldCBQUkVERUZJTkVEIGluIERveHlmaWxlLmluLCAgdGhleSB3b24ndCBiZSBkb2N1
bWVudGVkLgorICovCiAKLS8qKiBEZWZpbmUgdGhlIHBsYXRmb3JtIHdlJ3JlIG9uLiAqLwotI2lm
bmRlZiBVX0RBUldJTgotI2RlZmluZSBVX0RBUldJTgorLyogTm9uZSBmb3Igbm93LiAqLwogI2Vu
ZGlmCiAKIC8qKgotICogXGRlZiBVX0hBVkVfRElSRU5UX0gKLSAqIERlZmluZSB3aGV0aGVyIGRp
cmVudC5oIGlzIGF2YWlsYWJsZSAKKyAqIFxkZWYgVV9QTEFURk9STQorICogVGhlIFVfUExBVEZP
Uk0gbWFjcm8gZGVmaW5lcyB0aGUgcGxhdGZvcm0gd2UncmUgb24uCisgKgorICogV2UgdXNlZCB0
byBkZWZpbmUgb25lIGRpZmZlcmVudCwgdmFsdWUtbGVzcyBtYWNybyBwZXIgcGxhdGZvcm0uCisg
KiBUaGF0IG1hZGUgaXQgaGFyZCB0byBrbm93IHRoZSBzZXQgb2YgcmVsZXZhbnQgcGxhdGZvcm1z
IGFuZCBtYWNyb3MsCisgKiBhbmQgaGFyZCB0byBkZWFsIHdpdGggdmFyaWFudHMgb2YgcGxhdGZv
cm1zLgorICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5LCB3ZSBkZWZpbmUgcGxhdGZvcm1zIGFz
IG51bWVyaWMgbWFjcm9zLAorICogd2l0aCByYW5nZXMgb2YgdmFsdWVzIGZvciByZWxhdGVkIHBs
YXRmb3JtcyBhbmQgdGhlaXIgdmFyaWFudHMuCisgKiBUaGUgVV9QTEFURk9STSBtYWNybyBpcyBz
ZXQgdG8gb25lIG9mIHRoZXNlIHZhbHVlcy4KKyAqCisgKiBIaXN0b3JpY2FsIG5vdGUgZnJvbSB0
aGUgU29sYXJpcyBXaWtpcGVkaWEgYXJ0aWNsZToKKyAqIEFUJlQgYW5kIFN1biBjb2xsYWJvcmF0
ZWQgb24gYSBwcm9qZWN0IHRvIG1lcmdlIHRoZSBtb3N0IHBvcHVsYXIgVW5peCB2YXJpYW50cwor
ICogb24gdGhlIG1hcmtldCBhdCB0aGF0IHRpbWU6IEJTRCwgU3lzdGVtIFYsIGFuZCBYZW5peC4K
KyAqIFRoaXMgYmVjYW1lIFVuaXggU3lzdGVtIFYgUmVsZWFzZSA0IChTVlI0KS4KKyAqCiAgKiBA
aW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0hBVkVfRElSRU5UX0gKLSNkZWZpbmUgVV9IQVZFX0RJ
UkVOVF9IIDEKLSNlbmRpZgogCi0vKiogRGVmaW5lIHdoZXRoZXIgaW50dHlwZXMuaCBpcyBhdmFp
bGFibGUgKi8KLSNpZm5kZWYgVV9IQVZFX0lOVFRZUEVTX0gKLSNkZWZpbmUgVV9IQVZFX0lOVFRZ
UEVTX0ggMQorLyoqIFVua25vd24gcGxhdGZvcm0uIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BG
X1VOS05PV04gMAorLyoqIFdpbmRvd3MgQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfV0lORE9X
UyAxMDAwCisvKiogTWluR1cuIFdpbmRvd3MsIGNhbGxzIHRvIFdpbjMyIEFQSSwgYnV0IHVzaW5n
IEdOVSBnY2MgYW5kIGJpbnV0aWxzLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9NSU5HVyAx
ODAwCisvKioKKyAqIEN5Z3dpbi4gV2luZG93cywgY2FsbHMgdG8gY3lnd2luMS5kbGwgZm9yIFBv
c2l4IGZ1bmN0aW9ucywKKyAqIHVzaW5nIE1TVkMgb3IgR05VIGdjYyBhbmQgYmludXRpbHMuCisg
KiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVX1BGX0NZR1dJTiAxOTAwCisvKiBSZXNlcnZlIDIw
MDAgZm9yIFVfUEZfVU5JWD8gKi8KKy8qKiBIUC1VWCBpcyBiYXNlZCBvbiBVTklYIFN5c3RlbSBW
LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9IUFVYIDIxMDAKKy8qKiBTb2xhcmlzIGlzIGEg
VW5peCBvcGVyYXRpbmcgc3lzdGVtIGJhc2VkIG9uIFNWUjQuIEBpbnRlcm5hbCAqLworI2RlZmlu
ZSBVX1BGX1NPTEFSSVMgMjYwMAorLyoqIEJTRCBpcyBhIFVOSVggb3BlcmF0aW5nIHN5c3RlbSBk
ZXJpdmF0aXZlLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9CU0QgMzAwMAorLyoqIEFJWCBp
cyBiYXNlZCBvbiBVTklYIFN5c3RlbSBWIFJlbGVhc2VzIGFuZCA0LjMgQlNELiBAaW50ZXJuYWwg
Ki8KKyNkZWZpbmUgVV9QRl9BSVggMzEwMAorLyoqIElSSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0
ZW0gViB3aXRoIEJTRCBleHRlbnNpb25zLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9JUklY
IDMyMDAKKy8qKgorICogRGFyd2luIGlzIGEgUE9TSVgtY29tcGxpYW50IG9wZXJhdGluZyBzeXN0
ZW0sIGNvbXBvc2VkIG9mIGNvZGUgZGV2ZWxvcGVkIGJ5IEFwcGxlLAorICogYXMgd2VsbCBhcyBj
b2RlIGRlcml2ZWQgZnJvbSBOZVhUU1RFUCwgQlNELCBhbmQgb3RoZXIgcHJvamVjdHMsCisgKiBi
dWlsdCBhcm91bmQgdGhlIE1hY2gga2VybmVsLgorICogRGFyd2luIGZvcm1zIHRoZSBjb3JlIHNl
dCBvZiBjb21wb25lbnRzIHVwb24gd2hpY2ggTWFjIE9TIFgsIEFwcGxlIFRWLCBhbmQgaU9TIGFy
ZSBiYXNlZC4KKyAqIChPcmlnaW5hbCBkZXNjcmlwdGlvbiBtb2RpZmllZCBmcm9tIFdpa2lQZWRp
YS4pCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVX1BGX0RBUldJTiAzNTAwCisvKiogaVBo
b25lIE9TIChpT1MpIGlzIGEgZGVyaXZhdGl2ZSBvZiBNYWMgT1MgWC4gQGludGVybmFsICovCisj
ZGVmaW5lIFVfUEZfSVBIT05FIDM1NTAKKy8qKiBRTlggaXMgYSBjb21tZXJjaWFsIFVuaXgtbGlr
ZSByZWFsLXRpbWUgb3BlcmF0aW5nIHN5c3RlbSByZWxhdGVkIHRvIEJTRC4gQGludGVybmFsICov
CisjZGVmaW5lIFVfUEZfUU5YIDM3MDAKKy8qKiBMaW51eCBpcyBhIFVuaXgtbGlrZSBvcGVyYXRp
bmcgc3lzdGVtLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9MSU5VWCA0MDAwCisvKiogQW5k
cm9pZCBpcyBiYXNlZCBvbiBMaW51eC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQU5EUk9J
RCA0MDUwCisvKiogIkNsYXNzaWMiIE1hYyBPUyAoMTk4NC0yMDAxKSBAaW50ZXJuYWwgKi8KKyNk
ZWZpbmUgVV9QRl9DTEFTU0lDX01BQ09TIDgwMDAKKy8qKiB6L09TIGlzIHRoZSBzdWNjZXNzb3Ig
dG8gT1MvMzkwIHdoaWNoIHdhcyB0aGUgc3VjY2Vzc29yIHRvIE1WUy4gQGludGVybmFsICovCisj
ZGVmaW5lIFVfUEZfT1MzOTAgOTAwMAorLyoqICJJQk0gaSIgaXMgdGhlIGN1cnJlbnQgbmFtZSBv
ZiB3aGF0IHVzZWQgdG8gYmUgaTUvT1MgYW5kIGVhcmxpZXIgT1MvNDAwLiBAaW50ZXJuYWwgKi8K
KyNkZWZpbmUgVV9QRl9PUzQwMCA5NDAwCisKKyNpZmRlZiBVX1BMQVRGT1JNCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfX01JTkdXMzJfXykKKyMg
ICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX01JTkdXCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18p
CisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9DWUdXSU4KKyNlbGlmIGRlZmluZWQoV0lOMzIp
IHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjY0KSB8fCBkZWZpbmVkKF9XSU42NCkK
KyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX1dJTkRPV1MKKyNlbGlmIGRlZmluZWQoX19BTkRS
T0lEX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9BTkRST0lECisgICAgLyogQW5kcm9p
ZCB3Y2hhcl90IHN1cHBvcnQgZGVwZW5kcyBvbiB0aGUgQVBJIGxldmVsLiAqLworIyAgIGluY2x1
ZGUgPGFuZHJvaWQvYXBpLWxldmVsLmg+CisjZWxpZiBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVk
KF9fbGludXhfXykgfHwgZGVmaW5lZChfX2xpbnV4KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVf
UEZfTElOVVgKKyNlbGlmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fTUFDSF9fKQor
IyAgIGluY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgorIyAgIGlmIGRlZmluZWQoVEFSR0VU
X09TX0lQSE9ORSkgJiYgVEFSR0VUX09TX0lQSE9ORSAgLyogdmFyaWFudCBvZiBUQVJHRVRfT1Nf
TUFDICovCisjICAgICAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSVBIT05FCisjICAgZWxzZQor
IyAgICAgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0RBUldJTgorIyAgIGVuZGlmCisjZWxpZiBk
ZWZpbmVkKEJTRCkgfHwgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rf
a2VybmVsX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykg
fHwgZGVmaW5lZChfX01pckJTRF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQlNECisj
ZWxpZiBkZWZpbmVkKHN1bikgfHwgZGVmaW5lZChfX3N1bikKKyAgICAvKiBDaGVjayBkZWZpbmVk
KF9fU1ZSNCkgfHwgZGVmaW5lZChfX3N2cjRfXykgdG8gZGlzdGluZ3Vpc2ggU29sYXJpcyBmcm9t
IFN1bk9TPyAqLworIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfU09MQVJJUworIyAgIGlmIGRl
ZmluZWQoX19HTlVDX18pCisgICAgICAgIC8qIFNvbGFyaXMvR0NDIG5lZWRzIHRoaXMgaGVhZGVy
IGZpbGUgdG8gZ2V0IHRoZSBwcm9wZXIgZW5kaWFubmVzcy4gTm9ybWFsbHksIHRoaXMKKyAgICAg
ICAgICogaGVhZGVyIGZpbGUgaXMgaW5jbHVkZWQgd2l0aCBzdGRkZWYuaCBidXQgb24gU29sYWly
cy9HQ0MsIHRoZSBHQ0MgdmVyc2lvbiBvZiBzdGRkZWYuaAorICAgICAgICAgKiAgaXMgaW5jbHVk
ZWQgd2hpY2ggZG9lcyBub3QgaW5jbHVkZSB0aGlzIGhlYWRlciBmaWxlLgorICAgICAgICAgKi8K
KyMgICAgICAgaW5jbHVkZSA8c3lzL2lzYV9kZWZzLmg+CisjICAgZW5kaWYKKyNlbGlmIGRlZmlu
ZWQoX0FJWCkgfHwgZGVmaW5lZChfX1RPU19BSVhfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBV
X1BGX0FJWAorI2VsaWYgZGVmaW5lZChfaHB1eCkgfHwgZGVmaW5lZChocHV4KSB8fCBkZWZpbmVk
KF9faHB1eCkKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0hQVVgKKyNlbGlmIGRlZmluZWQo
c2dpKSB8fCBkZWZpbmVkKF9fc2dpKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfSVJJWAor
I2VsaWYgZGVmaW5lZChtYWNpbnRvc2gpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9DTEFT
U0lDX01BQ09TCisjZWxpZiBkZWZpbmVkKF9fUU5YX18pIHx8IGRlZmluZWQoX19RTlhOVE9fXykK
KyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX1FOWAorI2VsaWYgZGVmaW5lZChfX1RPU19NVlNf
XykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX09TMzkwCisjZWxpZiBkZWZpbmVkKF9fT1M0
MDBfXykgfHwgZGVmaW5lZChfX1RPU19PUzQwMF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVf
UEZfT1M0MDAKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9VTktOT1dOCiAjZW5k
aWYKIAogLyoqCi0gKiBEZWZpbmUgd2hhdCBzdXBwb3J0IGZvciBDKysgc3RyZWFtcyBpcyBhdmFp
bGFibGUuCi0gKiAgICAgSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5OTcxMSwgdGhl
biAmbHQ7aW9zdHJlYW0mZ3Q7IGlzIGF2YWlsYWJsZQotICogKDE5OTc3MTEgaXMgdGhlIGRhdGUg
dGhlIElTTy9JRUMgQysrIEZESVMgd2FzIHB1Ymxpc2hlZCksIGFuZCB0aGVuCi0gKiBvbmUgc2hv
dWxkIHF1YWxpZnkgc3RyZWFtcyB1c2luZyB0aGUgc3RkIG5hbWVzcGFjZSBpbiBJQ1UgaGVhZGVy
Ci0gKiBmaWxlcy4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2
LCB0aGVuICZsdDtpb3N0cmVhbS5oJmd0OyBpcwotICogYXZhaWxhYmxlIGluc3RlYWQgKDE5ODUw
NiBpcyB0aGUgZGF0ZSB3aGVuIFN0cm91c3RydXAgcHVibGlzaGVkCi0gKiAiQW4gRXh0ZW5zaWJs
ZSBJL08gRmFjaWxpdHkgZm9yIEMrKyIgYXQgdGhlIHN1bW1lciBVU0VOSVggY29uZmVyZW5jZSku
Ci0gKiAgICAgSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgMCwgdGhlbiBDKysgc3RyZWFtcyBhcmUg
bm90IGF2YWlsYWJsZSBhbmQKLSAqIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRseSBz
dXBwcmVzc2VkIGluIElDVS4KLSAqCisgKiBcZGVmIENZR1dJTk1TVkMKKyAqIERlZmluZWQgaWYg
dGhpcyBpcyBXaW5kb3dzIHdpdGggQ3lnd2luLCBidXQgdXNpbmcgTVNWQyByYXRoZXIgdGhhbiBn
Y2MuCisgKiBPdGhlcndpc2UgdW5kZWZpbmVkLgorICogQGludGVybmFsCiAgKi8KLQotI2lmbmRl
ZiBVX0lPU1RSRUFNX1NPVVJDRQotI2RlZmluZSBVX0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKKy8q
IENvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGlzIGlzIGFscmVhZHkgc2V0IGluIG1oLWN5Z3dpbi1t
c3ZjCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX0NZR1dJTiAmJiBkZWZpbmVkKF9NU0NfVkVSKQor
IyAgIGRlZmluZSBDWUdXSU5NU1ZDCiAjZW5kaWYKKyovCiAKIC8qKgotICogXGRlZiBVX0hBVkVf
U1REX1NUUklORwotICogRGVmaW5lIHdoZXRoZXIgdGhlIHN0YW5kYXJkIEMrKyAoU1RMKSAmbHQ7
c3RyaW5nJmd0OyBoZWFkZXIgaXMgYXZhaWxhYmxlLgotICogRm9yIHBsYXRmb3JtcyB0aGF0IGRv
IG5vdCB1c2UgcGxhdGZvcm0uaCBhbmQgZG8gbm90IGRlZmluZSB0aGlzIGNvbnN0YW50Ci0gKiBp
biB0aGVpciBwbGF0Zm9ybS1zcGVjaWZpYyBoZWFkZXJzLCBzdGRfc3RyaW5nLmggZGVmYXVsdHMK
LSAqIFVfSEFWRV9TVERfU1RSSU5HIHRvIDEuCisgKiBcZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZ
X1dJTjMyX0FQSQorICogRGVmaW5lcyB3aGV0aGVyIHRoZSBwbGF0Zm9ybSB1c2VzIG9ubHkgdGhl
IFdpbjMyIEFQSS4KKyAqIFNldCB0byAxIGZvciBXaW5kb3dzL01TVkMgYW5kIE1pbkdXIGJ1dCBu
b3QgQ3lnd2luLgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9IQVZFX1NURF9TVFJJTkcK
LSNkZWZpbmUgVV9IQVZFX1NURF9TVFJJTkcgMQorI2lmZGVmIFVfUExBVEZPUk1fVVNFU19PTkxZ
X1dJTjMyX0FQSQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIChV
X1BGX1dJTkRPV1MgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfTUlOR1cpIHx8
IGRlZmluZWQoQ1lHV0lOTVNWQykKKyMgICBkZWZpbmUgVV9QTEFURk9STV9VU0VTX09OTFlfV0lO
MzJfQVBJIDEKKyNlbHNlCisgICAgLyogQ3lnd2luIGltcGxlbWVudHMgUE9TSVguICovCisjICAg
ZGVmaW5lIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSAwCiAjZW5kaWYKIAotLyoqIEB7
IERldGVybWluZXMgd2hldGhlciBzcGVjaWZpYyB0eXBlcyBhcmUgYXZhaWxhYmxlICovCi0jaWZu
ZGVmIFVfSEFWRV9JTlQ4X1QKLSNkZWZpbmUgVV9IQVZFX0lOVDhfVCAxCisvKioKKyAqIFxkZWYg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIFdpbjMyIEFQ
SSBpcyBhdmFpbGFibGUgb24gdGhlIHBsYXRmb3JtLgorICogU2V0IHRvIDEgZm9yIFdpbmRvd3Mv
TVNWQywgTWluR1cgYW5kIEN5Z3dpbi4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QRl9XSU5ET1dTIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0NZ
R1dJTgorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgMQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJIDAKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFW
RV9VSU5UOF9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UOF9UIDAKKy8qKgorICogXGRlZiBVX1BMQVRG
T1JNX0lNUExFTUVOVFNfUE9TSVgKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaW1w
bGVtZW50cyAobW9zdCBvZikgdGhlIFBPU0lYIEFQSS4KKyAqIFNldCB0byAxIGZvciBDeWd3aW4g
YW5kIG1vc3Qgb3RoZXIgcGxhdGZvcm1zLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX1BM
QVRGT1JNX0lNUExFTUVOVFNfUE9TSVgKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUu
ICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9
PSBVX1BGX0NMQVNTSUNfTUFDT1MKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BP
U0lYIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAxCiAj
ZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfSU5UMTZfVAotI2RlZmluZSBVX0hBVkVfSU5UMTZfVCAx
CisvKioKKyAqIFxkZWYgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRAorICogRGVmaW5lcyB3aGV0
aGVyIHRoZSBwbGF0Zm9ybSBpcyBMaW51eCBvciBvbmUgb2YgaXRzIGRlcml2YXRpdmVzLgorICog
QGludGVybmFsCisgKi8KKyNpZmRlZiBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VECisgICAgLyog
VXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QRl9MSU5VWCA8PSBVX1BMQVRG
T1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9BTkRST0lECisjICAgZGVmaW5lIFVfUExBVEZPUk1f
SVNfTElOVVhfQkFTRUQgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9JU19MSU5VWF9C
QVNFRCAwCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDE2X1QKLSNkZWZpbmUgVV9IQVZF
X1VJTlQxNl9UIDAKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorICog
RGVmaW5lcyB3aGV0aGVyIHRoZSBwbGF0Zm9ybSBpcyBEYXJ3aW4gb3Igb25lIG9mIGl0cyBkZXJp
dmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9JU19EQVJXSU5f
QkFTRUQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX0RB
UldJTiA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9JUEhPTkUKKyMgICBkZWZp
bmUgVV9QTEFURk9STV9JU19EQVJXSU5fQkFTRUQgMQorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFU
Rk9STV9JU19EQVJXSU5fQkFTRUQgMAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDMyX1QK
LSNkZWZpbmUgVV9IQVZFX0lOVDMyX1QgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9TVERJTlRfSAor
ICogRGVmaW5lcyB3aGV0aGVyIHN0ZGludC5oIGlzIGF2YWlsYWJsZS4gSXQgaXMgYSBDOTkgc3Rh
bmRhcmQgaGVhZGVyLgorICogV2UgdXNlZCB0byBpbmNsdWRlIGludHR5cGVzLmggd2hpY2ggaW5j
bHVkZXMgc3RkaW50LmggYnV0IHdlIHVzdWFsbHkgZG8gbm90IG5lZWQKKyAqIHRoZSBhZGRpdGlv
bmFsIGRlZmluaXRpb25zIGZyb20gaW50dHlwZXMuaC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZk
ZWYgVV9IQVZFX1NURElOVF9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgaWYgZGVmaW5lZChfX0JP
UkxBTkRDX18pIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9NSU5HVyB8fCAoZGVmaW5lZChfTVNDX1ZF
UikgJiYgX01TQ19WRVI+PTE2MDApCisgICAgICAgIC8qIFdpbmRvd3MgVmlzdWFsIFN0dWRpbyA5
IGFuZCBiZWxvdyBkbyBub3QgaGF2ZSBzdGRpbnQuaCAmIGludHR5cGVzLmgsIGJ1dCBWUyAyMDEw
IGFkZHMgdGhlbS4gKi8KKyMgICAgICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAxCisjICAgZWxz
ZQorIyAgICAgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDAKKyMgICBlbmRpZgorI2VsaWYgVV9Q
TEFURk9STSA9PSBVX1BGX1NPTEFSSVMKKyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5oIGJ1
dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERJTlRfSCAwCisjZWxpZiBV
X1BMQVRGT1JNID09IFVfUEZfQUlYICYmICFkZWZpbmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9X
RVIpCisgICAgLyogUFBDIEFJWCA8PSA0LjMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQu
aC4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVf
SEFWRV9TVERJTlRfSCAxCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDMyX1QKLSNkZWZp
bmUgVV9IQVZFX1VJTlQzMl9UIDAKKy8qKgorICogXGRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICog
RGVmaW5lcyB3aGV0aGVyIGludHR5cGVzLmggaXMgYXZhaWxhYmxlLiBJdCBpcyBhIEM5OSBzdGFu
ZGFyZCBoZWFkZXIuCisgKiBXZSBpbmNsdWRlIGludHR5cGVzLmggd2hlcmUgaXQgaXMgYXZhaWxh
YmxlIGJ1dCBzdGRpbnQuaCBpcyBub3QuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFW
RV9JTlRUWVBFU19ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
VV9QTEFURk9STSA9PSBVX1BGX1NPTEFSSVMKKyAgICAvKiBTb2xhcmlzIGhhcyBpbnR0eXBlcy5o
IGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BSVggJiYgIWRlZmluZWQoX0FJWDUxKSAmJiBkZWZpbmVk
KF9QT1dFUikKKyAgICAvKiBQUEMgQUlYIDw9IDQuMyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0
ZGludC5oLiAqLworIyAgIGRlZmluZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisjZWxzZQorICAgIC8q
IE1vc3QgcGxhdGZvcm1zIGhhdmUgYm90aCBpbnR0eXBlcy5oIGFuZCBzdGRpbnQuaCwgb3IgbmVp
dGhlci4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX0lOVFRZUEVTX0ggVV9IQVZFX1NURElOVF9ICiAj
ZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfSU5UNjRfVAotI2RlZmluZSBVX0hBVkVfSU5UNjRfVCAx
CisvKioKKyAqIFxkZWYgVV9JT1NUUkVBTV9TT1VSQ0UKKyAqIERlZmluZXMgd2hhdCBzdXBwb3J0
IGZvciBDKysgc3RyZWFtcyBpcyBhdmFpbGFibGUuCisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VS
Q0UgaXMgc2V0IHRvIDE5OTcxMSwgdGhlbiAmbHQ7aW9zdHJlYW0mZ3Q7IGlzIGF2YWlsYWJsZQor
ICogKHRoZSBJU08vSUVDIEMrKyBGRElTIHdhcyBwdWJsaXNoZWQgaW4gTm92ZW1iZXIgMTk5Nyks
IGFuZCB0aGVuCisgKiBvbmUgc2hvdWxkIHF1YWxpZnkgc3RyZWFtcyB1c2luZyB0aGUgc3RkIG5h
bWVzcGFjZSBpbiBJQ1UgaGVhZGVyCisgKiBmaWxlcy4KKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQ5
LCB0aGlzIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCB2ZXJzaW9uLgorICoKKyAqIElmIFVfSU9TVFJF
QU1fU09VUkNFIGlzIHNldCB0byAxOTg1MDYsIHRoZW4gJmx0O2lvc3RyZWFtLmgmZ3Q7IGlzCisg
KiBhdmFpbGFibGUgaW5zdGVhZCAoaW4gSnVuZSAxOTg1IFN0cm91c3RydXAgcHVibGlzaGVkCisg
KiAiQW4gRXh0ZW5zaWJsZSBJL08gRmFjaWxpdHkgZm9yIEMrKyIgYXQgdGhlIHN1bW1lciBVU0VO
SVggY29uZmVyZW5jZSkuCisgKiBTdGFydGluZyB3aXRoIElDVSA0OSwgdGhpcyB2ZXJzaW9uIGlz
IG5vdCBzdXBwb3J0ZWQgYW55IG1vcmUuCisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMg
MCAob3IgYW55IHZhbHVlIGxlc3MgdGhhbiAxOTk3MTEpLAorICogdGhlbiBDKysgc3RyZWFtcyBh
cmUgbm90IGF2YWlsYWJsZSBhbmQKKyAqIHN1cHBvcnQgZm9yIHRoZW0gd2lsbCBiZSBzaWxlbnRs
eSBzdXBwcmVzc2VkIGluIElDVS4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0lP
U1RSRUFNX1NPVVJDRQorI2RlZmluZSBVX0lPU1RSRUFNX1NPVVJDRSAxOTk3MTEKICNlbmRpZgog
Ci0jaWZuZGVmIFVfSEFWRV9VSU5UNjRfVAotI2RlZmluZSBVX0hBVkVfVUlOVDY0X1QgMAorLyoq
CisgKiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHN0YW5k
YXJkIEMrKyAoU1RMKSAmbHQ7c3RyaW5nJmd0OyBoZWFkZXIgaXMgYXZhaWxhYmxlLgorICogQGlu
dGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfU1REX1NUUklORworICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEK
ICNlbmRpZgogCi0vKiogQH0gKi8KLQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyoqIEB7IENv
bXBpbGVyIGFuZCBlbnZpcm9ubWVudCBmZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0vKiBEZWZpbmUgd2hldGhl
ciBuYW1lc3BhY2UgaXMgc3VwcG9ydGVkICovCi0jaWZuZGVmIFVfSEFWRV9OQU1FU1BBQ0UKLSNk
ZWZpbmUgVV9IQVZFX05BTUVTUEFDRSAxCi0jZW5kaWYKLQotLyogRGV0ZXJtaW5lcyB0aGUgZW5k
aWFubmVzcyBvZiB0aGUgcGxhdGZvcm0KLSAgIEl0J3MgZG9uZSB0aGlzIHdheSBpbiBjYXNlIG11
bHRpcGxlIGFyY2hpdGVjdHVyZXMgYXJlIGJlaW5nIGJ1aWx0IGF0IG9uY2UuCi0gICBGb3IgZXhh
bXBsZSwgRGFyd2luIHN1cHBvcnRzIGZhdCBiaW5hcmllcywgd2hpY2ggY2FuIGJlIGJvdGggUFBD
IGFuZCB4ODYgYmFzZWQuICovCi0jaWYgZGVmaW5lZChCWVRFX09SREVSKSAmJiBkZWZpbmVkKEJJ
R19FTkRJQU4pCi0jZGVmaW5lIFVfSVNfQklHX0VORElBTiAoQllURV9PUkRFUiA9PSBCSUdfRU5E
SUFOKQorLyoqCisgKiBcZGVmIFVfR0NDX01BSk9SX01JTk9SCisgKiBJbmRpY2F0ZXMgd2hldGhl
ciB0aGUgY29tcGlsZXIgaXMgZ2NjICh0ZXN0IGZvciAhPSAwKSwKKyAqIGFuZCBpZiBzbywgY29u
dGFpbnMgaXRzIG1ham9yICh0aW1lcyAxMDApIGFuZCBtaW5vciB2ZXJzaW9uIG51bWJlcnMuCisg
KiBJZiB0aGUgY29tcGlsZXIgaXMgbm90IGdjYywgdGhlbiBVX0dDQ19NQUpPUl9NSU5PUiA9PSAw
LgorICoKKyAqIEZvciBleGFtcGxlLCBmb3IgdGVzdGluZyBmb3Igd2hldGhlciB3ZSBoYXZlIGdj
YywgYW5kIHdoZXRoZXIgaXQncyA0LjYgb3IgaGlnaGVyLAorICogdXNlICIjaWYgVV9HQ0NfTUFK
T1JfTUlOT1IgPj0gNDA2Ii4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgX19HTlVDX18KKyMg
ICBkZWZpbmUgVV9HQ0NfTUFKT1JfTUlOT1IgKF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9S
X18pCiAjZWxzZQotI2RlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorIyAgIGRlZmluZSBVX0dDQ19N
QUpPUl9NSU5PUiAwCiAjZW5kaWYKIAotLyogMSBvciAwIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRo
cmVhZHMuICBJZiB1bmRlZmluZWQsIGRlZmF1bHQgaXM6IGVuYWJsZSB0aHJlYWRzLiAqLwotI2lm
bmRlZiBJQ1VfVVNFX1RIUkVBRFMgCi0jZGVmaW5lIElDVV9VU0VfVEhSRUFEUyAxCi0jZW5kaWYK
LQotLyogT24gc3Ryb25nIG1lbW9yeSBtb2RlbCBDUFVzIChlLmcuIHg4NiBDUFVzKSwgd2UgdXNl
IGEgc2FmZSAmIHF1aWNrIGRvdWJsZSBjaGVjayBsb2NrLiAqLwotI2lmIGRlZmluZWQoX19HTlVD
X18pICYmIChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pKQotI2RlZmlu
ZSBVTVRYX1NUUk9OR19NRU1PUllfTU9ERUwgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9ERUJVRwot
I2RlZmluZSBVX0RFQlVHIDAKLSNlbmRpZgotCi0jaWZuZGVmIFVfUkVMRUFTRQotI2RlZmluZSBV
X1JFTEVBU0UgMQorLyoqCisgKiBcZGVmIFVfSVNfQklHX0VORElBTgorICogRGV0ZXJtaW5lcyB0
aGUgZW5kaWFubmVzcyBvZiB0aGUgcGxhdGZvcm0uCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVm
IFVfSVNfQklHX0VORElBTgorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIGRlZmluZWQoQllURV9PUkRFUikgJiYgZGVmaW5lZChCSUdfRU5ESUFOKQorIyAgIGRlZmlu
ZSBVX0lTX0JJR19FTkRJQU4gKEJZVEVfT1JERVIgPT0gQklHX0VORElBTikKKyNlbGlmIGRlZmlu
ZWQoX19CWVRFX09SREVSX18pICYmIGRlZmluZWQoX19PUkRFUl9CSUdfRU5ESUFOX18pCisgICAg
LyogZ2NjICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAoX19CWVRFX09SREVSX18gPT0g
X19PUkRFUl9CSUdfRU5ESUFOX18pCisjZWxpZiBkZWZpbmVkKF9fQklHX0VORElBTl9fKSB8fCBk
ZWZpbmVkKF9CSUdfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYg
ZGVmaW5lZChfX0xJVFRMRV9FTkRJQU5fXykgfHwgZGVmaW5lZChfTElUVExFX0VORElBTikKKyMg
ICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDAKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5
MCB8fCBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAgfHwgZGVmaW5lZChfX3MzOTBfXykgfHwgZGVm
aW5lZChfX3MzOTB4X18pCisgICAgLyogVGhlc2UgcGxhdGZvcm1zIGRvIG5vdCBhcHBlYXIgdG8g
cHJlZGVmaW5lIGFueSBlbmRpYW5uZXNzIG1hY3Jvcy4gKi8KKyMgICBkZWZpbmUgVV9JU19CSUdf
RU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoX1BBX1JJU0MxXzApIHx8IGRlZmluZWQoX1BBX1JJU0Mx
XzEpIHx8IGRlZmluZWQoX1BBX1JJU0MyXzApCisgICAgLyogSFBQQSBkbyBub3QgYXBwZWFyIHRv
IHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3MuICovCisjICAgZGVmaW5lIFVfSVNfQklH
X0VORElBTiAxCisjZWxpZiBkZWZpbmVkKHNwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmMpIHx8IGRl
ZmluZWQoX19zcGFyY19fKQorICAgIC8qIFNvbWUgc3BhcmMgYmFzZWQgc3lzdGVtcyAoZS5nLiBM
aW51eCkgZG8gbm90IHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNyb3MuICovCisjICAgZGVm
aW5lIFVfSVNfQklHX0VORElBTiAxCisjZWxzZQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4g
MAogI2VuZGlmCiAKLS8qIERldGVybWluZSB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Ig
bm90LiBUaGlzIG92ZXJyaWRlcyB0aGUKLSAgIHNldHRpbmcgaW4gdW1hY2hpbmUuaCB3aGljaCBp
cyBmb3IgYWxsIHBsYXRmb3Jtcy4gKi8KLSNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCi0jZGVm
aW5lIFVfRElTQUJMRV9SRU5BTUlORyAxCisvKioKKyAqIFxkZWYgVV9IQVZFX1BMQUNFTUVOVF9O
RVcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBvdmVycmlkZSBwbGFjZW1lbnQgbmV3IGFuZCBk
ZWxldGUgZm9yIFNUTC4KKyAqIEBzdGFibGUgSUNVIDIuNgorICovCisjaWZkZWYgVV9IQVZFX1BM
QUNFTUVOVF9ORVcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBk
ZWZpbmVkKF9fQk9STEFORENfXykKKyMgICBkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMAor
I2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMQogI2VuZGlmCiAKLS8qIERl
dGVybWluZSB3aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLiAqLwotI2lmbmRlZiBV
X09WRVJSSURFX0NYWF9BTExPQ0FUSU9OCi0jZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJ
T04gMQotI2VuZGlmCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBvdmVycmlkZSBwbGFjZW1lbnQg
bmV3IGFuZCBkZWxldGUgZm9yIFNUTC4gKi8KLSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcK
LSNkZWZpbmUgVV9IQVZFX1BMQUNFTUVOVF9ORVcgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9ERUJV
R19MT0NBVElPTl9ORVcgCisgKiBEZWZpbmUgdGhpcyB0byBkZWZpbmUgdGhlIE1GQyBkZWJ1ZyB2
ZXJzaW9uIG9mIHRoZSBvcGVyYXRvciBuZXcuCisgKgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8K
KyNpZmRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9IQVZF
X0RFQlVHX0xPQ0FUSU9OX05FVyAxCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfREVCVUdfTE9D
QVRJT05fTkVXIDAKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBlbmFibGUgdHJh
Y2luZy4gKi8KLSNpZm5kZWYgVV9FTkFCTEVfVFJBQ0lORwotI2RlZmluZSBVX0VOQUJMRV9UUkFD
SU5HIDEKKy8qIENvbXBhdGliaWxpdHkgd2l0aCBub24gY2xhbmcgY29tcGlsZXJzICovCisjaWZu
ZGVmIF9faGFzX2F0dHJpYnV0ZQorIyAgICBkZWZpbmUgX19oYXNfYXR0cmlidXRlKHgpIDAKICNl
bmRpZgogCiAvKioKLSAqIFdoZXRoZXIgdG8gZW5hYmxlIER5bmFtaWMgbG9hZGluZyBpbiBJQ1UK
KyAqIFxkZWYgVV9NQUxMT0NfQVRUUgorICogQXR0cmlidXRlIHRvIG1hcmsgZnVuY3Rpb25zIGFz
IG1hbGxvYy1saWtlCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0VOQUJMRV9EWUxPQUQK
LSNkZWZpbmUgVV9FTkFCTEVfRFlMT0FEIDEKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dO
VUNfXz49MworIyAgICBkZWZpbmUgVV9NQUxMT0NfQVRUUiBfX2F0dHJpYnV0ZV9fICgoX19tYWxs
b2NfXykpCisjZWxzZQorIyAgICBkZWZpbmUgVV9NQUxMT0NfQVRUUgogI2VuZGlmCiAKIC8qKgot
ICogV2hldGhlciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmlsdHkKKyAq
IFxkZWYgVV9BTExPQ19TSVpFX0FUVFIKKyAqIEF0dHJpYnV0ZSB0byBzcGVjaWZ5IHRoZSBzaXpl
IG9mIHRoZSBhbGxvY2F0ZWQgYnVmZmVyIGZvciBtYWxsb2MtbGlrZSBmdW5jdGlvbnMKICAqIEBp
bnRlcm5hbAogICovCi0jaWZuZGVmIFVfQ0hFQ0tfRFlMT0FECi0jZGVmaW5lIFVfQ0hFQ0tfRFlM
T0FEIDEKLSNlbmRpZgotCi0KLS8qKiBEbyB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBk
cmFmdCBBUElzIGJ5IGRlZmF1bHQ/ICovCi0jaWZuZGVmIFVfREVGQVVMVF9TSE9XX0RSQUZUCi0j
ZGVmaW5lIFVfREVGQVVMVF9TSE9XX0RSQUZUIDEKKyNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYg
KF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAzKSkp
IHx8IF9faGFzX2F0dHJpYnV0ZShhbGxvY19zaXplKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVf
QVRUUihYKSBfX2F0dHJpYnV0ZV9fICgoYWxsb2Nfc2l6ZShYKSkpCisjICAgZGVmaW5lIFVfQUxM
T0NfU0laRV9BVFRSMihYLFkpIF9fYXR0cmlidXRlX18gKChhbGxvY19zaXplKFgsWSkpKQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIoWCkKKyMgICBkZWZpbmUgVV9BTExPQ19T
SVpFX0FUVFIyKFgsWSkKICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLwotLyoqIEB7IENoYXJhY3RlciBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0
eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
IC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KIAotI2lmICgoZGVmaW5lZChPUzM5MCkgJiYgKCFkZWZp
bmVkKF9fQ0hBUlNFVF9MSUIpIHx8ICFfX0NIQVJTRVRfTElCKSkpIHx8IGRlZmluZWQoT1M0MDAp
Ci0jICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgMQorLyoqCisgKiBVX0NIQVJTRVRfRkFNSUxZ
IGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gQVNDSUkgYmFz
ZWQgcGxhdGZvcm0uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2RlZmluZSBVX0FTQ0lJX0ZB
TUlMWSAwCisKKy8qKgorICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVl
IHdoZW4gdGhlIHBsYXRmb3JtIGlzIGFuIEVCQ0RJQyBiYXNlZCBwbGF0Zm9ybS4KKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCisjZGVmaW5lIFVfRUJDRElDX0ZBTUlMWSAxCisKKy8qKgorICogXGRl
ZiBVX0NIQVJTRVRfRkFNSUxZCisgKgorICogPHA+VGhlc2UgZGVmaW5pdGlvbnMgYWxsb3cgdG8g
c3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2YgdGV4dAorICogaW4gdGhlIGNoYXIgZGF0YSB0eXBlIGFz
IGRlZmluZWQgYnkgdGhlIHBsYXRmb3JtIGFuZCB0aGUgY29tcGlsZXIuCisgKiBJdCBpcyBlbm91
Z2ggdG8gZGV0ZXJtaW5lIHRoZSBjb2RlIHBvaW50IHZhbHVlcyBvZiAiaW52YXJpYW50IGNoYXJh
Y3RlcnMiLAorICogd2hpY2ggYXJlIHRoZSBvbmVzIHNoYXJlZCBieSBhbGwgZW5jb2RpbmdzIHRo
YXQgYXJlIGluIHVzZQorICogb24gYSBnaXZlbiBwbGF0Zm9ybS48L3A+CisgKgorICogPHA+VGhv
c2UgImludmFyaWFudCBjaGFyYWN0ZXJzIiBzaG91bGQgYmUgYWxsIHRoZSB1cHBlcmNhc2UgYW5k
IGxvd2VyY2FzZQorICogbGF0aW4gbGV0dGVycywgdGhlIGRpZ2l0cywgdGhlIHNwYWNlLCBhbmQg
ImJhc2ljIHB1bmN0dWF0aW9uIi4KKyAqIEFsc28sICdcXG4nLCAnXFxyJywgJ1xcdCcgc2hvdWxk
IGJlIGF2YWlsYWJsZS48L3A+CisgKgorICogPHA+VGhlIGxpc3Qgb2YgImludmFyaWFudCBjaGFy
YWN0ZXJzIiBpczo8YnI+CisgKiBcY29kZQorICogICAgQS1aICBhLXogIDAtOSAgU1BBQ0UgICIg
ICUgICZhbXA7ICAnICAoICApICAqICArICAsICAtICAuICAvICA6ICA7ICA8ICA9ICA+ICA/ICBf
CisgKiBcZW5kY29kZQorICogPGJyPgorICogKDUyIGxldHRlcnMgKyAxMCBudW1iZXJzICsgMjAg
cHVuYy9zeW0vc3BhY2UgPSA4MiB0b3RhbCk8L3A+CisgKgorICogPHA+VGhpcyBtYXRjaGVzIHRo
ZSBJQk0gU3ludGFjdGljIENoYXJhY3RlciBTZXQgKENTIDY0MCkuPC9wPgorICoKKyAqIDxwPklu
IG90aGVyIHdvcmRzLCBhbGwgdGhlIGdyYXBoaWMgY2hhcmFjdGVycyBpbiA3LWJpdCBBU0NJSSBz
aG91bGQKKyAqIGJlIHNhZmVseSBhY2Nlc3NpYmxlIGV4Y2VwdCB0aGUgZm9sbG93aW5nOjwvcD4K
KyAqCisgKiBcY29kZQorICogICAgJ1wnIDxiYWNrc2xhc2g+CisgKiAgICAnWycgPGxlZnQgYnJh
Y2tldD4KKyAqICAgICddJyA8cmlnaHQgYnJhY2tldD4KKyAqICAgICd7JyA8bGVmdCBicmFjZT4K
KyAqICAgICd9JyA8cmlnaHQgYnJhY2U+CisgKiAgICAnXicgPGNpcmN1bWZsZXg+CisgKiAgICAn
ficgPHRpbGRlPgorICogICAgJyEnIDxleGNsYW1hdGlvbiBtYXJrPgorICogICAgJyMnIDxudW1i
ZXIgc2lnbj4KKyAqICAgICd8JyA8dmVydGljYWwgbGluZT4KKyAqICAgICckJyA8ZG9sbGFyIHNp
Z24+CisgKiAgICAnQCcgPGNvbW1lcmNpYWwgYXQ+CisgKiAgICAnYCcgPGdyYXZlIGFjY2VudD4K
KyAqIFxlbmRjb2RlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lmZGVmIFVfQ0hBUlNFVF9G
QU1JTFkKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRG
T1JNID09IFVfUEZfT1MzOTAgJiYgKCFkZWZpbmVkKF9fQ0hBUlNFVF9MSUIpIHx8ICFfX0NIQVJT
RVRfTElCKQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfRUJDRElDX0ZBTUlMWQorI2Vs
aWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwICYmICFkZWZpbmVkKF9fVVRGMzJfXykKKyMgICBk
ZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSBVX0VCQ0RJQ19GQU1JTFkKKyNlbHNlCisjICAgZGVmaW5l
IFVfQ0hBUlNFVF9GQU1JTFkgVV9BU0NJSV9GQU1JTFkKKyNlbmRpZgorCisvKioKKyAqIFxkZWYg
VV9DSEFSU0VUX0lTX1VURjgKKyAqCisgKiBIYXJkY29kZSB0aGUgZGVmYXVsdCBjaGFyc2V0IHRv
IFVURi04LgorICoKKyAqIElmIHRoaXMgaXMgc2V0IHRvIDEsIHRoZW4KKyAqIC0gSUNVIHdpbGwg
YXNzdW1lIHRoYXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhciosIFN0cmluZ1BpZWNlLCBzdGQ6OnN0
cmluZyBldGMuCisgKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRo
ZSBzeXN0ZW0gQVBJIHVzZXMKKyAqIC0gc29tZSBJQ1UgY29kZSB3aWxsIHVzZSBmYXN0IGZ1bmN0
aW9ucyBsaWtlIHVfc3RyRnJvbVVURjgoKQorICogICByYXRoZXIgdGhhbiB0aGUgbW9yZSBnZW5l
cmFsIGFuZCBtb3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9uIEFQSSAodWNudi5oKQorICogLSB1
Y252X2dldERlZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMgIlVURi04IgorICogLSB1Y252X3Nl
dERlZmF1bHROYW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwgbm90IGNoYW5nZSB0aGUgZGVmYXVs
dCBjaGFyc2V0CisgKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNVIGFyZSBzbWFsbGVyCisgKiAtIG1v
cmUgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0aGUgVUNPTkZJR19OT19DT05WRVJT
SU9OIGJ1aWxkLXRpbWUKKyAqICAgY29uZmlndXJhdGlvbiBvcHRpb24gKHNlZSB1bmljb2RlL3Vj
b25maWcuaCkKKyAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZCBvcHRpb24gaW4g
dWNvbmZpZy5oIGlzIG1vcmUgdXNhYmxlCisgKgorICogQHN0YWJsZSBJQ1UgNC4yCisgKiBAc2Vl
IFVDT05GSUdfTk9fQ09OVkVSU0lPTgorICovCisjaWZkZWYgVV9DSEFSU0VUX0lTX1VURjgKKyAg
ICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVf
UEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorIyAgIGRlZmluZSBVX0NI
QVJTRVRfSVNfVVRGOCAxCisjZWxzZQorIyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAwCiAj
ZW5kaWYKIAogLyoqIEB9ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBJbmZv
cm1hdGlvbiBhYm91dCB3Y2hhciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCiAKLSNpZm5kZWYgVV9IQVZFX1dDSEFSX0gKLSNkZWZpbmUgVV9IQVZFX1dDSEFSX0gg
ICAgICAxCisvKioKKyAqIFxkZWYgVV9IQVZFX1dDSEFSX0gKKyAqIEluZGljYXRlcyB3aGV0aGVy
IDx3Y2hhci5oPiBpcyBhdmFpbGFibGUgKDEpIG9yIG5vdCAoMCkuIFNldCB0byAxIGJ5IGRlZmF1
bHQuCisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyNpZmRlZiBVX0hBVkVfV0NIQVJfSAor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0g
VV9QRl9BTkRST0lEICYmIF9fQU5EUk9JRF9BUElfXyA8IDkKKyAgICAvKgorICAgICAqIEFuZHJv
aWQgYmVmb3JlIEdpbmdlcmJyZWFkIChBbmRyb2lkIDIuMywgQVBJIGxldmVsIDkpIGRpZCBub3Qg
c3VwcG9ydCB3Y2hhcl90LgorICAgICAqIFRoZSB0eXBlIGFuZCBoZWFkZXIgZXhpc3RlZCwgYnV0
IHRoZSBsaWJyYXJ5IGZ1bmN0aW9ucyBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICog
VGhlIHNpemUgb2Ygd2NoYXJfdCB3YXMgMSBidXQgTCJ4eXoiIHN0cmluZyBsaXRlcmFscyBoYWQg
MzItYml0IHVuaXRzIGFueXdheS4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0gg
MAorI2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMQogI2VuZGlmCiAKLSNpZm5kZWYg
VV9TSVpFT0ZfV0NIQVJfVAotI2RlZmluZSBVX1NJWkVPRl9XQ0hBUl9UICAgIDQKKy8qKgorICog
XGRlZiBVX1NJWkVPRl9XQ0hBUl9UCisgKiBVX1NJWkVPRl9XQ0hBUl9UPT1zaXplb2Yod2NoYXJf
dCkKKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lmZGVmIFVfU0laRU9GX1dDSEFSX1QK
KyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiAoVV9QTEFURk9STSA9
PSBVX1BGX0FORFJPSUQgJiYgX19BTkRST0lEX0FQSV9fIDwgOSkgfHwgVV9QTEFURk9STSA9PSBV
X1BGX0NMQVNTSUNfTUFDT1MKKyAgICAvKgorICAgICAqIENsYXNzaWMgTWFjIE9TIGFuZCBNYWMg
T1MgWCBiZWZvcmUgMTAuMyAoUGFudGhlcikgZGlkIG5vdCBzdXBwb3J0IHdjaGFyX3Qgb3Igd3N0
cmluZy4KKyAgICAgKiBOZXdlciBNYWMgT1MgWCBoYXMgc2l6ZSA0LgorICAgICAqLworIyAgIGRl
ZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDEKKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSB8
fCBVX1BMQVRGT1JNID09IFVfUEZfQ1lHV0lOCisjICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1Qg
MgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWAorICAgIC8qCisgICAgICogQUlYIDYuMSBp
bmZvcm1hdGlvbiwgc2VjdGlvbiAiV2lkZSBjaGFyYWN0ZXIgZGF0YSByZXByZXNlbnRhdGlvbiI6
CisgICAgICogIi4uLiB0aGUgd2NoYXJfdCBkYXRhdHlwZSBpcyAzMi1iaXQgaW4gdGhlIDY0LWJp
dCBlbnZpcm9ubWVudCBhbmQKKyAgICAgKiAxNi1iaXQgaW4gdGhlIDMyLWJpdCBlbnZpcm9ubWVu
dC4iCisgICAgICogYW5kCisgICAgICogIkFsbCBsb2NhbGVzIHVzZSBVbmljb2RlIGZvciB0aGVp
ciB3aWRlIGNoYXJhY3RlciBjb2RlIHZhbHVlcyAocHJvY2VzcyBjb2RlKSwKKyAgICAgKiBleGNl
cHQgdGhlIElCTS1ldWNUVyBjb2Rlc2V0LiIKKyAgICAgKi8KKyMgICBpZmRlZiBfXzY0QklUX18K
KyMgICAgICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVm
aW5lIFVfU0laRU9GX1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVf
UEZfT1MzOTAKKyAgICAvKgorICAgICAqIHovT1MgVjFSMTEgaW5mb3JtYXRpb24gY2VudGVyLCBz
ZWN0aW9uICJMUDY0IHwgSUxQMzIiOgorICAgICAqICJJbiAzMS1iaXQgbW9kZSwgdGhlIHNpemUg
b2YgbG9uZyBhbmQgcG9pbnRlcnMgaXMgNCBieXRlcyBhbmQgdGhlIHNpemUgb2Ygd2NoYXJfdCBp
cyAyIGJ5dGVzLgorICAgICAqIFVuZGVyIExQNjQsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50
ZXIgaXMgOCBieXRlcyBhbmQgdGhlIHNpemUgb2Ygd2NoYXJfdCBpcyA0IGJ5dGVzLiIKKyAgICAg
Ki8KKyMgICBpZmRlZiBfTFA2NAorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0Cisj
ICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgIGlmIGRlZmluZWQoX19VVEYzMl9fKQor
ICAgICAgICAvKgorICAgICAgICAgKiBMT0NBTEVUWVBFKCpMT0NBTEVVVEYpIGlzIHNwZWNpZmll
ZC4KKyAgICAgICAgICogV2lkZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gVVRGLTMyLAorICAg
ICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3MgYXJlIGluIFVURi04LgorICAgICAgICAg
Ki8KKyMgICAgICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsaWYgZGVmaW5lZChf
X1VDUzJfXykKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxFVFlQRSgqTE9DQUxFVUNTMikg
aXMgc3BlY2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBV
Q1MtMiwKKyAgICAgICAgICogbmFycm93LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMu
CisgICAgICAgICAqLworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjZWxzZQor
ICAgICAgICAvKgorICAgICAgICAgKiBMT0NBTEVUWVBFKCpDTEQpIG9yIExPQ0FMRVRZUEUoKkxP
Q0FMRSkgaXMgc3BlY2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdzIGFy
ZSBpbiAxNi1iaXQgRUJDRElDLAorICAgICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0cmluZ3Mg
YXJlIGluIEVCQ0RJQy4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hB
Ul9UIDIKKyMgICBlbmRpZgorI2Vsc2UKKyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0CiAj
ZW5kaWYKIAogI2lmbmRlZiBVX0hBVkVfV0NTQ1BZCi0jZGVmaW5lIFVfSEFWRV9XQ1NDUFkgICAg
ICAgMQorI2RlZmluZSBVX0hBVkVfV0NTQ1BZIFVfSEFWRV9XQ0hBUl9ICiAjZW5kaWYKIAogLyoq
IEB9ICovCiAKIC8qKgorICogXGRlZiBVX0hBVkVfQ0hBUjE2X1QKKyAqIERlZmluZXMgd2hldGhl
ciB0aGUgY2hhcjE2X3QgdHlwZSBpcyBhdmFpbGFibGUgZm9yIFVURi0xNgorICogYW5kIHUiYWJj
IiBVVEYtMTYgc3RyaW5nIGxpdGVyYWxzIGFyZSBzdXBwb3J0ZWQuCisgKiBUaGlzIGlzIGEgbmV3
IHN0YW5kYXJkIHR5cGUgYW5kIHN0YW5kYXJkIHN0cmluZyBsaXRlcmFsIHN5bnRheCBpbiBDKysw
eAorICogYnV0IGhhcyBiZWVuIGF2YWlsYWJsZSBpbiBzb21lIGNvbXBpbGVycyBiZWZvcmUuCisg
KiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9DSEFSMTZfVAorICAgIC8qIFVzZSB0aGUg
cHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOb3RlczoKKyAgICAg
KiBWaXN1YWwgU3R1ZGlvIDEwIChfTVNDX1ZFUj49MTYwMCkgZGVmaW5lcyBjaGFyMTZfdCBidXQK
KyAgICAgKiBkb2VzIG5vdCBzdXBwb3J0IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisgICAgICog
Z2NjIDQuNCBkZWZpbmVzIHRoZSBfX0NIQVIxNl9UWVBFX18gbWFjcm8gdG8gYSB1c2FibGUgdHlw
ZSBidXQKKyAgICAgKiBkb2VzIG5vdCBzdXBwb3J0IHUiYWJjIiBzdHJpbmcgbGl0ZXJhbHMuCisg
ICAgICogQysrMTEgYW5kIEMxMSByZXF1aXJlIHN1cHBvcnQgZm9yIFVURi0xNiBsaXRlcmFscwor
ICAgICAqLworIyAgIGlmIChkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAy
MDExMDNMKSB8fCAoZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9f
ID49IDIwMTExMkwpCisjICAgICAgIGRlZmluZSBVX0hBVkVfQ0hBUjE2X1QgMQorIyAgIGVsc2UK
KyMgICAgICAgZGVmaW5lIFVfSEFWRV9DSEFSMTZfVCAwCisjICAgZW5kaWYKKyNlbmRpZgorCisv
KioKICAqIEB7CiAgKiBcZGVmIFVfREVDTEFSRV9VVEYxNgotICogRG8gbm90IHVzZSB0aGlzIG1h
Y3JvLiBVc2UgdGhlIFVOSUNPREVfU1RSSU5HIG9yIFVfU1RSSU5HX0RFQ0wgbWFjcm9zCi0gKiBp
bnN0ZWFkLgotICogQGludGVybmFsCi0gKgotICogXGRlZiBVX0dOVUNfVVRGMTZfU1RSSU5HCisg
KiBEbyBub3QgdXNlIHRoaXMgbWFjcm8gYmVjYXVzZSBpdCBpcyBub3QgZGVmaW5lZCBvbiBhbGwg
cGxhdGZvcm1zLgorICogVXNlIHRoZSBVTklDT0RFX1NUUklORyBvciBVX1NUUklOR19ERUNMIG1h
Y3JvcyBpbnN0ZWFkLgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9HTlVDX1VURjE2X1NU
UklORwotI2RlZmluZSBVX0dOVUNfVVRGMTZfU1RSSU5HIDAKLSNlbmRpZgotI2lmIDEgfHwgZGVm
aW5lZChVX0NIRUNLX1VURjE2X1NUUklORykKLSNpZiAoZGVmaW5lZChfX3hsQ19fKSAmJiBkZWZp
bmVkKF9fSUJNX1VURl9MSVRFUkFMKSAmJiBVX1NJWkVPRl9XQ0hBUl9UICE9IDIpIFwKKyNpZmRl
ZiBVX0RFQ0xBUkVfVVRGMTYKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisj
ZWxpZiBVX0hBVkVfQ0hBUjE2X1QgXAorICAgIHx8IChkZWZpbmVkKF9feGxDX18pICYmIGRlZmlu
ZWQoX19JQk1fVVRGX0xJVEVSQUwpICYmIFVfU0laRU9GX1dDSEFSX1QgIT0gMikgXAogICAgIHx8
IChkZWZpbmVkKF9fSFBfYUNDKSAmJiBfX0hQX2FDQyA+PSAwMzUwMDApIFwKLSAgICB8fCAoZGVm
aW5lZChfX0hQX2NjKSAmJiBfX0hQX2NjID49IDExMTEwNikgXAotICAgIHx8IFVfR05VQ19VVEYx
Nl9TVFJJTkcKLSNkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgdSAjIyBzdHJpbmcKLSNl
bGlmIChkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBfX1NVTlBST19DQyA+PSAweDU1MCkKLS8qIHx8
IChkZWZpbmVkKF9fU1VOUFJPX0MpICYmIF9fU1VOUFJPX0MgPj0gMHg1ODApICovCi0vKiBTdW4n
cyBDIGNvbXBpbGVyIGhhcyBpc3N1ZXMgd2l0aCB0aGlzIG5vdGF0aW9uLCBhbmQgaXQncyB1bnJl
bGlhYmxlLiAqLwotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBVICMjIHN0cmluZwor
ICAgIHx8IChkZWZpbmVkKF9fSFBfY2MpICYmIF9fSFBfY2MgPj0gMTExMTA2KQorIyAgIGRlZmlu
ZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSB1ICMjIHN0cmluZwogI2VsaWYgVV9TSVpFT0ZfV0NI
QVJfVCA9PSAyIFwKLSAgICAmJiAoVV9DSEFSU0VUX0ZBTUlMWSA9PSAwIHx8ICgoZGVmaW5lZChP
UzM5MCkgfHwgZGVmaW5lZChPUzQwMCkpICYmIGRlZmluZWQoX19VQ1MyX18pKSkKLSNkZWZpbmUg
VV9ERUNMQVJFX1VURjE2KHN0cmluZykgTCAjIyBzdHJpbmcKLSNlbmRpZgotI2VuZGlmCi0KLS8q
KiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJv
dXQgUE9TSVggc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZuZGVmIFVfSEFWRV9OTF9MQU5HSU5G
T19DT0RFU0VUCi0jZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUICAxCi0jZW5kaWYK
LQotI2lmbmRlZiBVX05MX0xBTkdJTkZPX0NPREVTRVQKLSNkZWZpbmUgVV9OTF9MQU5HSU5GT19D
T0RFU0VUICAgICAgIENPREVTRVQKLSNlbmRpZgotCi0jaWYgMQotI2RlZmluZSBVX1RaU0VUICAg
ICAgICAgdHpzZXQKLSNlbmRpZgotI2lmIDAKLSNkZWZpbmUgVV9USU1FWk9ORSAgICAgIHRpbWV6
b25lCi0jZW5kaWYKLSNpZiAxCi0jZGVmaW5lIFVfVFpOQU1FICAgICAgICB0em5hbWUKKyAgICAm
JiAoVV9DSEFSU0VUX0ZBTUlMWSA9PSAwIHx8IChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYg
VV9QTEFURk9STSA8PSBVX1BGX09TNDAwICYmIGRlZmluZWQoX19VQ1MyX18pKSkKKyMgICBkZWZp
bmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgTCAjIyBzdHJpbmcKKyNlbHNlCisgICAgLyogTGVh
dmUgVV9ERUNMQVJFX1VURjE2IHVuZGVmaW5lZC4gU2VlIHVuaXN0ci5oLiAqLwogI2VuZGlmCiAK
LSNkZWZpbmUgVV9IQVZFX01NQVAgICAgIDEKLSNkZWZpbmUgVV9IQVZFX1BPUEVOICAgIDEKLQog
LyoqIEB9ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBTeW1ib2wgaW1wb3J0
LWV4cG9ydCBjb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCisvKiogQHsgU3ltYm9sIGltcG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAK
LSNpZiAxCi0jZGVmaW5lIFVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCisjaWZkZWYgVV9FWFBPUlQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUu
ICovCisjZWxpZiBkZWZpbmVkKFVfU1RBVElDX0lNUExFTUVOVEFUSU9OKQorIyAgIGRlZmluZSBV
X0VYUE9SVAorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19h
dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICNlbGlmIChkZWZpbmVkKF9fU1VO
UFJPX0NDKSAmJiBfX1NVTlBST19DQyA+PSAweDU1MCkgXAogICAgfHwgKGRlZmluZWQoX19TVU5Q
Uk9fQykgJiYgX19TVU5QUk9fQyA+PSAweDU1MCkgCi0jZGVmaW5lIFVfRVhQT1JUIF9fZ2xvYmFs
CisjICAgZGVmaW5lIFVfRVhQT1JUIF9fZ2xvYmFsCiAvKiNlbGlmIGRlZmluZWQoX19IUF9hQ0Mp
IHx8IGRlZmluZWQoX19IUF9jYykKLSNkZWZpbmUgVV9FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBv
cnQpKi8KKyMgICBkZWZpbmUgVV9FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpKi8KKyNlbGlm
IGRlZmluZWQoX01TQ19WRVIpCisjICAgZGVmaW5lIFVfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhw
b3J0KQogI2Vsc2UKLSNkZWZpbmUgVV9FWFBPUlQKKyMgICBkZWZpbmUgVV9FWFBPUlQKICNlbmRp
ZgogCiAvKiBVX0NBTExDT05WIGlzIHJlbGVhdGVkIHRvIFVfRVhQT1JUMiAqLwotI2RlZmluZSBV
X0VYUE9SVDIKLQotLyogY3lnd2luIG5lZWRzIHRvIGV4cG9ydC9pbXBvcnQgZGF0YSAqLwotI2lm
IGRlZmluZWQoVV9DWUdXSU4pICYmICFkZWZpbmVkKF9fR05VQ19fKQotI2RlZmluZSBVX0lNUE9S
VCBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNpZmRlZiBVX0VYUE9SVDIKKyAgICAvKiBVc2UgdGhl
IHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmlu
ZSBVX0VYUE9SVDIgX19jZGVjbAogI2Vsc2UKLSNkZWZpbmUgVV9JTVBPUlQgCi0jZW5kaWYKLQot
LyogQH0gKi8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IENvZGUgYWxpZ25tZW50
IGFuZCBDIGZ1bmN0aW9uIGlubGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lmbmRlZiBVX0lOTElORQotIyAgIGlm
ZGVmIF9fY3BsdXNwbHVzCi0jICAgICAgIGRlZmluZSBVX0lOTElORSBpbmxpbmUKLSMgICBlbHNl
Ci0jICAgICAgIGRlZmluZSBVX0lOTElORSBfX2lubGluZV9fCi0jICAgZW5kaWYKLSNlbmRpZgot
Ci0jaWZuZGVmIFVfQUxJR05fQ09ERQotI2RlZmluZSBVX0FMSUdOX0NPREUobikgCisjICAgZGVm
aW5lIFVfRVhQT1JUMgogI2VuZGlmCiAKLS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCi0vKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9yeSBvcGVy
YXRpb25zICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwot
Ci0vKioKLSAqIFxkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCi0gKiBAaW50ZXJuYWwKLSAqLwotI2lm
bmRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKLSNkZWZpbmUgVV9IQVZFX0dDQ19BVE9NSUNTIDEKKyNp
ZmRlZiBVX0lNUE9SVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlm
IGRlZmluZWQoX01TQ19WRVIpCisgICAgLyogV2luZG93cyBuZWVkcyB0byBleHBvcnQvaW1wb3J0
IGRhdGEuICovCisjICAgZGVmaW5lIFVfSU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9JTVBPUlQgCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KLS8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KLS8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5IElDVSBjb2RlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCi0KIC8qKgotICogXGRlZiBVX01BS0UKLSAqIFdoYXQgcHJvZ3JhbSB0byBleGVj
dXRlIHRvIHJ1biAnbWFrZScKKyAqIFxkZWYgVV9DQUxMQ09OVgorICogU2ltaWxhciB0byBVX0NE
RUNMX0JFR0lOL1VfQ0RFQ0xfRU5ELCB0aGlzIHF1YWxpZmllciBpcyBuZWNlc3NhcnkKKyAqIGlu
IGNhbGxiYWNrIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjYWxsaW5n
IGNvbnZlbnRpb24KKyAqIGlzIGNvbXBhdGlibGUuCisgKgorICogVGhpcyBpcyBvbmx5IHVzZWQg
Zm9yIG5vbi1JQ1UtQVBJIGZ1bmN0aW9ucy4KKyAqIFdoZW4gYSBmdW5jdGlvbiBpcyBhIHB1Ymxp
YyBJQ1UgQVBJLAorICogeW91IG11c3QgdXNlIHRoZSBVX0NBUEkgYW5kIFVfRVhQT1JUMiBxdWFs
aWZpZXJzLgorICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNpZm5kZWYgVV9NQUtFCi0jZGVmaW5l
IFVfTUFLRSAgIi91c3IvYmluL2dudW1ha2UiCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkw
ICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjICAgIGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wK
KyNlbHNlCisjICAgIGRlZmluZSBVX0NBTExDT05WIFVfRVhQT1JUMgogI2VuZGlmCiAKLS8qKiBA
fSAqLwotCi0jZW5kaWYgLyogQ1lHV0lOTVNWQyAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
Ci0vKiBDdXN0b20gaWN1IGVudHJ5IHBvaW50IHJlbmFtaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwot
Ci0vKioKLSAqIERlZmluZSB0aGUgbGlicmFyeSBzdWZmaXggd2l0aCBDIHN5bnRheC4KLSAqIEBp
bnRlcm5hbAotICovCi0jIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FIAotLyoqCi0gKiBEZWZp
bmUgdGhlIGxpYnJhcnkgc3VmZml4IGFzIGEgc3RyaW5nIHdpdGggQyBzeW50YXgKLSAqIEBpbnRl
cm5hbAotICovCi0jIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAiIgotLyoqCi0g
KiAxIGlmIGEgY3VzdG9tIGxpYnJhcnkgc3VmZml4IGlzIHNldAotICogQGludGVybmFsCi0gKi8K
LSMgZGVmaW5lIFVfSEFWRV9MSUJfU1VGRklYIDAKLQotI2lmIFVfSEFWRV9MSUJfU1VGRklYCi0j
IGlmbmRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKLS8qIFJlbmFtaW5nIHBhdHRlcm46ICAg
IHVfc3RyY3B5XzQxX3N1ZmZpeCAqLwotIyAgZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh4KSAgICB4ICMjIF8gIyMgNDYgIyMgCi0jICBkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9Q
T0lOVChtYWpvciwgbWlub3IpIGljdWR0IyMjI21ham9yIyNtaW5vciMjX2RhdAotCi0jIGVuZGlm
Ci0jZW5kaWYKKy8qIEB9ICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS9wdHlwZXMuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcHR5cGVzLmgKaW5kZXgg
MWYzNGQyZjg0ZTQxMGVmNzkzMGE2NmVmNmU3NGNiNjRiY2JjNTgxZC4uYjdmNzExNjAzMjgyYzM2
YzczMjIyMGU3YTk2YzkxMzNkZDAyNTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9wdHlwZXMuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3B0eXBlcy5oCkBAIC0x
LDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAo
QykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJp
Z2h0IChDKSAxOTk3LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgpAQCAtMTcsNDAgKzE3LDY5IEBACiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
ICovCiAKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGVmaW5pdGlvbnMgb2YgaW50
ZWdlciB0eXBlcyBvZiB2YXJpb3VzIHdpZHRocworICovCisKICNpZm5kZWYgX1BUWVBFU19ICiAj
ZGVmaW5lIF9QVFlQRVNfSAogCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisvKioKKyAqIFxkZWYg
X19TVERDX0xJTUlUX01BQ1JPUworICogQWNjb3JkaW5nIHRvIHRoZSBMaW51eCBzdGRpbnQuaCwg
dGhlIElTTyBDOTkgc3RhbmRhcmQgc3BlY2lmaWVzIHRoYXQgaW4gQysrIGltcGxlbWVudGF0aW9u
cworICogbWFjcm9zIGxpa2UgSU5UMzJfTUlOIGFuZCBVSU5UUFRSX01BWCBzaG91bGQgb25seSBi
ZSBkZWZpbmVkIGlmIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgorICogV2UgbmVlZCB0byBkZWZpbmUg
X19TVERDX0xJTUlUX01BQ1JPUyBiZWZvcmUgaW5jbHVkaW5nIHN0ZGludC5oIGluIEMrKyBjb2Rl
CisgKiB0aGF0IHVzZXMgc3VjaCBsaW1pdCBtYWNyb3MuCisgKiBAaW50ZXJuYWwKKyAqLworI2lm
bmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKKyNl
bmRpZgorCisvKiBOVUxMLCBzaXplX3QsIHdjaGFyX3QgKi8KKyNpbmNsdWRlIDxzdGRkZWYuaD4K
IAorLyoKKyAqIElmIGFsbCBjb21waWxlcnMgcHJvdmlkZWQgYWxsIG9mIHRoZSBDOTkgaGVhZGVy
cyBhbmQgdHlwZXMsCisgKiB3ZSB3b3VsZCBqdXN0IHVuY29uZGl0aW9uYWxseSAjaW5jbHVkZSA8
c3RkaW50Lmg+IGhlcmUKKyAqIGFuZCBub3QgbmVlZCBhbnkgb2YgdGhlIHN0dWZmIGFmdGVyIGlu
Y2x1ZGluZyBwbGF0Zm9ybS5oLgorICovCisKKy8qIEZpbmQgb3V0IGlmIHdlIGhhdmUgc3RkaW50
LmggZXRjLiAqLwogI2luY2x1ZGUgInVuaWNvZGUvcGxhdGZvcm0uaCIKIAogLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLwogLyogR2VuZXJpYyBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LwogCi0vKiBJZiB5b3VyIHBsYXRmb3JtIGRvZXMgbm90IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBo
ZWFkZXIsIHlvdSBtYXkKLSAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgYmVsb3cuICovCi0j
aWYgVV9IQVZFX0lOVFRZUEVTX0gKKy8qIElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0
aGUgPHN0ZGludC5oPiBoZWFkZXIsIHlvdSBtYXkKKyAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRl
ZnMgaW4gdGhlICNlbHNlIHNlY3Rpb24gYmVsb3cuCisgICBVc2UgI2lmLi4uI2Vsc2UuLi4jZW5k
aWYgd2l0aCBwcmVkZWZpbmVkIGNvbXBpbGVyIG1hY3JvcyBpZiBwb3NzaWJsZS4gKi8KKyNpZiBV
X0hBVkVfU1RESU5UX0gKKworLyoKKyAqIFdlIG1vc3RseSBuZWVkIDxzdGRpbnQuaD4gKHdoaWNo
IGRlZmluZXMgdGhlIHN0YW5kYXJkIGludGVnZXIgdHlwZXMpIGJ1dCBub3QgPGludHR5cGVzLmg+
LgorICogPGludHR5cGVzLmg+IGluY2x1ZGVzIDxzdGRpbnQuaD4gYW5kIGFkZHMgdGhlIHByaW50
Zi9zY2FuZiBoZWxwZXJzIFBSSWQzMiwgU0NOeDE2IGV0Yy4KKyAqIHdoaWNoIHdlIGFsbW9zdCBu
ZXZlciB1c2UsIHBsdXMgc3R1ZmYgbGlrZSBpbWF4YWJzKCkgd2hpY2ggd2UgbmV2ZXIgdXNlLgor
ICovCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLS8qIGF1dG9jb25mIDIuMTMgc29tZXRpbWVzIGNh
bid0IHByb3Blcmx5IGZpbmQgdGhlIGRhdGEgdHlwZXMgaW4gPGludHR5cGVzLmg+ICovCi0vKiBv
cy8zOTAgbmVlZHMgPGludHR5cGVzLmg+LCBidXQgaXQgZG9lc24ndCBoYXZlIGludDhfdCwgYW5k
IGl0IHNvbWV0aW1lcyAqLwotLyogZG9lc24ndCBoYXZlIHVpbnQ4X3QgZGVwZW5kaW5nIG9uIHRo
ZSBPUyB2ZXJzaW9uLiAqLwotLyogU28gd2UgaGF2ZSB0aGlzIHdvcmsgYXJvdW5kLiAqLwotI2lm
ZGVmIE9TMzkwCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCiAvKiBUaGUgZmVhdHVyZXMg
aGVhZGVyIGlzIG5lZWRlZCB0byBnZXQgKHUpaW50NjRfdCBzb21ldGltZXMuICovCiAjaW5jbHVk
ZSA8ZmVhdHVyZXMuaD4KLSNpZiAhIFVfSEFWRV9JTlQ4X1QKLXR5cGVkZWYgc2lnbmVkIGNoYXIg
aW50OF90OwotI2VuZGlmCisvKiB6L09TIGhhcyA8c3RkaW50Lmg+LCBidXQgc29tZSB2ZXJzaW9u
cyBhcmUgbWlzc2luZyB1aW50OF90IChBUEFSIFBLNjIyNDgpLiAqLwogI2lmICFkZWZpbmVkKF9f
dWludDhfdCkKICNkZWZpbmUgX191aW50OF90IDEKIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50
OF90OwogI2VuZGlmCi0jZW5kaWYgLyogT1MzOTAgKi8KKyNlbmRpZiAvKiBVX1BMQVRGT1JNID09
IFVfUEZfT1MzOTAgKi8KKworI2VsaWYgVV9IQVZFX0lOVFRZUEVTX0gKIAotI2luY2x1ZGUgPGlu
dHR5cGVzLmg+CisjICAgaW5jbHVkZSA8aW50dHlwZXMuaD4KIAotI2Vsc2UgLyogVV9IQVZFX0lO
VFRZUEVTX0ggKi8KKyNlbHNlIC8qIG5laXRoZXIgVV9IQVZFX1NURElOVF9IIG5vciBVX0hBVkVf
SU5UVFlQRVNfSCAqLwogCiAjaWYgISBVX0hBVkVfSU5UOF9UCiB0eXBlZGVmIHNpZ25lZCBjaGFy
IGludDhfdDsKQEAgLTc3LDE2ICsxMDYsMjEgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMy
X3Q7CiAjZW5kaWYKIAogI2lmICEgVV9IQVZFX0lOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAg
IHR5cGVkZWYgc2lnbmVkIF9faW50NjQgaW50NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiBzaWdu
ZWQgbG9uZyBsb25nIGludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0
eXBlICovCisjZW5kaWYKICNlbmRpZgogCiAjaWYgISBVX0hBVkVfVUlOVDY0X1QKKyNpZmRlZiBf
TVNDX1ZFUgorICAgIHR5cGVkZWYgdW5zaWduZWQgX19pbnQ2NCB1aW50NjRfdDsKKyNlbHNlCiAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBu
b3QgaGF2ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRpZgogCi0jZW5kaWYgLyogVV9I
QVZFX0lOVFRZUEVTX0ggKi8KKyNlbmRpZiAvKiBVX0hBVkVfU1RESU5UX0ggLyBVX0hBVkVfSU5U
VFlQRVNfSCAqLwogCiAjZW5kaWYgLyogX1BUWVBFU19IICovCi0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvcHV0aWwuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcHV0aWwu
aAppbmRleCA3MWQ1ZDI2NDMwNTI5YjYwYjdlYTRjNGQ4MzBkYmM4NjE3NTI5NDY1Li42ZmM3ZTlj
ZDVhNjJhNTU5NDZhZTZkNzc4N2JmMjVkMjM2MTEwYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3B1dGlsLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9wdXRpbC5o
CkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHly
aWdodCAoQykgMTk5Ny0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29weXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
ICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgpAQCAtMzAsMTIgKzMwLDYgQEAKICAgKiBcYnJpZWYgQyBBUEk6
IFBsYXRmb3JtIFV0aWxpdGllcwogICAqLwogCi0vKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3Vy
IHBsYXRmb3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAotICAgdG8gMCBpZiBp
dCBkb2VzIG5vdC4gKi8KLSNpZm5kZWYgSUVFRV83NTQKLSMgICBkZWZpbmUgSUVFRV83NTQgMQot
I2VuZGlmCi0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogUGxhdGZvcm0gdXRpbGl0aWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KQEAgLTkzLDQzICs4NywyMCBAQCBVX1NUQUJMRSBjb25zdCBj
aGFyKiBVX0VYUE9SVDIgdV9nZXREYXRhRGlyZWN0b3J5KHZvaWQpOwogICovCiBVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMiB1X3NldERhdGFEaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyZWN0b3J5KTsK
IAotI2lmICFVX0NIQVJTRVRfSVNfVVRGOAotLyoqCi0gKiBQbGVhc2UgdXNlIHVjbnZfZ2V0RGVm
YXVsdE5hbWUoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0
aGlzIHBsYXRmb3JtIGFuZCBsb2NhbGUuCi0gKiBUaGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxv
Y2FsZSgpIG9uIFVuaXggcGxhdGZvcm1zLiBQbGVhc2UgcmVhZCB0aGUKLSAqIHBsYXRmb3JtIGRv
Y3VtZW50YXRpb24gb24gc2V0bG9jYWxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4K
LSAqIEByZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9yIHRoaXMgcGxhdGZvcm0gCi0gKiBA
aW50ZXJuYWwKLSAqLwotVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0
RGVmYXVsdENvZGVwYWdlKHZvaWQpOwotI2VuZGlmCi0KLS8qKgotICogUGxlYXNlIHVzZSB1bG9j
X2dldERlZmF1bHQoKSBpbnN0ZWFkLgotICogUmV0dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBz
dHJpbmcgYnkgcXVlcnlpbmcgdGhzIHN5c3RlbSwgb3IKLSAqICAgICB6ZXJvIGlmIG9uZSBjYW5u
b3QgYmUgZm91bmQuIAotICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBV
bml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9u
IG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCi0gKiBAcmV0dXJu
IHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcKLSAqIEBpbnRlcm5hbAotICovCi1VX0lOVEVS
TkFMIGNvbnN0IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXREZWZhdWx0TG9jYWxlSUQodm9pZCk7
Ci0KIC8qKgogICogQHsKICAqIEZpbGVzeXN0ZW0gZmlsZSBhbmQgcGF0aCBzZXBhcmF0b3IgY2hh
cmFjdGVycy4KICAqIEV4YW1wbGU6ICcvJyBhbmQgJzonIG9uIFVuaXgsICdcXCcgYW5kICc7JyBv
biBXaW5kb3dzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KLSNpZmRlZiBYUF9NQUMKKyNpZiBV
X1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUwogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NI
QVIgJzonCiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX0NIQVIgJzonCiAjICAgZGVmaW5lIFVf
UEFUSF9TRVBfQ0hBUiAnOycKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9TVFJJTkcgIjoiCiAjICAg
ZGVmaW5lIFVfRklMRV9BTFRfU0VQX1NUUklORyAiOiIKICMgICBkZWZpbmUgVV9QQVRIX1NFUF9T
VFJJTkcgIjsiCi0jZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKE9TMikKKyNlbGlmIFVf
UExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIg
J1xcJwogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFSICcvJwogIyAgIGRlZmluZSBVX1BB
VEhfU0VQX0NIQVIgJzsnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JlcC5o
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yZXAuaAppbmRleCAzZmFiNmZhMTI3MmUwZjYwYTQx
NzM5YzgzMWIzZjA2Zjk3YzZhMGUwLi40YzdlYWUxNDAxZGNkNmM5NTQyMTU3ZGJmYTBmMmZlM2Vh
OGRjNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JlcC5oCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvcmVwLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisqIENvcHlyaWdodCAoQykgMTk5OS0yMDEyLCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAogKiBvdGhlcnMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgIERhdGUgICAgICAg
IE5hbWUgICAgICAgIERlc2NyaXB0aW9uCkBAIC0yMDUsNyArMjA1LDcgQEAgcHJvdGVjdGVkOgog
ICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCiAgICAgICogQHN0YWJsZSBJQ1UgMi40CiAgICAg
ICovCi0gICAgUmVwbGFjZWFibGUoKTsKKyAgICBpbmxpbmUgUmVwbGFjZWFibGUoKTsKIAogICAg
IC8qCiAgICAgICogQXNzaWdubWVudCBvcGVyYXRvciBub3QgZGVjbGFyZWQuIFRoZSBjb21waWxl
ciB3aWxsIHByb3ZpZGUgb25lCkBAIC0yMzcsNiArMjM3LDggQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgVUNoYXIzMiBnZXRDaGFyMzJBdChpbnQzMl90IG9mZnNldCkgY29uc3QgPSAwOwogfTsK
IAoraW5saW5lIFJlcGxhY2VhYmxlOjpSZXBsYWNlYWJsZSgpIHt9CisKIGlubGluZSBpbnQzMl90
CiBSZXBsYWNlYWJsZTo6bGVuZ3RoKCkgY29uc3QgewogICAgIHJldHVybiBnZXRMZW5ndGgoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc3RkX3N0cmluZy5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKaW5kZXggZGQ0M2I3NDVhMDBjNTM0NWFlOTgx
MTI2ZmIyOTIzNjhlZTcyYmUzNS4uNjdiMWQ2YzVhYWQxMGEwYjYyODM3YzI1MjU0Nzc2MzViNmIw
MWYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdGRfc3RyaW5nLmgKQEAgLTEsNyArMSw3IEBACiAv
KgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKQEAgLTI1LDU0ICsyNSwxMCBAQAogCiAjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKIAot
LyoqCi0gKiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0gKiBEZWZpbmUgd2hldGhlciB0aGUgc3Rh
bmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBpcyBhdmFpbGFibGUuCi0gKiBA
aW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0hBVkVfU1REX1NUUklORwotI2RlZmluZSBVX0hBVkVf
U1REX1NUUklORyAxCi0jZW5kaWYKLQogI2lmIFVfSEFWRV9TVERfU1RSSU5HCiAKICNpbmNsdWRl
IDxzdHJpbmc+CiAKLS8qKgotICogXGRlZiBVX1NURF9OUwotICogRGVmaW5lIHRoZSBuYW1lc3Bh
Y2UgdG8gdXNlIGZvciBzdGFuZGFyZCBDKysgKFNUTCkgY2xhc3Nlcy4KLSAqIEVpdGhlciBzdGQg
b3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQuMgotICovCi0KLS8qKgotICogXGRlZiBVX1NURF9O
U1EKLSAqIERlZmluZSB0aGUgbmFtZXNwYWNlIHF1YWxpZmllciB0byB1c2UgZm9yIHN0YW5kYXJk
IEMrKyAoU1RMKSBjbGFzc2VzLgotICogRWl0aGVyIHN0ZDo6IG9yIGVtcHR5LgotICogRm9yIGV4
YW1wbGUsCi0gKiAgIFVfU1REX05TUSBzdHJpbmcgU3RyaW5nRnJvbVVuaWNvZGVTdHJpbmcoY29u
c3QgVW5pY29kZVN0cmluZyAmdW5pc3RyKTsKLSAqIEBkcmFmdCBJQ1UgNC4yCi0gKi8KLQotLyoq
Ci0gKiBcZGVmIFVfU1REX05TX1VTRQotICogVGhpcyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhhdCB0
aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQotICogc3RhbmRhcmQgKFNUTCkgbmFtZXNwYWNl
LgotICogRWl0aGVyICJ1c2luZyBuYW1lc3BhY2Ugc3RkOyIgb3IgZW1wdHkuCi0gKiBAZHJhZnQg
SUNVIDQuMgotICovCi0jaWZuZGVmIFVfU1REX05TUQotIyAgIGlmIFVfSEFWRV9OQU1FU1BBQ0UK
LSMgICAgICAgZGVmaW5lIFVfU1REX05TIHN0ZAotIyAgICAgICBkZWZpbmUgVV9TVERfTlNRIFVf
U1REX05TOjoKLSMgICAgICAgZGVmaW5lIFVfU1REX05TX1VTRSB1c2luZyBuYW1lc3BhY2UgVV9T
VERfTlM7Ci0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9TVERfTlMKLSMgICAgICAgZGVmaW5l
IFVfU1REX05TUQotIyAgICAgICBkZWZpbmUgVV9TVERfTlNfVVNFCi0jICAgZW5kaWYKLSNlbmRp
ZgotCiAjZW5kaWYgIC8vIFVfSEFWRV9TVERfU1RSSU5HCiAKICNlbmRpZiAgLy8gX19TVERfU1RS
SU5HX0hfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdHJlbnVtLmggYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmVudW0uaAppbmRleCBjZTQyMTk1YTRmMmNiMjJjMmQz
NDRjYjlmN2JkZjg2N2E1NzA0M2ZhLi4zZGJlMjFjNmIyZGRkZmI4NjkzODdkNDhlZmQ2MjQzZGIz
OTE1YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmVudW0uaAorKysg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmVudW0uaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDcsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAx
MiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpA
QCAtMTE4LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICAgKgogICAgICAqIFN0YXJ0aW5nIHdpdGgg
SUNVIDIuOCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgc25leHQoKQogICAgICAq
IGFuZCBoYW5kbGVzIHRoZSBjb252ZXJzaW9uLgorICAgICAqIEVpdGhlciBuZXh0KCkgb3Igc25l
eHQoKSBtdXN0IGJlIGltcGxlbWVudGVkIGRpZmZlcmVudGx5IGJ5IGEgc3ViY2xhc3MuCiAgICAg
ICoKICAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlLgogICAgICAqIEBwYXJhbSBy
ZXN1bHRMZW5ndGggYSBwb2ludGVyIHRvIHJlY2VpdmUgdGhlIGxlbmd0aCwgY2FuIGJlIE5VTEwu
CkBAIC0xNjMsMTIgKzE2NCwxNiBAQCBwdWJsaWM6CiAgICAgICogPHA+SWYgdGhlIGl0ZXJhdG9y
IGlzIG91dCBvZiBzeW5jIHdpdGggaXRzIHNlcnZpY2UsIHN0YXR1cyBpcyBzZXQKICAgICAgKiB0
byBVX0VOVU1fT1VUX09GX1NZTkNfRVJST1IgYW5kIE5VTEwgaXMgcmV0dXJuZWQuPC9wPgogICAg
ICAqCisgICAgICogU3RhcnRpbmcgd2l0aCBJQ1UgMi44LCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBjYWxscyBuZXh0KCkKKyAgICAgKiBhbmQgaGFuZGxlcyB0aGUgY29udmVyc2lvbi4KKyAg
ICAgKiBFaXRoZXIgbmV4dCgpIG9yIHNuZXh0KCkgbXVzdCBiZSBpbXBsZW1lbnRlZCBkaWZmZXJl
bnRseSBieSBhIHN1YmNsYXNzLgorICAgICAqCiAgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgZXJy
b3IgY29kZS4KICAgICAgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgc3RyaW5nLCBvciBOVUxM
LgogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi40IAogICAgICAqLwotICAgIHZpcnR1YWwg
Y29uc3QgVW5pY29kZVN0cmluZyogc25leHQoVUVycm9yQ29kZSYgc3RhdHVzKSA9IDA7CisgICAg
dmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nKiBzbmV4dChVRXJyb3JDb2RlJiBzdGF0dXMpOwog
CiAgICAgLyoqCiAgICAgICogPHA+UmVzZXRzIHRoZSBpdGVyYXRvci4gIFRoaXMgcmUtZXN0YWJs
aXNoZXMgc3luYyB3aXRoIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9z
dHJpbmdwaWVjZS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zdHJpbmdwaWVjZS5oCmluZGV4
IDc5ZDVhMDUwZWM3NDc1ZTliZGRmY2M1YTBhOTUyYzk2ZjIzZTI4YmMuLmIyOTU3MWQ0YWRiYmRk
OWQ2ZDgzMmFhZWIwZjk3NjhiMjQxNjFhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvc3RyaW5ncGllY2UuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3N0cmluZ3Bp
ZWNlLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTAsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKKy8vIENvcHlyaWdodCAoQykgMjAwOS0yMDEzLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAvLyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgogLy8KIC8vIENvcHlyaWdodCAyMDAxIGFuZCBvbndhcmRzIEdvb2ds
ZSBJbmMuCkBAIC03MSw3ICs3MSw3IEBAIGNsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdQaWVjZSA6
IHB1YmxpYyBVTWVtb3J5IHsKICAgICogQ29uc3RydWN0cyBmcm9tIGEgc3RkOjpzdHJpbmcuCiAg
ICAqIEBzdGFibGUgSUNVIDQuMgogICAgKi8KLSAgU3RyaW5nUGllY2UoY29uc3QgVV9TVERfTlNR
IHN0cmluZyYgc3RyKQorICBTdHJpbmdQaWVjZShjb25zdCBzdGQ6OnN0cmluZyYgc3RyKQogICAg
IDogcHRyXyhzdHIuZGF0YSgpKSwgbGVuZ3RoXyhzdGF0aWNfY2FzdDxpbnQzMl90PihzdHIuc2l6
ZSgpKSkgeyB9CiAjZW5kaWYKICAgLyoqCkBAIC0xMzYsMTYgKzEzNiwxNiBAQCBjbGFzcyBVX0NP
TU1PTl9BUEkgU3RyaW5nUGllY2UgOiBwdWJsaWMgVU1lbW9yeSB7CiAKICAgLyoqCiAgICAqIFJl
c2V0IHRoZSBzdHJpbmdwaWVjZSB0byByZWZlciB0byBuZXcgZGF0YS4KLSAgICogQHBhcmFtIGRh
dGEgcG9pbnRlciB0aGUgbmV3IHN0cmluZyBkYXRhLiAgTmVlZCBub3QgYmUgbnVsIHRlcm1pbmF0
ZWQuCisgICAqIEBwYXJhbSB4ZGF0YSBwb2ludGVyIHRoZSBuZXcgc3RyaW5nIGRhdGEuICBOZWVk
IG5vdCBiZSBudWwgdGVybWluYXRlZC4KICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIG9mIHRo
ZSBuZXcgZGF0YQotICAgKiBAaW50ZXJuYWwKKyAgICogQHN0YWJsZSBJQ1UgNC44CiAgICAqLwot
ICB2b2lkIHNldChjb25zdCBjaGFyKiBkYXRhLCBpbnQzMl90IGxlbikgeyBwdHJfID0gZGF0YTsg
bGVuZ3RoXyA9IGxlbjsgfQorICB2b2lkIHNldChjb25zdCBjaGFyKiB4ZGF0YSwgaW50MzJfdCBs
ZW4pIHsgcHRyXyA9IHhkYXRhOyBsZW5ndGhfID0gbGVuOyB9CiAKICAgLyoqCiAgICAqIFJlc2V0
IHRoZSBzdHJpbmdwaWVjZSB0byByZWZlciB0byBuZXcgZGF0YS4KICAgICogQHBhcmFtIHN0ciBh
IHBvaW50ZXIgdG8gYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuIAotICAgKiBAaW50ZXJuYWwKKyAg
ICogQHN0YWJsZSBJQ1UgNC44CiAgICAqLwogICB2b2lkIHNldChjb25zdCBjaGFyKiBzdHIpOwog
CkBAIC0xODMsNyArMTgzLDcgQEAgY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ1BpZWNlIDogcHVi
bGljIFVNZW1vcnkgewogICAgKiBNYXhpbXVtIGludGVnZXIsIHVzZWQgYXMgYSBkZWZhdWx0IHZh
bHVlIGZvciBzdWJzdHJpbmcgbWV0aG9kcy4KICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAqLwot
ICBzdGF0aWMgY29uc3QgaW50MzJfdCBucG9zID0gMHg3ZmZmZmZmZjsKKyAgc3RhdGljIGNvbnN0
IGludDMyX3QgbnBvczsgLy8gPSAweDdmZmZmZmZmOwogCiAgIC8qKgogICAgKiBSZXR1cm5zIGEg
c3Vic3RyaW5nIG9mIHRoaXMgU3RyaW5nUGllY2UuCkBAIC0yMDMsNyArMjAzLDcgQEAgY2xhc3Mg
VV9DT01NT05fQVBJIFN0cmluZ1BpZWNlIDogcHVibGljIFVNZW1vcnkgewogICogQHBhcmFtIHgg
VGhlIGZpcnN0IFN0cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcGFyYW0geSBUaGUgc2Vjb25k
IFN0cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBk
YXRhIGlzIGVxdWFsCi0gKiBAaW50ZXJuYWwKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCiBVX0VY
UE9SVCBVQm9vbCBVX0VYUE9SVDIgCiBvcGVyYXRvcj09KGNvbnN0IFN0cmluZ1BpZWNlJiB4LCBj
b25zdCBTdHJpbmdQaWVjZSYgeSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgb3BlcmF0b3I9PShjb25z
dCBTdHJpbmdQaWVjZSYgeCwgY29uc3QgU3RyaW5nUGllY2UmIHkpOwogICogQHBhcmFtIHggVGhl
IGZpcnN0IFN0cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcGFyYW0geSBUaGUgc2Vjb25kIFN0
cmluZ1BpZWNlIHRvIGNvbXBhcmUuCiAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBkYXRh
IGlzIG5vdCBlcXVhbAotICogQGludGVybmFsCisgKiBAc3RhYmxlIElDVSA0LjgKICAqLwogaW5s
aW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nUGllY2UmIHgsIGNvbnN0IFN0cmluZ1Bp
ZWNlJiB5KSB7CiAgIHJldHVybiAhKHggPT0geSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3VjaGFyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaGFyLmgKaW5kZXgg
OTNhYTY2MzIwNmIyYjRjNDgyMGI4MmNmYzY2Yzg0YTJkMDBhZTliMi4uMWE1YjcxYjQ2M2U0ODM2
ZWU1MTM1MmJhYWM2YjRlNGM3MjYzZjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91Y2hhci5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNoYXIuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTAs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMzks
NyArMzksNyBAQCBVX0NERUNMX0JFR0lOCiAgKiBAc2VlIHVfZ2V0VW5pY29kZVZlcnNpb24KICAq
IEBzdGFibGUgSUNVIDIuMAogICovCi0jZGVmaW5lIFVfVU5JQ09ERV9WRVJTSU9OICI2LjAiCisj
ZGVmaW5lIFVfVU5JQ09ERV9WRVJTSU9OICI2LjMiCiAKIC8qKgogICogXGZpbGUKQEAgLTEzOSwx
OSArMTM5LDYgQEAgVV9DREVDTF9CRUdJTgogICovCiAjZGVmaW5lIFVfTUFTSyh4KSAoKHVpbnQz
Ml90KTE8PCh4KSkKIAotLyoKLSAqICEhIE5vdGU6IFNldmVyYWwgY29tbWVudHMgaW4gdGhpcyBm
aWxlIGFyZSBtYWNoaW5lLXJlYWQgYnkgdGhlCi0gKiBnZW5wbmFtZSB0b29sLiAgVGhlc2UgY29t
bWVudHMgZGVzY3JpYmUgdGhlIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4KLSAqIGljdSBlbnVtIGNv
bnN0YW50cyBhbmQgVUNEIGVudGl0aWVzLiAgRG8gbm90IGRlbGV0ZSB0aGVtLiAgVXBkYXRlCi0g
KiB0aGVzZSBjb21tZW50cyBhcyBuZWVkZWQuCi0gKgotICogQW55IGNvbW1lbnQgb2YgdGhlIGZv
cm0gIi8gKltuYW1lXSogLyIgKHNwYWNlcyBhZGRlZCkgaXMgc3VjaAotICogYSBjb21tZW50Lgot
ICoKLSAqIFRoZSBVX0pHXyogYW5kIFVfR0NfKl9NQVNLIGNvbnN0YW50cyBhcmUgbWF0Y2hlZCBi
eSB0aGVpciBzeW1ib2xpYwotICogbmFtZSwgd2hpY2ggbXVzdCBtYXRjaCBQcm9wZXJ0eVZhbHVl
QWxpYXNlcy50eHQuCi0gKi8KLQogLyoqCiAgKiBTZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmlj
b2RlIHByb3BlcnRpZXMuCiAgKiBUaGVzZSBjb25zdGFudHMgYXJlIHVzZWQgaW4gZnVuY3Rpb25z
IGxpa2UgdV9oYXNCaW5hcnlQcm9wZXJ0eSB0byBzZWxlY3QKQEAgLTE3Miw5ICsxNTksMTEgQEAg
VV9DREVDTF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4xCiAgKi8KIHR5cGVkZWYgZW51bSBVUHJv
cGVydHkgewotICAgIC8qICBTZWUgbm90ZSAhIS4gIENvbW1lbnRzIG9mIHRoZSBmb3JtICJCaW5h
cnkgcHJvcGVydHkgRGFzaCIsCi0gICAgICAgICJFbnVtZXJhdGVkIHByb3BlcnR5IFNjcmlwdCIs
ICJEb3VibGUgcHJvcGVydHkgTnVtZXJpY19WYWx1ZSIsCi0gICAgICAgIGFuZCAiU3RyaW5nIHBy
b3BlcnR5IEFnZSIgYXJlIHJlYWQgYnkgZ2VucG5hbWUuICovCisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVUHJvcGVydHkgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAg
ICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVDSEFSXzxVbmljb2RlIHByb3Bl
cnR5IG5hbWU+PTxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qICBOb3RlOiBQbGFjZSBVQ0hB
Ul9BTFBIQUJFVElDIGJlZm9yZSBVQ0hBUl9CSU5BUllfU1RBUlQgc28gdGhhdAogICAgIGRlYnVn
Z2VycyBkaXNwbGF5IFVDSEFSX0FMUEhBQkVUSUMgYXMgdGhlIHN5bWJvbGljIG5hbWUgZm9yIDAs
CkBAIC00OTEsOCArNDgwLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgICAgICAo
aHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQogICAgICAgICBSZXR1cm5zIFVX
b3JkQnJlYWtWYWx1ZXMgdmFsdWVzLiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICBVQ0hBUl9XT1JE
X0JSRUFLPTB4MTAxNCwKKyAgICAvKiogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9C
cmFja2V0X1R5cGUgKG5ldyBpbiBVbmljb2RlIDYuMykuCisgICAgICAgIFVzZWQgaW4gVUFYICM5
OiBVbmljb2RlIEJpZGlyZWN0aW9uYWwgQWxnb3JpdGhtCisgICAgICAgIChodHRwOi8vd3d3LnVu
aWNvZGUub3JnL3JlcG9ydHMvdHI5LykKKyAgICAgICAgUmV0dXJucyBVQmlkaVBhaXJlZEJyYWNr
ZXRUeXBlIHZhbHVlcy4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVQ0hBUl9CSURJX1BBSVJFRF9C
UkFDS0VUX1RZUEU9MHgxMDE1LAogICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0
YW50IGZvciBlbnVtZXJhdGVkL2ludGVnZXIgVW5pY29kZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElD
VSAyLjIgKi8KLSAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE1LAorICAgIFVDSEFSX0lOVF9MSU1J
VD0weDEwMTYsCiAKICAgICAvKiogQml0bWFzayBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5X01h
c2suCiAgICAgICAgIFRoaXMgaXMgdGhlIEdlbmVyYWxfQ2F0ZWdvcnkgcHJvcGVydHkgcmV0dXJu
ZWQgYXMgYSBiaXQgbWFzay4KQEAgLTUyNyw5ICs1MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVQcm9w
ZXJ0eSB7CiAgICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBDYXNlX0ZvbGRpbmcuCiAgICAgICAgIENv
cnJlc3BvbmRzIHRvIHVfc3RyRm9sZENhc2UgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQg
Ki8KICAgICBVQ0hBUl9DQVNFX0ZPTERJTkc9MHg0MDAyLAotICAgIC8qKiBTdHJpbmcgcHJvcGVy
dHkgSVNPX0NvbW1lbnQuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0SVNPQ29tbWVudC4g
QHN0YWJsZSBJQ1UgMi40ICovCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorICAgIC8q
KiBEZXByZWNhdGVkIHN0cmluZyBwcm9wZXJ0eSBJU09fQ29tbWVudC4KKyAgICAgICAgQ29ycmVz
cG9uZHMgdG8gdV9nZXRJU09Db21tZW50LiBAZGVwcmVjYXRlZCBJQ1UgNDkgKi8KICAgICBVQ0hB
Ul9JU09fQ09NTUVOVD0weDQwMDMsCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAq
LwogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgTG93ZXJjYXNlX01hcHBpbmcuCiAgICAgICAgIENv
cnJlc3BvbmRzIHRvIHVfc3RyVG9Mb3dlciBpbiB1c3RyaW5nLmguIEBzdGFibGUgSUNVIDIuNCAq
LwogICAgIFVDSEFSX0xPV0VSQ0FTRV9NQVBQSU5HPTB4NDAwNCwKQEAgLTU1MSwyOSArNTQ3LDMz
IEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVGl0
bGVjYXNlX01hcHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9UaXRsZSBpbiB1
c3RyaW5nLmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1RJVExFQ0FTRV9NQVBQSU5H
PTB4NDAwQSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAgICAgLyoqIFN0cmluZyBw
cm9wZXJ0eSBVbmljb2RlXzFfTmFtZS4KLSAgICAgICAgQ29ycmVzcG9uZHMgdG8gdV9jaGFyTmFt
ZS4gQHN0YWJsZSBJQ1UgMi40ICovCisgICAgICAgIFRoaXMgcHJvcGVydHkgaXMgb2YgbGl0dGxl
IHByYWN0aWNhbCB2YWx1ZS4KKyAgICAgICAgQmVnaW5uaW5nIHdpdGggSUNVIDQ5LCBJQ1UgQVBJ
cyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIHByb3BlcnR5LgorICAgICAgICBDb3Jy
ZXNwb25kcyB0byB1X2NoYXJOYW1lKFVfVU5JQ09ERV8xMF9DSEFSX05BTUUpLiBAZGVwcmVjYXRl
ZCBJQ1UgNDkgKi8KICAgICBVQ0hBUl9VTklDT0RFXzFfTkFNRT0weDQwMEIsCisjZW5kaWYgIC8q
IFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVXBwZXJj
YXNlX01hcHBpbmcuCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfc3RyVG9VcHBlciBpbiB1c3Ry
aW5nLmguIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX1VQUEVSQ0FTRV9NQVBQSU5HPTB4
NDAwQywKKyAgICAvKiogU3RyaW5nIHByb3BlcnR5IEJpZGlfUGFpcmVkX0JyYWNrZXQgKG5ldyBp
biBVbmljb2RlIDYuMykuCisgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0QmlkaVBhaXJlZEJy
YWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVD0w
eDQwMEQsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIHN0cmlu
ZyBVbmljb2RlIHByb3BlcnRpZXMuIEBzdGFibGUgSUNVIDIuNCAqLwotICAgIFVDSEFSX1NUUklO
R19MSU1JVD0weDQwMEQsCisgICAgVUNIQVJfU1RSSU5HX0xJTUlUPTB4NDAwRSwKIAotICAgIC8q
KiBQcm92aXNpb25hbCBwcm9wZXJ0eSBTY3JpcHRfRXh0ZW5zaW9ucyAobmV3IGluIFVuaWNvZGUg
Ni4wKS4KLSAgICAgICAgQXMgYSBwcm92aXNpb25hbCBwcm9wZXJ0eSwgaXQgbWF5IGJlIG1vZGlm
aWVkIG9yIHJlbW92ZWQKLSAgICAgICAgaW4gZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBVbmljb2Rl
IFN0YW5kYXJkLCBhbmQgdGh1cyBpbiBJQ1UuCisgICAgLyoqIE1pc2NlbGxhbmVvdXMgcHJvcGVy
dHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCiAgICAgICAgIFNvbWUg
Y2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRzLgogICAgICAg
ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5pY29kZS5v
cmcvcmVwb3J0cy90cjI0Ly4KICAgICAgICAgQ29ycmVzcG9uZHMgdG8gdXNjcmlwdF9oYXNTY3Jp
cHQgYW5kIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyBpbiB1c2NyaXB0LmguCi0gICAgICAg
IEBkcmFmdCBJQ1UgNC42ICovCisgICAgICAgIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVDSEFS
X1NDUklQVF9FWFRFTlNJT05TPTB4NzAwMCwKLSAgICAvKiogRmlyc3QgY29uc3RhbnQgZm9yIFVu
aWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUgdHlwZXMuIEBkcmFmdCBJQ1UgNC42
ICovCisgICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHByb3BlcnRpZXMgd2l0aCB1
bnVzdWFsIHZhbHVlIHR5cGVzLiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9PVEhFUl9Q
Uk9QRVJUWV9TVEFSVD1VQ0hBUl9TQ1JJUFRfRVhURU5TSU9OUywKICAgICAvKiogT25lIG1vcmUg
dGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3Vh
bCB2YWx1ZSB0eXBlcy4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNiAqLworICAgICAqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgIFVDSEFSX09USEVSX1BST1BFUlRZX0xJTUlUPTB4NzAwMSwKLQogICAg
IC8qKiBSZXByZXNlbnRzIGEgbm9uZXhpc3RlbnQgb3IgaW52YWxpZCBwcm9wZXJ0eSBvciBwcm9w
ZXJ0eSB2YWx1ZS4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNIQVJfSU5WQUxJRF9DT0RFID0g
LTEKIH0gVVByb3BlcnR5OwpAQCAtNTg1LDcgKzU4NSwxMiBAQCB0eXBlZGVmIGVudW0gVVByb3Bl
cnR5IHsKICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyQ2F0ZWdvcnkKIHsKLSAgICAvKiogU2VlIG5v
dGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQ24iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAq
LworICAgIC8qCisgICAgICogTm90ZTogVUNoYXJDYXRlZ29yeSBjb25zdGFudHMgYW5kIHRoZWly
IEFQSSBjb21tZW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1h
dGNoZXMgcGFpcnMgb2YgbGluZXMgbGlrZQorICAgICAqICAgICAvICoqIDxVbmljb2RlIDItbGV0
dGVyIEdlbmVyYWxfQ2F0ZWdvcnkgdmFsdWU+IGNvbW1lbnQuLi4gKiAvCisgICAgICogICAgIFVf
PFtBLVpfXSs+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAgICAgLyoqIE5vbi1jYXRlZ29yeSBm
b3IgdW5hc3NpZ25lZCBhbmQgbm9uLWNoYXJhY3RlciBjb2RlIHBvaW50cy4gQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVV9VTkFTU0lHTkVEICAgICAgICAgICAgICA9IDAsCkBAIC03NzAsNyArNzc1
LDEyIEBAIHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiAgKiBAc3RhYmxlIElDVSAyLjAKICAq
LwogdHlwZWRlZiBlbnVtIFVDaGFyRGlyZWN0aW9uIHsKLSAgICAvKiogU2VlIG5vdGUgISEuICBD
b21tZW50cyBvZiB0aGUgZm9ybSAiRU4iIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8q
CisgICAgICogTm90ZTogVUNoYXJEaXJlY3Rpb24gY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29t
bWVudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBh
aXJzIG9mIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAxLi4zLWxldHRlciBC
aWRpX0NsYXNzIHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10rPiA9
IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBMIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVfTEVGVF9UT19SSUdIVCAgICAgICAgICAgICAgID0gMCwKQEAgLTgxMCwyMSArODIwLDU3IEBA
IHR5cGVkZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7CiAgICAgVV9ESVJfTk9OX1NQQUNJTkdfTUFS
SyAgICAgICAgPSAxNywKICAgICAvKiogQk4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9CT1VO
REFSWV9ORVVUUkFMICAgICAgICAgICAgPSAxOCwKKyAgICAvKiogRlNJIEBzdGFibGUgSUNVIDUy
ICovCisgICAgVV9GSVJTVF9TVFJPTkdfSVNPTEFURSAgICAgICAgPSAxOSwKKyAgICAvKiogTFJJ
IEBzdGFibGUgSUNVIDUyICovCisgICAgVV9MRUZUX1RPX1JJR0hUX0lTT0xBVEUgICAgICAgPSAy
MCwKKyAgICAvKiogUkxJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9SSUdIVF9UT19MRUZUX0lT
T0xBVEUgICAgICAgPSAyMSwKKyAgICAvKiogUERJIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9Q
T1BfRElSRUNUSU9OQUxfSVNPTEFURSAgICAgPSAyMiwKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4w
ICovCiAgICAgVV9DSEFSX0RJUkVDVElPTl9DT1VOVAogfSBVQ2hhckRpcmVjdGlvbjsKIAogLyoq
CisgKiBCaWRpIFBhaXJlZCBCcmFja2V0IFR5cGUgY29uc3RhbnRzLgorICoKKyAqIEBzZWUgVUNI
QVJfQklESV9QQUlSRURfQlJBQ0tFVF9UWVBFCisgKiBAc3RhYmxlIElDVSA1MgorICovCit0eXBl
ZGVmIGVudW0gVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBV
QmlkaVBhaXJlZEJyYWNrZXRUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNk
LnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0JQVF88VW5p
Y29kZSBCaWRpX1BhaXJlZF9CcmFja2V0X1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IC8qKiBOb3QgYSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9O
T05FLAorICAgIC8qKiBPcGVuIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1MiAqLworICAg
IFVfQlBUX09QRU4sCisgICAgLyoqIENsb3NlIHBhaXJlZCBicmFja2V0LiBAc3RhYmxlIElDVSA1
MiAqLworICAgIFVfQlBUX0NMT1NFLAorICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgIFVf
QlBUX0NPVU5UIC8qIDMgKi8KK30gVUJpZGlQYWlyZWRCcmFja2V0VHlwZTsKKworLyoqCiAgKiBD
b25zdGFudHMgZm9yIFVuaWNvZGUgYmxvY2tzLCBzZWUgdGhlIFVuaWNvZGUgRGF0YSBmaWxlIEJs
b2Nrcy50eHQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBlbnVtIFVCbG9ja0NvZGUgeworICAg
IC8qCisgICAgICogTm90ZTogVUJsb2NrQ29kZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVw
YXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVUJM
T0NLXzxVbmljb2RlIEJsb2NrIHZhbHVlIG5hbWU+ID0gPGludGVnZXI+LAorICAgICAqLwogCiAg
ICAgLyoqIE5ldyBOb19CbG9jayB2YWx1ZSBpbiBVbmljb2RlIDQuIEBzdGFibGUgSUNVIDIuNiAq
LwogICAgIFVCTE9DS19OT19CTE9DSyA9IDAsIC8qW25vbmVdKi8gLyogU3BlY2lhbCByYW5nZSBp
bmRpY2F0aW5nIE5vX0Jsb2NrICovCiAKICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAg
VUJMT0NLX0JBU0lDX0xBVElOID0gMSwgLypbMDAwMF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICBV
QkxPQ0tfQkFTSUNfTEFUSU4gPSAxLCAvKlswMDAwXSovCiAKICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVUJMT0NLX0xBVElOXzFfU1VQUExFTUVOVD0yLCAvKlswMDgwXSovCkBAIC0x
MDYxLDcgKzExMDcsNyBAQCBlbnVtIFVCbG9ja0NvZGUgewogICAgIFVCTE9DS19MT1dfU1VSUk9H
QVRFUyA9NzcsIC8qW0RDMDBdKi8KIAogICAgIC8qKgotICAgICAqIFNhbWUgYXMgVUJMT0NLX1BS
SVZBVEVfVVNFX0FSRUEuCisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0UuCiAgICAg
ICogVW50aWwgVW5pY29kZSAzLjEuMSwgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMg
IlByaXZhdGUgVXNlIiwKICAgICAgKiBhbmQgbXVsdGlwbGUgY29kZSBwb2ludCByYW5nZXMgaGFk
IHRoaXMgYmxvY2suCiAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRo
ZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiBhbmQKQEAgLTEwNjksOSArMTExNSw5IEBA
IGVudW0gVUJsb2NrQ29kZSB7CiAgICAgICoKICAgICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICAg
Ki8KLSAgICBVQkxPQ0tfUFJJVkFURV9VU0UgPSA3OCwKKyAgICBVQkxPQ0tfUFJJVkFURV9VU0Vf
QVJFQSA9NzgsIC8qW0UwMDBdKi8KICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklW
QVRFX1VTRS4KKyAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLgogICAgICAq
IFVudGlsIFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQ
cml2YXRlIFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0
aGlzIGJsb2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUg
Qk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDc5LDcgKzExMjUsNyBAQCBl
bnVtIFVCbG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICov
Ci0gICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPVVCTE9DS19QUklWQVRFX1VTRSwgLypbRTAw
MF0qLworICAgIFVCTE9DS19QUklWQVRFX1VTRSA9IFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLAog
CiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElU
WV9JREVPR1JBUEhTID03OSwgLypbRjkwMF0qLwpAQCAtMTExMSwzMyArMTE1NywzMyBAQCBlbnVt
IFVCbG9ja0NvZGUgewogICAgIC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSAzLjEgKi8KIAogICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfT0xEX0lUQUxJQyA9IDg4ICAsIC8q
WzEwMzAwXSovCisgICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCwgLypbMTAzMDBdKi8KICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0dPVEhJQyA9IDg5ICwgLypbMTAzMzBd
Ki8KKyAgICBVQkxPQ0tfR09USElDID0gODksIC8qWzEwMzMwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwotICAgIFVCTE9DS19ERVNFUkVUID0gOTAgLCAvKlsxMDQwMF0qLworICAgIFVC
TE9DS19ERVNFUkVUID0gOTAsIC8qWzEwNDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAq
LwotICAgIFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEgLCAvKlsxRDAwMF0q
LworICAgIFVCTE9DS19CWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTID0gOTEsIC8qWzFEMDAwXSov
CiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMg
PSA5MiAsIC8qWzFEMTAwXSovCisgICAgVUJMT0NLX01VU0lDQUxfU1lNQk9MUyA9IDkyLCAvKlsx
RDEwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTUFUSEVNQVRJ
Q0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTID0gOTMgICwgLypbMUQ0MDBdKi8KKyAgICBVQkxPQ0tf
TUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTID0gOTMsIC8qWzFENDAwXSovCiAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DSktfVU5JRklFRF9JREVPR1JBUEhT
X0VYVEVOU0lPTl9CICA9IDk0ICwgLypbMjAwMDBdKi8KKyAgICBVQkxPQ0tfQ0pLX1VOSUZJRURf
SURFT0dSQVBIU19FWFRFTlNJT05fQiAgPSA5NCwgLypbMjAwMDBdKi8KICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQ
UExFTUVOVCA9IDk1ICwgLypbMkY4MDBdKi8KKyAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlf
SURFT0dSQVBIU19TVVBQTEVNRU5UID0gOTUsIC8qWzJGODAwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwogICAgIFVCTE9DS19UQUdTID0gOTYsIC8qW0UwMDAwXSovCiAKICAgICAvKiBO
ZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4yICovCiAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMy4wICAq
LworICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UID0gOTcsIC8qWzA1MDBdKi8KICAgICAv
KioKICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50
YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCiAgICAgICogQHN0YWJsZSBJQ1Ug
Mi4yCiAgICAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlRBUlkgPSA5NywgCi0g
ICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KLSAgICBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVO
VCA9IFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZLCAvKlswNTAwXSovCisgICAgVUJMT0NL
X0NZUklMTElDX1NVUFBMRU1FTlRBUlkgPSBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCwgCiAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVCTE9DS19UQUdBTE9HID0gOTgsIC8qWzE3
MDBdKi8KICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCkBAIC0xMzgxLDggKzE0MjcsMzMgQEAg
ZW51bSBVQmxvY2tDb2RlIHsKICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUJMT0NL
X0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0QgPSAyMDksIC8qWzJCNzQwXSovCiAK
LSAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX0NPVU5UID0gMjEwLAorICAg
IC8qIE5ldyBibG9ja3MgaW4gVW5pY29kZSA2LjEgKi8KKworICAgIC8qKiBAc3RhYmxlIElDVSA0
OSAqLworICAgIFVCTE9DS19BUkFCSUNfRVhURU5ERURfQSA9IDIxMCwgLypbMDhBMF0qLworICAg
IC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19BUkFCSUNfTUFUSEVNQVRJQ0FMX0FM
UEhBQkVUSUNfU1lNQk9MUyA9IDIxMSwgLypbMUVFMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfQ0hBS01BID0gMjEyLCAvKlsxMTEwMF0qLworICAgIC8qKiBAc3Rh
YmxlIElDVSA0OSAqLworICAgIFVCTE9DS19NRUVURUlfTUFZRUtfRVhURU5TSU9OUyA9IDIxMywg
LypbQUFFMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVCTE9DS19NRVJPSVRJ
Q19DVVJTSVZFID0gMjE0LCAvKlsxMDlBMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLwor
ICAgIFVCTE9DS19NRVJPSVRJQ19ISUVST0dMWVBIUyA9IDIxNSwgLypbMTA5ODBdKi8KKyAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUlBTyA9IDIxNiwgLypbMTZGMDBdKi8K
KyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU0hBUkFEQSA9IDIxNywgLypb
MTExODBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU09SQV9TT01Q
RU5HID0gMjE4LCAvKlsxMTBEMF0qLworICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgIFVC
TE9DS19TVU5EQU5FU0VfU1VQUExFTUVOVCA9IDIxOSwgLypbMUNDMF0qLworICAgIC8qKiBAc3Rh
YmxlIElDVSA0OSAqLworICAgIFVCTE9DS19UQUtSSSA9IDIyMCwgLypbMTE2ODBdKi8KKworICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBVQkxPQ0tfQ09VTlQgPSAyMjEsCiAKICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUJMT0NLX0lOVkFMSURfQ09ERT0tMQpAQCAtMTM5
OSw3ICsxNDcwLDEzIEBAIHR5cGVkZWYgZW51bSBVQmxvY2tDb2RlIFVCbG9ja0NvZGU7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7Ci0gICAg
VV9FQV9ORVVUUkFMLCAgIC8qW05dKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBO
b3RlOiBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2Qu
cHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfRUFfPFVuaWNv
ZGUgRWFzdF9Bc2lhbl9XaWR0aCB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9FQV9ORVVU
UkFMLCAgIC8qW05dKi8KICAgICBVX0VBX0FNQklHVU9VUywgLypbQV0qLwogICAgIFVfRUFfSEFM
RldJRFRILCAvKltIXSovCiAgICAgVV9FQV9GVUxMV0lEVEgsIC8qW0ZdKi8KQEAgLTE0MDcsMTAg
KzE0ODQsNiBAQCB0eXBlZGVmIGVudW0gVUVhc3RBc2lhbldpZHRoIHsKICAgICBVX0VBX1dJREUs
ICAgICAgLypbV10qLwogICAgIFVfRUFfQ09VTlQKIH0gVUVhc3RBc2lhbldpZHRoOwotLyoKLSAq
IEltcGxlbWVudGF0aW9uIG5vdGU6Ci0gKiBLZWVwIFVFYXN0QXNpYW5XaWR0aCBjb25zdGFudCB2
YWx1ZXMgaW4gc3luYyB3aXRoIG5hbWVzIGxpc3QgaW4gZ2VucHJvcHMvcHJvcHMyLmMuCi0gKi8K
IAogLyoqCiAgKiBTZWxlY3RvciBjb25zdGFudHMgZm9yIHVfY2hhck5hbWUoKS4KQEAgLTE0MjQs
MTAgKzE0OTcsMjEgQEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgKiBAc3RhYmxl
IElDVSAyLjAKICAqLwogdHlwZWRlZiBlbnVtIFVDaGFyTmFtZUNob2ljZSB7CisgICAgLyoqIFVu
aWNvZGUgY2hhcmFjdGVyIG5hbWUgKE5hbWUgcHJvcGVydHkpLiBAc3RhYmxlIElDVSAyLjAgKi8K
ICAgICBVX1VOSUNPREVfQ0hBUl9OQU1FLAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkg
CisgICAgLyoqCisgICAgICogVGhlIFVuaWNvZGVfMV9OYW1lIHByb3BlcnR5IHZhbHVlIHdoaWNo
IGlzIG9mIGxpdHRsZSBwcmFjdGljYWwgdmFsdWUuCisgICAgICogQmVnaW5uaW5nIHdpdGggSUNV
IDQ5LCBJQ1UgQVBJcyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvciB0aGlzIG5hbWUgY2hvaWNl
LgorICAgICAqIEBkZXByZWNhdGVkIElDVSA0OQorICAgICAqLwogICAgIFVfVU5JQ09ERV8xMF9D
SEFSX05BTUUsCi0gICAgVV9FWFRFTkRFRF9DSEFSX05BTUUsCi0gICAgVV9DSEFSX05BTUVfQUxJ
QVMsICAgICAgICAgIC8qKjwgQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBz
dGFibGUgSUNVIDQuNCAqLworI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKyAg
ICAvKiogU3RhbmRhcmQgb3Igc3ludGhldGljIGNoYXJhY3RlciBuYW1lLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBVX0VYVEVOREVEX0NIQVJfTkFNRSA9IFVfVU5JQ09ERV9DSEFSX05BTUUrMiwK
KyAgICAvKiogQ29ycmVjdGVkIG5hbWUgZnJvbSBOYW1lQWxpYXNlcy50eHQuIEBzdGFibGUgSUNV
IDQuNCAqLworICAgIFVfQ0hBUl9OQU1FX0FMSUFTLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVX0NIQVJfTkFNRV9DSE9JQ0VfQ09VTlQKIH0gVUNoYXJOYW1lQ2hvaWNlOwogCkBA
IC0xNDU3LDcgKzE1NDEsMTMgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eU5hbWVDaG9pY2Ugewog
ICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUg
ewotICAgIFVfRFRfTk9ORSwgICAgICAgICAgICAgIC8qW25vbmVdKi8gLypTZWUgbm90ZSAhISov
CisgICAgLyoKKyAgICAgKiBOb3RlOiBVRGVjb21wb3NpdGlvblR5cGUgY29uc3RhbnRzIGFyZSBw
YXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisg
ICAgICogICAgIFVfRFRfPFVuaWNvZGUgRGVjb21wb3NpdGlvbl9UeXBlIHZhbHVlIG5hbWU+Cisg
ICAgICovCisKKyAgICBVX0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovCiAgICAgVV9E
VF9DQU5PTklDQUwsICAgICAgICAgLypbY2FuXSovCiAgICAgVV9EVF9DT01QQVQsICAgICAgICAg
ICAgLypbY29tXSovCiAgICAgVV9EVF9DSVJDTEUsICAgICAgICAgICAgLypbZW5jXSovCkBAIC0x
NDg1LDcgKzE1NzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVEZWNvbXBvc2l0aW9uVHlwZSB7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlwZSB7Ci0gICAgVV9K
VF9OT05fSk9JTklORywgICAgICAgLypbVV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAg
ICAqIE5vdGU6IFVKb2luaW5nVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVj
ZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9KVF88VW5p
Y29kZSBKb2luaW5nX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfSlRfTk9OX0pP
SU5JTkcsICAgICAgIC8qW1VdKi8KICAgICBVX0pUX0pPSU5fQ0FVU0lORywgICAgICAvKltDXSov
CiAgICAgVV9KVF9EVUFMX0pPSU5JTkcsICAgICAgLypbRF0qLwogICAgIFVfSlRfTEVGVF9KT0lO
SU5HLCAgICAgIC8qW0xdKi8KQEAgLTE1MDEsNiArMTU5NywxMiBAQCB0eXBlZGVmIGVudW0gVUpv
aW5pbmdUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVUpvaW5p
bmdHcm91cCB7CisgICAgLyoKKyAgICAgKiBOb3RlOiBVSm9pbmluZ0dyb3VwIGNvbnN0YW50cyBh
cmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlr
ZQorICAgICAqICAgICBVX0pHXzxVbmljb2RlIEpvaW5pbmdfR3JvdXAgdmFsdWUgbmFtZT4KKyAg
ICAgKi8KKwogICAgIFVfSkdfTk9fSk9JTklOR19HUk9VUCwKICAgICBVX0pHX0FJTiwKICAgICBV
X0pHX0FMQVBILApAQCAtMTU1OSw2ICsxNjYxLDcgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nR3Jv
dXAgewogICAgIFVfSkdfQlVSVVNIQVNLSV9ZRUhfQkFSUkVFLCAvKio8IEBzdGFibGUgSUNVIDQu
MCAqLwogICAgIFVfSkdfRkFSU0lfWUVILCAvKio8IEBzdGFibGUgSUNVIDQuNCAqLwogICAgIFVf
SkdfTllBLCAgICAgICAvKio8IEBzdGFibGUgSUNVIDQuNCAqLworICAgIFVfSkdfUk9ISU5HWUFf
WUVILCAgLyoqPCBAc3RhYmxlIElDVSA0OSAqLwogICAgIFVfSkdfQ09VTlQKIH0gVUpvaW5pbmdH
cm91cDsKIApAQCAtMTU2OSw3ICsxNjcyLDEzIEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3Vw
IHsKICAqIEBzdGFibGUgSUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVUdyYXBoZW1lQ2x1c3Rl
ckJyZWFrIHsKLSAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhdKi8gLypTZWUg
bm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgY29u
c3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBs
aW5lcyBsaWtlCisgICAgICogICAgIFVfR0NCXzxVbmljb2RlIEdyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfR0NCX09USEVSID0gMCwgICAgICAgICAg
ICAvKltYWF0qLwogICAgIFVfR0NCX0NPTlRST0wgPSAxLCAgICAgICAgICAvKltDTl0qLwogICAg
IFVfR0NCX0NSID0gMiwgICAgICAgICAgICAgICAvKltDUl0qLwogICAgIFVfR0NCX0VYVEVORCA9
IDMsICAgICAgICAgICAvKltFWF0qLwpAQCAtMTU4MSw3ICsxNjkwLDggQEAgdHlwZWRlZiBlbnVt
IFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7CiAgICAgVV9HQ0JfViA9IDksICAgICAgICAgICAgICAg
IC8qW1ZdKi8KICAgICBVX0dDQl9TUEFDSU5HX01BUksgPSAxMCwgICAgLypbU01dKi8gLyogZnJv
bSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA1LjEvSUNVIDQuMCAqLwogICAgIFVfR0NCX1BSRVBF
TkQgPSAxMSwgICAgICAgICAvKltQUF0qLwotICAgIFVfR0NCX0NPVU5UID0gMTIKKyAgICBVX0dD
Ql9SRUdJT05BTF9JTkRJQ0FUT1IgPSAxMiwgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYu
Mi9JQ1UgNTAgKi8KKyAgICBVX0dDQl9DT1VOVCA9IDEzCiB9IFVHcmFwaGVtZUNsdXN0ZXJCcmVh
azsKIAogLyoqCkBAIC0xNTkyLDcgKzE3MDIsMTMgQEAgdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNs
dXN0ZXJCcmVhayB7CiAgKiBAc3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVXb3Jk
QnJlYWtWYWx1ZXMgewotICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAv
KlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVXb3JkQnJlYWtWYWx1ZXMgY29u
c3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBs
aW5lcyBsaWtlCisgICAgICogICAgIFVfV0JfPFVuaWNvZGUgV29yZF9CcmVhayB2YWx1ZSBuYW1l
PgorICAgICAqLworCisgICAgVV9XQl9PVEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovCiAg
ICAgVV9XQl9BTEVUVEVSID0gMSwgICAgICAgICAgIC8qW0xFXSovCiAgICAgVV9XQl9GT1JNQVQg
PSAyLCAgICAgICAgICAgIC8qW0ZPXSovCiAgICAgVV9XQl9LQVRBS0FOQSA9IDMsICAgICAgICAg
IC8qW0tBXSovCkBAIC0xNjA1LDcgKzE3MjEsMTEgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtW
YWx1ZXMgewogICAgIFVfV0JfTEYgPSAxMCwgICAgICAgICAgICAgICAvKltMRl0qLwogICAgIFVf
V0JfTUlETlVNTEVUID0xMSwgICAgICAgICAvKltNQl0qLwogICAgIFVfV0JfTkVXTElORSA9MTIs
ICAgICAgICAgICAvKltOTF0qLwotICAgIFVfV0JfQ09VTlQgPSAxMworICAgIFVfV0JfUkVHSU9O
QUxfSU5ESUNBVE9SID0gMTMsICAgLypbUkldKi8gLyogbmV3IGluIFVuaWNvZGUgNi4yL0lDVSA1
MCAqLworICAgIFVfV0JfSEVCUkVXX0xFVFRFUiA9IDE0LCAgICAvKltITF0qLyAvKiBmcm9tIGhl
cmUgb246IG5ldyBpbiBVbmljb2RlIDYuMy9JQ1UgNTIgKi8KKyAgICBVX1dCX1NJTkdMRV9RVU9U
RSA9IDE1LCAgICAgLypbU1FdKi8KKyAgICBVX1dCX0RPVUJMRV9RVU9URSA9IDE2LCAgICAgLypb
RFFdKi8KKyAgICBVX1dCX0NPVU5UID0gMTcKIH0gVVdvcmRCcmVha1ZhbHVlczsKIAogLyoqCkBA
IC0xNjE1LDcgKzE3MzUsMTMgQEAgdHlwZWRlZiBlbnVtIFVXb3JkQnJlYWtWYWx1ZXMgewogICog
QHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7Ci0gICAg
VV9TQl9PVEhFUiA9IDAsICAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEqLworICAg
IC8qCisgICAgICogTm90ZTogVVNlbnRlbmNlQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkg
cHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAg
IFVfU0JfPFVuaWNvZGUgU2VudGVuY2VfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IFVfU0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfU0JfQVRFUk0gPSAx
LCAgICAgICAgICAgICAvKltBVF0qLwogICAgIFVfU0JfQ0xPU0UgPSAyLCAgICAgICAgICAgICAv
KltDTF0qLwogICAgIFVfU0JfRk9STUFUID0gMywgICAgICAgICAgICAvKltGT10qLwpAQCAtMTY0
MCw3ICsxNzY2LDEzIEBAIHR5cGVkZWYgZW51bSBVU2VudGVuY2VCcmVhayB7CiAgKiBAc3RhYmxl
IElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVMaW5lQnJlYWsgewotICAgIFVfTEJfVU5LTk9X
TiA9IDAsICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVMaW5lQnJlYWsgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHku
CisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfTEJfPFVuaWNvZGUg
TGluZV9CcmVhayB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9MQl9VTktOT1dOID0gMCwg
ICAgICAgICAgIC8qW1hYXSovCiAgICAgVV9MQl9BTUJJR1VPVVMgPSAxLCAgICAgICAgIC8qW0FJ
XSovCiAgICAgVV9MQl9BTFBIQUJFVElDID0gMiwgICAgICAgIC8qW0FMXSovCiAgICAgVV9MQl9C
UkVBS19CT1RIID0gMywgICAgICAgIC8qW0IyXSovCkBAIC0xNjU1LDkgKzE3ODcsOSBAQCB0eXBl
ZGVmIGVudW0gVUxpbmVCcmVhayB7CiAgICAgVV9MQl9HTFVFID0gMTIsICAgICAgICAgICAgICAv
KltHTF0qLwogICAgIFVfTEJfSFlQSEVOID0gMTMsICAgICAgICAgICAgLypbSFldKi8KICAgICBV
X0xCX0lERU9HUkFQSElDID0gMTQsICAgICAgIC8qW0lEXSovCi0gICAgVV9MQl9JTlNFUEVSQUJM
RSA9IDE1LAogICAgIC8qKiBSZW5hbWVkIGZyb20gdGhlIG1pc3NwZWxsZWQgImluc2VwZXJhYmxl
IiBpbiBVbmljb2RlIDQuMC4xL0lDVSAzLjAgQHN0YWJsZSBJQ1UgMy4wICovCi0gICAgVV9MQl9J
TlNFUEFSQUJMRT1VX0xCX0lOU0VQRVJBQkxFLC8qW0lOXSovCisgICAgVV9MQl9JTlNFUEFSQUJM
RSA9IDE1LCAgICAgICAvKltJTl0qLworICAgIFVfTEJfSU5TRVBFUkFCTEUgPSBVX0xCX0lOU0VQ
QVJBQkxFLAogICAgIFVfTEJfSU5GSVhfTlVNRVJJQyA9IDE2LCAgICAgLypbSVNdKi8KICAgICBV
X0xCX0xJTkVfRkVFRCA9IDE3LCAgICAgICAgIC8qW0xGXSovCiAgICAgVV9MQl9OT05TVEFSVEVS
ID0gMTgsICAgICAgICAvKltOU10qLwpAQCAtMTY3OSw3ICsxODExLDEwIEBAIHR5cGVkZWYgZW51
bSBVTGluZUJyZWFrIHsKICAgICBVX0xCX0pUID0gMzQsICAgICAgICAgICAgICAgIC8qW0pUXSov
CiAgICAgVV9MQl9KViA9IDM1LCAgICAgICAgICAgICAgICAvKltKVl0qLwogICAgIFVfTEJfQ0xP
U0VfUEFSRU5USEVTSVMgPSAzNiwgLypbQ1BdKi8gLyogbmV3IGluIFVuaWNvZGUgNS4yL0lDVSA0
LjQgKi8KLSAgICBVX0xCX0NPVU5UID0gMzcKKyAgICBVX0xCX0NPTkRJVElPTkFMX0pBUEFORVNF
X1NUQVJURVIgPSAzNywvKltDSl0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjEvSUNVIDQ5ICovCisg
ICAgVV9MQl9IRUJSRVdfTEVUVEVSID0gMzgsICAgICAvKltITF0qLyAvKiBuZXcgaW4gVW5pY29k
ZSA2LjEvSUNVIDQ5ICovCisgICAgVV9MQl9SRUdJT05BTF9JTkRJQ0FUT1IgPSAzOSwvKltSSV0q
LyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUwICovCisgICAgVV9MQl9DT1VOVCA9IDQwCiB9
IFVMaW5lQnJlYWs7CiAKIC8qKgpAQCAtMTY4OSw3ICsxODI0LDEzIEBAIHR5cGVkZWYgZW51bSBV
TGluZUJyZWFrIHsKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVU51bWVy
aWNUeXBlIHsKLSAgICBVX05UX05PTkUsICAgICAgICAgICAgICAvKltOb25lXSovIC8qU2VlIG5v
dGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVU51bWVyaWNUeXBlIGNvbnN0YW50cyBhcmUg
cGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQor
ICAgICAqICAgICBVX05UXzxVbmljb2RlIE51bWVyaWNfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAq
LworCisgICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLwogICAgIFVfTlRfREVD
SU1BTCwgICAgICAgICAgIC8qW2RlXSovCiAgICAgVV9OVF9ESUdJVCwgICAgICAgICAgICAgLypb
ZGldKi8KICAgICBVX05UX05VTUVSSUMsICAgICAgICAgICAvKltudV0qLwpAQCAtMTcwMyw3ICsx
ODQ0LDEzIEBAIHR5cGVkZWYgZW51bSBVTnVtZXJpY1R5cGUgewogICogQHN0YWJsZSBJQ1UgMi42
CiAgKi8KIHR5cGVkZWYgZW51bSBVSGFuZ3VsU3lsbGFibGVUeXBlIHsKLSAgICBVX0hTVF9OT1Rf
QVBQTElDQUJMRSwgICAvKltOQV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5v
dGU6IFVIYW5ndWxTeWxsYWJsZVR5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1
Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSFNUXzxV
bmljb2RlIEhhbmd1bF9TeWxsYWJsZV9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBV
X0hTVF9OT1RfQVBQTElDQUJMRSwgICAvKltOQV0qLwogICAgIFVfSFNUX0xFQURJTkdfSkFNTywg
ICAgIC8qW0xdKi8KICAgICBVX0hTVF9WT1dFTF9KQU1PLCAgICAgICAvKltWXSovCiAgICAgVV9I
U1RfVFJBSUxJTkdfSkFNTywgICAgLypbVF0qLwpAQCAtMTkwNiw2ICsyMDUzLDggQEAgdV9nZXRJ
bnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eSB3aGljaCk7CiAgKgogICogRm9yIGNoYXJhY3Rl
cnMgd2l0aG91dCBhbnkgbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERh
dGFiYXNlLAogICogdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBVX05PX05VTUVSSUNfVkFMVUUu
CisgKiBOb3RlOiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBVbmljb2RlIFN0YW5kYXJkIHdo
aWNoIHNwZWNpZmllcyBOYU4gYXMgdGhlIGRlZmF1bHQgdmFsdWUuCisgKiAoTmFOIGlzIG5vdCBh
dmFpbGFibGUgb24gYWxsIHBsYXRmb3Jtcy4pCiAgKgogICogU2ltaWxhciB0byBqYXZhLmxhbmcu
Q2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZSgpLCBidXQgdV9nZXROdW1lcmljVmFsdWUoKQogICog
YWxzbyBzdXBwb3J0cyBuZWdhdGl2ZSB2YWx1ZXMsIGxhcmdlIHZhbHVlcywgYW5kIGZyYWN0aW9u
cywKQEAgLTIzNzksNyArMjUyOCw3IEBAIHVfaXNNaXJyb3JlZChVQ2hhcjMyIGMpOwogICogYXMg
dGhlIG1pcnJvci1pbWFnZSBvZiB0aGUgZGVmYXVsdCBnbHlwaCBvZiB0aGUgc3BlY2lmaWVkCiAg
KiBjaGFyYWN0ZXIuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXh0IGNvbnZlcnNpb24gdG8gYW5kIGZy
b20KICAqIGNvZGVwYWdlcyB3aXRoIHZpc3VhbCBvcmRlciwgYW5kIGZvciBkaXNwbGF5cyB3aXRo
b3V0IGdseXBoCi0gKiBzZWxlY2V0aW9uIGNhcGFiaWxpdGllcy4KKyAqIHNlbGVjdGlvbiBjYXBh
YmlsaXRpZXMuCiAgKgogICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQgdG8gYmUgbWFwcGVkCiAg
KiBAcmV0dXJuIGFub3RoZXIgVW5pY29kZSBjb2RlIHBvaW50IHRoYXQgbWF5IHNlcnZlIGFzIGEg
bWlycm9yLWltYWdlCkBAIC0yMzk0LDYgKzI1NDMsMjUgQEAgVV9TVEFCTEUgVUNoYXIzMiBVX0VY
UE9SVDIKIHVfY2hhck1pcnJvcihVQ2hhcjMyIGMpOwogCiAvKioKKyAqIE1hcHMgdGhlIHNwZWNp
ZmllZCBjaGFyYWN0ZXIgdG8gaXRzIHBhaXJlZCBicmFja2V0IGNoYXJhY3Rlci4KKyAqIEZvciBC
aWRpX1BhaXJlZF9CcmFja2V0X1R5cGUhPU5vbmUsIHRoaXMgaXMgdGhlIHNhbWUgYXMgdV9jaGFy
TWlycm9yKCkuCisgKiBPdGhlcndpc2UgYyBpdHNlbGYgaXMgcmV0dXJuZWQuCisgKiBTZWUgaHR0
cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyOS8KKyAqCisgKiBAcGFyYW0gYyB0aGUgY29k
ZSBwb2ludCB0byBiZSBtYXBwZWQKKyAqIEByZXR1cm4gdGhlIHBhaXJlZCBicmFja2V0IGNvZGUg
cG9pbnQsCisgKiAgICAgICAgIG9yIGMgaXRzZWxmIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWFwcGlu
ZworICogICAgICAgICAoQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlPU5vbmUpCisgKgorICogQHNl
ZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUCisgKiBAc2VlIFVDSEFSX0JJRElfUEFJUkVEX0JS
QUNLRVRfVFlQRQorICogQHNlZSB1X2NoYXJNaXJyb3IKKyAqIEBzdGFibGUgSUNVIDUyCisgKi8K
K1VfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCit1X2dldEJpZGlQYWlyZWRCcmFja2V0KFVDaGFy
MzIgYyk7CisKKy8qKgogICogUmV0dXJucyB0aGUgZ2VuZXJhbCBjYXRlZ29yeSB2YWx1ZSBmb3Ig
dGhlIGNvZGUgcG9pbnQuCiAgKgogICogU2FtZSBhcyBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5
cGUoKS4KQEAgLTI1NTMsMTMgKzI3MjEsMTEgQEAgdV9jaGFyTmFtZShVQ2hhcjMyIGNvZGUsIFVD
aGFyTmFtZUNob2ljZSBuYW1lQ2hvaWNlLAogICAgICAgICAgICBjaGFyICpidWZmZXIsIGludDMy
X3QgYnVmZmVyTGVuZ3RoLAogICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAor
I2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkgCiAvKioKLSAqIEdldCB0aGUgSVNPIDEwNjQ2
IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgotICogVGhlIElTTyAxMDY0NiBjb21tZW50IGlzIGFu
IGluZm9ybWF0aXZlIGZpZWxkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlcgotICogRGF0YWJhc2Ug
KFVuaWNvZGVEYXRhLnR4dCBmaWVsZCAxMSkgYW5kIGlzIGZyb20gdGhlIElTTyAxMDY0NiBuYW1l
cyBsaXN0LgotICoKLSAqIE5vdGU6IFVuaWNvZGUgNS4yIHJlbW92ZXMgYWxsIElTTyBjb21tZW50
IGRhdGEsIHJlc3VsdGluZyBpbiBlbXB0eSBzdHJpbmdzCi0gKiByZXR1cm5lZCBmb3IgYWxsIGNo
YXJhY3RlcnMuCisgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZy4KKyAqIFVzZWQgdG8gcmV0dXJu
IHRoZSBJU08gMTA2NDYgY29tbWVudCBmb3IgYSBjaGFyYWN0ZXIuCisgKiBUaGUgVW5pY29kZSBJ
U09fQ29tbWVudCBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCBoYXMgbm8gdmFsdWVzLgogICoK
ICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgKGNvZGUgcG9pbnQpIGZvciB3aGljaCB0byBnZXQg
dGhlIElTTyBjb21tZW50LgogICogICAgICAgICAgICAgSXQgbXVzdCBiZSA8Y29kZT4wPD1jPD0w
eDEwZmZmZjwvY29kZT4uCkBAIC0yNTcwLDE4ICsyNzM2LDE1IEBAIHVfY2hhck5hbWUoVUNoYXIz
MiBjb2RlLCBVQ2hhck5hbWVDaG9pY2UgbmFtZUNob2ljZSwKICAqIEBwYXJhbSBwRXJyb3JDb2Rl
IFBvaW50ZXIgdG8gYSBVRXJyb3JDb2RlIHZhcmlhYmxlOwogICogICAgICAgIGNoZWNrIGZvciA8
Y29kZT5VX1NVQ0NFU1MoKTwvY29kZT4gYWZ0ZXIgPGNvZGU+dV9nZXRJU09Db21tZW50KCk8L2Nv
ZGU+CiAgKiAgICAgICAgcmV0dXJucy4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgY29t
bWVudCwgb3IgMCBpZiB0aGVyZSBpcyBubyBjb21tZW50IGZvciB0aGlzIGNoYXJhY3Rlci4KLSAq
ICAgICAgICAgSWYgdGhlIGRlc3RDYXBhY2l0eSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhl
IGxlbmd0aCwgdGhlbiB0aGUgYnVmZmVyCi0gKiAgICAgICAgIGNvbnRhaW5zIHRoZSB0cnVuY2F0
ZWQgbmFtZSBhbmQgdGhlIHJldHVybmVkIGxlbmd0aCBpbmRpY2F0ZXMgdGhlIGZ1bGwKLSAqICAg
ICAgICAgbGVuZ3RoIG9mIHRoZSBuYW1lLgotICogICAgICAgICBUaGUgbGVuZ3RoIGRvZXMgbm90
IGluY2x1ZGUgdGhlIHplcm8tdGVybWluYXRpb24uCisgKiBAcmV0dXJuIDAKICAqCi0gKiBAc3Rh
YmxlIElDVSAyLjIKKyAqIEBkZXByZWNhdGVkIElDVSA0OQogICovCiBVX1NUQUJMRSBpbnQzMl90
IFVfRVhQT1JUMgogdV9nZXRJU09Db21tZW50KFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICBj
aGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAK
IC8qKgogICogRmluZCBhIFVuaWNvZGUgY2hhcmFjdGVyIGJ5IGl0cyBuYW1lIGFuZCByZXR1cm4g
aXRzIGNvZGUgcG9pbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VjbnYuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5oCmluZGV4IDk4ZGE4ZmY2OTQ3
YTMzMzAxYjc5YTk5MWU0YWY0Mjc3MDE1M2JhYzkuLmM1ZmMyZGM3ODU2YTE2ZTIxZmQzMDc5MTdi
NzM4MDI3ZjU2NjA1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5o
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNudi5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiAgdWNudi5oOgpAQCAtODgsNDYg
Kzg4LDgyIEBAIFVfQ0RFQ0xfQkVHSU4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCiB0eXBlZGVm
IGVudW0geworICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VOU1VQUE9SVEVE
X0NPTlZFUlRFUiA9IC0xLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1NC
Q1MgPSAwLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0RCQ1MgPSAxLAor
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX01CQ1MgPSAyLAorICAgIC8qKiBA
c3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xBVElOXzEgPSAzLAorICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KICAgICBVQ05WX1VURjggPSA0LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQ05WX1VURjE2X0JpZ0VuZGlhbiA9IDUsCisgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVDTlZfVVRGMTZfTGl0dGxlRW5kaWFuID0gNiwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4wICovCiAgICAgVUNOVl9VVEYzMl9CaWdFbmRpYW4gPSA3LAorICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KICAgICBVQ05WX1VURjMyX0xpdHRsZUVuZGlhbiA9IDgsCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfRUJDRElDX1NUQVRFRlVMID0gOSwKKyAgICAvKiog
QHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9JU09fMjAyMiA9IDEwLAogCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMSA9IDExLAorICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzIsIAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQ05WX0xNQkNTXzMsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVD
TlZfTE1CQ1NfNCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU181
LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzYsCisgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfOCwKKyAgICAvKiogQHN0YWJsZSBJ
Q1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xMSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVUNOVl9MTUJDU18xNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNO
Vl9MTUJDU18xNywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18x
OCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xOSwKKyAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU19MQVNUID0gVUNOVl9MTUJDU18x
OSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9IWiwKKyAgICAvKiogQHN0
YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9TQ1NVLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAg
Ki8KICAgICBVQ05WX0lTQ0lJLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05W
X1VTX0FTQ0lJLAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjcsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZfQk9DVTEsCisgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMiAqLwogICAgIFVDTlZfVVRGMTYsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAq
LwogICAgIFVDTlZfVVRGMzIsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgIFVDTlZf
Q0VTVTgsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDTlZfSU1BUF9NQUlMQk9Y
LAorICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICBVQ05WX0NPTVBPVU5EX1RFWFQsCiAK
ICAgICAvKiBOdW1iZXIgb2YgY29udmVydGVyIHR5cGVzIGZvciB3aGljaCB3ZSBoYXZlIGNvbnZl
cnNpb24gcm91dGluZXMuICovCiAgICAgVUNOVl9OVU1CRVJfT0ZfU1VQUE9SVEVEX0NPTlZFUlRF
Ul9UWVBFUwotCiB9IFVDb252ZXJ0ZXJUeXBlOwogCiAvKioKQEAgLTMwNSw2ICszNDEsOCBAQCB1
Y252X2NvbXBhcmVOYW1lcyhjb25zdCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFtZTIpOwog
ICogb3RoZXIgdGhhbiBpdHMgYW4gYWxpYXMgc3RhcnRpbmcgd2l0aCB0aGUgbGV0dGVycyAiY3Ai
LiBQbGVhc2UgZG8gbm90CiAgKiBhc3NvY2lhdGUgYW55IG1lYW5pbmcgdG8gdGhlc2UgYWxpYXNl
cy48L3A+CiAgKgorICogXHNuaXBwZXQgc2FtcGxlcy91Y252L2NvbnZzYW1wLmNwcCB1Y252X29w
ZW4KKyAqCiAgKiBAcGFyYW0gY29udmVydGVyTmFtZSBOYW1lIG9mIHRoZSBjb2RlZCBjaGFyYWN0
ZXIgc2V0IHRhYmxlLgogICogICAgICAgICAgVGhpcyBtYXkgaGF2ZSBvcHRpb25zIGFwcGVuZGVk
IHRvIHRoZSBzdHJpbmcuCiAgKiAgICAgICAgICBJQU5BIGFsaWFzIGNoYXJhY3RlciBzZXQgbmFt
ZXMsIElCTSBDQ1NJRHMgc3RhcnRpbmcgd2l0aCAiaWJtLSIsCkBAIC00ODMsMTAgKzUyMSwxMiBA
QCB1Y252X29wZW5QYWNrYWdlKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCBjaGFyICpj
b252ZXJ0ZXJOYW1lLCBVRXJyb3JDb2RlCiAgKiBhZGp1c3RlZCBwb2ludGVyIGFuZCB1c2UgYW4g
YWNjb3JkaW5nbHkgc21hbGxlciBidWZmZXIgc2l6ZS4KICAqCiAgKiBAcGFyYW0gY252IGNvbnZl
cnRlciB0byBiZSBjbG9uZWQKLSAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBz
cGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2Nh
dGVkLiAKKyAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5
IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+CisgKiAgdXNlciBhbGxvY2F0ZWQgc3Bh
Y2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRl
ZC4gCiAgKiAgSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBi
ZSBhbGxvY2F0ZWQuCiAgKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NOVl9TQUZFQ0xPTkVfQlVG
RkVSU0laRS4gVGhpcyB3aWxsIHByb2JhYmx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxs
b2NhdGlvbnMuCi0gKiBAcGFyYW0gcEJ1ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9j
YXRlZCBzcGFjZS4gcEJ1ZmZlclNpemUgbXVzdCBub3QgYmUgTlVMTC4KKyAqIEBwYXJhbSBwQnVm
ZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5V
TEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNl
LgogICogQHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2Vu
dCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9ycwogICogIEFuIGluZm9ybWF0aW9uYWwg
c3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfV0FSTklORywKICAqICBpcyB1c2Vk
IGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlIG5lY2Vzc2FyeS4KQEAgLTUwMiwxNCArNTQyLDE4IEBA
IHVjbnZfc2FmZUNsb25lKGNvbnN0IFVDb252ZXJ0ZXIgKmNudiwKICAgICAgICAgICAgICAgIGlu
dDMyX3QgICAgICAgICAgKnBCdWZmZXJTaXplLCAKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
ICAgICAgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKIC8qKgog
ICogXGRlZiBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0laRQogICogRGVmaW5pdGlvbiBvZiBhIGJ1
ZmZlciBzaXplIHRoYXQgaXMgZGVzaWduZWQgdG8gYmUgbGFyZ2UgZW5vdWdoIGZvcgogICogY29u
dmVydGVycyB0byBiZSBjbG9uZWQgd2l0aCB1Y252X3NhZmVDbG9uZSgpLgotICogQHN0YWJsZSBJ
Q1UgMi4wCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERvIG5vdCByZWx5IG9uIHVjbnZfc2FmZUNs
b25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBidWZmZXIuCiAgKi8KICNkZWZpbmUgVV9D
TlZfU0FGRUNMT05FX0JVRkZFUlNJWkUgIDEwMjQKIAorI2VuZGlmIC8qIFVfSElERV9ERVBSRUNB
VEVEX0FQSSAqLworCiAvKioKICAqIERlbGV0ZXMgdGhlIHVuaWNvZGUgY29udmVydGVyIGFuZCBy
ZWxlYXNlcyByZXNvdXJjZXMgYXNzb2NpYXRlZAogICogd2l0aCBqdXN0IHRoaXMgaW5zdGFuY2Uu
CkBAIC0xODIxLDYgKzE4NjUsNyBAQCB1Y252X2dldENhbm9uaWNhbE5hbWUoY29uc3QgY2hhciAq
YWxpYXMsIGNvbnN0IGNoYXIgKnN0YW5kYXJkLCBVRXJyb3JDb2RlICpwRXJybwogVV9TVEFCTEUg
Y29uc3QgY2hhciAqIFVfRVhQT1JUMgogdWNudl9nZXREZWZhdWx0TmFtZSh2b2lkKTsKIAorI2lm
bmRlZiBVX0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJl
YWQgc2FmZS4gRE8gTk9UIGNhbGwgdGhpcyBmdW5jdGlvbiB3aGVuIEFOWSBJQ1UKICAqIGZ1bmN0
aW9uIGlzIGJlaW5nIHVzZWQgZnJvbSBtb3JlIHRoYW4gb25lIHRocmVhZCEgVGhpcyBmdW5jdGlv
biBzZXRzIHRoZQpAQCAtMTgzOSw2ICsxODg0LDcgQEAgdWNudl9nZXREZWZhdWx0TmFtZSh2b2lk
KTsKICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVjbnZfc2V0RGVmYXVsdE5hbWUoY29u
c3QgY2hhciAqbmFtZSk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCiAKIC8qKgog
ICogRml4ZXMgdGhlIGJhY2tzbGFzaCBjaGFyYWN0ZXIgbWlzbWFwcGluZy4gIEZvciBleGFtcGxl
LCBpbiBTSklTLCB0aGUgYmFja3NsYXNoIApAQCAtMTkxOCwzNCArMTk2NCw3IEBAIHVjbnZfdXNl
c0ZhbGxiYWNrKGNvbnN0IFVDb252ZXJ0ZXIgKmNudik7CiAgKiBpbnN0ZWFkIG9mIHRoZSBpbnB1
dCBzaWduYXR1cmUgYnl0ZXMuCiAgKiA8cD4KICAqIFVzYWdlOgotICogQGNvZGUgICAgIAotICog
ICAgICBVRXJyb3JDb2RlIGVyciA9IFVfWkVST19FUlJPUjsKLSAqICAgICAgY2hhciBpbnB1dFtd
ID0geyAnXHhFRicsJ1x4QkInLCAnXHhCRicsJ1x4NDEnLCdceDQyJywnXHg0MycgfTsKLSAqICAg
ICAgaW50MzJfdCBzaWduYXR1cmVMZW5ndGggPSAwOwotICogICAgICBjaGFyICplbmNvZGluZyA9
IHVjbnZfZGV0ZWN0VW5pY29kZVNpZ25hdHVyZShpbnB1dCxzaXplb2YoaW5wdXQpLCZzaWduYXR1
cmVMZW5ndGgsJmVycik7Ci0gKiAgICAgIFVDb252ZXJ0ZXIgKmNvbnYgPSBOVUxMOwotICogICAg
ICBVQ2hhciBvdXRwdXRbMTAwXTsKLSAqICAgICAgVUNoYXIgKnRhcmdldCA9IG91dHB1dCwgKm91
dDsKLSAqICAgICAgY2hhciAqc291cmNlID0gaW5wdXQ7Ci0gKiAgICAgIGlmKGVuY29kaW5nIT1O
VUxMICYmIFVfU1VDQ0VTUyhlcnIpKXsKLSAqICAgICAgICAgIC8vIHNob3VsZCBzaWduYXR1cmUg
YmUgZGlzY2FyZGVkID8KLSAqICAgICAgICAgIGNvbnYgPSB1Y252X29wZW4oZW5jb2RpbmcsICZl
cnIpOwotICogICAgICAgICAgLy8gZG8gdGhlIGNvbnZlcnNpb24KLSAqICAgICAgICAgIHVjbnZf
dG9Vbmljb2RlKGNvbnYsCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIG91dHB1
dCArIHNpemVvZihvdXRwdXQpL1VfU0laRU9GX1VDSEFSLAotICogICAgICAgICAgICAgICAgICAg
ICAgICAgc291cmNlLCBpbnB1dCArIHNpemVvZihpbnB1dCksCi0gKiAgICAgICAgICAgICAgICAg
ICAgICAgICBOVUxMLCBUUlVFLCAmZXJyKTsKLSAqICAgICAgICAgIG91dCA9IG91dHB1dDsKLSAq
ICAgICAgICAgIGlmIChkaXNjYXJkU2lnbmF0dXJlKXsKLSAqICAgICAgICAgICAgICArK291dDsg
Ly8gaWdub3JlIGluaXRpYWwgVStGRUZGCi0gKiAgICAgICAgICB9Ci0gKiAgICAgICAgICB3aGls
ZShvdXQgIT0gdGFyZ2V0KSB7Ci0gKiAgICAgICAgICAgICAgcHJpbnRmKCIlMDR4ICIsICpvdXQr
Kyk7Ci0gKiAgICAgICAgICB9Ci0gKiAgICAgICAgICBwdXRzKCIiKTsKLSAqICAgICAgfQotICog
ICAgIAotICogQGVuZGNvZGUKKyAqIFxzbmlwcGV0IHNhbXBsZXMvdWNudi9jb252c2FtcC5jcHAg
dWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlCiAgKgogICogQHBhcmFtIHNvdXJjZSAgICAgICAg
ICAgIFRoZSBzb3VyY2Ugc3RyaW5nIGluIHdoaWNoIHRoZSBzaWduYXR1cmUgc2hvdWxkIGJlIGRl
dGVjdGVkLgogICogQHBhcmFtIHNvdXJjZUxlbmd0aCAgICAgIExlbmd0aCBvZiB0aGUgaW5wdXQg
c3RyaW5nLCBvciAtMSBpZiB0ZXJtaW5hdGVkIHdpdGggYSBOVUwgYnl0ZS4KQEAgLTE5OTEsNiAr
MjAxMCwyNCBAQCB1Y252X2Zyb21VQ291bnRQZW5kaW5nKGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwg
VUVycm9yQ29kZSogc3RhdHVzKTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1Y252X3Rv
VUNvdW50UGVuZGluZyhjb25zdCBVQ29udmVydGVyKiBjbnYsIFVFcnJvckNvZGUqIHN0YXR1cyk7
CiAKKy8qKgorICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY2hhcnNldCBvZiB0aGUgY29u
dmVydGVyIGhhcyBhIGZpeGVkIG51bWJlciBvZiBieXRlcworICogcGVyIGNoYXJzZXQgY2hhcmFj
dGVyLgorICogQW4gZXhhbXBsZSBvZiB0aGlzIGFyZSBjb252ZXJ0ZXJzIHRoYXQgYXJlIG9mIHRo
ZSB0eXBlIFVDTlZfU0JDUyBvciBVQ05WX0RCQ1MuCisgKiBBbm90aGVyIGV4YW1wbGUgaXMgVVRG
LTMyIHdoaWNoIGlzIGFsd2F5cyA0IGJ5dGVzIHBlciBjaGFyYWN0ZXIuCisgKiBBIFVuaWNvZGUg
Y29kZSBwb2ludCBtYXkgYmUgcmVwcmVzZW50ZWQgYnkgbW9yZSB0aGFuIG9uZSBVVEYtOCBvciBV
VEYtMTYgY29kZSB1bml0CisgKiBidXQgYSBVVEYtMzIgY29udmVydGVyIGVuY29kZXMgZWFjaCBj
b2RlIHBvaW50IHdpdGggNCBieXRlcy4KKyAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIG5vdCBpbnRl
bmRlZCB0byBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBjaGFyc2V0IGhhcyBhCisg
KiBmaXhlZCByYXRpbyBvZiBieXRlcyB0byBVbmljb2RlIGNvZGVzIDxpPnVuaXRzPC9pPiBmb3Ig
YW55IHBhcnRpY3VsYXIgVW5pY29kZSBlbmNvZGluZyBmb3JtLgorICogRkFMU0UgaXMgcmV0dXJu
ZWQgd2l0aCB0aGUgVUVycm9yQ29kZSBpZiBlcnJvciBvY2N1cnMgb3IgY252IGlzIE5VTEwuCisg
KiBAcGFyYW0gY252ICAgICAgIFRoZSBjb252ZXJ0ZXIgdG8gYmUgdGVzdGVkCisgKiBAcGFyYW0g
c3RhdHVzICAgIElDVSBlcnJvciBjb2RlIGluL291dCBwYXJhbXRlcgorICogQHJldHVybiBUUlVF
IGlmIHRoZSBjb252ZXJ0ZXIgaXMgZml4ZWQtd2lkdGgKKyAqIEBzdGFibGUgSUNVIDQuOAorICov
CitVX1NUQUJMRSBVQm9vbCBVX0VYUE9SVDIKK3VjbnZfaXNGaXhlZFdpZHRoKFVDb252ZXJ0ZXIg
KmNudiwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKwogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y29sLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3Vjb2wuaAppbmRleCA0YTRjZDYwNmU4YTc3M2RiYjFlODdkZWU0YzEwOWNkYWQ1MTFlNmQ3Li41
YTQ1OWI1MmFmNGE5ZmQ3Njg0MDA1Yzc4OWFjMzU0M2U5MjhkOTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3Vjb2wuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vj
b2wuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qIENvcHly
aWdodCAoYykgMTk5Ni0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuCisqIENvcHlyaWdodCAoYykgMTk5Ni0yMDEzLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqLwpAQCAtMTcsNiArMTcsNyBA
QAogI2luY2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vsb2Mu
aCIKICNpbmNsdWRlICJ1bmljb2RlL3VzZXQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzY3JpcHQu
aCIKIAogLyoqCiAgKiBcZmlsZQpAQCAtNjMsMTIgKzY0LDEyIEBAIHR5cGVkZWYgc3RydWN0IFVD
b2xsYXRvciBVQ29sbGF0b3I7CiAKIC8qKgogICogVUNPTF9MRVNTIGlzIHJldHVybmVkIGlmIHNv
dXJjZSBzdHJpbmcgaXMgY29tcGFyZWQgdG8gYmUgbGVzcyB0aGFuIHRhcmdldAotICogc3RyaW5n
IGluIHRoZSB1X3N0cmNvbGwoKSBtZXRob2QuCisgKiBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29s
bCgpIG1ldGhvZC4KICAqIFVDT0xfRVFVQUwgaXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBp
cyBjb21wYXJlZCB0byBiZSBlcXVhbCB0byB0YXJnZXQKLSAqIHN0cmluZyBpbiB0aGUgdV9zdHJj
b2xsKCkgbWV0aG9kLgorICogc3RyaW5nIGluIHRoZSB1Y29sX3N0cmNvbGwoKSBtZXRob2QuCiAg
KiBVQ09MX0dSRUFURVIgaXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0
byBiZSBncmVhdGVyIHRoYW4KLSAqIHRhcmdldCBzdHJpbmcgaW4gdGhlIHVfc3RyY29sbCgpIG1l
dGhvZC4KLSAqIEBzZWUgdV9zdHJjb2xsKCkKKyAqIHRhcmdldCBzdHJpbmcgaW4gdGhlIHVjb2xf
c3RyY29sbCgpIG1ldGhvZC4KKyAqIEBzZWUgdWNvbF9zdHJjb2xsKCkKICAqIDxwPgogICogUG9z
c2libGUgdmFsdWVzIGZvciBhIGNvbXBhcmlzb24gcmVzdWx0IAogICogQHN0YWJsZSBJQ1UgMi4w
CkBAIC0xMzIsMTggKzEzMyw3NiBAQCB0eXBlZGVmIGVudW0gewogCiB9IFVDb2xBdHRyaWJ1dGVW
YWx1ZTsKIAotLyoqIEVudW0gY29udGFpbmluZyB0aGUgY29kZXMgZm9yIHJlb3JkZXJpbmcgc2Vn
bWVudHMgb2YgdGhlIGNvbGxhdGlvbiB0YWJsZSB0aGF0IGFyZSBub3Qgc2NyaXB0Ci0gKiAgY29k
ZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24g
d2l0aCB0aGUgc2NyaXB0IGNvZGVzLgotICogIEBpbnRlcm5hbAorLyoqCisgKiBFbnVtIGNvbnRh
aW5pbmcgdGhlIGNvZGVzIGZvciByZW9yZGVyaW5nIHNlZ21lbnRzIG9mIHRoZSBjb2xsYXRpb24g
dGFibGUgdGhhdCBhcmUgbm90IHNjcmlwdAorICogY29kZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29k
ZXMgYXJlIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgc2NyaXB0IGNvZGVzLgor
ICogQHNlZSB1Y29sX2dldFJlb3JkZXJDb2RlcworICogQHNlZSB1Y29sX3NldFJlb3JkZXJDb2Rl
cworICogQHNlZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlw
dENvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCi10eXBlZGVmIGVudW0gewotICAgIFVDT0xf
UkVPUkRFUl9DT0RFX1NQQUNFICAgICAgICAgID0gMHgxMDAwLAotICAgIFVDT0xfUkVPUkRFUl9D
T0RFX0ZJUlNUICAgICAgICAgID0gVUNPTF9SRU9SREVSX0NPREVfU1BBQ0UsCi0gICAgVUNPTF9S
RU9SREVSX0NPREVfUFVOQ1RVQVRJT04gICAgPSAweDEwMDEsCi0gICAgVUNPTF9SRU9SREVSX0NP
REVfU1lNQk9MICAgICAgICAgPSAweDEwMDIsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfQ1VSUkVO
Q1kgICAgICAgPSAweDEwMDMsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfRElHSVQgICAgICAgICAg
PSAweDEwMDQsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfTElNSVQgICAgICAgICAgPSAweDEwMDUK
KyB0eXBlZGVmIGVudW0geworICAgLyoqCisgICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2Rl
IHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0CisgICAgKiByZW9yZGVyaW5nIGNv
ZGVzIGZvciBhIGxvY2FsZS4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgCisgICAg
VUNPTF9SRU9SREVSX0NPREVfREVGQVVMVCAgICAgICA9IC0xLAorICAgLyoqCisgICAgKiBBIHNw
ZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IG5vIHJlb3JkZXJp
bmcgY29kZXMuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVP
UkRFUl9DT0RFX05PTkUgICAgICAgICAgPSBVU0NSSVBUX1VOS05PV04sCisgICAvKioKKyAgICAq
IEEgc3BlY2lhbCByZW9yZGVyaW5nIGNvZGUgdGhhdCBpcyB1c2VkIHRvIHNwZWNpZnkgYWxsIG90
aGVyIGNvZGVzIHVzZWQgZm9yCisgICAgKiByZW9yZGVyaW5nIGV4Y2VwdCBmb3IgdGhlIGNvZGVz
IGxpc2VkIGFzIFVDb2xSZW9yZGVyQ29kZSB2YWx1ZXMgYW5kIHRob3NlCisgICAgKiBsaXN0ZWQg
ZXhwbGljaXRseSBpbiBhIHJlb3JkZXJpbmcuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAq
LyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX09USEVSUyAgICAgICAgPSBVU0NSSVBUX1VOS05P
V04sCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgc3BhY2UgcHJvcGVydHkuCisg
ICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgInNwYWNlIi4KKyAgICAq
IEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNF
ICAgICAgICAgPSAweDEwMDAsCisgICAvKioKKyAgICAqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUg
ZW51bWVyYXRpb24gb2YgcmVvcmRlcmluZyBncm91cHMuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVz
ZSBpbgorICAgICogcmFuZ2UgY2hlY2tpbmcgYW5kIGVudW1lcmF0aW9uIG9mIHRoZSByZW9yZGVy
IGNvZGVzLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9S
REVSX0NPREVfRklSU1QgICAgICAgICA9IFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFLAorICAgLyoq
CisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhlIHB1bmN0dWF0aW9uIHByb3BlcnR5LgorICAgICog
VGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBydWxlIHZhbHVlICJwdW5jdCIuCisgICAgKiBAc3Rh
YmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAgICBVQ09MX1JFT1JERVJfQ09ERV9QVU5DVFVBVElP
TiAgID0gMHgxMDAxLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhlIHN5bWJvbCBw
cm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgcnVsZSB2YWx1ZSAic3lt
Ym9sIi4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRF
Ul9DT0RFX1NZTUJPTCAgICAgICAgPSAweDEwMDIsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMg
d2l0aCB0aGUgY3VycmVuY3kgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8g
dGhlIHJ1bGUgdmFsdWUgImN1cnJlbmN5Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICov
ICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0NVUlJFTkNZICAgICAgPSAweDEwMDMsCisgICAv
KioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgZGlnaXQgcHJvcGVydHkuCisgICAgKiBUaGlz
IGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgImRpZ2l0Ii4KKyAgICAqIEBzdGFibGUg
SUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX0RJR0lUICAgICAgICAg
PSAweDEwMDQsCisgICAvKioKKyAgICAqIFRoZSBsaW1pdCBvZiB0aGUgcmVvcmRlciBjb2Rlcy4g
VGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIHJhbmdlIGNoZWNraW5nIAorICAgICogYW5kIGVu
dW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVzLgorICAgICogQHN0YWJsZSBJQ1UgNC44Cisg
ICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfTElNSVQgICAgICAgICA9IDB4MTAwNQog
fSBVQ29sUmVvcmRlckNvZGU7CiAKIC8qKgpAQCAtMTc5LDEwICsyMzgsMTIgQEAgdHlwZWRlZiBV
Q29sQXR0cmlidXRlVmFsdWUgVUNvbGxhdGlvblN0cmVuZ3RoOwogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAgIC8qKiBBdHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBv
ZiBzZWNvbmRhcnkgd2VpZ2h0cyAtIHVzZWQgaW4gRnJlbmNoLgorICAgICAvKiogQXR0cmlidXRl
IGZvciBkaXJlY3Rpb24gb2Ygc2Vjb25kYXJ5IHdlaWdodHMgLSB1c2VkIGluIENhbmFkaWFuIEZy
ZW5jaC4KICAgICAgICogQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIFVDT0xfT04sIHdoaWNoIHJlc3Vs
dHMgaW4gc2Vjb25kYXJ5IHdlaWdodHMKICAgICAgICogYmVpbmcgY29uc2lkZXJlZCBiYWNrd2Fy
ZHMgYW5kIFVDT0xfT0ZGIHdoaWNoIHRyZWF0cyBzZWNvbmRhcnkKLSAgICAgICogd2VpZ2h0cyBp
biB0aGUgb3JkZXIgdGhleSBhcHBlYXIuKi8KKyAgICAgICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIg
dGhleSBhcHBlYXIuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNP
TF9GUkVOQ0hfQ09MTEFUSU9OLCAKICAgICAgLyoqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFy
aWFibGUgZWxlbWVudHMuCiAgICAgICAqIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBVQ09MX05PTl9J
R05PUkFCTEUgKGRlZmF1bHQpCkBAIC0xOTEsMTQgKzI1MiwxOCBAQCB0eXBlZGVmIGVudW0gewog
ICAgICAgKiBhbmQgVUNPTF9TSElGVEVEIHdoaWNoIGNhdXNlcyBjb2RlcG9pbnRzIHdpdGggcHJp
bWFyeSAKICAgICAgICogd2VpZ2h0cyB0aGF0IGFyZSBlcXVhbCBvciBiZWxvdyB0aGUgdmFyaWFi
bGUgdG9wIHZhbHVlCiAgICAgICAqIHRvIGJlIGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQg
bW92ZWQgdG8gdGhlIHF1YXRlcm5hcnkgCi0gICAgICAqIGxldmVsLiovCisgICAgICAqIGxldmVs
LgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfQUxURVJOQVRF
X0hBTkRMSU5HLCAKICAgICAgLyoqIENvbnRyb2xzIHRoZSBvcmRlcmluZyBvZiB1cHBlciBhbmQg
bG93ZXIgY2FzZSBsZXR0ZXJzLgogICAgICAgKiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgVUNPTF9P
RkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMKICAgICAgICogdXBwZXIgYW5kIGxvd2VyIGNhc2Ug
bGV0dGVycyBpbiBhY2NvcmRhbmNlIHRvIHRoZWlyIHRlcnRpYXJ5CiAgICAgICAqIHdlaWdodHMs
IFVDT0xfVVBQRVJfRklSU1Qgd2hpY2ggZm9yY2VzIHVwcGVyIGNhc2UgbGV0dGVycyB0byAKICAg
ICAgICogc29ydCBiZWZvcmUgbG93ZXIgY2FzZSBsZXR0ZXJzLCBhbmQgVUNPTF9MT1dFUl9GSVJT
VCB3aGljaCBkb2VzIAotICAgICAgKiB0aGUgb3Bwb3NpdGUuICovCisgICAgICAqIHRoZSBvcHBv
c2l0ZS4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0NBU0Vf
RklSU1QsIAogICAgICAvKiogQ29udHJvbHMgd2hldGhlciBhbiBleHRyYSBjYXNlIGxldmVsIChw
b3NpdGlvbmVkIGJlZm9yZSB0aGUgdGhpcmQKICAgICAgICogbGV2ZWwpIGlzIGdlbmVyYXRlZCBv
ciBub3QuIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBVQ09MX09GRiAoZGVmYXVsdCksIApAQCAtMjA2
LDcgKzI3MSw5IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIGxldmVsIHRvIGJlIGdlbmVyYXRl
ZC4gQ29udGVudHMgb2YgdGhlIGNhc2UgbGV2ZWwgYXJlIGFmZmVjdGVkIGJ5CiAgICAgICAqIHRo
ZSB2YWx1ZSBvZiBVQ09MX0NBU0VfRklSU1QgYXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdu
b3JlIAogICAgICAgKiBhY2NlbnQgZGlmZmVyZW5jZXMgaW4gYSBzdHJpbmcgaXMgdG8gc2V0IHRo
ZSBzdHJlbmd0aCB0byBVQ09MX1BSSU1BUlkKLSAgICAgICogYW5kIGVuYWJsZSBjYXNlIGxldmVs
LiAqLworICAgICAgKiBhbmQgZW5hYmxlIGNhc2UgbGV2ZWwuCisgICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAgKi8KICAgICAgVUNPTF9DQVNFX0xFVkVMLAogICAgICAvKiogQ29udHJvbHMg
d2hldGhlciB0aGUgbm9ybWFsaXphdGlvbiBjaGVjayBhbmQgbmVjZXNzYXJ5IG5vcm1hbGl6YXRp
b25zCiAgICAgICAqIGFyZSBwZXJmb3JtZWQuIFdoZW4gc2V0IHRvIFVDT0xfT0ZGIChkZWZhdWx0
KSBubyBub3JtYWxpemF0aW9uIGNoZWNrCkBAIC0yMTQsOSArMjgxLDEzIEBAIHR5cGVkZWYgZW51
bSB7CiAgICAgICAqIGlucHV0IGRhdGEgaXMgaW4gc28tY2FsbGVkIEZDRCBmb3JtIChzZWUgdXNl
cnMgbWFudWFsIGZvciBtb3JlIGluZm8pLgogICAgICAgKiBXaGVuIHNldCB0byBVQ09MX09OLCBh
biBpbmNyZW1lbnRhbCBjaGVjayBpcyBwZXJmb3JtZWQgdG8gc2VlIHdoZXRoZXIKICAgICAgICog
dGhlIGlucHV0IGRhdGEgaXMgaW4gdGhlIEZDRCBmb3JtLiBJZiB0aGUgZGF0YSBpcyBub3QgaW4g
dGhlIEZDRCBmb3JtLAotICAgICAgKiBpbmNyZW1lbnRhbCBORkQgbm9ybWFsaXphdGlvbiBpcyBw
ZXJmb3JtZWQuICovCisgICAgICAqIGluY3JlbWVudGFsIE5GRCBub3JtYWxpemF0aW9uIGlzIHBl
cmZvcm1lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX05P
Uk1BTElaQVRJT05fTU9ERSwgCi0gICAgIC8qKiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFU
SU9OX01PREUgYXR0cmlidXRlICovCisgICAgIC8qKiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJ
WkFUSU9OX01PREUgYXR0cmlidXRlLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICov
CiAgICAgIFVDT0xfREVDT01QT1NJVElPTl9NT0RFID0gVUNPTF9OT1JNQUxJWkFUSU9OX01PREUs
CiAgICAgIC8qKiBUaGUgc3RyZW5ndGggYXR0cmlidXRlLiBDYW4gYmUgZWl0aGVyIFVDT0xfUFJJ
TUFSWSwgVUNPTF9TRUNPTkRBUlksCiAgICAgICAqIFVDT0xfVEVSVElBUlksIFVDT0xfUVVBVEVS
TkFSWSBvciBVQ09MX0lERU5USUNBTC4gVGhlIHVzdWFsIHN0cmVuZ3RoCkBAIC0yMjcsMjAgKzI5
OCwzNyBAQCB0eXBlZGVmIGVudW0gewogICAgICAgKiBVQ09MX0hJUkFHQU5BX1FVQVRFUk5BUlkg
bW9kZSB0byBvbi4gT3RoZXJ3aXNlLCBxdWF0ZXJuYXJ5IGxldmVsCiAgICAgICAqIGlzIGFmZmVj
dGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBub24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluCiAg
ICAgICAqIHRoZSBzdHJpbmcuIElkZW50aWNhbCBzdHJlbmd0aCBpcyByYXJlbHkgdXNlZnVsLCBh
cyBpdCBhbW91bnRzIAotICAgICAgKiB0byBjb2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0
aGUgc3RyaW5nLiAqLworICAgICAgKiB0byBjb2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0
aGUgc3RyaW5nLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xf
U1RSRU5HVEgsICAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAgICAgIC8qKiBXaGVu
IHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUgcG9zaXRpb25zIEhpcmFnYW5hIGJlZm9yZSBhbGwg
IAogICAgICAgKiBub24taWdub3JhYmxlcyBvbiBxdWF0ZXJuYXJ5IGxldmVsIFRoaXMgaXMgYSBz
bmVha3kgd2F5IHRvIHByb2R1Y2UgSklTCi0gICAgICAqIHNvcnQgb3JkZXIgKi8KLSAgICAgVUNP
TF9ISVJBR0FOQV9RVUFURVJOQVJZX01PREUsCisgICAgICAqIHNvcnQgb3JkZXIuCisgICAgICAq
CisgICAgICAqIFRoaXMgYXR0cmlidXRlIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiB0
aGUgQ0xEUiBKYXBhbmVzZSB0YWlsb3JpbmcuCisgICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBt
aWdodCBjaGFuZ2UgdG8gdXNlIGEgZGlmZmVyZW50IG1lY2hhbmlzbQorICAgICAgKiB0byBhY2hp
ZXZlIHRoZSBzYW1lIEphcGFuZXNlIHNvcnQgb3JkZXIuCisgICAgICAqIFNpbmNlIElDVSA1MCwg
dGhpcyBhdHRyaWJ1dGUgaXMgbm90IHNldHRhYmxlIGFueSBtb3JlIHZpYSBBUEkgZnVuY3Rpb25z
LgorICAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTAgSW1wbGVtZW50YXRpb24gZGV0YWlsLCBjYW5u
b3QgYmUgc2V0IHZpYSBBUEksIG1pZ2h0IGJlIHJlbW92ZWQgZnJvbSBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICovCisgICAgIFVDT0xfSElSQUdBTkFfUVVBVEVSTkFSWV9NT0RFID0gVUNPTF9TVFJF
TkdUSCArIDEsCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogICAgICAvKiog
V2hlbiB0dXJuZWQgb24sIHRoaXMgYXR0cmlidXRlIGdlbmVyYXRlcyBhIGNvbGxhdGlvbiBrZXkK
ICAgICAgICogZm9yIHRoZSBudW1lcmljIHZhbHVlIG9mIHN1YnN0cmluZ3Mgb2YgZGlnaXRzLgog
ICAgICAgKiBUaGlzIGlzIGEgd2F5IHRvIGdldCAnMTAwJyB0byBzb3J0IEFGVEVSICcyJy4gTm90
ZSB0aGF0IHRoZSBsb25nZXN0CiAgICAgICAqIGRpZ2l0IHN1YnN0cmluZyB0aGF0IGNhbiBiZSB0
cmVhdGVkIGFzIGEgc2luZ2xlIGNvbGxhdGlvbiBlbGVtZW50IGlzCiAgICAgICAqIDI1NCBkaWdp
dHMgKG5vdCBjb3VudGluZyBsZWFkaW5nIHplcm9zKS4gSWYgYSBkaWdpdCBzdWJzdHJpbmcgaXMK
ICAgICAgICogbG9uZ2VyIHRoYW4gdGhhdCwgdGhlIGRpZ2l0cyBiZXlvbmQgdGhlIGxpbWl0IHdp
bGwgYmUgdHJlYXRlZCBhcyBhCi0gICAgICAqIHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3Nv
Y2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24gZWxlbWVudC4gKi8KLSAgICAgVUNPTF9O
VU1FUklDX0NPTExBVElPTiwgCisgICAgICAqIHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3Nv
Y2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xsYXRpb24gZWxlbWVudC4KKyAgICAgICogQHN0YWJs
ZSBJQ1UgMi44CisgICAgICAqLworICAgICBVQ09MX05VTUVSSUNfQ09MTEFUSU9OID0gVUNPTF9T
VFJFTkdUSCArIDIsIAorICAgICAvKioKKyAgICAgICogVGhlIG51bWJlciBvZiBVQ29sQXR0cmli
dXRlIGNvbnN0YW50cy4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBV
Q09MX0FUVFJJQlVURV9DT1VOVAogfSBVQ29sQXR0cmlidXRlOwogCkBAIC0yNDgsOSArMzM2LDE5
IEBAIHR5cGVkZWYgZW51bSB7CiAgKiAgQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51
bSB7Ci0gIC8qKiBSZXRyaWV2ZSB0YWlsb3Jpbmcgb25seSAqLworICAvKioKKyAgICogUmV0cmll
dmVzIHRoZSB0YWlsb3JpbmcgcnVsZXMgb25seS4KKyAgICogU2FtZSBhcyBjYWxsaW5nIHRoZSB2
ZXJzaW9uIG9mIGdldFJ1bGVzKCkgd2l0aG91dCBVQ29sUnVsZU9wdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLwogICBVQ09MX1RBSUxPUklOR19PTkxZLCAKLSAgLyoqIFJldHJpZXZl
IFVDQSBydWxlcyBhbmQgdGFpbG9yaW5nICovCisgIC8qKgorICAgKiBSZXRyaWV2ZXMgdGhlICJV
Q0EgcnVsZXMiIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSB0YWlsb3JpbmcgcnVsZXMuCisgICAqIFRo
ZSAiVUNBIHJ1bGVzIiBhcmUgYW4gPGk+YXBwcm94aW1hdGlvbjwvaT4gb2YgdGhlIHJvb3QgY29s
bGF0b3IncyBzb3J0IG9yZGVyLgorICAgKiBUaGV5IGFyZSBhbG1vc3QgbmV2ZXIgdXNlZCBvciB1
c2VmdWwgYXQgcnVudGltZSBhbmQgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YS4KKyAgICog
U2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2NvbGxhdGlvbi9jdXN0b21pemF0
aW9uI1RPQy1CdWlsZGluZy1vbi1FeGlzdGluZy1Mb2NhbGVzCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KICAgVUNPTF9GVUxMX1JVTEVTIAogfSBVQ29sUnVsZU9wdGlvbiA7CiAKQEAgLTM0
Nyw2ICs0NDUsNyBAQCB1Y29sX29wZW5Gcm9tU2hvcnRTdHJpbmcoIGNvbnN0IGNoYXIgKmRlZmlu
aXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVycm9y
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOwogCisjaWZu
ZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogLyoqCiAgKiBHZXQgYSBzZXQgY29udGFpbmluZyB0
aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGUgc2V0IGluY2x1ZGVz
CiAgKiBib3RoIHRoZSBVQ0EgY29udHJhY3Rpb25zIGFuZCB0aGUgY29udHJhY3Rpb25zIGRlZmlu
ZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGlzIHNldApAQCAtMzY0LDYgKzQ2Myw3IEBAIFVfREVQUkVD
QVRFRCBpbnQzMl90IFVfRVhQT1JUMgogdWNvbF9nZXRDb250cmFjdGlvbnMoIGNvbnN0IFVDb2xs
YXRvciAqY29sbCwKICAgICAgICAgICAgICAgICAgIFVTZXQgKmNvbnRzLAogICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURf
QVBJICovCiAKIC8qKgogICogR2V0IGEgc2V0IGNvbnRhaW5pbmcgdGhlIGV4cGFuc2lvbnMgZGVm
aW5lZCBieSB0aGUgY29sbGF0b3IuIFRoZSBzZXQgaW5jbHVkZXMKQEAgLTQzNSw2ICs1MzUsMzMg
QEAgdWNvbF9zdHJjb2xsKCAgICBjb25zdCAgICBVQ29sbGF0b3IgICAgKmNvbGwsCiAgICAgICAg
IGNvbnN0ICAgIFVDaGFyICAgICAgICAqdGFyZ2V0LAogICAgICAgICBpbnQzMl90ICAgICAgICAg
ICAgdGFyZ2V0TGVuZ3RoKTsKIAorLyoqIAorKiBDb21wYXJlIHR3byBzdHJpbmdzIGluIFVURi04
LiAKKyogVGhlIHN0cmluZ3Mgd2lsbCBiZSBjb21wYXJlZCB1c2luZyB0aGUgb3B0aW9ucyBhbHJl
YWR5IHNwZWNpZmllZC4gCisqIE5vdGU6IFdoZW4gaW5wdXQgc3RyaW5nIGNvbnRhaW5zIG1hbGZv
cm1lZCBhIFVURi04IGJ5dGUgc2VxdWVuY2UsIAorKiB0aGlzIGZ1bmN0aW9uIHRyZWF0cyB0aGVz
ZSBieXRlcyBhcyBSRVBMQUNFTUVOVCBDSEFSQUNURVIgKFUrRkZGRCkuCisqIEBwYXJhbSBjb2xs
IFRoZSBVQ29sbGF0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiBydWxlcy4gCisqIEBwYXJh
bSBzb3VyY2UgVGhlIHNvdXJjZSBVVEYtOCBzdHJpbmcuIAorKiBAcGFyYW0gc291cmNlTGVuZ3Ro
IFRoZSBsZW5ndGggb2Ygc291cmNlLCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQuIAorKiBAcGFy
YW0gdGFyZ2V0IFRoZSB0YXJnZXQgVVRGLTggc3RyaW5nLiAKKyogQHBhcmFtIHRhcmdldExlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRhcmdldCwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLiAKKyogQHBh
cmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJv
cnMgCisqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBjb21wYXJpbmcgdGhlIHN0cmluZ3M7IG9uZSBv
ZiBVQ09MX0VRVUFMLCAKKyogVUNPTF9HUkVBVEVSLCBVQ09MX0xFU1MgCisqIEBzZWUgdWNvbF9n
cmVhdGVyIAorKiBAc2VlIHVjb2xfZ3JlYXRlck9yRXF1YWwgCisqIEBzZWUgdWNvbF9lcXVhbCAK
KyogQHN0YWJsZSBJQ1UgNTAgCisqLyAKK1VfU1RBQkxFIFVDb2xsYXRpb25SZXN1bHQgVV9FWFBP
UlQyCit1Y29sX3N0cmNvbGxVVEY4KAorICAgICAgICBjb25zdCBVQ29sbGF0b3IgKmNvbGwsCisg
ICAgICAgIGNvbnN0IGNoYXIgICAgICAqc291cmNlLAorICAgICAgICBpbnQzMl90ICAgICAgICAg
c291cmNlTGVuZ3RoLAorICAgICAgICBjb25zdCBjaGFyICAgICAgKnRhcmdldCwKKyAgICAgICAg
aW50MzJfdCAgICAgICAgIHRhcmdldExlbmd0aCwKKyAgICAgICAgVUVycm9yQ29kZSAgICAgICpz
dGF0dXMpOworCiAvKioKICAqIERldGVybWluZSBpZiBvbmUgc3RyaW5nIGlzIGdyZWF0ZXIgdGhh
biBhbm90aGVyLgogICogVGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHtAbGluayAjdWNv
bF9zdHJjb2xsIH0gPT0gVUNPTF9HUkVBVEVSCkBAIC01MzYsMzcgKzY2Myw5MCBAQCB1Y29sX3Nl
dFN0cmVuZ3RoKFVDb2xsYXRvciAqY29sbCwKICAgICAgICAgICAgICAgICAgVUNvbGxhdGlvblN0
cmVuZ3RoIHN0cmVuZ3RoKTsKIAogLyoqCi0gKiBHZXQgdGhlIGN1cnJlbnQgcmVvcmRlcmluZyBv
ZiBzY3JpcHRzIChpZiBvbmUgaGFzIGJlZW4gc2V0KS4KKyAqIFJldHJpZXZlcyB0aGUgcmVvcmRl
cmluZyBjb2RlcyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMg
YXJlIGEgY29tYmluYXRpb24gb2YgVVNjcmlwdCBjb2RlcyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVu
dHJpZXMuCiAgKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIHRvIHF1ZXJ5LgogICogQHBhcmFt
IGRlc3QgVGhlIGFycmF5IHRvIGZpbGwgd2l0aCB0aGUgc2NyaXB0IG9yZGVyaW5nLgotICogQHBh
cmFtIGRlc3RDYXBhY2l0eSBUaGUgbGVuZ3RoIG9mIGRlc3QuIElmIGl0IGlzIDAsIHRoZW4gZGVz
dCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcg
KHByZS1mbGlnaHRpbmcpLgotICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgYXJyYXkgb2YgdGhlIHNjcmlwdCBvcmRlcmluZy4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIGxlbmd0aCBvZiBkZXN0LiBJZiBpdCBpcyAwLCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwg
YW5kIHRoZSBmdW5jdGlvbiAKKyAqIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGln
aHRpbmcpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8g
YW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSAKKyAqIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJl
b3JkZXJpbmcgY29kZXMgd3JpdHRlbiB0byB0aGUgZGVzdCBhcnJheS4KICAqIEBzZWUgdWNvbF9z
ZXRSZW9yZGVyQ29kZXMKLSAqIEBpbnRlcm5hbCAKKyAqIEBzZWUgdWNvbF9nZXRFcXVpdmFsZW50
UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3JpcHRDb2RlCisgKiBAc2VlIFVDb2xSZW9yZGVyQ29k
ZQorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8KLVVfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIg
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKIHVjb2xfZ2V0UmVvcmRlckNvZGVzKGNvbnN0
IFVDb2xsYXRvciogY29sbCwKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCogZGVzdCwKICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwotCi0vKioKLSAqIFNldCB0aGUgb3JkZXJpbmcg
b2Ygc2NyaXB0cyBmb3IgdGhpcyBjb2xsYXRvci4KKy8qKiAKKyAqIFNldHMgdGhlIHJlb3JkZXJp
bmcgY29kZXMgZm9yIHRoaXMgY29sbGF0b3IuCisgKiBDb2xsYXRpb24gcmVvcmRlcmluZyBhbGxv
d3Mgc2NyaXB0cyBhbmQgc29tZSBvdGhlciBkZWZpbmVkIGJsb2NrcyBvZiBjaGFyYWN0ZXJzIAor
ICogdG8gYmUgbW92ZWQgcmVsYXRpdmUgdG8gZWFjaCBvdGhlciBhcyBhIGJsb2NrLiBUaGlzIHJl
b3JkZXJpbmcgaXMgZG9uZSBvbiB0b3Agb2YgCisgKiB0aGUgRFVDRVQvQ0xEUiBzdGFuZGFyZCBj
b2xsYXRpb24gb3JkZXIuIFJlb3JkZXJpbmcgY2FuIHNwZWNpZnkgZ3JvdXBzIHRvIGJlIHBsYWNl
ZCAKKyAqIGF0IHRoZSBzdGFydCBhbmQvb3IgdGhlIGVuZCBvZiB0aGUgY29sbGF0aW9uIG9yZGVy
LiBUaGVzZSBncm91cHMgYXJlIHNwZWNpZmllZCB1c2luZworICogVVNjcmlwdCBjb2RlcyBhbmQg
VUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuCisgKiA8cD5CeSBkZWZhdWx0LCByZW9yZGVyaW5nIGNv
ZGVzIHNwZWNpZmllZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBvcmRlciBhcmUgcGxhY2VkIGluIHRo
ZSAKKyAqIG9yZGVyIGdpdmVuIGFmdGVyIGEgZ3JvdXAgb2YgInNwZWNpYWwiIG5vbi1zY3JpcHQg
YmxvY2tzLiBUaGVzZSBzcGVjaWFsIGdyb3VwcyBvZiBjaGFyYWN0ZXJzIAorICogYXJlIHNwYWNl
LCBwdW5jdHVhdGlvbiwgc3ltYm9sLCBjdXJyZW5jeSwgYW5kIGRpZ2l0LiBUaGVzZSBzcGVjaWFs
IGdyb3VwcyBhcmUgcmVwcmVzZW50ZWQgd2l0aAorICogVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMu
IFNjcmlwdCBncm91cHMgY2FuIGJlIGludGVybWluZ2xlZCB3aXRoIAorICogdGhlc2Ugc3BlY2lh
bCBub24tc2NyaXB0IGJsb2NrcyBpZiB0aG9zZSBzcGVjaWFsIGJsb2NrcyBhcmUgZXhwbGljaXRs
eSBzcGVjaWZpZWQgaW4gdGhlIHJlb3JkZXJpbmcuCisgKiA8cD5UaGUgc3BlY2lhbCBjb2RlIE9U
SEVSUyBzdGFuZHMgZm9yIGFueSBzY3JpcHQgdGhhdCBpcyBub3QgZXhwbGljaXRseSAKKyAqIG1l
bnRpb25lZCBpbiB0aGUgbGlzdCBvZiByZW9yZGVyaW5nIGNvZGVzIGdpdmVuLiBBbnl0aGluZyB0
aGF0IGlzIGFmdGVyIE9USEVSUworICogd2lsbCBnbyBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHJl
b3JkZXJpbmcgaW4gdGhlIG9yZGVyIGdpdmVuLgorICogPHA+VGhlIHNwZWNpYWwgcmVvcmRlciBj
b2RlIERFRkFVTFQgd2lsbCByZXNldCB0aGUgcmVvcmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvcgor
ICogdG8gdGhlIGRlZmF1bHQgZm9yIHRoaXMgY29sbGF0b3IuIFRoZSBkZWZhdWx0IHJlb3JkZXJp
bmcgbWF5IGJlIHRoZSBEVUNFVC9DTERSIG9yZGVyIG9yIG1heSBiZSBhIHJlb3JkZXJpbmcgdGhh
dAorICogd2FzIHNwZWNpZmllZCB3aGVuIHRoaXMgY29sbGF0b3Igd2FzIGNyZWF0ZWQgZnJvbSBy
ZXNvdXJjZSBkYXRhIG9yIGZyb20gcnVsZXMuIFRoZSAKKyAqIERFRkFVTFQgY29kZSA8Yj5tdXN0
PC9iPiBiZSB0aGUgc29sZSBjb2RlIHN1cHBsaWVkIHdoZW4gaXQgdXNlZC4gSWYgbm90CisgKiB0
aGF0IHdpbGwgcmVzdWx0IGluIGFuIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiBiZWluZyBzZXQu
CisgKiA8cD5UaGUgc3BlY2lhbCByZW9yZGVyIGNvZGUgTk9ORSB3aWxsIHJlbW92ZSBhbnkgcmVv
cmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvci4KKyAqIFRoZSByZXN1bHQgb2Ygc2V0dGluZyBubyBy
ZW9yZGVyaW5nIHdpbGwgYmUgdG8gaGF2ZSB0aGUgRFVDRVQvQ0xEUiBvcmRlcmluZyB1c2VkLiBU
aGUgCisgKiBOT05FIGNvZGUgPGI+bXVzdDwvYj4gYmUgdGhlIHNvbGUgY29kZSBzdXBwbGllZCB3
aGVuIGl0IHVzZWQuCiAgKiBAcGFyYW0gY29sbCBUaGUgVUNvbGxhdG9yIHRvIHNldC4KLSAqIEBw
YXJhbSByZW9yZGVyQ29kZXMgQW4gYXJyYXkgb2Ygc2NyaXB0IGNvZGVzIGluIHRoZSBuZXcgb3Jk
ZXIuCisgKiBAcGFyYW0gcmVvcmRlckNvZGVzIEFuIGFycmF5IG9mIHNjcmlwdCBjb2RlcyBpbiB0
aGUgbmV3IG9yZGVyLiBUaGlzIGNhbiBiZSBOVUxMIGlmIHRoZSAKKyAqIGxlbmd0aCBpcyBhbHNv
IHNldCB0byAwLiBBbiBlbXB0eSBhcnJheSB3aWxsIGNsZWFyIGFueSByZW9yZGVyaW5nIGNvZGVz
IG9uIHRoZSBjb2xsYXRvci4KICAqIEBwYXJhbSByZW9yZGVyQ29kZXNMZW5ndGggVGhlIGxlbmd0
aCBvZiByZW9yZGVyQ29kZXMuCi0gKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQg
cG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLCB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYQorICogZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCiAg
KiBAc2VlIHVjb2xfZ2V0UmVvcmRlckNvZGVzCi0gKiBAaW50ZXJuYWwgCi0gKi8KLVVfSU5URVJO
QUwgdm9pZCBVX0VYUE9SVDIgCisgKiBAc2VlIHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2Rl
cworICogQHNlZSBVU2NyaXB0Q29kZQorICogQHNlZSBVQ29sUmVvcmRlckNvZGUKKyAqIEBzdGFi
bGUgSUNVIDQuOAorICovIAorVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCiB1Y29sX3NldFJlb3Jk
ZXJDb2RlcyhVQ29sbGF0b3IqIGNvbGwsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMy
X3QqIHJlb3JkZXJDb2RlcywKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZW9yZGVyQ29k
ZXNMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwog
CiAvKioKKyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlciBjb2RlcyB0aGF0IGFyZSBncm91cGVkIHdp
dGggdGhlIGdpdmVuIHJlb3JkZXIgY29kZS4gU29tZSByZW9yZGVyCisgKiBjb2RlcyB3aWxsIGJl
IGdyb3VwZWQgYW5kIG11c3QgcmVvcmRlciB0b2dldGhlci4KKyAqIEBwYXJhbSByZW9yZGVyQ29k
ZSBUaGUgcmVvcmRlciBjb2RlIHRvIGRldGVybWluZSBlcXVpdmFsZW5jZSBmb3IuCisgKiBAcGFy
YW0gZGVzdCBUaGUgYXJyYXkgdG8gZmlsbCB3aXRoIHRoZSBzY3JpcHQgb3JkZXJpbmcuCisgKiBA
cGFyYW0gZGVzdENhcGFjaXR5IFRoZSBsZW5ndGggb2YgZGVzdC4gSWYgaXQgaXMgMCwgdGhlbiBk
ZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24KKyAqIHdpbGwgb25seSByZXR1cm4gdGhl
IGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBz
dHJpbmcgKHByZS1mbGlnaHRpbmcpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZh
bGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgCisgKiBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBU
aGUgbnVtYmVyIG9mIHJlb3JkZXJpbmcgY29kZXMgd3JpdHRlbiB0byB0aGUgZGVzdCBhcnJheS4K
KyAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29k
ZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAqIEBzZWUgVUNvbFJlb3JkZXJDb2RlCisgKiBAc3Rh
YmxlIElDVSA0LjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgCit1Y29sX2dldEVx
dWl2YWxlbnRSZW9yZGVyQ29kZXMoaW50MzJfdCByZW9yZGVyQ29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCogZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKICAqIEdldCB0aGUgZGlzcGxheSBuYW1lIGZvciBhIFVDb2xsYXRvci4KICAqIFRoZSBkaXNw
bGF5IG5hbWUgaXMgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byBhIHVzZXIuCiAgKiBAcGFy
YW0gb2JqTG9jIFRoZSBsb2NhbGUgb2YgdGhlIGNvbGxhdG9yIGluIHF1ZXN0aW9uLgpAQCAtNzA1
LDExICs4ODUsMTEgQEAgdWNvbF9nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChjaGFyKiByZXN1bHQs
IGludDMyX3QgcmVzdWx0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVC
b29sKiBpc0F2YWlsYWJsZSwgVUVycm9yQ29kZSogc3RhdHVzKTsKIAogLyoqCi0gKiBHZXQgdGhl
IGNvbGxhdGlvbiBydWxlcyBmcm9tIGEgVUNvbGxhdG9yLgorICogR2V0IHRoZSBjb2xsYXRpb24g
dGFpbG9yaW5nIHJ1bGVzIGZyb20gYSBVQ29sbGF0b3IuCiAgKiBUaGUgcnVsZXMgd2lsbCBmb2xs
b3cgdGhlIHJ1bGUgc3ludGF4LgogICogQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRvciB0byBxdWVy
eS4KICAqIEBwYXJhbSBsZW5ndGggCi0gKiBAcmV0dXJuIFRoZSBjb2xsYXRpb24gcnVsZXMuCisg
KiBAcmV0dXJuIFRoZSBjb2xsYXRpb24gdGFpbG9yaW5nIHJ1bGVzLgogICogQHN0YWJsZSBJQ1Ug
Mi4wCiAgKi8KIFVfU1RBQkxFIGNvbnN0IFVDaGFyKiBVX0VYUE9SVDIgCkBAIC04MDIsMTAgKzk4
MiwxMCBAQCB1Y29sX2dldFNvcnRLZXkoY29uc3QgICAgVUNvbGxhdG9yICAgICpjb2xsLAogICog
IHRvIHByZXNlcnZlIHN0YXRlIGFycmF5IGJldHdlZW4gY2FsbHMgYW5kIHRvIHByb3ZpZGUKICAq
ICB0aGUgc2FtZSB0eXBlIG9mIFVDaGFySXRlcmF0b3Igc2V0IHdpdGggdGhlIHNhbWUgc3RyaW5n
LgogICogIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIgcHJvdmlkZWQgbXVzdCBiZSBiaWcgZW5vdWdo
IHRvIHN0b3JlCi0gKiAgdGhlIG51bWJlciBvZiByZXF1ZXN0ZWQgYnl0ZXMuIEdlbmVyYXRlZCBz
b3J0a2V5IGlzIG5vdCAKLSAqICBjb21wYXRpYmxlIHdpdGggc29ydGtleXMgZ2VuZXJhdGVkIHVz
aW5nIHVjb2xfZ2V0U29ydEtleQotICogIEFQSSwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IGNvbXBy
ZXNzaW9uLiBJZiB1bmNvbXByZXNzZWQKLSAqICBzb3J0a2V5cyBhcmUgcmVxdWlyZWQsIHRoaXMg
QVBJIGNhbiBiZSB1c2VkLgorICogIHRoZSBudW1iZXIgb2YgcmVxdWVzdGVkIGJ5dGVzLgorICoK
KyAqICBUaGUgZ2VuZXJhdGVkIHNvcnQga2V5IG1heSBvciBtYXkgbm90IGJlIGNvbXBhdGlibGUg
d2l0aAorICogIHNvcnQga2V5cyBnZW5lcmF0ZWQgdXNpbmcgdWNvbF9nZXRTb3J0S2V5KCkuCiAg
KiAgQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRvciBjb250YWluaW5nIHRoZSBjb2xsYXRpb24gcnVs
ZXMuCiAgKiAgQHBhcmFtIGl0ZXIgVUNoYXJJdGVyYXRvciBjb250YWluaW5nIHRoZSBzdHJpbmcg
d2UgbmVlZCAKICAqICAgICAgICAgICAgICB0aGUgc29ydCBrZXkgdG8gYmUgY2FsY3VsYXRlZCBm
b3IuCkBAIC05MDksMjYgKzEwODksNDAgQEAgdWNvbF9nZXRWZXJzaW9uKGNvbnN0IFVDb2xsYXRv
ciogY29sbCwgVVZlcnNpb25JbmZvIGluZm8pOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVj
b2xfZ2V0VUNBVmVyc2lvbihjb25zdCBVQ29sbGF0b3IqIGNvbGwsIFVWZXJzaW9uSW5mbyBpbmZv
KTsKIAotLyoqIAotICogTWVyZ2UgdHdvIHNvcnQga2V5cy4gVGhlIGxldmVscyBhcmUgbWVyZ2Vk
IHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBjb3VudGVycGFydHMKKy8qKgorICogTWVyZ2VzIHR3
byBzb3J0IGtleXMuIFRoZSBsZXZlbHMgYXJlIG1lcmdlZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRp
bmcgY291bnRlcnBhcnRzCiAgKiAocHJpbWFyaWVzIHdpdGggcHJpbWFyaWVzLCBzZWNvbmRhcmll
cyB3aXRoIHNlY29uZGFyaWVzIGV0Yy4pLiBCZXR3ZWVuIHRoZSB2YWx1ZXMKICAqIGZyb20gdGhl
IHNhbWUgbGV2ZWwgYSBzZXBhcmF0b3IgaXMgaW5zZXJ0ZWQuCi0gKiBleGFtcGxlICh1bmNvbXBy
ZXNzZWQpOiAKLSAqIDE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwIGFuZCAxRjIxMjMgMDEg
MDUwNTA1IDAxIDkxMDUwNSAwMAorICoKKyAqIFRoaXMgaXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwg
Zm9yIGNvbWJpbmluZyBzb3J0IGtleXMgZnJvbSBmaXJzdCBhbmQgbGFzdCBuYW1lcworICogdG8g
c29ydCBzdWNoIHBhaXJzLgorICogSXQgaXMgcG9zc2libGUgdG8gbWVyZ2UgbXVsdGlwbGUgc29y
dCBrZXlzIGJ5IGNvbnNlY3V0aXZlbHkgbWVyZ2luZworICogYW5vdGhlciBvbmUgd2l0aCB0aGUg
aW50ZXJtZWRpYXRlIHJlc3VsdC4KKyAqCisgKiBUaGUgbGVuZ3RoIG9mIHRoZSBtZXJnZSByZXN1
bHQgaXMgdGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiB0aGUgaW5wdXQgc29ydCBrZXlzLgorICoK
KyAqIEV4YW1wbGUgKHVuY29tcHJlc3NlZCk6CisgKiA8cHJlPjE5MUIxRCAwMSAwNTA1MDUgMDEg
OTEwNTA1IDAwCisgKiAxRjIxMjMgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMDwvcHJlPgogICogd2ls
bCBiZSBtZXJnZWQgYXMgCi0gKiAxOTFCMUQgMDIgMUYyMTIzMDEgMDUwNTA1IDAyIDA1MDUwNSAw
MSA5MTA1MDUgMDIgOTEwNTA1IDAwCi0gKiBUaGlzIGFsbG93cyBmb3IgY29uY2F0ZW5hdGluZyBv
ZiBmaXJzdCBhbmQgbGFzdCBuYW1lcyBmb3Igc29ydGluZywgYW1vbmcgb3RoZXIgdGhpbmdzLgot
ICogSWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyBub3QgYmlnIGVub3VnaCwgdGhlIHJlc3Vs
dHMgYXJlIHVuZGVmaW5lZC4KLSAqIElmIGFueSBvZiBzb3VyY2UgbGVuZ3RocyBhcmUgemVybyBv
ciBhbnkgb2Ygc291cmNlIHBvaW50ZXJzIGFyZSBOVUxML3VuZGVmaW5lZCwgCi0gKiByZXN1bHQg
aXMgb2Ygc2l6ZSB6ZXJvLgotICogQHBhcmFtIHNyYzEgcG9pbnRlciB0byB0aGUgZmlyc3Qgc29y
dGtleQotICogQHBhcmFtIHNyYzFMZW5ndGggbGVuZ3RoIG9mIHRoZSBmaXJzdCBzb3J0a2V5Ci0g
KiBAcGFyYW0gc3JjMiBwb2ludGVyIHRvIHRoZSBzZWNvbmQgc29ydGtleQotICogQHBhcmFtIHNy
YzJMZW5ndGggbGVuZ3RoIG9mIHRoZSBzZWNvbmQgc29ydGtleQotICogQHBhcmFtIGRlc3QgYnVm
ZmVyIHRvIGhvbGQgdGhlIHJlc3VsdAotICogQHBhcmFtIGRlc3RDYXBhY2l0eSBzaXplIG9mIHRo
ZSBidWZmZXIgZm9yIHRoZSByZXN1bHQKLSAqIEByZXR1cm4gc2l6ZSBvZiB0aGUgcmVzdWx0LiBJ
ZiB0aGUgYnVmZmVyIGlzIGJpZyBlbm91Z2ggc2l6ZSBpcyBhbHdheXMKLSAqICAgICAgICAgc3Jj
MUxlbmd0aCtzcmMyTGVuZ3RoLTEKKyAqIDxwcmU+MTkxQjFEIDAyIDFGMjEyMyAwMSAwNTA1MDUg
MDIgMDUwNTA1IDAxIDkxMDUwNSAwMiA5MTA1MDUgMDA8L3ByZT4KKyAqCisgKiBJZiB0aGUgZGVz
dGluYXRpb24gYnVmZmVyIGlzIG5vdCBiaWcgZW5vdWdoLCB0aGVuIGl0cyBjb250ZW50cyBhcmUg
dW5kZWZpbmVkLgorICogSWYgYW55IG9mIHNvdXJjZSBsZW5ndGhzIGFyZSB6ZXJvIG9yIGFueSBv
ZiB0aGUgc291cmNlIHBvaW50ZXJzIGFyZSBOVUxML3VuZGVmaW5lZCwKKyAqIHRoZSByZXN1bHQg
aXMgb2Ygc2l6ZSB6ZXJvLgorICoKKyAqIEBwYXJhbSBzcmMxIHRoZSBmaXJzdCBzb3J0IGtleQor
ICogQHBhcmFtIHNyYzFMZW5ndGggdGhlIGxlbmd0aCBvZiB0aGUgZmlyc3Qgc29ydCBrZXksIGlu
Y2x1ZGluZyB0aGUgemVybyBieXRlIGF0IHRoZSBlbmQ7CisgKiAgICAgICAgY2FuIGJlIC0xIGlm
IHRoZSBmdW5jdGlvbiBpcyB0byBmaW5kIHRoZSBsZW5ndGgKKyAqIEBwYXJhbSBzcmMyIHRoZSBz
ZWNvbmQgc29ydCBrZXkKKyAqIEBwYXJhbSBzcmMyTGVuZ3RoIHRoZSBsZW5ndGggb2YgdGhlIHNl
Y29uZCBzb3J0IGtleSwgaW5jbHVkaW5nIHRoZSB6ZXJvIGJ5dGUgYXQgdGhlIGVuZDsKKyAqICAg
ICAgICBjYW4gYmUgLTEgaWYgdGhlIGZ1bmN0aW9uIGlzIHRvIGZpbmQgdGhlIGxlbmd0aAorICog
QHBhcmFtIGRlc3QgdGhlIGJ1ZmZlciB3aGVyZSB0aGUgbWVyZ2VkIHNvcnQga2V5IGlzIHdyaXR0
ZW4sCisgKiAgICAgICAgY2FuIGJlIE5VTEwgaWYgZGVzdENhcGFjaXR5PT0wCisgKiBAcGFyYW0g
ZGVzdENhcGFjaXR5IHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRlc3QgYnVmZmVyCisgKiBA
cmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIG1lcmdlZCBzb3J0IGtleSwgc3JjMUxlbmd0aCtzcmMy
TGVuZ3RoOworICogICAgICAgICBjYW4gYmUgbGFyZ2VyIHRoYW4gZGVzdENhcGFjaXR5LCBvciAw
IGlmIGFuIGVycm9yIG9jY3VycyAob25seSBmb3IgaWxsZWdhbCBhcmd1bWVudHMpLAorICogICAg
ICAgICBpbiB3aGljaCBjYXNlcyB0aGUgY29udGVudHMgb2YgZGVzdCBpcyB1bmRlZmluZWQKICAq
IEBzdGFibGUgSUNVIDIuMAogICovCiBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKQEAgLTEw
MTgsMTIgKzEyMTIsMTMgQEAgdWNvbF9yZXN0b3JlVmFyaWFibGVUb3AoVUNvbGxhdG9yICpjb2xs
LCBjb25zdCB1aW50MzJfdCB2YXJUb3AsIFVFcnJvckNvZGUgKnN0YXQKIC8qKgogICogVGhyZWFk
IHNhZmUgY2xvbmluZyBvcGVyYXRpb24uIFRoZSByZXN1bHQgaXMgYSBjbG9uZSBvZiBhIGdpdmVu
IGNvbGxhdG9yLgogICogQHBhcmFtIGNvbGwgY29sbGF0b3IgdG8gYmUgY2xvbmVkCi0gKiBAcGFy
YW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIAor
ICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2Yg
SUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4KKyAqIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0
aGUgbmV3IGNsb25lLiAKICAqIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4g
CiAgKiAgSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBh
bGxvY2F0ZWQuCi0gKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVS
U0laRS4gCi0gKiAgVGhpcyB3aWxsIHByb2JhYmx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkg
YWxsb2NhdGlvbnMuCi0gKiBAcGFyYW0gcEJ1ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFs
bG9jYXRlZCBzcGFjZS4gCisgKiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVf
QlVGRkVSU0laRS4KKyAqIEBwYXJhbSBwQnVmZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlv
bmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVy
IHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLiAKICAqICBJZiAqcEJ1ZmZlclNpemUgPT0gMCwg
YSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwgCiAgKiAgYmUgcmV0dXJu
ZWQgKCdwcmUtZmxpZ2h0aW5nJykKICAqICBJZiAqcEJ1ZmZlclNpemUgaXMgbm90IGVub3VnaCBm
b3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLCAKQEAgLTEwNDMsMjUgKzEyMzgsMzQgQEAgdWNv
bF9zYWZlQ2xvbmUoY29uc3QgVUNvbGxhdG9yICpjb2xsLAogICAgICAgICAgICAgICAgaW50MzJf
dCAgICAgICAgICpwQnVmZmVyU2l6ZSwKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAq
c3RhdHVzKTsKIAotLyoqIGRlZmF1bHQgbWVtb3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUuIEl0
IG5lZWRzIHRvIGJlIHRoaXMgbGFyZ2UgZm9yIG9zLzQwMCBsYXJnZSBwb2ludGVycyAKLSAqIEBz
dGFibGUgSUNVIDIuMAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworLyoqIGRlZmF1
bHQgbWVtb3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIu
IERvIG5vdCByZWx5IG9uIHVjb2xfc2FmZUNsb25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92aWRl
ZCBidWZmZXIuCiAgKi8KLSNkZWZpbmUgVV9DT0xfU0FGRUNMT05FX0JVRkZFUlNJWkUgNTEyCisj
ZGVmaW5lIFVfQ09MX1NBRkVDTE9ORV9CVUZGRVJTSVpFIDEKKworI2VuZGlmIC8qIFVfSElERV9E
RVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIFJldHVybnMgY3VycmVudCBydWxlcy4gRGVsdGEg
ZGVmaW5lcyB3aGV0aGVyIGZ1bGwgcnVsZXMgYXJlIHJldHVybmVkIG9yIGp1c3QgdGhlIHRhaWxv
cmluZy4gCiAgKiBSZXR1cm5zIG51bWJlciBvZiBVQ2hhcnMgbmVlZGVkIHRvIHN0b3JlIHJ1bGVz
LiBJZiBidWZmZXIgaXMgTlVMTCBvciBidWZmZXJMZW4gaXMgbm90IGVub3VnaCAKICAqIHRvIHN0
b3JlIHJ1bGVzLCB3aWxsIHN0b3JlIHVwIHRvIGF2YWlsYWJsZSBzcGFjZS4KKyAqCisgKiB1Y29s
X2dldFJ1bGVzKCkgc2hvdWxkIG5vcm1hbGx5IGJlIHVzZWQgaW5zdGVhZC4KKyAqIFNlZSBodHRw
Oi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9jb2xsYXRpb24vY3VzdG9taXphdGlvbiNUT0Mt
QnVpbGRpbmctb24tRXhpc3RpbmctTG9jYWxlcwogICogQHBhcmFtIGNvbGwgY29sbGF0b3IgdG8g
Z2V0IHRoZSBydWxlcyBmcm9tCiAgKiBAcGFyYW0gZGVsdGEgb25lIG9mIFVDT0xfVEFJTE9SSU5H
X09OTFksIFVDT0xfRlVMTF9SVUxFUy4gCiAgKiBAcGFyYW0gYnVmZmVyIGJ1ZmZlciB0byBzdG9y
ZSB0aGUgcmVzdWx0IGluLiBJZiBOVUxMLCB5b3UnbGwgZ2V0IG5vIHJ1bGVzLgotICogQHBhcmFt
IGJ1ZmZlckxlbiBsZW5naHQgb2YgYnVmZmVyIHRvIHN0b3JlIHJ1bGVzIGluLiBJZiBsZXNzIHRo
ZW4gbmVlZGVkIHlvdSdsbCBnZXQgb25seSB0aGUgcGFydCB0aGF0IGZpdHMgaW4uCisgKiBAcGFy
YW0gYnVmZmVyTGVuIGxlbmd0aCBvZiBidWZmZXIgdG8gc3RvcmUgcnVsZXMgaW4uIElmIGxlc3Mg
dGhhbiBuZWVkZWQgeW91J2xsIGdldCBvbmx5IHRoZSBwYXJ0IHRoYXQgZml0cyBpbi4KICAqIEBy
ZXR1cm4gY3VycmVudCBydWxlcwogICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFVDT0xfRlVM
TF9SVUxFUwogICovCiBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKIHVjb2xfZ2V0UnVsZXNF
eChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVDb2xSdWxlT3B0aW9uIGRlbHRhLCBVQ2hhciAqYnVm
ZmVyLCBpbnQzMl90IGJ1ZmZlckxlbik7CiAKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJ
CiAvKioKICAqIGdldHMgdGhlIGxvY2FsZSBuYW1lIG9mIHRoZSBjb2xsYXRvci4gSWYgdGhlIGNv
bGxhdG9yCiAgKiBpcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgcnVsZXMsIHRoZW4gdGhpcyBmdW5j
dGlvbiByZXR1cm5zCkBAIC0xMDc4LDcgKzEyODIsNyBAQCB1Y29sX2dldFJ1bGVzRXgoY29uc3Qg
VUNvbGxhdG9yICpjb2xsLCBVQ29sUnVsZU9wdGlvbiBkZWx0YSwgVUNoYXIgKmJ1ZmZlciwgaW50
MwogICovCiBVX0RFUFJFQ0FURUQgY29uc3QgY2hhciAqIFVfRVhQT1JUMgogdWNvbF9nZXRMb2Nh
bGUoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9y
Q29kZSAqc3RhdHVzKTsKLQorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KIAog
LyoqCiAgKiBnZXRzIHRoZSBsb2NhbGUgbmFtZSBvZiB0aGUgY29sbGF0b3IuIElmIHRoZSBjb2xs
YXRvcgpAQCAtMTExMCw2ICsxMzE0LDcgQEAgdWNvbF9nZXRMb2NhbGVCeVR5cGUoY29uc3QgVUNv
bGxhdG9yICpjb2xsLCBVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZQogVV9TVEFC
TEUgVVNldCAqIFVfRVhQT1JUMgogdWNvbF9nZXRUYWlsb3JlZFNldChjb25zdCBVQ29sbGF0b3Ig
KmNvbGwsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQogLyoqCiAgKiBVbml2ZXJzYWwgYXR0cmlidXRlIGdldHRlciB0aGF0IHJldHVybnMgVUNPTF9E
RUZBVUxUIGlmIHRoZSB2YWx1ZSBpcyBkZWZhdWx0CiAgKiBAcGFyYW0gY29sbCBjb2xsYXRvciB3
aGljaCBhdHRyaWJ1dGVzIGFyZSB0byBiZSBjaGFuZ2VkCkBAIC0xMTgyLDYgKzEzODcsNyBAQCB1
Y29sX3ByZXBhcmVTaG9ydFN0cmluZ09wZW4oIGNvbnN0IGNoYXIgKmRlZmluaXRpb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVCb29sIGZvcmNlRGVmYXVsdHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVycm9yLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxf
QVBJICovCiAKIC8qKiBDcmVhdGVzIGEgYmluYXJ5IGltYWdlIG9mIGEgY29sbGF0b3IuIFRoaXMg
YmluYXJ5IGltYWdlIGNhbiBiZSBzdG9yZWQgYW5kIAogICogIGxhdGVyIHVzZWQgdG8gaW5zdGFu
dGlhdGUgYSBjb2xsYXRvciB1c2luZyB1Y29sX29wZW5CaW5hcnkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3Vjb25maWcuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNv
bmZpZy5oCmluZGV4IDdkMmQyNmU5NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJm
YThlNzdiMGYxYTM1MjIwNzZmYzBhNjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWNvbmZpZy5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNvbmZpZy5oCkBAIC0xLDYgKzEsNiBAQAogLyogIAogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHly
aWdodCAoQykgMjAwMi0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
ICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKICogICBmaWxlIG5hbWU6ICB1Y29uZmlnLmgKQEAgLTE4LDkgKzE4LDE3IEBACiAK
IC8qIQogICogXGZpbGUKLSAqIFxicmllZiBTd2l0Y2hlcyBmb3IgZXhjbHVkaW5nIHBhcnRzIG9m
IElDVSBsaWJyYXJ5IGNvZGUgbW9kdWxlcy4KKyAqIFxicmllZiBVc2VyLWNvbmZpZ3VyYWJsZSBz
ZXR0aW5ncwogICoKLSAqIEFsbG93cyB0byBidWlsZCBwYXJ0aWFsLCBzbWFsbGVyIGxpYnJhcmll
cyBmb3Igc3BlY2lhbCBwdXJwb3Nlcy4KKyAqIE1pc2NlbGxhbmVvdXMgc3dpdGNoZXM6CisgKgor
ICogQSBudW1iZXIgb2YgbWFjcm9zIGFmZmVjdCBhIHZhcmlldHkgb2YgbWlub3IgYXNwZWN0cyBv
ZiBJQ1UuCisgKiBNb3N0IG9mIHRoZW0gdXNlZCB0byBiZSBkZWZpbmVkIGVsc2V3aGVyZSAoZS5n
LiwgaW4gdXR5cGVzLmggb3IgcGxhdGZvcm0uaCkKKyAqIGFuZCBtb3ZlZCBoZXJlIHRvIG1ha2Ug
dGhlbSBlYXNpZXIgdG8gZmluZC4KKyAqCisgKiBTd2l0Y2hlcyBmb3IgZXhjbHVkaW5nIHBhcnRz
IG9mIElDVSBsaWJyYXJ5IGNvZGUgbW9kdWxlczoKKyAqCisgKiBDaGFuZ2luZyB0aGVzZSBtYWNy
b3MgYWxsb3dzIGJ1aWxkaW5nIHBhcnRpYWwsIHNtYWxsZXIgbGlicmFyaWVzIGZvciBzcGVjaWFs
IHB1cnBvc2VzLgogICogQnkgZGVmYXVsdCwgYWxsIG1vZHVsZXMgYXJlIGJ1aWx0LgogICogVGhl
IHN3aXRjaGVzIGFyZSBmYWlybHkgY29hcnNlLCBjb250cm9sbGluZyBsYXJnZSBtb2R1bGVzLgog
ICogQmFzaWMgc2VydmljZXMgY2Fubm90IGJlIHR1cm5lZCBvZmYuCkBAIC0zOCwxNSArNDYsMTUz
IEBACiAvKioKICAqIElmIHRoaXMgc3dpdGNoIGlzIGRlZmluZWQsIElDVSB3aWxsIGF0dGVtcHQg
dG8gbG9hZCBhIGhlYWRlciBmaWxlIG5hbWVkICJ1Y29uZmlnX2xvY2FsLmgiCiAgKiBwcmlvciB0
byBkZXRlcm1pbmluZyBkZWZhdWx0IHNldHRpbmdzIGZvciB1Y29uZmlnIHZhcmlhYmxlcy4KLSAq
IAorICoKICAqIEBpbnRlcm5hbCBJQ1UgNC4wCi0gKiAKICAqLwogI2lmIGRlZmluZWQoVUNPTkZJ
R19VU0VfTE9DQUwpCiAjaW5jbHVkZSAidWNvbmZpZ19sb2NhbC5oIgogI2VuZGlmCiAKIC8qKgor
ICogXGRlZiBVX0RFQlVHCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gaW5jbHVkZSBkZWJ1Z2dp
bmcgY29kZS4KKyAqIEF1dG9tYXRpY2FsbHkgc2V0IG9uIFdpbmRvd3MsIGJ1dCBtb3N0IGNvbXBp
bGVycyBkbyBub3QgaGF2ZQorICogcmVsYXRlZCBwcmVkZWZpbmVkIG1hY3Jvcy4KKyAqIEBpbnRl
cm5hbAorICovCisjaWZkZWYgVV9ERUJVRworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmIGRlZmluZWQoX0RFQlVHKQorICAgIC8qCisgICAgICogX0RFQlVHIGlzIGRl
ZmluZWQgYnkgVmlzdWFsIFN0dWRpbyBkZWJ1ZyBjb21waWxhdGlvbi4KKyAgICAgKiBEbyAqbm90
KiB0ZXN0IGZvciBpdHMgTkRFQlVHIG1hY3JvOiBJdCBpcyBhbiBvcnRob2dvbmFsIG1hY3JvCisg
ICAgICogd2hpY2ggZGlzYWJsZXMgYXNzZXJ0KCkuCisgICAgICovCisjICAgZGVmaW5lIFVfREVC
VUcgMQorIyBlbHNlCisjICAgZGVmaW5lIFVfREVCVUcgMAorI2VuZGlmCisKKy8qKgorICogRGV0
ZXJtaW5lcyB3aGV0ZXIgdG8gZW5hYmxlIGF1dG8gY2xlYW51cCBvZiBsaWJyYXJpZXMuIAorICog
QGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNMTl9OT19BVVRPX0NMRUFOVVAKKyNkZWZpbmUgVUNM
Tl9OT19BVVRPX0NMRUFOVVAgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0RJU0FCTEVfUkVO
QU1JTkcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBkaXNhYmxlIHJlbmFtaW5nIG9yIG5vdC4K
KyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRElTQUJMRV9SRU5BTUlORworI2RlZmluZSBV
X0RJU0FCTEVfUkVOQU1JTkcgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX05PX0RFRkFVTFRf
SU5DTFVERV9VVEZfSEVBREVSUworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHV0eXBlcy5oIGluY2x1
ZGVzIHV0Zi5oLCB1dGY4LmgsIHV0ZjE2LmggYW5kIHV0Zl9vbGQuaC4KKyAqIHV0eXBlcy5oIGlu
Y2x1ZGVzIHRob3NlIGhlYWRlcnMgaWYgdGhpcyBtYWNybyBpcyBkZWZpbmVkIHRvIDAuCisgKiBP
dGhlcndpc2UsIGVhY2ggdGhvc2UgaGVhZGVycyBtdXN0IGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkg
d2hlbiB1c2luZyBvbmUgb2YgdGhlaXIgbWFjcm9zLgorICogRGVmYXVsdHMgdG8gMCBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eSwgZXhjZXB0IGluc2lkZSBJQ1UuCisgKiBAc3RhYmxlIElDVSA0
OQorICovCisjaWZkZWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMKKyAgICAvKiBV
c2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfQ09NQklORURfSU1Q
TEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9DT01NT05fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmlu
ZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVfSU9fSU1QTEVN
RU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQo
VV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikgfHwgXAorICAgICAgZGVmaW5lZChVX1RPT0xVVElM
X0lNUExFTUVOVEFUSU9OKQorIyAgIGRlZmluZSBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVB
REVSUyAxCisjZWxzZQorIyAgIGRlZmluZSBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVS
UyAwCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04KKyAq
IERldGVybWluZXMgd2hldGhlciB0byBvdmVycmlkZSBuZXcgYW5kIGRlbGV0ZS4KKyAqIElDVSBp
cyBub3JtYWxseSBidWlsdCBzdWNoIHRoYXQgYWxsIG9mIGl0cyBDKysgY2xhc3NlcywgdmlhIHRo
ZWlyIFVNZW1vcnkgYmFzZSwKKyAqIG92ZXJyaWRlIG9wZXJhdG9ycyBuZXcgYW5kIGRlbGV0ZSB0
byB1c2UgaXRzIGludGVybmFsLCBjdXN0b21pemFibGUsCisgKiBub24tZXhjZXB0aW9uLXRocm93
aW5nIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucy4gKERlZmF1bHQgdmFsdWUgMSBmb3IgdGhp
cyBtYWNyby4pCisgKgorICogVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB3aGVuIHRoZSBh
cHBsaWNhdGlvbiBhbmQgaXRzIGxpYnJhcmllcyB1c2UgbXVsdGlwbGUgaGVhcHMuCisgKiBGb3Ig
ZXhhbXBsZSwgb24gV2luZG93cywgdGhpcyBhbGxvd3MgdGhlIElDVSBETEwgdG8gYmUgdXNlZCBi
eQorICogYXBwbGljYXRpb25zIHRoYXQgc3RhdGljYWxseSBsaW5rIHRoZSBDIFJ1bnRpbWUgbGli
cmFyeS4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjIKKyAqLworI2lmbmRlZiBVX09WRVJSSURFX0NY
WF9BTExPQ0FUSU9OCisjZGVmaW5lIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gMQorI2VuZGlm
CisKKy8qKgorICogXGRlZiBVX0VOQUJMRV9UUkFDSU5HCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIg
dG8gZW5hYmxlIHRyYWNpbmcuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0VOQUJMRV9U
UkFDSU5HCisjZGVmaW5lIFVfRU5BQkxFX1RSQUNJTkcgMAorI2VuZGlmCisKKy8qKgorICogXGRl
ZiBVX0VOQUJMRV9EWUxPQUQKKyAqIFdoZXRoZXIgdG8gZW5hYmxlIER5bmFtaWMgbG9hZGluZyBp
biBJQ1UuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0VOQUJMRV9EWUxPQUQKKyNkZWZp
bmUgVV9FTkFCTEVfRFlMT0FEIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9DSEVDS19EWUxP
QUQKKyAqIFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxvYWRpbmcgYXMgYW4gT1MgY2FwYWJpbGl0
eS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfQ0hFQ0tfRFlMT0FECisjZGVmaW5lIFVf
Q0hFQ0tfRFlMT0FEIDEKKyNlbmRpZgorCisKKy8qKgorICogXGRlZiBVX0RFRkFVTFRfU0hPV19E
UkFGVAorICogRG8gd2UgYWxsb3cgSUNVIHVzZXJzIHRvIHVzZSB0aGUgZHJhZnQgQVBJcyBieSBk
ZWZhdWx0PworICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9ERUZBVUxUX1NIT1dfRFJBRlQK
KyNkZWZpbmUgVV9ERUZBVUxUX1NIT1dfRFJBRlQgMQorI2VuZGlmCisKKy8qPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ki8KKy8qIEN1c3RvbSBpY3UgZW50cnkgcG9pbnQgcmVuYW1pbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
KworLyoqCisgKiBcZGVmIFVfSEFWRV9MSUJfU1VGRklYCisgKiAxIGlmIGEgY3VzdG9tIGxpYnJh
cnkgc3VmZml4IGlzIHNldC4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0xJQl9T
VUZGSVgKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVk
KFVfTElCX1NVRkZJWF9DX05BTUUpCisjICAgZGVmaW5lIFVfSEFWRV9MSUJfU1VGRklYIDEKKyNl
bmRpZgorCisvKioKKyAqIFxkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAqIERlZmlu
ZXMgdGhlIGxpYnJhcnkgc3VmZml4IGFzIGEgc3RyaW5nIHdpdGggQyBzeW50YXguCisgKiBAaW50
ZXJuYWwKKyAqLworI2lmZGVmIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX0xJQl9TVUZGSVhfQ19O
QU1FKQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAjVV9MSUJfU1VGRklY
X0NfTkFNRQorI2Vsc2UKKyMgICBkZWZpbmUgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcgIiIK
KyNlbmRpZgorCisvKiBjb21tb24vaTE4biBsaWJyYXJ5IHN3aXRjaGVzIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKioKICAqIFxkZWYgVUNPTkZJ
R19PTkxZX0NPTExBVElPTgogICogVGhpcyBzd2l0Y2ggdHVybnMgb2ZmIG1vZHVsZXMgdGhhdCBh
cmUgbm90IG5lZWRlZCBmb3IgY29sbGF0aW9uLgogICoKQEAgLTE0Niw2ICsyOTIsOSBAQAogIyAg
IGRlZmluZSBVQ09ORklHX05PX05PUk1BTElaQVRJT04gMAogI2VsaWYgVUNPTkZJR19OT19OT1JN
QUxJWkFUSU9OCiAgICAgLyogY29tbW9uIGxpYnJhcnkgKi8KKyAgICAvKiBJQ1UgNTAgQ0pLIGRp
Y3Rpb25hcnkgQnJlYWtJdGVyYXRvciB1c2VzIG5vcm1hbGl6YXRpb24gKi8KKyMgICBkZWZpbmUg
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gMQorICAgIC8qIElETkEgKFVUUyAjNDYpIGlzIGlt
cGxlbWVudGVkIHZpYSBub3JtYWxpemF0aW9uICovCiAjICAgZGVmaW5lIFVDT05GSUdfTk9fSURO
QSAxCiAKICAgICAvKiBpMThuIGxpYnJhcnkgKi8KQEAgLTE3Niw2ICszMjUsMTcgQEAKICMgICBk
ZWZpbmUgVUNPTkZJR19OT19JRE5BIDAKICNlbmRpZgogCisvKioKKyAqIFxkZWYgVUNPTkZJR19N
U0dQQVRfREVGQVVMVF9BUE9TVFJPUEhFX01PREUKKyAqIERldGVybWluZXMgdGhlIGRlZmF1bHQg
VU1lc3NhZ2VQYXR0ZXJuQXBvc3Ryb3BoZU1vZGUuCisgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24g
Zm9yIHRoYXQgZW51bS4KKyAqCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLworI2lmbmRlZiBVQ09O
RklHX01TR1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorIyAgIGRlZmluZSBVQ09ORklHX01T
R1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERSBVTVNHUEFUX0FQT1NfRE9VQkxFX09QVElPTkFM
CisjZW5kaWYKKwogLyogaTE4biBsaWJyYXJ5IHN3aXRjaGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yMjgsNCArMzg4
LDI1IEBACiAjICAgZGVmaW5lIFVDT05GSUdfTk9fU0VSVklDRSAxCiAjZW5kaWYKIAorLyoqCisg
KiBcZGVmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUCisgKiBUaGlzIHN3aXRjaCB0dXJucyBv
biB0aGUgInBhcnNlIGFsbCBpbnB1dCIgYXR0cmlidXRlLiBCaW5hcnkgaW5jb21wYXRpYmxlLgor
ICoKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVU
CisjICAgZGVmaW5lIFVDT05GSUdfSEFWRV9QQVJTRUFMTElOUFVUIDEKKyNlbmRpZgorCisKKy8q
KgorICogXGRlZiBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkKKyAqIFRoaXMgc3dpdGNoIHR1
cm5zIG9uIG90aGVyIGZvcm1hdHRpbmcgZmFzdHBhdGhzLiBCaW5hcnkgaW5jb21wYXRpYmxlIGlu
IG9iamVjdCBEZWNpbWFsRm9ybWF0IGFuZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICoKKyAqIEBp
bnRlcm5hbAorICovCisjaWZuZGVmIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorIyAgIGRl
ZmluZSBVQ09ORklHX0ZPUk1BVF9GQVNUUEFUSFNfNDkgMQorI2VuZGlmCisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZW51bS5oIGIvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2MDhkZjhiODlmZDA3NjhkMTlm
NWM2ODguLjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZlMjJjNTEyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWVudW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VlbnVtLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE2NCwxMSArMTY0LDQzIEBA
IHVlbnVtX3Jlc2V0KFVFbnVtZXJhdGlvbiogZW4sIFVFcnJvckNvZGUqIHN0YXR1cyk7CiAgKiBA
cGFyYW0gYWRvcHRlZCB0aGUgQysrIFN0cmluZ0VudW1lcmF0aW9uIHRvIGJlIHdyYXBwZWQgaW4g
YSBVRW51bWVyYXRpb24uCiAgKiBAcGFyYW0gZWMgdGhlIGVycm9yIGNvZGUuCiAgKiBAcmV0dXJu
IGEgVUVudW1lcmF0aW9uIHdyYXBwaW5nIHRoZSBhZG9wdGVkIFN0cmluZ0VudW1lcmF0aW9uLgot
ICogQGRyYWZ0IElDVSA0LjIKKyAqIEBzdGFibGUgSUNVIDQuMgogICovCi1VX0NBUEkgVUVudW1l
cmF0aW9uKiBVX0VYUE9SVDIKLXVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24oVV9OQU1F
U1BBQ0VfUVVBTElGSUVSIFN0cmluZ0VudW1lcmF0aW9uKiBhZG9wdGVkLCBVRXJyb3JDb2RlKiBl
Yyk7CitVX1NUQUJMRSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlbkZyb21TdHJp
bmdFbnVtZXJhdGlvbihpY3U6OlN0cmluZ0VudW1lcmF0aW9uKiBhZG9wdGVkLCBVRXJyb3JDb2Rl
KiBlYyk7CiAKICNlbmRpZgogCisvKioKKyAqIEdpdmVuIGFuIGFycmF5IG9mIGNvbnN0IFVDaGFy
KiBzdHJpbmdzLCByZXR1cm4gYSBVRW51bWVyYXRpb24uICBTdHJpbmcgcG9pbnRlcnMgZnJvbSAw
Li5jb3VudC0xIG11c3Qgbm90IGJlIG51bGwuCisgKiBEbyBub3QgZnJlZSBvciBtb2RpZnkgZWl0
aGVyIHRoZSBzdHJpbmcgYXJyYXkgb3IgdGhlIGNoYXJhY3RlcnMgaXQgcG9pbnRzIHRvIHVudGls
IHRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCB3aXRoIHVlbnVtX2Nsb3NlLgorICogXHNu
aXBwZXQgdGVzdC9jaW50bHRzdC91ZW51bXRzdC5jIHVlbnVtX29wZW5VQ2hhclN0cmluZ3NFbnVt
ZXJhdGlvbgorICogQHBhcmFtIHN0cmluZ3MgYXJyYXkgb2YgY29uc3QgVUNoYXIqIHN0cmluZ3Mg
KGVhY2ggbnVsbCB0ZXJtaW5hdGVkKS4gQWxsIHN0b3JhZ2UgaXMgb3duZWQgYnkgdGhlIGNhbGxl
ci4KKyAqIEBwYXJhbSBjb3VudCBsZW5ndGggb2YgdGhlIGFycmF5CisgKiBAcGFyYW0gZWMgZXJy
b3IgY29kZQorICogQHJldHVybiB0aGUgbmV3IFVFbnVtZXJhdGlvbiBvYmplY3QuIENhbGxlciBp
cyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyB1ZW51bV9jbG9zZSB0byBmcmVlIG1lbW9yeS4KKyAq
IEBzZWUgdWVudW1fY2xvc2UKKyAqIEBzdGFibGUgSUNVIDUwCisgKi8KK1VfU1RBQkxFIFVFbnVt
ZXJhdGlvbiogVV9FWFBPUlQyCit1ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24oY29u
c3QgVUNoYXIqIGNvbnN0IHN0cmluZ3NbXSwgaW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUqIGVjKTsKKworLyogTm90ZTogIG5leHQgZnVu
Y3Rpb24gaXMgbm90IGhpZGRlbiBhcyBkcmFmdCwgYXMgaXQgaXMgdXNlZCBpbnRlcm5hbGx5IChp
dCB3YXMgZm9ybWVybHkgYW4gaW50ZXJuYWwgZnVuY3Rpb24pLiAqLworCisvKioKKyAqIEdpdmVu
IGFuIGFycmF5IG9mIGNvbnN0IGNoYXIqIHN0cmluZ3MgKGludmFyaWFudCBjaGFycyBvbmx5KSwg
cmV0dXJuIGEgVUVudW1lcmF0aW9uLiAgU3RyaW5nIHBvaW50ZXJzIGZyb20gMC4uY291bnQtMSBt
dXN0IG5vdCBiZSBudWxsLgorICogRG8gbm90IGZyZWUgb3IgbW9kaWZ5IGVpdGhlciB0aGUgc3Ry
aW5nIGFycmF5IG9yIHRoZSBjaGFyYWN0ZXJzIGl0IHBvaW50cyB0byB1bnRpbCB0aGlzIG9iamVj
dCBoYXMgYmVlbiBkZXN0cm95ZWQgd2l0aCB1ZW51bV9jbG9zZS4KKyAqIFxzbmlwcGV0IHRlc3Qv
Y2ludGx0c3QvdWVudW10c3QuYyB1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlvbgorICog
QHBhcmFtIHN0cmluZ3MgYXJyYXkgb2YgY2hhciogc3RyaW5ncyAoZWFjaCBudWxsIHRlcm1pbmF0
ZWQpLiAgQWxsIHN0b3JhZ2UgaXMgb3duZWQgYnkgdGhlIGNhbGxlci4KKyAqIEBwYXJhbSBjb3Vu
dCBsZW5ndGggb2YgdGhlIGFycmF5CisgKiBAcGFyYW0gZWMgZXJyb3IgY29kZQorICogQHJldHVy
biB0aGUgbmV3IFVFbnVtZXJhdGlvbiBvYmplY3QuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig
Y2FsbGluZyB1ZW51bV9jbG9zZSB0byBmcmVlIG1lbW9yeQorICogQHNlZSB1ZW51bV9jbG9zZQor
ICogQHN0YWJsZSBJQ1UgNTAKKyAqLworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIK
K3VlbnVtX29wZW5DaGFyU3RyaW5nc0VudW1lcmF0aW9uKGNvbnN0IGNoYXIqIGNvbnN0IHN0cmlu
Z3NbXSwgaW50MzJfdCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUqIGVjKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VpdGVyLmgKaW5kZXggYjQ2OWUy
NGU2MTY1M2Q3ZTZkMGJlOGM4ZmE2N2ZmMjY1MWI1MWZhMy4uMGNkYjhmZmJlNWM4MTU0YWM5ZDkw
OGY2MDViMGViMTZlYTViYjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91
aXRlci5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWl0ZXIuaApAQCAtMSw3ICsxLDcg
QEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAy
LTIwMDYsMjAwOSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0
IChDKSAyMDAyLTIwMTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgpAQCAtNjczLDcgKzY3Myw3IEBAIHVpdGVyX3NldFVURjgoVUNoYXJJdGVyYXRv
ciAqaXRlciwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOwogICogQHN0YWJsZSBJQ1Ug
Mi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9zZXRDaGFyYWN0ZXJJdGVy
YXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVy
SXRlcmF0b3IgKmNoYXJJdGVyKTsKK3VpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9yKFVDaGFySXRl
cmF0b3IgKml0ZXIsIGljdTo6Q2hhcmFjdGVySXRlcmF0b3IgKmNoYXJJdGVyKTsKIAogLyoqCiAg
KiBTZXQgdXAgYSBVQ2hhckl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIEMrKyBSZXBsYWNlYWJs
ZS4KQEAgLTY5OCw3ICs2OTgsNyBAQCB1aXRlcl9zZXRDaGFyYWN0ZXJJdGVyYXRvcihVQ2hhckl0
ZXJhdG9yICppdGVyLCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hhcmFjdGVySQogICogQHN0YWJs
ZSBJQ1UgMi4xCiAgKi8KIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCi11aXRlcl9zZXRSZXBsYWNl
YWJsZShVQ2hhckl0ZXJhdG9yICppdGVyLCBjb25zdCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgUmVw
bGFjZWFibGUgKnJlcCk7Cit1aXRlcl9zZXRSZXBsYWNlYWJsZShVQ2hhckl0ZXJhdG9yICppdGVy
LCBjb25zdCBpY3U6OlJlcGxhY2VhYmxlICpyZXApOwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS91bG9jLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vs
b2MuaAppbmRleCA5NTc1OGMzYTM0YzBmZWY2MGYxNGI0YzU2ZjFkMjVlYTRjYWY5ODA3Li4yOGFi
OTAyYjUyMjI5M2IzMzIwZTllOWQwN2VhZGYxMzkxNjU4YWViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3Vsb2MuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vsb2Mu
aApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAx
OTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQg
KEMpIDE5OTctMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog
KgpAQCAtMjg5LDcgKzI4OSw3IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICdA
JyBzZXBhcmF0aW5nIGtleXdvcmRzIGZyb20gdGhlIGxvY2FsZSBzdHJpbmcuCiAgICogQHNlZSBV
TE9DX0tFWVdPUkRfU0VQQVJBVE9SCi0gICogQGRyYWZ0IElDVSA0LjYKKyAgKiBAc3RhYmxlIElD
VSA0LjYKICAgKi8KICNkZWZpbmUgVUxPQ19LRVlXT1JEX1NFUEFSQVRPUl9VTklDT0RFIDB4NDAK
IApAQCAtMzAyLDcgKzMwMiw3IEBACiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc9
JyBmb3IgYXNzaWduaW5nIHZhbHVlIHRvIGEga2V5d29yZC4KICAgKiBAc2VlIFVMT0NfS0VZV09S
RF9BU1NJR04KLSAgKiBAZHJhZnQgSUNVIDQuNiAKKyAgKiBAc3RhYmxlIElDVSA0LjYgCiAgICov
CiAjZGVmaW5lIFVMT0NfS0VZV09SRF9BU1NJR05fVU5JQ09ERSAweDNECiAKQEAgLTMxNSw3ICsz
MTUsNyBAQAogLyoqCiAgICogVW5pY29kZSBjb2RlIHBvaW50IGZvciAnOycgc2VwYXJhdGluZyBr
ZXl3b3JkcwogICAqIEBzZWUgVUxPQ19LRVlXT1JEX0lURU1fU0VQQVJBVE9SCi0gICogQGRyYWZ0
IElDVSA0LjYKKyAgKiBAc3RhYmxlIElDVSA0LjYKICAgKi8KICNkZWZpbmUgVUxPQ19LRVlXT1JE
X0lURU1fU0VQQVJBVE9SX1VOSUNPREUgMHgzQgogCkBAIC0zNTMsNyArMzUzLDcgQEAgdHlwZWRl
ZiBlbnVtIHsKICAgVUxPQ19EQVRBX0xPQ0FMRV9UWVBFX0xJTUlUID0gMwogfSBVTG9jRGF0YUxv
Y2FsZVR5cGUgOwogCi0KKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKIC8qKgogICogR2V0cyBJ
Q1UncyBkZWZhdWx0IGxvY2FsZS4gIAogICogVGhlIHJldHVybmVkIHN0cmluZyBpcyBhIHNuYXBz
aG90IGluIHRpbWUsIGFuZCB3aWxsIHJlbWFpbiB2YWxpZApAQCAtMzg4LDYgKzM4OCw3IEBAIHVs
b2NfZ2V0RGVmYXVsdCh2b2lkKTsKIFVfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCiB1bG9jX3NldERl
ZmF1bHQoY29uc3QgY2hhciogbG9jYWxlSUQsCiAgICAgICAgIFVFcnJvckNvZGUqICAgICAgIHN0
YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCiAKIC8qKgogICogR2V0cyB0
aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCkBAIC03NTIsNyArNzUz
LDkgQEAgVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgdWxvY19jb3VudEF2YWlsYWJsZSh2b2lk
KTsKIAogLyoqCiAgKgotICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBj
b2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgorICogR2V0cyBhIGxp
c3Qgb2YgYWxsIGF2YWlsYWJsZSAyLWxldHRlciBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElT
TyA2MzksCisgKiBwbHVzIGFkZGl0aW9uYWwgMy1sZXR0ZXIgY29kZXMgZGV0ZXJtaW5lZCB0byBi
ZSB1c2VmdWwgZm9yIGxvY2FsZSBnZW5lcmF0aW9uIGFzCisgKiBkZWZpbmVkIGJ5IFVuaWNvZGUg
Q0xEUi4gVGhpcyBpcyBhIHBvaW50ZXIKICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFy
cmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAogICogYnkgSUNV
LS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRo
ZSBhcnJheSBpcwogICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgpAQCAtNzk3LDEy
ICs4MDAsMTUgQEAgdWxvY19nZXRQYXJlbnQoY29uc3QgY2hhciogICAgbG9jYWxlSUQsCiAKIAog
LyoqCi0gKiBHZXRzIHRoZSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICog
R2V0cyB0aGUgZnVsbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgbGlrZSB1bG9jX2dl
dE5hbWUoKSwKKyAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICoKICAqIE5vdGU6IFRoaXMgaGFz
IHRoZSBlZmZlY3Qgb2YgJ2Nhbm9uaWNhbGl6aW5nJyB0aGUgc3RyaW5nIHRvCiAgKiBhIGNlcnRh
aW4gZXh0ZW50LiBVcHBlciBhbmQgbG93ZXIgY2FzZSBhcmUgc2V0IGFzIG5lZWRlZCwKICAqIGFu
ZCBpZiB0aGUgY29tcG9uZW50cyB3ZXJlIGluICdQT1NJWCcgZm9ybWF0IHRoZXkgYXJlIGNoYW5n
ZWQgdG8KICAqIElDVSBmb3JtYXQuICBJdCBkb2VzIE5PVCBtYXAgYWxpYXNlZCBuYW1lcyBpbiBh
bnkgd2F5LgogICogU2VlIHRoZSB0b3Agb2YgdGhpcyBoZWFkZXIgZmlsZS4KKyAqCiAgKiBUaGlz
IEFQSSBzdHJpcHMgb2ZmIHRoZSBrZXl3b3JkIHBhcnQsIHNvICJkZV9ERVxAY29sbGF0aW9uPXBo
b25lYm9vayIgCiAgKiB3aWxsIGJlY29tZSAiZGVfREUiLiAKICAqIFRoaXMgQVBJIHN1cHBvcnRz
IHByZWZsaWdodGluZy4KQEAgLTg1MywxMyArODU5LDE2IEBAIHVsb2NfZ2V0S2V5d29yZFZhbHVl
KGNvbnN0IGNoYXIqIGxvY2FsZUlELAogCiAKIC8qKgotICogU2V0IHRoZSB2YWx1ZSBvZiB0aGUg
c3BlY2lmaWVkIGtleXdvcmQuCisgKiBTZXRzIG9yIHJlbW92ZXMgdGhlIHZhbHVlIG9mIHRoZSBz
cGVjaWZpZWQga2V5d29yZC4KKyAqCisgKiBGb3IgcmVtb3ZpbmcgYWxsIGtleXdvcmRzLCB1c2Ug
dWxvY19nZXRCYXNlTmFtZSgpLgorICoKICAqIE5PVEU6IFVubGlrZSBhbG1vc3QgZXZlcnkgb3Ro
ZXIgSUNVIGZ1bmN0aW9uIHdoaWNoIHRha2VzIGEKICAqIGJ1ZmZlciwgdGhpcyBmdW5jdGlvbiB3
aWxsIE5PVCB0cnVuY2F0ZSB0aGUgb3V0cHV0IHRleHQuIElmIGEKICAqIEJVRkZFUl9PVkVSRkxP
V19FUlJPUiBpcyByZWNlaXZlZCwgaXQgbWVhbnMgdGhhdCB0aGUgb3JpZ2luYWwKICAqIGJ1ZmZl
ciBpcyB1bnRvdWNoZWQuIFRoaXMgaXMgZG9uZSB0byBwcmV2ZW50IGluY29ycmVjdCBvciBwb3Nz
aWJseQogICogZXZlbiBtYWxmb3JtZWQgbG9jYWxlcyBmcm9tIGJlaW5nIGdlbmVyYXRlZCBhbmQg
dXNlZC4KLSAqIAorICoKICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3Jk
IHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4KICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFs
dWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgogICogIE5VTEwsIHdp
bGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdpdmVu
IGlmIApAQCAtMTA2NSw3ICsxMDc0LDcgQEAgdWxvY19taW5pbWl6ZVN1YnRhZ3MoY29uc3QgY2hh
ciogICAgbG9jYWxlSUQsCiAgICAgICAgICBpbnQzMl90IG1pbmltaXplZExvY2FsZUlEQ2FwYWNp
dHksCiAgICAgICAgICBVRXJyb3JDb2RlKiBlcnIpOwogCi0vKiogCisvKioKICAqIFJldHVybnMg
YSBsb2NhbGUgSUQgZm9yIHRoZSBzcGVjaWZpZWQgQkNQNDcgbGFuZ3VhZ2UgdGFnIHN0cmluZy4K
ICAqIElmIHRoZSBzcGVjaWZpZWQgbGFuZ3VhZ2UgdGFnIGNvbnRhaW5zIGFueSBpbGwtZm9ybWVk
IHN1YnRhZ3MsCiAgKiB0aGUgZmlyc3Qgc3VjaCBzdWJ0YWcgYW5kIGFsbCBmb2xsb3dpbmcgc3Vi
dGFncyBhcmUgaWdub3JlZC4KQEAgLTEwODEsMjEgKzEwOTAsMjEgQEAgdWxvY19taW5pbWl6ZVN1
YnRhZ3MoY29uc3QgY2hhciogICAgbG9jYWxlSUQsCiAgKiBAcGFyYW0gbG9jYWxlSUQgIHRoZSBv
dXRwdXQgYnVmZmVyIHJlY2VpdmluZyBhIGxvY2FsZSBJRCBmb3IgdGhlCiAgKiAgICAgICAgICAg
ICAgICAgIHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcuCiAgKiBAcGFyYW0gbG9jYWxlSURD
YXBhY2l0eSAgdGhlIHNpemUgb2YgdGhlIGxvY2FsZSBJRCBvdXRwdXQgYnVmZmVyLgotICogQHBh
cmFtIHBhcnNlZExlbmd0aCAgaWYgbm90IE5VTEwsIHN1Y2NzZXNzZnVsbHkgcGFyc2VkIGxlbmd0
aAorICogQHBhcmFtIHBhcnNlZExlbmd0aCAgaWYgbm90IE5VTEwsIHN1Y2Nlc3NmdWxseSBwYXJz
ZWQgbGVuZ3RoCiAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGlucHV0IGxhbmd1YWdl
IHRhZyBpcyBzZXQuCiAgKiBAcGFyYW0gZXJyICAgICAgIGVycm9yIGluZm9ybWF0aW9uIGlmIHJl
Y2VpdmluZyB0aGUgbG9jYWxkIElECiAgKiAgICAgICAgICAgICAgICAgIGZhaWxlZC4KICAqIEBy
ZXR1cm4gICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgbG9jYWxlIElELgotICogQGRyYWZ0IElD
VSA0LjIKKyAqIEBzdGFibGUgSUNVIDQuMgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQy
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBj
aGFyKiBsYW5ndGFnLAogICAgICAgICAgICAgICAgICAgICBjaGFyKiBsb2NhbGVJRCwKICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCBsb2NhbGVJRENhcGFjaXR5LAogICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90KiBwYXJzZWRMZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUqIGVycik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJucyBhIHdlbGwtZm9ybWVkIGxhbmd1YWdl
IHRhZyBmb3IgdGhpcyBsb2NhbGUgSUQuIAogICogPHA+IAogICogPGI+Tm90ZTwvYj46IFdoZW4g
PGNvZGU+c3RyaWN0PC9jb2RlPiBpcyBGQUxTRSwgYW55IGxvY2FsZQpAQCAtMTEwNCw3ICsxMTEz
LDcgQEAgdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5ndGFnLAogICogVFJVRSwg
dGhpcyBmdW5jdGlvbiBzZXRzIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiB0byB0aGUKICAqIDxj
b2RlPmVycjwvY29kZT4gaWYgYW55IGxvY2FsZSBmaWVsZHMgZG8gbm90IHNhdGlzZnkgdGhlCiAg
KiBCQ1A0NyBzeW50YXggcmVxdWlyZW1lbnQuCi0gKiBAcGFyYW0gbG9jYWxlSUQgIHRoZSBpbnB1
dCBsY29hbGUgSUQKKyAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlucHV0IGxvY2FsZSBJRAogICog
QHBhcmFtIGxhbmd0YWcgICB0aGUgb3V0cHV0IGJ1ZmZlciByZWNlaXZpbmcgQkNQNDcgbGFuZ3Vh
Z2UKICAqICAgICAgICAgICAgICAgICAgdGFnIGZvciB0aGUgbG9jYWxlIElELgogICogQHBhcmFt
IGxhbmd0YWdDYXBhY2l0eSAgIHRoZSBzaXplIG9mIHRoZSBCQ1A0NyBsYW5ndWFnZSB0YWcKQEAg
LTExMTQsOSArMTEyMyw5IEBAIHVsb2NfZm9yTGFuZ3VhZ2VUYWcoY29uc3QgY2hhciogbGFuZ3Rh
ZywKICAqIEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYgcmVjZWl2aW5nIHRo
ZSBsYW5ndWFnZQogICogICAgICAgICAgICAgICAgICB0YWcgZmFpbGVkLgogICogQHJldHVybiAg
ICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBCQ1A0NyBsYW5ndWFnZSB0YWcuCi0gKiBAZHJhZnQg
SUNVIDQuMgorICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9S
VDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1bG9jX3RvTGFuZ3VhZ2VUYWcoY29uc3Qg
Y2hhciogbG9jYWxlSUQsCiAgICAgICAgICAgICAgICAgICAgY2hhciogbGFuZ3RhZywKICAgICAg
ICAgICAgICAgICAgICBpbnQzMl90IGxhbmd0YWdDYXBhY2l0eSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1h
Y2hpbmUuaAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3OGRlZTE3MzQ4MDQyYmM2MWMyYTk2Li5k
MTEwMmY0OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZlN2ZmNzU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VtYWNoaW5lLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91bWFjaGluZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog
KgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDEsMTYgKzQxLDcgQEAKIC8qIHdo
aWNoIGFyZSBjb250YWluZWQgaW4gdGhlIHBsYXRmb3JtLXNwZWNpZmljIGZpbGUgcGxhdGZvcm0u
aCAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiBkZWZpbmVkKFVf
UEFMTU9TKQotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHBhbG1vcy5oIgotI2VsaWYgIWRlZmluZWQo
X19NSU5HVzMyX18pICYmIChkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVm
aW5lZChXSU42NCkgfHwgZGVmaW5lZChfV0lONjQpKQotI2lmZGVmIENZR1dJTk1TVkMKLSMgICBp
bmNsdWRlICJ1bmljb2RlL3BsYXRmb3JtLmgiCi0jZW5kaWYKLSMgICBpbmNsdWRlICJ1bmljb2Rl
L3B3aW4zMi5oIgotI2Vsc2UKLSMgICBpbmNsdWRlICJ1bmljb2RlL3B0eXBlcy5oIiAvKiBwbGF0
Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCi0jZW5kaWYKKyNpbmNsdWRlICJ1bmlj
b2RlL3B0eXBlcy5oIiAvKiBwbGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCiAK
IC8qCiAgKiBBTlNJIEMgaGVhZGVyczoKQEAgLTU5LDE5ICs1MCw2IEBACiAjaW5jbHVkZSA8c3Rk
ZGVmLmg+CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogWFBfQ1BMVVNQTFVTIGlzIGEgY3Jv
c3MtcGxhdGZvcm0gc3ltYm9sIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIHdoZW4gICAgICovCi0v
KiB1c2luZyBDKysuICBJdCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBjb21waWxpbmcgdW5k
ZXIgQy4gICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZkZWYgX19j
cGx1c3BsdXMKLSMgICBpZm5kZWYgWFBfQ1BMVVNQTFVTCi0jICAgICAgIGRlZmluZSBYUF9DUExV
U1BMVVMKLSMgICBlbmRpZgotI2Vsc2UKLSMgICB1bmRlZiBYUF9DUExVU1BMVVMKLSNlbmRpZgot
Ci0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEZvciBDIHdyYXBwZXJzLCB3ZSB1c2UgdGhlIHN5
bWJvbCBVX1NUQUJMRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiBUaGlz
IHdvcmtzIHByb3Blcmx5IGlmIHRoZSBpbmNsdWRlciBpcyBDIG9yIEMrKy4gICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KIC8qIEZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgICBVX1NUQUJMRSByZXR1
cm4tdHlwZSBVX0VYUE9SVDIgZnVuY3Rpb24tbmFtZSgpLi4uICovCkBAIC05NSw3ICs3Myw3IEBA
CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYg
X19jcGx1c3BsdXMKICMgICBkZWZpbmUgVV9DRlVOQyBleHRlcm4gIkMiCiAjICAgZGVmaW5lIFVf
Q0RFQ0xfQkVHSU4gZXh0ZXJuICJDIiB7CiAjICAgZGVmaW5lIFVfQ0RFQ0xfRU5EICAgfQpAQCAt
MTA1LDIzICs4MywyNiBAQAogIyAgIGRlZmluZSBVX0NERUNMX0VORAogI2VuZGlmCiAKKyNpZm5k
ZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogLyoqCiAgKiBcZGVmIFVfQVRUUklCVVRFX0RFUFJF
Q0FURUQKICAqICBUaGlzIGlzIHVzZWQgZm9yIEdDQyBzcGVjaWZpYyBhdHRyaWJ1dGVzCiAgKiBA
aW50ZXJuYWwKICAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDMgfHwg
KF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMikpCisjaWYgVV9HQ0NfTUFKT1Jf
TUlOT1IgPj0gMzAyCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVEIF9fYXR0cmli
dXRlX18gKChkZXByZWNhdGVkKSkKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVE
CiAgKiBUaGlzIGlzIHVzZWQgZm9yIFZpc3VhbCBDKysgc3BlY2lmaWMgYXR0cmlidXRlcyAKICAq
IEBpbnRlcm5hbAogICovCi0jZWxpZiBkZWZpbmVkKFVfV0lORE9XUykgJiYgZGVmaW5lZChfTVND
X1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAo
X01TQ19WRVIgPj0gMTQwMCkKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQgX19k
ZWNsc3BlYyhkZXByZWNhdGVkKQogI2Vsc2UKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJF
Q0FURUQKICNlbmRpZgorI2VuZGlmCisKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVjbGFyZSBhIGZ1
bmN0aW9uIGFzIGEgcHVibGljIElDVSBDIEFQSSBAc3RhYmxlIElDVSAyLjAqLwogI2RlZmluZSBV
X0NBUEkgVV9DRlVOQyBVX0VYUE9SVAogLyoqIFRoaXMgaXMgdXNlZCB0byBkZWNsYXJlIGEgZnVu
Y3Rpb24gYXMgYSBzdGFibGUgcHVibGljIElDVSBDIEFQSSovCkBAIC0yMzQsMjcgKzIxNSw2IEBA
IHR5cGVkZWYgaW50OF90IFVCb29sOwogCiAvKiB3Y2hhcl90LXJlbGF0ZWQgZGVmaW5pdGlvbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotLyoqCi0g
KiBcZGVmIFVfSEFWRV9XQ0hBUl9ICi0gKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4gaXMg
YXZhaWxhYmxlICgxKSBvciBub3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgotICoKLSAqIEBz
dGFibGUgSUNVIDIuMAotICovCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9ICi0jICAgZGVmaW5lIFVf
SEFWRV9XQ0hBUl9IIDEKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJfVAot
ICogVV9TSVpFT0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpICgwIG1lYW5zIGl0IGlzIG5vdCBk
ZWZpbmVkIG9yIGF1dG9jb25mIGNvdWxkIG5vdCBzZXQgaXQpCi0gKgotICogQHN0YWJsZSBJQ1Ug
Mi4wCi0gKi8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0wCi0jICAgdW5kZWYgVV9TSVpFT0ZfV0NI
QVJfVAotIyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDQKLSNlbmRpZgotCiAvKgogICogXGRl
ZiBVX1dDSEFSX0lTX1VURjE2CiAgKiBEZWZpbmVkIGlmIHdjaGFyX3QgdXNlcyBVVEYtMTYuCkBA
IC0yNzUsMTQgKzIzNSwxNiBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICMgICAgICAgICAgIGRl
ZmluZSAgVV9XQ0hBUl9JU19VVEYzMgogIyAgICAgICBlbmRpZgogIyAgIGVsaWYgZGVmaW5lZCBf
X1VDUzJfXwotIyAgICAgICBpZiAoX19PUzM5MF9fIHx8IF9fT1M0MDBfXykgJiYgKFVfU0laRU9G
X1dDSEFSX1Q9PTIpCisjICAgICAgIGlmIChVX1BGX09TMzkwIDw9IFVfUExBVEZPUk0gJiYgVV9Q
TEFURk9STSA8PSBVX1BGX09TNDAwKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikKICMgICAgICAg
ICAgIGRlZmluZSBVX1dDSEFSX0lTX1VURjE2CiAjICAgICAgIGVuZGlmCi0jICAgZWxpZiBkZWZp
bmVkIF9fVUNTNF9fCisjICAgZWxpZiBkZWZpbmVkKF9fVUNTNF9fKSB8fCAoVV9QTEFURk9STSA9
PSBVX1BGX09TNDAwICYmIGRlZmluZWQoX19VVEYzMl9fKSkKICMgICAgICAgaWYgKFVfU0laRU9G
X1dDSEFSX1Q9PTQpCiAjICAgICAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgogIyAgICAg
ICBlbmRpZgotIyAgIGVsaWYgZGVmaW5lZChVX1dJTkRPV1MpCisjICAgZWxpZiBVX1BMQVRGT1JN
X0lTX0RBUldJTl9CQVNFRCB8fCAoVV9TSVpFT0ZfV0NIQVJfVD09NCAmJiBVX1BMQVRGT1JNX0lT
X0xJTlVYX0JBU0VEKQorIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgorIyAgIGVsaWYg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCiAjICAgICAgIGRlZmluZSBVX1dDSEFSX0lTX1VURjE2
CiAjICAgZW5kaWYKICNlbmRpZgpAQCAtMjk0LDI0ICsyNTYsMjQgQEAgdHlwZWRlZiBpbnQ4X3Qg
VUJvb2w7CiAKIC8qKgogICogXHZhciBVQ2hhcgotICogRGVmaW5lIFVDaGFyIHRvIGJlIHdjaGFy
X3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJlIHVuc2lnbmVk
LgotICogSWYgd2NoYXJfdCBpcyBub3QgMTYgYml0cyB3aWRlLCB0aGVuIGRlZmluZSBVQ2hhciB0
byBiZSB1aW50MTZfdCBvciBjaGFyMTZfdCBiZWNhdXNlIEdDQyA+PTQuNAotICogY2FuIGhhbmRs
ZSBVVEYxNiBzdHJpbmcgbGl0ZXJhbHMuCisgKiBEZWZpbmUgVUNoYXIgdG8gYmUgVUNIQVJfVFlQ
RSwgaWYgdGhhdCBpcyAjZGVmaW5lZCAoZm9yIGV4YW1wbGUsIHRvIGNoYXIxNl90KSwKKyAqIG9y
IHdjaGFyX3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJlIHVu
c2lnbmVkLgorICogSWYgbmVpdGhlciBpcyBhdmFpbGFibGUsIHRoZW4gZGVmaW5lIFVDaGFyIHRv
IGJlIHVpbnQxNl90LgorICoKICAqIFRoaXMgbWFrZXMgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIg
cGxhdGZvcm0tZGVwZW5kZW50CiAgKiBidXQgYWxsb3dzIGRpcmVjdCBzdHJpbmcgdHlwZSBjb21w
YXRpYmlsaXR5IHdpdGggcGxhdGZvcm1zIHdpdGgKICAqIDE2LWJpdCB3Y2hhcl90IHR5cGVzLgog
ICoKLSAqIEBkcmFmdCBJQ1UgNC40CisgKiBAc3RhYmxlIElDVSA0LjQKICAqLwotCi0vKiBEZWZp
bmUgVUNoYXIgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHdjaGFyX3QgaWYgcG9zc2libGUuICovCi0j
aWYgVV9TSVpFT0ZfV0NIQVJfVD09MgorI2lmIGRlZmluZWQoVUNIQVJfVFlQRSkKKyAgICB0eXBl
ZGVmIFVDSEFSX1RZUEUgVUNoYXI7CisvKiBOb3QgI2VsaWYgVV9IQVZFX0NIQVIxNl9UIC0tIGJl
Y2F1c2UgdGhhdCBpcyB0eXBlLWluY29tcGF0aWJsZSB3aXRoIHByZS1DKysxMSBjYWxsZXJzCisg
ICAgdHlwZWRlZiBjaGFyMTZfdCBVQ2hhcjsgICovCisjZWxpZiBVX1NJWkVPRl9XQ0hBUl9UPT0y
CiAgICAgdHlwZWRlZiB3Y2hhcl90IFVDaGFyOwotI2VsaWYgVV9HTlVDX1VURjE2X1NUUklORwot
I2lmIGRlZmluZWQgX0dDQ18KLSAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBjaGFyMTZfdDsK
LSNlbmRpZgotICAgIHR5cGVkZWYgY2hhcjE2X3QgVUNoYXI7CisjZWxpZiBkZWZpbmVkKF9fQ0hB
UjE2X1RZUEVfXykKKyAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBVQ2hhcjsKICNlbHNlCiAg
ICAgdHlwZWRlZiB1aW50MTZfdCBVQ2hhcjsKICNlbmRpZgpAQCAtMzM1LDM5ICsyOTcsMjUgQEAg
dHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAgKi8KIHR5cGVkZWYgaW50MzJfdCBVQ2hhcjMyOwogCi0v
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLS8qIFVfSU5MSU5FIGFuZCBVX0FMSUdOX0NPREUgICBTZXQg
ZGVmYXVsdCB2YWx1ZXMgaWYgdGhlc2UgYXJlIG5vdCBhbHJlYWR5ICAqLwotLyogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmluZWQuICBEZWZpbml0aW9ucyBub3JtYWxseSBhcmUgaW4g
ICAgICAgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0uaCBvciB0
aGUgY29ycmVzcG9uZGluZyBmaWxlIGZvciAgICAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGUgT1MgaW4gdXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwot
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCi0KLSNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQotCiAv
KioKLSAqIFxkZWYgVV9BTElHTl9DT0RFCi0gKiBUaGlzIGlzIHVzZWQgdG8gYWxpZ24gY29kZSBm
cmFnbWVudHMgdG8gYSBzcGVjaWZpYyBieXRlIGJvdW5kYXJ5LgotICogVGhpcyBpcyB1c2VmdWwg
Zm9yIGdldHRpbmcgY29uc2lzdGVudCBwZXJmb3JtYW5jZSB0ZXN0IHJlc3VsdHMuCi0gKiBAaW50
ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSMgICBkZWZpbmUgVV9BTElHTl9DT0RF
KG4pCi0jZW5kaWYKLQotI2VuZGlmIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KLQotLyoqCi0g
KiBcZGVmIFVfSU5MSU5FCi0gKiBUaGlzIGlzIHVzZWQgdG8gcmVxdWVzdCBpbmxpbmluZyBvZiBh
IGZ1bmN0aW9uLCBvbiBwbGF0Zm9ybXMgYW5kIGxhbmd1YWdlcyB3aGljaCBzdXBwb3J0IGl0Lgor
ICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElzIHRo
YXQKKyAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4KKyAq
IEl0IGlzIG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEwZmZm
Zi4KKyAqIAorICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4gYSBu
ZXcgQVBJCisgKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgorICoKKyAqIElD
VSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Utc3Bl
Y2lmaWMgImRvbmUiCisgKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCisgKiBUaG9zZSBtYXkgbmVl
ZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KKyAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250ZW50
cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCisgKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFzTmV4
dCgpIG9yIFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgorICoKKyAqIEByZXR1cm4gLTEKKyAqIEBz
ZWUgVUNoYXIzMgorICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSAKLSNpZm5kZWYgVV9JTkxJTkUK
LSMgICBpZmRlZiBYUF9DUExVU1BMVVMKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIGlubGluZQot
IyAgIGVsc2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FCi0jICAgZW5kaWYKLSNlbmRpZgorI2Rl
ZmluZSBVX1NFTlRJTkVMICgtMSkKIAogI2luY2x1ZGUgInVuaWNvZGUvdXJlbmFtZS5oIgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VuaXN0ci5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS91bmlzdHIuaAppbmRleCAyNGQwMzUxZmI1NDQ0Y2E3NTE2NGVjODVmMzgyYWZl
MTRkODM2OTE5Li5jNmU4YjQ0NjZhZDEzYTIzOWU3NjI3NzdhY2RhMWNmZTM2N2IyNjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VuaXN0ci5oCisrKyBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdW5pc3RyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
KiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKICoKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJ1bmljb2Rl
L3N0ZF9zdHJpbmcuaCIKICNpbmNsdWRlICJ1bmljb2RlL3N0cmluZ3BpZWNlLmgiCiAjaW5jbHVk
ZSAidW5pY29kZS9ieXRlc3RyZWFtLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2FzZW1hcC5oIgog
CiBzdHJ1Y3QgVUNvbnZlcnRlcjsgICAgICAgICAgLy8gdW5pY29kZS91Y252LmgKIGNsYXNzICBT
dHJpbmdUaHJlYWRUZXN0OwpAQCAtNTMsMTEgKzU0LDMxIEBAIFVfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCiB1X3N0cmxlbihjb25zdCBVQ2hhciAqcyk7CiAjZW5kaWYKIAorLyoqCisgKiBcZGVm
IFVfU1RSSU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVm
IFVfU1RSSU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKyNkZWZpbmUgVV9TVFJJTkdfQ0FTRV9NQVBQ
RVJfREVGSU5FRAorCisvKioKKyAqIEludGVybmFsIHN0cmluZyBjYXNlIG1hcHBpbmcgZnVuY3Rp
b24gdHlwZS4KKyAqIEBpbnRlcm5hbAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgor
VVN0cmluZ0Nhc2VNYXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAg
IFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgIGNv
bnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCiBVX05BTUVTUEFDRV9CRUdJTgogCitj
bGFzcyBCcmVha0l0ZXJhdG9yOyAgICAgICAgLy8gdW5pY29kZS9icmtpdGVyLmgKIGNsYXNzIExv
Y2FsZTsgICAgICAgICAgICAgICAvLyB1bmljb2RlL2xvY2lkLmgKIGNsYXNzIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yOwotY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJr
aXRlci5oCitjbGFzcyBVbmljb2RlU3RyaW5nQXBwZW5kYWJsZTsgIC8vIHVuaWNvZGUvYXBwZW5k
YWJsZS5oCiAKIC8qIFRoZSA8aW9zdHJlYW0+IGluY2x1ZGUgaGFzIGJlZW4gbW92ZWQgdG8gdW5p
Y29kZS91c3RyZWFtLmggKi8KIApAQCAtNzEsNyArOTIsNyBAQCBjbGFzcyBCcmVha0l0ZXJhdG9y
OyAgICAgICAgLy8gdW5pY29kZS9icmtpdGVyLmgKICAqCiAgKiBAc3RhYmxlIElDVSAzLjIKICAq
LwotI2RlZmluZSBVU19JTlYgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFVuaWNvZGVTdHJpbmc6OmtJ
bnZhcmlhbnQKKyNkZWZpbmUgVVNfSU5WIGljdTo6VW5pY29kZVN0cmluZzo6a0ludmFyaWFudAog
CiAvKioKICAqIFVuaWNvZGUgU3RyaW5nIGxpdGVyYWxzIGluIEMrKy4KQEAgLTkxLDEzICsxMTIs
MTMgQEAgY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5oCiAg
KiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQoVV9ERUNMQVJFX1VURjE2KQotIyAg
IGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgVV9OQU1FU1BBQ0VfUVVBTElGSUVS
IFVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVDaGFyICopVV9ERUNMQVJFX1VURjE2KGNzKSwg
X2xlbmd0aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIGljdTo6VW5p
Y29kZVN0cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpLCBfbGVu
Z3RoKQogI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNF
VF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmlu
ZWQoVV9XQ0hBUl9JU19VVEYxNikpKQotIyAgIGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xl
bmd0aCkgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVD
aGFyICopTCAjIyBjcywgX2xlbmd0aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9s
ZW5ndGgpIGljdTo6VW5pY29kZVN0cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKilMICMjIGNzLCBf
bGVuZ3RoKQogI2VsaWYgVV9TSVpFT0ZfVUNIQVI9PTEgJiYgVV9DSEFSU0VUX0ZBTUlMWT09VV9B
U0NJSV9GQU1JTFkKLSMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFN
RVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKWNzLCBf
bGVuZ3RoKQorIyAgIGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgaWN1OjpVbmlj
b2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKWNzLCBfbGVuZ3RoKQogI2Vsc2UKLSMgICBk
ZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBV
bmljb2RlU3RyaW5nKGNzLCBfbGVuZ3RoLCBVU19JTlYpCisjICAgZGVmaW5lIFVOSUNPREVfU1RS
SU5HKGNzLCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoY3MsIF9sZW5ndGgsIFVTX0lOVikK
ICNlbmRpZgogCiAvKioKQEAgLTExNiw2ICsxMzcsNDMgQEAgY2xhc3MgQnJlYWtJdGVyYXRvcjsg
ICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5oCiAjZGVmaW5lIFVOSUNPREVfU1RSSU5HX1NJTVBM
RShjcykgVU5JQ09ERV9TVFJJTkcoY3MsIC0xKQogCiAvKioKKyAqIFxkZWYgVU5JU1RSX0ZST01f
Q0hBUl9FWFBMSUNJVAorICogVGhpcyBjYW4gYmUgZGVmaW5lZCB0byBiZSBlbXB0eSBvciAiZXhw
bGljaXQiLgorICogSWYgZXhwbGljaXQsIHRoZW4gdGhlIFVuaWNvZGVTdHJpbmcoVUNoYXIpIGFu
ZCBVbmljb2RlU3RyaW5nKFVDaGFyMzIpCisgKiBjb25zdHJ1Y3RvcnMgYXJlIG1hcmtlZCBhcyBl
eHBsaWNpdCwgcHJldmVudGluZyB0aGVpciBpbmFkdmVydGVudCB1c2UuCisgKiBAc3RhYmxlIElD
VSA0OQorICovCisjaWZuZGVmIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQKKyMgaWYgZGVmaW5l
ZChVX0NPTUJJTkVEX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVO
VEFUSU9OKSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0lP
X0lNUExFTUVOVEFUSU9OKQorICAgIC8vIEF1dG8tImV4cGxpY2l0IiBpbiBJQ1UgbGlicmFyeSBj
b2RlLgorIyAgIGRlZmluZSBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUIGV4cGxpY2l0CisjIGVs
c2UKKyAgICAvLyBFbXB0eSBieSBkZWZhdWx0IGZvciBzb3VyY2UgY29kZSBjb21wYXRpYmlsaXR5
LgorIyAgIGRlZmluZSBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUCisjIGVuZGlmCisjZW5kaWYK
KworLyoqCisgKiBcZGVmIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVAorICogVGhpcyBjYW4g
YmUgZGVmaW5lZCB0byBiZSBlbXB0eSBvciAiZXhwbGljaXQiLgorICogSWYgZXhwbGljaXQsIHRo
ZW4gdGhlIFVuaWNvZGVTdHJpbmcoY29uc3QgY2hhciAqKSBhbmQgVW5pY29kZVN0cmluZyhjb25z
dCBVQ2hhciAqKQorICogY29uc3RydWN0b3JzIGFyZSBtYXJrZWQgYXMgZXhwbGljaXQsIHByZXZl
bnRpbmcgdGhlaXIgaW5hZHZlcnRlbnQgdXNlLgorICoKKyAqIEluIHBhcnRpY3VsYXIsIHRoaXMg
aGVscHMgcHJldmVudCBhY2NpZGVudGFsbHkgZGVwZW5kaW5nIG9uIElDVSBjb252ZXJzaW9uIGNv
ZGUKKyAqIGJ5IHBhc3NpbmcgYSBzdHJpbmcgbGl0ZXJhbCBpbnRvIGFuIEFQSSB3aXRoIGEgY29u
c3QgVW5pY29kZVN0cmluZyAmIHBhcmFtZXRlci4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KKyNp
Zm5kZWYgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUCisjIGlmIGRlZmluZWQoVV9DT01CSU5F
RF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwg
ZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRB
VElPTikKKyAgICAvLyBBdXRvLSJleHBsaWNpdCIgaW4gSUNVIGxpYnJhcnkgY29kZS4KKyMgICBk
ZWZpbmUgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUIGV4cGxpY2l0CisjIGVsc2UKKyAgICAv
LyBFbXB0eSBieSBkZWZhdWx0IGZvciBzb3VyY2UgY29kZSBjb21wYXRpYmlsaXR5LgorIyAgIGRl
ZmluZSBVTklTVFJfRlJPTV9TVFJJTkdfRVhQTElDSVQKKyMgZW5kaWYKKyNlbmRpZgorCisvKioK
ICAqIFVuaWNvZGVTdHJpbmcgaXMgYSBzdHJpbmcgY2xhc3MgdGhhdCBzdG9yZXMgVW5pY29kZSBj
aGFyYWN0ZXJzIGRpcmVjdGx5IGFuZCBwcm92aWRlcwogICogc2ltaWxhciBmdW5jdGlvbmFsaXR5
IGFzIHRoZSBKYXZhIFN0cmluZyBhbmQgU3RyaW5nQnVmZmVyIGNsYXNzZXMuCiAgKiBJdCBpcyBh
IGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhYnN0cmFjdCBjbGFzcyBSZXBsYWNlYWJs
ZSAoZm9yIHRyYW5zbGl0ZXJhdGlvbikuCkBAIC0yODAsNyArMzM4LDggQEAgcHVibGljOgogICAv
KioKICAgICogQ29tcGFyZSB0aGUgY2hhcmFjdGVycyBiaXR3aXNlIGluIHRoZSByYW5nZQogICAg
KiBbPFRUPnN0YXJ0PC9UVD4sIDxUVD5zdGFydCArIGxlbmd0aDwvVFQ+KSB3aXRoIHRoZSBjaGFy
YWN0ZXJzCi0gICAqIGluIDxUVD50ZXh0PC9UVD4KKyAgICogaW4gdGhlIDxiPmVudGlyZSBzdHJp
bmc8L2I+IDxUVD50ZXh0PC9UVD4uCisgICAqIChUaGUgcGFyYW1ldGVycyAic3RhcnQiIGFuZCAi
bGVuZ3RoIiBhcmUgbm90IGFwcGxpZWQgdG8gdGhlIG90aGVyIHRleHQgInRleHQiLikKICAgICog
QHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIGNvbXBhcmUgb3BlcmF0aW9uIGJl
Z2lucwogICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvZiB0ZXh0
IHRvIGNvbXBhcmUuCiAgICAqIEBwYXJhbSB0ZXh0IHRoZSBvdGhlciB0ZXh0IHRvIGJlIGNvbXBh
cmVkIGFnYWluc3QgdGhpcyBzdHJpbmcuCkBAIC0xMjQyLDcgKzEzMDEsNyBAQCBwdWJsaWM6CiAg
ICAqICAgICAgICAgb3IgMHhmZmZmIGlmIHRoZSBvZmZzZXQgaXMgbm90IHZhbGlkIGZvciB0aGlz
IHN0cmluZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIGlubGluZSBVQ2hhcjMyIGNo
YXIzMkF0KGludDMyX3Qgb2Zmc2V0KSBjb25zdDsKKyAgVUNoYXIzMiBjaGFyMzJBdChpbnQzMl90
IG9mZnNldCkgY29uc3Q7CiAKICAgLyoqCiAgICAqIEFkanVzdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zm
c2V0IHNvIHRoYXQKQEAgLTEyNTksNyArMTMxOCw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBVMTZf
U0VUX0NQX1NUQVJUCiAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIGludDMy
X3QgZ2V0Q2hhcjMyU3RhcnQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OworICBpbnQzMl90IGdldENo
YXIzMlN0YXJ0KGludDMyX3Qgb2Zmc2V0KSBjb25zdDsKIAogICAvKioKICAgICogQWRqdXN0IGEg
cmFuZG9tLWFjY2VzcyBvZmZzZXQgc28gdGhhdApAQCAtMTI3Nyw3ICsxMzM2LDcgQEAgcHVibGlj
OgogICAgKiBAc2VlIFUxNl9TRVRfQ1BfTElNSVQKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAq
LwotICBpbmxpbmUgaW50MzJfdCBnZXRDaGFyMzJMaW1pdChpbnQzMl90IG9mZnNldCkgY29uc3Q7
CisgIGludDMyX3QgZ2V0Q2hhcjMyTGltaXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OwogCiAgIC8q
KgogICAgKiBNb3ZlIHRoZSBjb2RlIHVuaXQgaW5kZXggYWxvbmcgdGhlIHN0cmluZyBieSBkZWx0
YSBjb2RlIHBvaW50cy4KQEAgLTE3MzUsNyArMTc5NCw3IEBAIHB1YmxpYzoKICAgICogRm9yIGEg
Ym9ndXMgc3RyaW5nLCBnZXRCdWZmZXIoKSBhbmQgZ2V0VGVybWluYXRlZEJ1ZmZlcigpIHJldHVy
biBOVUxMLCBhbmQKICAgICogbGVuZ3RoKCkgcmV0dXJucyAwLgogICAgKgotICAgKiBAcmV0dXJu
IFRSVUUgaWYgdGhlIHN0cmluZyBpcyB2YWxpZCwgRkFMU0Ugb3RoZXJ3aXNlCisgICAqIEByZXR1
cm4gVFJVRSBpZiB0aGUgc3RyaW5nIGlzIGJvZ3VzL2ludmFsaWQsIEZBTFNFIG90aGVyd2lzZQog
ICAgKiBAc2VlIHNldFRvQm9ndXMoKQogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCkBAIC0x
NzYyLDE2ICsxODIxLDE4IEBAIHB1YmxpYzoKICAgICogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBp
biB0aGlzIFVuaWNvZGVTdHJpbmcKICAgICogd2l0aCB0aGUgY2hhcmFjdGVycyBmcm9tIDxjb2Rl
PnNyY1RleHQ8L2NvZGU+LgogICAgKgotICAgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1l
IGZvciBhbGwgc3RyaW5ncyBleGNlcHQgZm9yIG9uZXMgdGhhdAotICAgKiBhcmUgcmVhZG9ubHkg
YWxpYXNlcy4KKyAgICogVGhpcyBmdW5jdGlvbiB3b3JrcyB0aGUgc2FtZSBhcyB0aGUgYXNzaWdu
bWVudCBvcGVyYXRvcgorICAgKiBmb3IgYWxsIHN0cmluZ3MgZXhjZXB0IGZvciBvbmVzIHRoYXQg
YXJlIHJlYWRvbmx5IGFsaWFzZXMuCisgICAqCiAgICAqIFN0YXJ0aW5nIHdpdGggSUNVIDIuNCwg
dGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgYW5kIHRoZSBjb3B5IGNvbnN0cnVjdG9yCiAgICAqIGFs
bG9jYXRlIGEgbmV3IGJ1ZmZlciBhbmQgY29weSB0aGUgYnVmZmVyIGNvbnRlbnRzIGV2ZW4gZm9y
IHJlYWRvbmx5IGFsaWFzZXMuCiAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgb2xk
LCBtb3JlIGVmZmljaWVudCBidXQgbGVzcyBzYWZlIGJlaGF2aW9yCiAgICAqIG9mIG1ha2luZyB0
aGlzIHN0cmluZyBhbHNvIGEgcmVhZG9ubHkgYWxpYXMgdG8gdGhlIHNhbWUgYnVmZmVyLgorICAg
KgogICAgKiBUaGUgZmFzdENvcHlGcm9tIGZ1bmN0aW9uIG11c3QgYmUgdXNlZCBvbmx5IGlmIGl0
IGlzIGtub3duIHRoYXQgdGhlIGxpZmV0aW1lIG9mCi0gICAqIHRoaXMgVW5pY29kZVN0cmluZyBp
cyBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBsaWZldGltZSBvZiB0aGUgYWxpYXNlZCBidWZmZXIK
KyAgICogdGhpcyBVbmljb2RlU3RyaW5nIGRvZXMgbm90IGV4Y2VlZCB0aGUgbGlmZXRpbWUgb2Yg
dGhlIGFsaWFzZWQgYnVmZmVyCiAgICAqIGluY2x1ZGluZyBpdHMgY29udGVudHMsIGZvciBleGFt
cGxlIGZvciBzdHJpbmdzIGZyb20gcmVzb3VyY2UgYnVuZGxlcwotICAgKiBvciBhbGlhc2VzIHRv
IHN0cmluZyBjb250ZW50cy4KKyAgICogb3IgYWxpYXNlcyB0byBzdHJpbmcgY29uc3RhbnRzLgog
ICAgKgogICAgKiBAcGFyYW0gc3JjIFRoZSB0ZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMg
dG8gcmVwbGFjZS4KICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCkBAIC0xODc3LDcg
KzE5MzgsMTAgQEAgcHVibGljOgogICAgKiBXaGVuIHRoZSBzdHJpbmcgaXMgbW9kaWZpZWQsIHRo
ZW4gdGhlIGJ1ZmZlciBpcyBmaXJzdCBjb3BpZWQgaW50bwogICAgKiBuZXdseSBhbGxvY2F0ZWQg
bWVtb3J5LgogICAgKiBUaGUgYWxpYXNlZCBidWZmZXIgaXMgbmV2ZXIgbW9kaWZpZWQuCi0gICAq
IEluIGFuIGFzc2lnbm1lbnQgdG8gYW5vdGhlciBVbmljb2RlU3RyaW5nLCB0aGUgdGV4dCB3aWxs
IGJlIGFsaWFzZWQgYWdhaW4sCisgICAqCisgICAqIEluIGFuIGFzc2lnbm1lbnQgdG8gYW5vdGhl
ciBVbmljb2RlU3RyaW5nLCB3aGVuIHVzaW5nIHRoZSBjb3B5IGNvbnN0cnVjdG9yCisgICAqIG9y
IHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yLCB0aGUgdGV4dCB3aWxsIGJlIGNvcGllZC4KKyAgICog
V2hlbiB1c2luZyBmYXN0Q29weUZyb20oKSwgdGhlIHRleHQgd2lsbCBiZSBhbGlhc2VkIGFnYWlu
LAogICAgKiBzbyB0aGF0IGJvdGggc3RyaW5ncyB0aGVuIGFsaWFzIHRoZSBzYW1lIHJlYWRvbmx5
LXRleHQuCiAgICAqCiAgICAqIEBwYXJhbSBpc1Rlcm1pbmF0ZWQgc3BlY2lmaWVzIGlmIDxjb2Rl
PnRleHQ8L2NvZGU+IGlzIDxjb2RlPk5VTDwvY29kZT4tdGVybWluYXRlZC4KQEAgLTE5OTEsOCAr
MjA1NSw3IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogQXBwZW5kIG9wZXJhdG9yLiBBcHBlbmQg
dGhlIGNoYXJhY3RlcnMgaW4gPFRUPnNyY1RleHQ8L1RUPiB0byB0aGUKLSAgICogVW5pY29kZVN0
cmluZyBvYmplY3QgYXQgb2Zmc2V0IDxUVD5zdGFydDwvVFQ+LiA8VFQ+c3JjVGV4dDwvVFQ+IGlz
Ci0gICAqIG5vdCBtb2RpZmllZC4KKyAgICogVW5pY29kZVN0cmluZyBvYmplY3QuIDxUVD5zcmNU
ZXh0PC9UVD4gaXMgbm90IG1vZGlmaWVkLgogICAgKiBAcGFyYW0gc3JjVGV4dCB0aGUgc291cmNl
IGZvciB0aGUgbmV3IGNoYXJhY3RlcnMKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlz
CiAgICAqIEBzdGFibGUgSUNVIDIuMApAQCAtMjAxOCw4ICsyMDgxLDggQEAgcHVibGljOgogICAg
ICAgICAgICAgaW50MzJfdCBzcmNMZW5ndGgpOwogCiAgIC8qKgotICAgKiBBcHBlbmQgdGhlIGNo
YXJhY3RlcnMgaW4gPFRUPnNyY1RleHQ8L1RUPiB0byB0aGUgVW5pY29kZVN0cmluZyBvYmplY3Qg
YXQKLSAgICogb2Zmc2V0IDxUVD5zdGFydDwvVFQ+LiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5vdCBt
b2RpZmllZC4KKyAgICogQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9UVD4g
dG8gdGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0LgorICAgKiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5v
dCBtb2RpZmllZC4KICAgICogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBj
aGFyYWN0ZXJzCiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxl
IElDVSAyLjAKQEAgLTIwMzUsNyArMjA5OCw3IEBAIHB1YmxpYzoKICAgICogQHBhcmFtIHNyY1N0
YXJ0IHRoZSBvZmZzZXQgaW50byA8VFQ+c3JjQ2hhcnM8L1RUPiB3aGVyZSBuZXcgY2hhcmFjdGVy
cwogICAgKiB3aWxsIGJlIG9idGFpbmVkCiAgICAqIEBwYXJhbSBzcmNMZW5ndGggdGhlIG51bWJl
ciBvZiBjaGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+IGluCi0gICAqIHRoZSBhcHBlbmQg
c3RyaW5nCisgICAqICAgICAgICAgICAgICAgICAgdGhlIGFwcGVuZCBzdHJpbmc7IGNhbiBiZSAt
MSBpZiA8VFQ+c3JjQ2hhcnM8L1RUPiBpcyBOVUwtdGVybWluYXRlZAogICAgKiBAcmV0dXJuIGEg
cmVmZXJlbmNlIHRvIHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwpAQCAtMjA0Nyw3
ICsyMTEwLDggQEAgcHVibGljOgogICAgKiBBcHBlbmQgdGhlIGNoYXJhY3RlcnMgaW4gPFRUPnNy
Y0NoYXJzPC9UVD4gdG8gdGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0CiAgICAqIGF0IG9mZnNldCA8
VFQ+c3RhcnQ8L1RUPi4gPFRUPnNyY0NoYXJzPC9UVD4gaXMgbm90IG1vZGlmaWVkLgogICAgKiBA
cGFyYW0gc3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCi0gICAqIEBw
YXJhbSBzcmNMZW5ndGggdGhlIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gPFRUPnNy
Y0NoYXJzPC9UVD4KKyAgICogQHBhcmFtIHNyY0xlbmd0aCB0aGUgbnVtYmVyIG9mIFVuaWNvZGUg
Y2hhcmFjdGVycyBpbiA8VFQ+c3JjQ2hhcnM8L1RUPjsKKyAgICogICAgICAgICAgICAgICAgICBj
YW4gYmUgLTEgaWYgPFRUPnNyY0NoYXJzPC9UVD4gaXMgTlVMLXRlcm1pbmF0ZWQKICAgICogQHJl
dHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCiAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KQEAg
LTIwNjgsNyArMjEzMiw3IEBAIHB1YmxpYzoKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0
aGlzCiAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIFVuaWNvZGVTdHJpbmcm
IGFwcGVuZChVQ2hhcjMyIHNyY0NoYXIpOworICBVbmljb2RlU3RyaW5nJiBhcHBlbmQoVUNoYXIz
MiBzcmNDaGFyKTsKIAogCiAgIC8qIEluc2VydCBvcGVyYXRpb25zICovCkBAIC0yMjYzLDkgKzIz
MjcsNyBAQCBwdWJsaWM6CiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBA
c3RhYmxlIElDVSAyLjAKICAgICovCi0gIGlubGluZSBVbmljb2RlU3RyaW5nJiByZXBsYWNlKGlu
dDMyX3Qgc3RhcnQsCi0gICAgICAgICAgICAgaW50MzJfdCBsZW5ndGgsCi0gICAgICAgICAgICAg
VUNoYXIzMiBzcmNDaGFyKTsKKyAgVW5pY29kZVN0cmluZyYgcmVwbGFjZShpbnQzMl90IHN0YXJ0
LCBpbnQzMl90IGxlbmd0aCwgVUNoYXIzMiBzcmNDaGFyKTsKIAogICAvKioKICAgICogUmVwbGFj
ZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxUVD5zdGFydDwvVFQ+LCA8VFQ+bGltaXQ8
L1RUPikKQEAgLTI2MzEsMTAgKzI2OTMsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICAgLyoqCi0g
ICAqIENhc2UtZm9sZCB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4KKyAgICogQ2FzZS1m
b2xkcyB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4KKyAgICoKICAgICogQ2FzZS1mb2xk
aW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRleHQtc2Vuc2l0aXZlLAogICAg
KiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVk
ZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKLSAgICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJr
ZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LgorICAgKiBhbmQgZG90bGVzcyBpIHRoYXQg
YXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgICAqCiAgICAqIFRoZSBy
ZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgogICAgKgog
ICAgKiBAcGFyYW0gb3B0aW9ucyBFaXRoZXIgVV9GT0xEX0NBU0VfREVGQVVMVCBvciBVX0ZPTERf
Q0FTRV9FWENMVURFX1NQRUNJQUxfSQpAQCAtMjc3OSw3ICsyODQzLDcgQEAgcHVibGljOgogICAg
KiBAc2VlIGdldEJ1ZmZlcigpCiAgICAqIEBzdGFibGUgSUNVIDIuMgogICAgKi8KLSAgaW5saW5l
IGNvbnN0IFVDaGFyICpnZXRUZXJtaW5hdGVkQnVmZmVyKCk7CisgIGNvbnN0IFVDaGFyICpnZXRU
ZXJtaW5hdGVkQnVmZmVyKCk7CiAKICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CiAgIC8vIENvbnN0cnVjdG9ycwpAQCAtMjc4OCw3ICsyODUyLDcgQEAgcHVibGlj
OgogICAvKiogQ29uc3RydWN0IGFuIGVtcHR5IFVuaWNvZGVTdHJpbmcuCiAgICAqIEBzdGFibGUg
SUNVIDIuMAogICAgKi8KLSAgVW5pY29kZVN0cmluZygpOworICBpbmxpbmUgVW5pY29kZVN0cmlu
ZygpOwogCiAgIC8qKgogICAgKiBDb25zdHJ1Y3QgYSBVbmljb2RlU3RyaW5nIHdpdGggY2FwYWNp
dHkgdG8gaG9sZCA8VFQ+Y2FwYWNpdHk8L1RUPiBVQ2hhcnMKQEAgLTI4MDUsMjUgKzI4NjksMzcg
QEAgcHVibGljOgogCiAgIC8qKgogICAgKiBTaW5nbGUgVUNoYXIgKGNvZGUgdW5pdCkgY29uc3Ry
dWN0b3IuCisgICAqCisgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIG1hcmsgdGhpcyBjb25zdHJ1
Y3RvciAiZXhwbGljaXQiIGJ5CisgICAqIDxjb2RlPi1EVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJ
VD1leHBsaWNpdDwvY29kZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBz
aW1pbGFyLgogICAgKiBAcGFyYW0gY2ggdGhlIGNoYXJhY3RlciB0byBwbGFjZSBpbiB0aGUgVW5p
Y29kZVN0cmluZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmco
VUNoYXIgY2gpOworICBVTklTVFJfRlJPTV9DSEFSX0VYUExJQ0lUIFVuaWNvZGVTdHJpbmcoVUNo
YXIgY2gpOwogCiAgIC8qKgogICAgKiBTaW5nbGUgVUNoYXIzMiAoY29kZSBwb2ludCkgY29uc3Ry
dWN0b3IuCisgICAqCisgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIG1hcmsgdGhpcyBjb25zdHJ1
Y3RvciAiZXhwbGljaXQiIGJ5CisgICAqIDxjb2RlPi1EVU5JU1RSX0ZST01fQ0hBUl9FWFBMSUNJ
VD1leHBsaWNpdDwvY29kZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBz
aW1pbGFyLgogICAgKiBAcGFyYW0gY2ggdGhlIGNoYXJhY3RlciB0byBwbGFjZSBpbiB0aGUgVW5p
Y29kZVN0cmluZwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmco
VUNoYXIzMiBjaCk7CisgIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQgVW5pY29kZVN0cmluZyhV
Q2hhcjMyIGNoKTsKIAogICAvKioKICAgICogVUNoYXIqIGNvbnN0cnVjdG9yLgorICAgKgorICAg
KiBJdCBpcyByZWNvbW1lbmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBi
eQorICAgKiA8Y29kZT4tRFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVD1leHBsaWNpdDwvY29k
ZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFyLgogICAgKiBA
cGFyYW0gdGV4dCBUaGUgY2hhcmFjdGVycyB0byBwbGFjZSBpbiB0aGUgVW5pY29kZVN0cmluZy4g
IDxUVD50ZXh0PC9UVD4KICAgICogbXVzdCBiZSBOVUxMIChVKzAwMDApIHRlcm1pbmF0ZWQuCiAg
ICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgVW5pY29kZVN0cmluZyhjb25zdCBVQ2hhciAq
dGV4dCk7CisgIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVCBVbmljb2RlU3RyaW5nKGNvbnN0
IFVDaGFyICp0ZXh0KTsKIAogICAvKioKICAgICogVUNoYXIqIGNvbnN0cnVjdG9yLgpAQCAtMjg0
Myw3ICsyOTE5LDEwIEBAIHB1YmxpYzoKICAgICogV2hlbiB0aGUgc3RyaW5nIGlzIG1vZGlmaWVk
LCB0aGVuIHRoZSBidWZmZXIgaXMgZmlyc3QgY29waWVkIGludG8KICAgICogbmV3bHkgYWxsb2Nh
dGVkIG1lbW9yeS4KICAgICogVGhlIGFsaWFzZWQgYnVmZmVyIGlzIG5ldmVyIG1vZGlmaWVkLgot
ICAgKiBJbiBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIgVW5pY29kZVN0cmluZywgdGhlIHRleHQg
d2lsbCBiZSBhbGlhc2VkIGFnYWluLAorICAgKgorICAgKiBJbiBhbiBhc3NpZ25tZW50IHRvIGFu
b3RoZXIgVW5pY29kZVN0cmluZywgd2hlbiB1c2luZyB0aGUgY29weSBjb25zdHJ1Y3RvcgorICAg
KiBvciB0aGUgYXNzaWdubWVudCBvcGVyYXRvciwgdGhlIHRleHQgd2lsbCBiZSBjb3BpZWQuCisg
ICAqIFdoZW4gdXNpbmcgZmFzdENvcHlGcm9tKCksIHRoZSB0ZXh0IHdpbGwgYmUgYWxpYXNlZCBh
Z2FpbiwKICAgICogc28gdGhhdCBib3RoIHN0cmluZ3MgdGhlbiBhbGlhcyB0aGUgc2FtZSByZWFk
b25seS10ZXh0LgogICAgKgogICAgKiBAcGFyYW0gaXNUZXJtaW5hdGVkIHNwZWNpZmllcyBpZiA8
Y29kZT50ZXh0PC9jb2RlPiBpcyA8Y29kZT5OVUw8L2NvZGU+LXRlcm1pbmF0ZWQuCkBAIC0yODgy
LDE0ICsyOTYxLDI5IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogY2hhciogY29uc3RydWN0b3Iu
CisgICAqIFVzZXMgdGhlIGRlZmF1bHQgY29udmVydGVyIChhbmQgdGh1cyBkZXBlbmRzIG9uIHRo
ZSBJQ1UgY29udmVyc2lvbiBjb2RlKQorICAgKiB1bmxlc3MgVV9DSEFSU0VUX0lTX1VURjggaXMg
c2V0IHRvIDEuCisgICAqCisgICAqIEZvciBBU0NJSSAocmVhbGx5ICJpbnZhcmlhbnQgY2hhcmFj
dGVyIikgc3RyaW5ncyBpdCBpcyBtb3JlIGVmZmljaWVudCB0byB1c2UKKyAgICogdGhlIGNvbnN0
cnVjdG9yIHRoYXQgdGFrZXMgYSBVU19JTlYgKGZvciBpdHMgZW51bSBFSW52YXJpYW50KS4KKyAg
ICogRm9yIEFTQ0lJIChpbnZhcmlhbnQtY2hhcmFjdGVyKSBzdHJpbmcgbGl0ZXJhbHMsIHNlZSBV
TklDT0RFX1NUUklORyBhbmQKKyAgICogVU5JQ09ERV9TVFJJTkdfU0lNUExFLgorICAgKgorICAg
KiBJdCBpcyByZWNvbW1lbmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBi
eQorICAgKiA8Y29kZT4tRFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJVD1leHBsaWNpdDwvY29k
ZT4KKyAgICogb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZSBvciBzaW1pbGFyLgogICAgKiBA
cGFyYW0gY29kZXBhZ2VEYXRhIGFuIGFycmF5IG9mIGJ5dGVzLCBudWxsLXRlcm1pbmF0ZWQsCiAg
ICAqICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHBsYXRmb3JtJ3MgZGVmYXVsdCBjb2RlcGFn
ZS4KICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqIEBzZWUgVU5JQ09ERV9TVFJJTkcKKyAgICog
QHNlZSBVTklDT0RFX1NUUklOR19TSU1QTEUKICAgICovCi0gIFVuaWNvZGVTdHJpbmcoY29uc3Qg
Y2hhciAqY29kZXBhZ2VEYXRhKTsKKyAgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lUIFVuaWNv
ZGVTdHJpbmcoY29uc3QgY2hhciAqY29kZXBhZ2VEYXRhKTsKIAogICAvKioKICAgICogY2hhciog
Y29uc3RydWN0b3IuCisgICAqIFVzZXMgdGhlIGRlZmF1bHQgY29udmVydGVyIChhbmQgdGh1cyBk
ZXBlbmRzIG9uIHRoZSBJQ1UgY29udmVyc2lvbiBjb2RlKQorICAgKiB1bmxlc3MgVV9DSEFSU0VU
X0lTX1VURjggaXMgc2V0IHRvIDEuCiAgICAqIEBwYXJhbSBjb2RlcGFnZURhdGEgYW4gYXJyYXkg
b2YgYnl0ZXMgaW4gdGhlIHBsYXRmb3JtJ3MgZGVmYXVsdCBjb2RlcGFnZS4KICAgICogQHBhcmFt
IGRhdGFMZW5ndGggVGhlIG51bWJlciBvZiBieXRlcyBpbiA8VFQ+Y29kZXBhZ2VEYXRhPC9UVD4u
CiAgICAqIEBzdGFibGUgSUNVIDIuMApAQCAtMzExMSw3ICszMjA1LDcgQEAgcHVibGljOgogICAg
KiBjaGFyYWN0ZXIuICBTZWUgdW5lc2NhcGUoKSBmb3IgYSBsaXN0aW5nIG9mIHRoZSByZWNvZ25p
emVkIGVzY2FwZQogICAgKiBzZXF1ZW5jZXMuICBUaGUgY2hhcmFjdGVyIGF0IG9mZnNldC0xIGlz
IGFzc3VtZWQgKHdpdGhvdXQKICAgICogY2hlY2tpbmcpIHRvIGJlIGEgYmFja3NsYXNoLiAgSWYg
dGhlIGVzY2FwZSBzZXF1ZW5jZSBpcwotICAgKiBpbGwtZm9ybWVkLCBvciB0aGUgb2Zmc2V0IGlz
IG91dCBvZiByYW5nZSwgKFVDaGFyMzIpMHhGRkZGRkZGRiBpcworICAgKiBpbGwtZm9ybWVkLCBv
ciB0aGUgb2Zmc2V0IGlzIG91dCBvZiByYW5nZSwgVV9TRU5USU5FTD0tMSBpcwogICAgKiByZXR1
cm5lZC4KICAgICoKICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnB1dCBvdXRwdXQgcGFyYW1ldGVy
LiAgT24gaW5wdXQsIGl0IGlzIHRoZQpAQCAtMzExOSw3ICszMjEzLDcgQEAgcHVibGljOgogICAg
KiBhZnRlciB0aGUgaW5pdGlhbCBiYWNrc2xhc2guICBPbiBvdXRwdXQsIGl0IGlzIGFkdmFuY2Vk
IGFmdGVyIHRoZQogICAgKiBsYXN0IGNoYXJhY3RlciBwYXJzZWQuICBPbiBlcnJvciwgaXQgaXMg
bm90IGFkdmFuY2VkIGF0IGFsbC4KICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIHJlcHJlc2Vu
dGVkIGJ5IHRoZSBlc2NhcGUgc2VxdWVuY2UgYXQKLSAgICogb2Zmc2V0LCBvciAoVUNoYXIzMikw
eEZGRkZGRkZGIG9uIGVycm9yLgorICAgKiBvZmZzZXQsIG9yIFVfU0VOVElORUw9LTEgb24gZXJy
b3IuCiAgICAqIEBzZWUgVW5pY29kZVN0cmluZyN1bmVzY2FwZSgpCiAgICAqIEBzZWUgdV91bmVz
Y2FwZSgpCiAgICAqIEBzZWUgdV91bmVzY2FwZUF0KCkKQEAgLTMxNzgsNiArMzI3MiwxMSBAQCBw
cml2YXRlOgogICB0b1VURjgoaW50MzJfdCBzdGFydCwgaW50MzJfdCBsZW4sCiAgICAgICAgICBj
aGFyICp0YXJnZXQsIGludDMyX3QgY2FwYWNpdHkpIGNvbnN0OwogCisgIC8qKgorICAgKiBJbnRl
cm5hbCBzdHJpbmcgY29udGVudHMgY29tcGFyaXNvbiwgY2FsbGVkIGJ5IG9wZXJhdG9yPT0uCisg
ICAqIFJlcXVpcmVzOiB0aGlzICYgdGV4dCBub3QgYm9ndXMgYW5kIGhhdmUgc2FtZSBsZW5ndGhz
LgorICAgKi8KKyAgVUJvb2wgZG9FcXVhbHMoY29uc3QgVW5pY29kZVN0cmluZyAmdGV4dCwgaW50
MzJfdCBsZW4pIGNvbnN0OwogCiAgIGlubGluZSBpbnQ4X3QKICAgZG9Db21wYXJlKGludDMyX3Qg
c3RhcnQsCkBAIC0zMzU0LDEyICszNDUzLDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCAqKnBCdWZmZXJUb0RlbGV0ZSA9IDAsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVUJvb2wgZm9yY2VDbG9uZSA9IEZBTFNFKTsKIAotICAvLyBjb21tb24g
ZnVuY3Rpb24gZm9yIGNhc2UgbWFwcGluZ3MKKyAgLyoqCisgICAqIENvbW1vbiBmdW5jdGlvbiBm
b3IgVW5pY29kZVN0cmluZyBjYXNlIG1hcHBpbmdzLgorICAgKiBUaGUgc3RyaW5nQ2FzZU1hcHBl
ciBoYXMgdGhlIHNhbWUgdHlwZSBVU3RyaW5nQ2FzZU1hcHBlcgorICAgKiBhcyBpbiB1c3RyX2lt
cC5oIGZvciB1c3RyY2FzZV9tYXAoKS4KKyAgICovCiAgIFVuaWNvZGVTdHJpbmcgJgotICBjYXNl
TWFwKEJyZWFrSXRlcmF0b3IgKnRpdGxlSXRlciwKLSAgICAgICAgICBjb25zdCBjaGFyICpsb2Nh
bGUsCi0gICAgICAgICAgdWludDMyX3Qgb3B0aW9ucywKLSAgICAgICAgICBpbnQzMl90IHRvV2hp
Y2hDYXNlKTsKKyAgY2FzZU1hcChjb25zdCBVQ2FzZU1hcCAqY3NtLCBVU3RyaW5nQ2FzZU1hcHBl
ciAqc3RyaW5nQ2FzZU1hcHBlcik7CiAKICAgLy8gcmVmIGNvdW50aW5nCiAgIHZvaWQgYWRkUmVm
KHZvaWQpOwpAQCAtMzM2OCwxMCArMzQ2OCw5IEBAIHByaXZhdGU6CiAKICAgLy8gY29uc3RhbnRz
CiAgIGVudW0gewotICAgIC8vIFNldCB0aGUgc3RhY2sgYnVmZmVyIHNpemUgc28gdGhhdCBzaXpl
b2YoVW5pY29kZVN0cmluZykgaXMgYSBtdWx0aXBsZSBvZiBzaXplb2YocG9pbnRlcik6Ci0gICAg
Ly8gMzItYml0IHBvaW50ZXJzOiA0KzErMSsxMyoyID0gMzIgYnl0ZXMKLSAgICAvLyA2NC1iaXQg
cG9pbnRlcnM6IDgrMSsxKzE1KjIgPSA0MCBieXRlcwotICAgIFVTX1NUQUNLQlVGX1NJWkU9IHNp
emVvZih2b2lkICopPT00ID8gMTMgOiAxNSwgLy8gU2l6ZSBvZiBzdGFjayBidWZmZXIgZm9yIHNt
YWxsIHN0cmluZ3MKKyAgICAvLyBTZXQgdGhlIHN0YWNrIGJ1ZmZlciBzaXplIHNvIHRoYXQgc2l6
ZW9mKFVuaWNvZGVTdHJpbmcpIGlzLAorICAgIC8vIG5hdHVyYWxseSAod2l0aG91dCBwYWRkaW5n
KSwgYSBtdWx0aXBsZSBvZiBzaXplb2YocG9pbnRlcikuCisgICAgVVNfU1RBQ0tCVUZfU0laRT0g
c2l6ZW9mKHZvaWQgKik9PTQgPyAxMyA6IDE1LCAvLyBTaXplIG9mIHN0YWNrIGJ1ZmZlciBmb3Ig
c2hvcnQgc3RyaW5ncwogICAgIGtJbnZhbGlkVUNoYXI9MHhmZmZmLCAvLyBpbnZhbGlkIFVDaGFy
IGluZGV4CiAgICAga0dyb3dTaXplPTEyOCwgLy8gZ3JvdyBzaXplIGZvciB0aGlzIGJ1ZmZlcgog
ICAgIGtJbnZhbGlkSGFzaENvZGU9MCwgLy8gaW52YWxpZCBoYXNoIGNvZGUKQEAgLTMzNzksNyAr
MzQ3OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBiaXQgZmxhZyB2YWx1ZXMgZm9yIGZGbGFncwog
ICAgIGtJc0JvZ3VzPTEsICAgICAgICAgLy8gdGhpcyBzdHJpbmcgaXMgYm9ndXMsIGkuZS4sIG5v
dCB2YWxpZCBvciBOVUxMCi0gICAga1VzaW5nU3RhY2tCdWZmZXI9MiwvLyBmQXJyYXk9PWZTdGFj
a0J1ZmZlcgorICAgIGtVc2luZ1N0YWNrQnVmZmVyPTIsLy8gdXNpbmcgZlVuaW9uLmZTdGFja0J1
ZmZlciBpbnN0ZWFkIG9mIGZVbmlvbi5mRmllbGRzCiAgICAga1JlZkNvdW50ZWQ9NCwgICAgICAv
LyB0aGVyZSBpcyBhIHJlZkNvdW50IGZpZWxkIGJlZm9yZSB0aGUgY2hhcmFjdGVycyBpbiBmQXJy
YXkKICAgICBrQnVmZmVySXNSZWFkb25seT04LC8vIGRvIG5vdCB3cml0ZSB0byB0aGlzIGJ1ZmZl
cgogICAgIGtPcGVuR2V0QnVmZmVyPTE2LCAgLy8gZ2V0QnVmZmVyKG1pbkNhcGFjaXR5KSB3YXMg
Y2FsbGVkIChpcyAib3BlbiIpLApAQCAtMzM5Myw2ICszNDkyLDcgQEAgcHJpdmF0ZToKICAgfTsK
IAogICBmcmllbmQgY2xhc3MgU3RyaW5nVGhyZWFkVGVzdDsKKyAgZnJpZW5kIGNsYXNzIFVuaWNv
ZGVTdHJpbmdBcHBlbmRhYmxlOwogCiAgIHVuaW9uIFN0YWNrQnVmZmVyT3JGaWVsZHM7ICAgICAg
ICAvLyBmb3J3YXJkIGRlY2xhcmF0aW9uIG5lY2Vzc2FyeSBiZWZvcmUgZnJpZW5kIGRlY2xhcmF0
aW9uCiAgIGZyaWVuZCB1bmlvbiBTdGFja0J1ZmZlck9yRmllbGRzOyAvLyBtYWtlIFVTX1NUQUNL
QlVGX1NJWkUgdmlzaWJsZSBpbnNpZGUgZlVuaW9uCkBAIC0zNDAzLDI1ICszNTAzLDQ4IEBAIHBy
aXZhdGU6CiAgICAqIE5vdGUgdGhhdCBVbmljb2RlU3RyaW5nIGhhcyB2aXJ0dWFsIGZ1bmN0aW9u
cywKICAgICogdGhlcmVmb3JlIHRoZXJlIGlzIGFuIGltcGxpY2l0IHZ0YWJsZSBwb2ludGVyCiAg
ICAqIGFzIHRoZSBmaXJzdCByZWFsIGZpZWxkLgotICAgKiBUaGUgZmllbGRzIHNob3VsZCBiZSBh
bGlnbmVkIHN1Y2ggdGhhdCBubyBwYWRkaW5nIGlzCi0gICAqIG5lY2Vzc2FyeSwgbW9zdGx5IGJ5
IGhhdmluZyBsYXJnZXIgdHlwZXMgZmlyc3QuCisgICAqIFRoZSBmaWVsZHMgc2hvdWxkIGJlIGFs
aWduZWQgc3VjaCB0aGF0IG5vIHBhZGRpbmcgaXMgbmVjZXNzYXJ5LgogICAgKiBPbiAzMi1iaXQg
bWFjaGluZXMsIHRoZSBzaXplIHNob3VsZCBiZSAzMiBieXRlcywKICAgICogb24gNjQtYml0IG1h
Y2hpbmVzICg4LWJ5dGUgcG9pbnRlcnMpLCBpdCBzaG91bGQgYmUgNDAgYnl0ZXMuCisgICAqCisg
ICAqIFdlIHVzZSBhIGhhY2sgdG8gYWNoaWV2ZSB0aGlzLgorICAgKgorICAgKiBXaXRoIGF0IGxl
YXN0IHNvbWUgY29tcGlsZXJzLCBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgZm9yY2VkIHRvCisg
ICAqIGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKHBvaW50ZXIpIFt0aGUgbGFyZ2VzdCBmaWVsZCBiYXNl
IHVuaXQgaGVyZSBpcyBhIGRhdGEgcG9pbnRlcl0sCisgICAqIHJvdW5kZWQgdXAgd2l0aCBhZGRp
dGlvbmFsIHBhZGRpbmcgaWYgdGhlIGZpZWxkcyBkbyBub3QgYWxyZWFkeSBmaXQgdGhhdCByZXF1
aXJlbWVudDoKKyAgICogLSBzaXplb2YoY2xhc3MgVW5pY29kZVN0cmluZykKKyAgICogLSBvZmZz
ZXRvZihVbmljb2RlU3RyaW5nLCBmVW5pb24pCisgICAqIC0gc2l6ZW9mKGZVbmlvbikKKyAgICog
LSBzaXplb2YoZkZpZWxkcykKKyAgICoKKyAgICogSW4gb3JkZXIgdG8gYXZvaWQgcGFkZGluZywg
d2UgbWFrZSBzaXplb2YoZlN0YWNrQnVmZmVyKT0xNiAoPTggVUNoYXJzKQorICAgKiB3aGljaCBp
cyBhdCBsZWFzdCBhcyBsYXJnZSBhcyBzaXplb2YoZkZpZWxkcykgb24gMzItYml0IGFuZCA2NC1i
aXQgbWFjaGluZXMuCisgICAqIChQYWRkaW5nIGF0IHRoZSBlbmQgb2YgZkZpZWxkcyBpcyBvazoK
KyAgICogQXMgbG9uZyBhcyB0aGVyZSBpcyBubyBwYWRkaW5nIGFmdGVyIGZTdGFja0J1ZmZlciwg
aXQgaXMgbm90IHdhc3RlZCBzcGFjZS4pCisgICAqCisgICAqIFdlIGZ1cnRoZXIgYXNzdW1lIHRo
YXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IHJlb3JkZXIgdGhlIGZpZWxkcywKKyAgICogc28gdGhh
dCBmUmVzdE9mU3RhY2tCdWZmZXIgKHdoaWNoIGhvbGRzIGEgZmV3IG1vcmUgVUNoYXJzKSBpbW1l
ZGlhdGVseSBmb2xsb3dzIGFmdGVyIGZVbmlvbiwKKyAgICogd2l0aCBhdCBtb3N0IHNvbWUgcGFk
ZGluZyAoYnV0IG5vIG90aGVyIGZpZWxkKSBpbiBiZXR3ZWVuLgorICAgKiAoUGFkZGluZyB0aGVy
ZSB3b3VsZCBiZSB3YXN0ZWQgc3BhY2UsIGJ1dCBmdW5jdGlvbmFsbHkgaGFybWxlc3MuKQorICAg
KgorICAgKiBXZSB1c2UgYSBmZXcgbW9yZSBzaXplb2YocG9pbnRlcikncyBjaHVua3Mgb2Ygc3Bh
Y2Ugd2l0aAorICAgKiBmUmVzdE9mU3RhY2tCdWZmZXIsIGZTaG9ydExlbmd0aCBhbmQgZkZsYWdz
LAorICAgKiB0byBnZXQgdXAgZXhhY3RseSB0byB0aGUgaW50ZW5kZWQgc2l6ZW9mKFVuaWNvZGVT
dHJpbmcpLgogICAgKi8KICAgLy8gKGltcGxpY2l0KSAqdnRhYmxlOwotICBpbnQ4X3QgICAgZlNo
b3J0TGVuZ3RoOyAgIC8vIDAuLjEyNzogbGVuZ3RoICA8MDogcmVhbCBsZW5ndGggaXMgaW4gZlVu
aW9uLmZGaWVsZHMuZkxlbmd0aAotICB1aW50OF90ICAgZkZsYWdzOyAgICAgICAgIC8vIGJpdCBm
bGFnczogc2VlIGNvbnN0YW50cyBhYm92ZQogICB1bmlvbiBTdGFja0J1ZmZlck9yRmllbGRzIHsK
ICAgICAvLyBmU3RhY2tCdWZmZXIgaXMgdXNlZCBpZmYgKGZGbGFncyZrVXNpbmdTdGFja0J1ZmZl
cikKICAgICAvLyBlbHNlIGZGaWVsZHMgaXMgdXNlZAotICAgIFVDaGFyICAgICBmU3RhY2tCdWZm
ZXIgW1VTX1NUQUNLQlVGX1NJWkVdOyAvLyBidWZmZXIgZm9yIHNtYWxsIHN0cmluZ3MKKyAgICBV
Q2hhciBmU3RhY2tCdWZmZXJbOF07ICAvLyBidWZmZXIgZm9yIHNob3J0IHN0cmluZ3MsIHRvZ2V0
aGVyIHdpdGggZlJlc3RPZlN0YWNrQnVmZmVyCiAgICAgc3RydWN0IHsKLSAgICAgIHVpbnQxNl90
ICBmUGFkZGluZzsgICAvLyBhbGlnbiB0aGUgZm9sbG93aW5nIGZpZWxkIGF0IDhCICgzMmIgcG9p
bnRlcnMpIG9yIDEyQiAoNjRiKQotICAgICAgaW50MzJfdCAgIGZMZW5ndGg7ICAgIC8vIG51bWJl
ciBvZiBjaGFyYWN0ZXJzIGluIGZBcnJheSBpZiA+MTI3OyBlbHNlIHVuZGVmaW5lZAotICAgICAg
VUNoYXIgICAgICpmQXJyYXk7ICAgIC8vIHRoZSBVbmljb2RlIGRhdGEgKGFsaWduZWQgYXQgMTJC
ICgzMmIgcG9pbnRlcnMpIG9yIDE2QiAoNjRiKSkKLSAgICAgIGludDMyX3QgICBmQ2FwYWNpdHk7
ICAvLyBzaXplb2YgZkFycmF5CisgICAgICBVQ2hhciAgICpmQXJyYXk7ICAgIC8vIHRoZSBVbmlj
b2RlIGRhdGEKKyAgICAgIGludDMyX3QgZkNhcGFjaXR5OyAgLy8gY2FwYWNpdHkgb2YgZkFycmF5
IChpbiBVQ2hhcnMpCisgICAgICBpbnQzMl90IGZMZW5ndGg7ICAgIC8vIG51bWJlciBvZiBjaGFy
YWN0ZXJzIGluIGZBcnJheSBpZiA+MTI3OyBlbHNlIHVuZGVmaW5lZAogICAgIH0gZkZpZWxkczsK
ICAgfSBmVW5pb247CisgIFVDaGFyIGZSZXN0T2ZTdGFja0J1ZmZlcltVU19TVEFDS0JVRl9TSVpF
LThdOworICBpbnQ4X3QgZlNob3J0TGVuZ3RoOyAgLy8gMC4uMTI3OiBsZW5ndGggIDwwOiByZWFs
IGxlbmd0aCBpcyBpbiBmVW5pb24uZkZpZWxkcy5mTGVuZ3RoCisgIHVpbnQ4X3QgZkZsYWdzOyAg
ICAgICAvLyBiaXQgZmxhZ3M6IHNlZSBjb25zdGFudHMgYWJvdmUKIH07CiAKIC8qKgpAQCAtMzQ4
MSw2ICszNjA0LDE2IEBAIFVuaWNvZGVTdHJpbmc6OmdldEFycmF5U3RhcnQoKSBjb25zdAogeyBy
ZXR1cm4gKGZGbGFncyZrVXNpbmdTdGFja0J1ZmZlcikgPyBmVW5pb24uZlN0YWNrQnVmZmVyIDog
ZlVuaW9uLmZGaWVsZHMuZkFycmF5OyB9CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLy8gRGVmYXVsdCBjb25zdHJ1Y3RvcgorLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK2lubGluZQorVW5pY29kZVN0cmluZzo6VW5pY29k
ZVN0cmluZygpCisgIDogZlNob3J0TGVuZ3RoKDApLAorICAgIGZGbGFncyhrU2hvcnRTdHJpbmcp
Cit7fQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFJl
YWQtb25seSBpbXBsZW1lbnRhdGlvbiBtZXRob2RzCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KIGlubGluZSBpbnQzMl90CkBAIC0zNTQ3LDEwICszNjgwLDcgQEAg
VW5pY29kZVN0cmluZzo6b3BlcmF0b3I9PSAoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dCkgY29u
c3QKICAgICByZXR1cm4gdGV4dC5pc0JvZ3VzKCk7CiAgIH0gZWxzZSB7CiAgICAgaW50MzJfdCBs
ZW4gPSBsZW5ndGgoKSwgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCk7Ci0gICAgcmV0dXJuCi0g
ICAgICAhdGV4dC5pc0JvZ3VzKCkgJiYKLSAgICAgIGxlbiA9PSB0ZXh0TGVuZ3RoICYmCi0gICAg
ICBkb0NvbXBhcmUoMCwgbGVuLCB0ZXh0LCAwLCB0ZXh0TGVuZ3RoKSA9PSAwOworICAgIHJldHVy
biAhdGV4dC5pc0JvZ3VzKCkgJiYgbGVuID09IHRleHRMZW5ndGggJiYgZG9FcXVhbHModGV4dCwg
bGVuKTsKICAgfQogfQogCkBAIC0zOTMyLDE1ICs0MDYyLDIwIEBAIFVuaWNvZGVTdHJpbmc6OnN0
YXJ0c1dpdGgoY29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCwKIHsgcmV0dXJuIGRvQ29tcGFy
ZSgwLCBzcmNMZW5ndGgsIHNyY1RleHQsIHNyY1N0YXJ0LCBzcmNMZW5ndGgpID09IDA7IH0KIAog
aW5saW5lIFVCb29sCi1Vbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmND
aGFycywKLSAgICAgICAgICAgICAgaW50MzJfdCBzcmNMZW5ndGgpIGNvbnN0Ci17IHJldHVybiBk
b0NvbXBhcmUoMCwgc3JjTGVuZ3RoLCBzcmNDaGFycywgMCwgc3JjTGVuZ3RoKSA9PSAwOyB9CitV
bmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmNDaGFycywgaW50MzJfdCBz
cmNMZW5ndGgpIGNvbnN0IHsKKyAgaWYoc3JjTGVuZ3RoIDwgMCkgeworICAgIHNyY0xlbmd0aCA9
IHVfc3RybGVuKHNyY0NoYXJzKTsKKyAgfQorICByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0
aCwgc3JjQ2hhcnMsIDAsIHNyY0xlbmd0aCkgPT0gMDsKK30KIAogaW5saW5lIFVCb29sCi1Vbmlj
b2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFyICpzcmNDaGFycywKLSAgICAgICAgICAg
ICAgaW50MzJfdCBzcmNTdGFydCwKLSAgICAgICAgICAgICAgaW50MzJfdCBzcmNMZW5ndGgpIGNv
bnN0Ci17IHJldHVybiBkb0NvbXBhcmUoMCwgc3JjTGVuZ3RoLCBzcmNDaGFycywgc3JjU3RhcnQs
IHNyY0xlbmd0aCkgPT0gMDt9CitVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVDaGFy
ICpzcmNDaGFycywgaW50MzJfdCBzcmNTdGFydCwgaW50MzJfdCBzcmNMZW5ndGgpIGNvbnN0IHsK
KyAgaWYoc3JjTGVuZ3RoIDwgMCkgeworICAgIHNyY0xlbmd0aCA9IHVfc3RybGVuKHNyY0NoYXJz
KTsKKyAgfQorICByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwgc3JjQ2hhcnMsIHNyY1N0
YXJ0LCBzcmNMZW5ndGgpID09IDA7Cit9CiAKIGlubGluZSBVQm9vbAogVW5pY29kZVN0cmluZzo6
ZW5kc1dpdGgoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dCkgY29uc3QKQEAgLTQwMTYsMTcgKzQx
NTEsNiBAQCBVbmljb2RlU3RyaW5nOjpyZXBsYWNlKGludDMyX3Qgc3RhcnQsCiB7IHJldHVybiBk
b1JlcGxhY2Uoc3RhcnQsIF9sZW5ndGgsICZzcmNDaGFyLCAwLCAxKTsgfQogCiBpbmxpbmUgVW5p
Y29kZVN0cmluZyYKLVVuaWNvZGVTdHJpbmc6OnJlcGxhY2UoaW50MzJfdCBzdGFydCwKLSAgICAg
ICAgICAgICAgIGludDMyX3QgX2xlbmd0aCwKLSAgICAgICAgICAgICAgIFVDaGFyMzIgc3JjQ2hh
cikgewotICBVQ2hhciBidWZmZXJbVTE2X01BWF9MRU5HVEhdOwotICBpbnQzMl90IGNvdW50ID0g
MDsKLSAgVUJvb2wgaXNFcnJvciA9IEZBTFNFOwotICBVMTZfQVBQRU5EKGJ1ZmZlciwgY291bnQs
IFUxNl9NQVhfTEVOR1RILCBzcmNDaGFyLCBpc0Vycm9yKTsKLSAgcmV0dXJuIGRvUmVwbGFjZShz
dGFydCwgX2xlbmd0aCwgYnVmZmVyLCAwLCBjb3VudCk7Ci19Ci0KLWlubGluZSBVbmljb2RlU3Ry
aW5nJgogVW5pY29kZVN0cmluZzo6cmVwbGFjZUJldHdlZW4oaW50MzJfdCBzdGFydCwKICAgICAg
ICAgICAgICAgICAgIGludDMyX3QgbGltaXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBVbmlj
b2RlU3RyaW5nJiBzcmNUZXh0KQpAQCAtNDA4Niw5ICs0MjEwLDkgQEAgVW5pY29kZVN0cmluZzo6
ZXh0cmFjdChpbnQzMl90IHN0YXJ0LAogCiB7CiAgIC8vIFRoaXMgZHN0U2l6ZSB2YWx1ZSB3aWxs
IGJlIGNoZWNrZWQgZXhwbGljaXRseQotICAvLyBSZW1vdmVkICNpZiBkZWZpbmVkKF9fR05VQ19f
KSBwZXIgSUNVIGRlZmVjdCBodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQv
ODE5NwogICByZXR1cm4gZXh0cmFjdChzdGFydCwgX2xlbmd0aCwgZHN0LCBkc3QhPTAgPyAweGZm
ZmZmZmZmIDogMCwgY29kZXBhZ2UpOwogfQorCiAjZW5kaWYKIAogaW5saW5lIHZvaWQKQEAgLTQx
MjQsNDMgKzQyNDgsNiBAQCBpbmxpbmUgVUNoYXIKIFVuaWNvZGVTdHJpbmc6Om9wZXJhdG9yW10g
KGludDMyX3Qgb2Zmc2V0KSBjb25zdAogeyByZXR1cm4gZG9DaGFyQXQob2Zmc2V0KTsgfQogCi1p
bmxpbmUgVUNoYXIzMgotVW5pY29kZVN0cmluZzo6Y2hhcjMyQXQoaW50MzJfdCBvZmZzZXQpIGNv
bnN0Ci17Ci0gIGludDMyX3QgbGVuID0gbGVuZ3RoKCk7Ci0gIGlmKCh1aW50MzJfdClvZmZzZXQg
PCAodWludDMyX3QpbGVuKSB7Ci0gICAgY29uc3QgVUNoYXIgKmFycmF5ID0gZ2V0QXJyYXlTdGFy
dCgpOwotICAgIFVDaGFyMzIgYzsKLSAgICBVMTZfR0VUKGFycmF5LCAwLCBvZmZzZXQsIGxlbiwg
Yyk7Ci0gICAgcmV0dXJuIGM7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGtJbnZhbGlkVUNoYXI7
Ci0gIH0KLX0KLQotaW5saW5lIGludDMyX3QKLVVuaWNvZGVTdHJpbmc6OmdldENoYXIzMlN0YXJ0
KGludDMyX3Qgb2Zmc2V0KSBjb25zdCB7Ci0gIGlmKCh1aW50MzJfdClvZmZzZXQgPCAodWludDMy
X3QpbGVuZ3RoKCkpIHsKLSAgICBjb25zdCBVQ2hhciAqYXJyYXkgPSBnZXRBcnJheVN0YXJ0KCk7
Ci0gICAgVTE2X1NFVF9DUF9TVEFSVChhcnJheSwgMCwgb2Zmc2V0KTsKLSAgICByZXR1cm4gb2Zm
c2V0OwotICB9IGVsc2UgewotICAgIHJldHVybiAwOwotICB9Ci19Ci0KLWlubGluZSBpbnQzMl90
Ci1Vbmljb2RlU3RyaW5nOjpnZXRDaGFyMzJMaW1pdChpbnQzMl90IG9mZnNldCkgY29uc3Qgewot
ICBpbnQzMl90IGxlbiA9IGxlbmd0aCgpOwotICBpZigodWludDMyX3Qpb2Zmc2V0IDwgKHVpbnQz
Ml90KWxlbikgewotICAgIGNvbnN0IFVDaGFyICphcnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAg
ICBVMTZfU0VUX0NQX0xJTUlUKGFycmF5LCAwLCBvZmZzZXQsIGxlbik7Ci0gICAgcmV0dXJuIG9m
ZnNldDsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gbGVuOwotICB9Ci19Ci0KIGlubGluZSBVQm9v
bAogVW5pY29kZVN0cmluZzo6aXNFbXB0eSgpIGNvbnN0IHsKICAgcmV0dXJuIGZTaG9ydExlbmd0
aCA9PSAwOwpAQCAtNDE5Miw0OCArNDI3OSw2IEBAIFVuaWNvZGVTdHJpbmc6OnNldEFycmF5KFVD
aGFyICphcnJheSwgaW50MzJfdCBsZW4sIGludDMyX3QgY2FwYWNpdHkpIHsKICAgZlVuaW9uLmZG
aWVsZHMuZkNhcGFjaXR5ID0gY2FwYWNpdHk7CiB9CiAKLWlubGluZSBjb25zdCBVQ2hhciAqCi1V
bmljb2RlU3RyaW5nOjpnZXRUZXJtaW5hdGVkQnVmZmVyKCkgewotICBpZighaXNXcml0YWJsZSgp
KSB7Ci0gICAgcmV0dXJuIDA7Ci0gIH0gZWxzZSB7Ci0gICAgVUNoYXIgKmFycmF5ID0gZ2V0QXJy
YXlTdGFydCgpOwotICAgIGludDMyX3QgbGVuID0gbGVuZ3RoKCk7Ci0gICAgaWYobGVuIDwgZ2V0
Q2FwYWNpdHkoKSAmJiAoKGZGbGFncyZrUmVmQ291bnRlZCkgPT0gMCB8fCByZWZDb3VudCgpID09
IDEpKSB7Ci0gICAgICAvKgotICAgICAgICoga1JlZkNvdW50ZWQ6IERvIG5vdCB3cml0ZSB0aGUg
TlVMIGlmIHRoZSBidWZmZXIgaXMgc2hhcmVkLgotICAgICAgICogVGhhdCBpcyBtb3N0bHkgc2Fm
ZSwgZXhjZXB0IHdoZW4gdGhlIGxlbmd0aCBvZiBvbmUgY29weSB3YXMgbW9kaWZpZWQKLSAgICAg
ICAqIHdpdGhvdXQgY29weS1vbi13cml0ZSwgZS5nLiwgdmlhIHRydW5jYXRlKG5ld0xlbmd0aCkg
b3IgcmVtb3ZlKHZvaWQpLgotICAgICAgICogVGhlbiB0aGUgTlVMIHdvdWxkIGJlIHdyaXR0ZW4g
aW50byB0aGUgbWlkZGxlIG9mIGFub3RoZXIgY29weSdzIHN0cmluZy4KLSAgICAgICAqLwotICAg
ICAgaWYoIShmRmxhZ3Mma0J1ZmZlcklzUmVhZG9ubHkpKSB7Ci0gICAgICAgIC8qCi0gICAgICAg
ICAqIFdlIG11c3Qgbm90IHdyaXRlIHRvIGEgcmVhZG9ubHkgYnVmZmVyLCBidXQgaXQgaXMga25v
d24gdG8gYmUKLSAgICAgICAgICogTlVMLXRlcm1pbmF0ZWQgaWYgbGVuPGNhcGFjaXR5LgotICAg
ICAgICAgKiBBIHNoYXJlZCwgYWxsb2NhdGVkIGJ1ZmZlciAocmVmQ291bnQoKT4xKSBtdXN0IG5v
dCBoYXZlIGl0cyBjb250ZW50cwotICAgICAgICAgKiBtb2RpZmllZCwgYnV0IHRoZSBOVUwgYXQg
W2xlbl0gaXMgYmV5b25kIHRoZSBzdHJpbmcgY29udGVudHMsCi0gICAgICAgICAqIGFuZCBtdWx0
aXBsZSBzdHJpbmcgb2JqZWN0cyBhbmQgdGhyZWFkcyB3cml0aW5nIHRoZSBzYW1lIE5VTCBpbnRv
IHRoZQotICAgICAgICAgKiBzYW1lIGxvY2F0aW9uIGlzIGhhcm1sZXNzLgotICAgICAgICAgKiBJ
biBhbGwgb3RoZXIgY2FzZXMsIHRoZSBidWZmZXIgaXMgZnVsbHkgd3JpdGFibGUgYW5kIGl0IGlz
IGFueXdheSBzYWZlCi0gICAgICAgICAqIHRvIHdyaXRlIHRoZSBOVUwuCi0gICAgICAgICAqCi0g
ICAgICAgICAqIE5vdGU6IEFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgdGVzdGVkIHdo
ZXRoZXIgdGhlcmUgaXMgYSBOVUwKLSAgICAgICAgICogYXQgW2xlbl0gYWxyZWFkeSwgYnV0LCB3
aGlsZSBzYWZlLCBpdCBnZW5lcmF0ZWQgbG90cyBvZiB3YXJuaW5ncyBmcm9tCi0gICAgICAgICAq
IHRvb2xzIGxpa2UgdmFsZ3JpbmQgYW5kIFB1cmlmeS4KLSAgICAgICAgICovCi0gICAgICAgIGFy
cmF5W2xlbl0gPSAwOwotICAgICAgfQotICAgICAgcmV0dXJuIGFycmF5OwotICAgIH0gZWxzZSBp
ZihjbG9uZUFycmF5SWZOZWVkZWQobGVuKzEpKSB7Ci0gICAgICBhcnJheSA9IGdldEFycmF5U3Rh
cnQoKTsKLSAgICAgIGFycmF5W2xlbl0gPSAwOwotICAgICAgcmV0dXJuIGFycmF5OwotICAgIH0g
ZWxzZSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIH0KLX0KLQogaW5saW5lIFVuaWNvZGVT
dHJpbmcmCiBVbmljb2RlU3RyaW5nOjpvcGVyYXRvcj0gKFVDaGFyIGNoKQogeyByZXR1cm4gZG9S
ZXBsYWNlKDAsIGxlbmd0aCgpLCAmY2gsIDAsIDEpOyB9CkBAIC00MjYzLDggKzQzMDgsNyBAQCBV
bmljb2RlU3RyaW5nOjpzZXRUbyhjb25zdCBVbmljb2RlU3RyaW5nJiBzcmNUZXh0LAogaW5saW5l
IFVuaWNvZGVTdHJpbmcmCiBVbmljb2RlU3RyaW5nOjpzZXRUbyhjb25zdCBVbmljb2RlU3RyaW5n
JiBzcmNUZXh0KQogewotICB1bkJvZ3VzKCk7Ci0gIHJldHVybiBkb1JlcGxhY2UoMCwgbGVuZ3Ro
KCksIHNyY1RleHQsIDAsIHNyY1RleHQubGVuZ3RoKCkpOworICByZXR1cm4gY29weUZyb20oc3Jj
VGV4dCk7CiB9CiAKIGlubGluZSBVbmljb2RlU3RyaW5nJgpAQCAtNDMxNSwxNSArNDM1OSw2IEBA
IFVuaWNvZGVTdHJpbmc6OmFwcGVuZChVQ2hhciBzcmNDaGFyKQogeyByZXR1cm4gZG9SZXBsYWNl
KGxlbmd0aCgpLCAwLCAmc3JjQ2hhciwgMCwgMSk7IH0KIAogaW5saW5lIFVuaWNvZGVTdHJpbmcm
Ci1Vbmljb2RlU3RyaW5nOjphcHBlbmQoVUNoYXIzMiBzcmNDaGFyKSB7Ci0gIFVDaGFyIGJ1ZmZl
cltVMTZfTUFYX0xFTkdUSF07Ci0gIGludDMyX3QgX2xlbmd0aCA9IDA7Ci0gIFVCb29sIGlzRXJy
b3IgPSBGQUxTRTsKLSAgVTE2X0FQUEVORChidWZmZXIsIF9sZW5ndGgsIFUxNl9NQVhfTEVOR1RI
LCBzcmNDaGFyLCBpc0Vycm9yKTsKLSAgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwgMCwgYnVm
ZmVyLCAwLCBfbGVuZ3RoKTsKLX0KLQotaW5saW5lIFVuaWNvZGVTdHJpbmcmCiBVbmljb2RlU3Ry
aW5nOjpvcGVyYXRvcis9IChVQ2hhciBjaCkKIHsgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwg
MCwgJmNoLCAwLCAxKTsgfQogCkBAIC00Mzc2LDkgKzQ0MTEsNyBAQCBpbmxpbmUgVW5pY29kZVN0
cmluZyYKIFVuaWNvZGVTdHJpbmc6OnJlbW92ZSgpCiB7CiAgIC8vIHJlbW92ZSgpIG9mIGEgYm9n
dXMgc3RyaW5nIG1ha2VzIHRoZSBzdHJpbmcgZW1wdHkgYW5kIG5vbi1ib2d1cwotICAvLyB3ZSBh
bHNvIHVuLWFsaWFzIGEgcmVhZC1vbmx5IGFsaWFzIHRvIGRlYWwgd2l0aCBOVUwtdGVybWluYXRp
b24KLSAgLy8gaXNzdWVzIHdpdGggZ2V0VGVybWluYXRlZEJ1ZmZlcigpCi0gIGlmKGZGbGFncyAm
IChrSXNCb2d1c3xrQnVmZmVySXNSZWFkb25seSkpIHsKKyAgaWYoaXNCb2d1cygpKSB7CiAgICAg
c2V0VG9FbXB0eSgpOwogICB9IGVsc2UgewogICAgIGZTaG9ydExlbmd0aCA9IDA7CkBAIC00NDE3
LDkgKzQ0NTAsNiBAQCBVbmljb2RlU3RyaW5nOjp0cnVuY2F0ZShpbnQzMl90IHRhcmdldExlbmd0
aCkKICAgICByZXR1cm4gRkFMU0U7CiAgIH0gZWxzZSBpZigodWludDMyX3QpdGFyZ2V0TGVuZ3Ro
IDwgKHVpbnQzMl90KWxlbmd0aCgpKSB7CiAgICAgc2V0TGVuZ3RoKHRhcmdldExlbmd0aCk7Ci0g
ICAgaWYoZkZsYWdzJmtCdWZmZXJJc1JlYWRvbmx5KSB7Ci0gICAgICBmVW5pb24uZkZpZWxkcy5m
Q2FwYWNpdHkgPSB0YXJnZXRMZW5ndGg7ICAvLyBub3QgTlVMLXRlcm1pbmF0ZWQgYW55IG1vcmUK
LSAgICB9CiAgICAgcmV0dXJuIFRSVUU7CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIEZBTFNFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bm9ybTIuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdW5vcm0yLmgKaW5kZXggYTUyMmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5
ZGI0YTJhMmYxYy4uNzE1MmZjMTA5NDY2ZDA3YzUwYmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bm9ybTIuaAorKysgYi9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3Vub3JtMi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEzLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMTksNiArMTE5
LDc2IEBAIHR5cGVkZWYgc3RydWN0IFVOb3JtYWxpemVyMiBVTm9ybWFsaXplcjI7ICAvKio8IEMg
dHlwZWRlZiBmb3Igc3RydWN0IFVOb3JtYWxpemVyCiAjaWYgIVVDT05GSUdfTk9fTk9STUFMSVpB
VElPTgogCiAvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNv
ZGUgTkZDIG5vcm1hbGl6YXRpb24uCisgKiBTYW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxM
LCAibmZjIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1v
ZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFt
IHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0
CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2Ug
dGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENo
ZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisg
KiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBz
dGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JU
MgordW5vcm0yX2dldE5GQ0luc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioK
KyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZEIG5vcm1h
bGl6YXRpb24uCisgKiBTYW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZjIiwgVU5P
Uk0yX0RFQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBz
aW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAg
ICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rp
b24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVf
RkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5j
dGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4g
dGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1Ug
NDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJf
Z2V0TkZESW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJu
cyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORktDIG5vcm1hbGl6YXRpb24u
CisgKiBTYW1lIGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZrYyIsIFVOT1JNMl9DT01Q
T1NFLCBwRXJyb3JDb2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBp
bnN0YW5jZS4gRG8gbm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJk
IElDVSBlcnJvciBjb2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAg
ICBwYXNzIHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5z
CisgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkg
b24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWlu
aW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVz
dGVkIE5vcm1hbGl6ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitV
X1NUQUJMRSBjb25zdCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORktDSW5z
dGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVOb3Jt
YWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORktEIG5vcm1hbGl6YXRpb24uCisgKiBTYW1l
IGFzIHVub3JtMl9nZXRJbnN0YW5jZShOVUxMLCAibmZrYyIsIFVOT1JNMl9ERUNPTVBPU0UsIHBF
cnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNl
LiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVy
cm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3Mg
dGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAg
ICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRw
dXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChT
ZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9y
bWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxF
IGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0RJbnN0YW5jZShV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIy
IGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0NfQ2FzZWZvbGQgbm9ybWFsaXphdGlvbi4KKyAqIFNh
bWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjX2NmIiwgVU5PUk0yX0NPTVBPU0Us
IHBFcnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3Rh
bmNlLiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNV
IGVycm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBh
c3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAq
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcu
IChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQg
Tm9ybWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RB
QkxFIGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NDYXNlZm9s
ZEluc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKICAqIFJldHVybnMgYSBV
Tm9ybWFsaXplcjIgaW5zdGFuY2Ugd2hpY2ggdXNlcyB0aGUgc3BlY2lmaWVkIGRhdGEgZmlsZQog
ICogKHBhY2thZ2VOYW1lL25hbWUgc2ltaWxhciB0byB1Y252X29wZW5QYWNrYWdlKCkgYW5kIHVy
ZXNfb3BlbigpL1Jlc291cmNlQnVuZGxlKQogICogYW5kIHdoaWNoIGNvbXBvc2VzIG9yIGRlY29t
cG9zZXMgdGV4dCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBtb2RlLgpAQCAtMjYwLDggKzMz
MCwxMSBAQCB1bm9ybTJfYXBwZW5kKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsCiAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwogCiAvKioKLSAqIEdldHMgdGhlIGRlY29t
cG9zaXRpb24gbWFwcGluZyBvZiBjLiBFcXVpdmFsZW50IHRvIHVub3JtMl9ub3JtYWxpemUoc3Ry
aW5nKGMpKQotICogb24gYSBVTk9STTJfREVDT01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwg
YnV0IG11Y2ggZmFzdGVyLgorICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMu
CisgKiBSb3VnaGx5IGVxdWl2YWxlbnQgdG8gbm9ybWFsaXppbmcgdGhlIFN0cmluZyBmb3JtIG9m
IGMKKyAqIG9uIGEgVU5PUk0yX0RFQ09NUE9TRSBVTm9ybWFsaXplcjIgaW5zdGFuY2UsIGJ1dCBt
dWNoIGZhc3RlciwgYW5kIGV4Y2VwdCB0aGF0IHRoaXMgZnVuY3Rpb24KKyAqIHJldHVybnMgYSBu
ZWdhdGl2ZSB2YWx1ZSBhbmQgZG9lcyBub3Qgd3JpdGUgYSBzdHJpbmcKKyAqIGlmIGMgZG9lcyBu
b3QgaGF2ZSBhIGRlY29tcG9zaXRpb24gbWFwcGluZyBpbiB0aGlzIGluc3RhbmNlJ3MgZGF0YS4K
ICAqIFRoaXMgZnVuY3Rpb24gaXMgaW5kZXBlbmRlbnQgb2YgdGhlIG1vZGUgb2YgdGhlIFVOb3Jt
YWxpemVyMi4KICAqIEBwYXJhbSBub3JtMiBVTm9ybWFsaXplcjIgaW5zdGFuY2UKICAqIEBwYXJh
bSBjIGNvZGUgcG9pbnQKQEAgLTI3MywxNCArMzQ2LDc4IEBAIHVub3JtMl9hcHBlbmQoY29uc3Qg
VU5vcm1hbGl6ZXIyICpub3JtMiwKICAqICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBD
aGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikK
ICAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIGRlY29tcG9zaXRpb24s
IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVnYXRpdmUgdmFsdWUKLSAqIEBkcmFmdCBJ
Q1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JU
MgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVub3JtMl9nZXREZWNvbXBvc2l0aW9uKGNv
bnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsCiAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcjMy
IGMsIFVDaGFyICpkZWNvbXBvc2l0aW9uLCBpbnQzMl90IGNhcGFjaXR5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8qKgorICogR2V0cyB0aGUg
cmF3IGRlY29tcG9zaXRpb24gbWFwcGluZyBvZiBjLgorICoKKyAqIFRoaXMgaXMgc2ltaWxhciB0
byB0aGUgdW5vcm0yX2dldERlY29tcG9zaXRpb24oKSBmdW5jdGlvbiBidXQgcmV0dXJucyB0aGUK
KyAqIHJhdyBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgYXMgc3BlY2lmaWVkIGluIFVuaWNvZGVEYXRh
LnR4dCBvcgorICogKGZvciBjdXN0b20gZGF0YSkgaW4gdGhlIG1hcHBpbmcgZmlsZXMgcHJvY2Vz
c2VkIGJ5IHRoZSBnZW5ub3JtMiB0b29sLgorICogQnkgY29udHJhc3QsIHVub3JtMl9nZXREZWNv
bXBvc2l0aW9uKCkgcmV0dXJucyB0aGUgcHJvY2Vzc2VkLAorICogcmVjdXJzaXZlbHktZGVjb21w
b3NlZCB2ZXJzaW9uIG9mIHRoaXMgbWFwcGluZy4KKyAqCisgKiBXaGVuIHVzZWQgb24gYSBzdGFu
ZGFyZCBORktDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogdW5vcm0yX2dldFJhd0RlY29tcG9z
aXRpb24oKSByZXR1cm5zIHRoZSBVbmljb2RlIERlY29tcG9zaXRpb25fTWFwcGluZyAoZG0pIHBy
b3BlcnR5LgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GQyBOb3JtYWxpemVyMiBp
bnN0YW5jZSwKKyAqIGl0IHJldHVybnMgdGhlIERlY29tcG9zaXRpb25fTWFwcGluZyBvbmx5IGlm
IHRoZSBEZWNvbXBvc2l0aW9uX1R5cGUgKGR0KSBpcyBDYW5vbmljYWwgKENhbik7CisgKiBpbiB0
aGlzIGNhc2UsIHRoZSByZXN1bHQgY29udGFpbnMgZWl0aGVyIG9uZSBvciB0d28gY29kZSBwb2lu
dHMgKD0xLi40IFVDaGFycykuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBv
ZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxp
emVyMiBpbnN0YW5jZQorICogQHBhcmFtIGMgY29kZSBwb2ludAorICogQHBhcmFtIGRlY29tcG9z
aXRpb24gU3RyaW5nIGJ1ZmZlciB3aGljaCB3aWxsIGJlIHNldCB0byBjJ3MKKyAqICAgICAgICAg
ICAgICAgICAgICAgIHJhdyBkZWNvbXBvc2l0aW9uIG1hcHBpbmcsIGlmIHRoZXJlIGlzIG9uZS4K
KyAqIEBwYXJhbSBjYXBhY2l0eSBudW1iZXIgb2YgVUNoYXJzIHRoYXQgY2FuIGJlIHdyaXR0ZW4g
dG8gZGVjb21wb3NpdGlvbgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9y
IGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgICBwYXNzIHRo
ZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAg
ICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1
dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChT
ZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSBub24tbmVnYXRpdmUg
bGVuZ3RoIG9mIGMncyByYXcgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndp
c2UgYSBuZWdhdGl2ZSB2YWx1ZQorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgaW50
MzJfdCBVX0VYUE9SVDIKK3Vub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uKGNvbnN0IFVOb3JtYWxp
emVyMiAqbm9ybTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcjMyIGMsIFVDaGFy
ICpkZWNvbXBvc2l0aW9uLCBpbnQzMl90IGNhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUGVyZm9ybXMgcGFpcndp
c2UgY29tcG9zaXRpb24gb2YgYSAmIGIgYW5kIHJldHVybnMgdGhlIGNvbXBvc2l0ZSBpZiB0aGVy
ZSBpcyBvbmUuCisgKgorICogUmV0dXJucyBhIGNvbXBvc2l0ZSBjb2RlIHBvaW50IGMgb25seSBp
ZiBjIGhhcyBhIHR3by13YXkgbWFwcGluZyB0byBhK2IuCisgKiBJbiBzdGFuZGFyZCBVbmljb2Rl
IG5vcm1hbGl6YXRpb24sIHRoaXMgbWVhbnMgdGhhdAorICogYyBoYXMgYSBjYW5vbmljYWwgZGVj
b21wb3NpdGlvbiB0byBhK2IKKyAqIGFuZCBjIGRvZXMgbm90IGhhdmUgdGhlIEZ1bGxfQ29tcG9z
aXRpb25fRXhjbHVzaW9uIHByb3BlcnR5LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaW5kZXBl
bmRlbnQgb2YgdGhlIG1vZGUgb2YgdGhlIFVOb3JtYWxpemVyMi4KKyAqIEBwYXJhbSBub3JtMiBV
Tm9ybWFsaXplcjIgaW5zdGFuY2UKKyAqIEBwYXJhbSBhIEEgKG5vcm1hbGl6YXRpb24gc3RhcnRl
cikgY29kZSBwb2ludC4KKyAqIEBwYXJhbSBiIEFub3RoZXIgY29kZSBwb2ludC4KKyAqIEByZXR1
cm4gVGhlIG5vbi1uZWdhdGl2ZSBjb21wb3NpdGUgY29kZSBwb2ludCBpZiB0aGVyZSBpcyBvbmU7
IG90aGVyd2lzZSBhIG5lZ2F0aXZlIHZhbHVlLgorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9T
VEFCTEUgVUNoYXIzMiBVX0VYUE9SVDIKK3Vub3JtMl9jb21wb3NlUGFpcihjb25zdCBVTm9ybWFs
aXplcjIgKm5vcm0yLCBVQ2hhcjMyIGEsIFVDaGFyMzIgYik7CisKKy8qKgorICogR2V0cyB0aGUg
Y29tYmluaW5nIGNsYXNzIG9mIGMuCisgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1
cm5zIDAKKyAqIGJ1dCBhbGwgc3RhbmRhcmQgaW1wbGVtZW50YXRpb25zIHJldHVybiB0aGUgVW5p
Y29kZSBDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzIHZhbHVlLgorICogQHBhcmFtIG5vcm0yIFVO
b3JtYWxpemVyMiBpbnN0YW5jZQorICogQHBhcmFtIGMgY29kZSBwb2ludAorICogQHJldHVybiBj
J3MgY29tYmluaW5nIGNsYXNzCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSB1aW50
OF90IFVfRVhQT1JUMgordW5vcm0yX2dldENvbWJpbmluZ0NsYXNzKGNvbnN0IFVOb3JtYWxpemVy
MiAqbm9ybTIsIFVDaGFyMzIgYyk7CisKKy8qKgogICogVGVzdHMgaWYgdGhlIHN0cmluZyBpcyBu
b3JtYWxpemVkLgogICogSW50ZXJuYWxseSwgaW4gY2FzZXMgd2hlcmUgdGhlIHF1aWNrQ2hlY2so
KSBtZXRob2Qgd291bGQgcmV0dXJuICJtYXliZSIKICAqICh3aGljaCBpcyBvbmx5IHBvc3NpYmxl
IGZvciB0aGUgdHdvIENPTVBPU0UgbW9kZXMpIHRoaXMgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VvYmplY3QuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW9i
amVjdC5oCmluZGV4IDI3ZDRjODRkYTViNjc4ZTJkZjQ4YWU0M2I2ODJhYjU0OTA5MjgzNTAuLjU0
Y2VhY2U2MjZkNzM1Y2JhYzZkODM1YmY2YWJhMzQ4MzNhOWY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdW9iamVjdC5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dW9iamVjdC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksNTAgKzE5LDExIEBACiAKICNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgogCi1VX05BTUVTUEFDRV9CRUdJTgotCiAvKioKICAqIFxm
aWxlCiAgKiBcYnJpZWYgQysrIEFQSTogQ29tbW9uIElDVSBiYXNlIGNsYXNzIFVPYmplY3QuCiAg
Ki8KIAotLyoqICBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIC0gRGVmaW5lIHRoaXMgdG8gb3Zl
cnJpZGUgb3BlcmF0b3IgbmV3IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVsZXRlIGluIFVNZW1vcnkuIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgSUNVLgotICoKLSAqICAg
ICAgICAgRW5hYmxpbmcgZm9yY2VzIGFsbCBhbGxvY2F0aW9uIG9mIElDVSBvYmplY3QgdHlwZXMg
dG8gdXNlIElDVSdzCi0gKiAgICAgICAgIG1lbW9yeSBhbGxvY2F0aW9uLiBPbiBXaW5kb3dzLCB0
aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5Ci0gKiAgICAgICAgIGFwcGxpY2F0
aW9ucyB0aGF0IHN0YXRpY2FsbHkgbGluayB0aGUgQyBSdW50aW1lIGxpYnJhcnksIG1lYW5pbmcg
dGhhdAotICogICAgICAgICB0aGUgYXBwIGFuZCBJQ1Ugd2lsbCBiZSB1c2luZyBkaWZmZXJlbnQg
aGVhcHMuCi0gKgotICogQHN0YWJsZSBJQ1UgMi4yCi0gKi8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmluZSBVX09W
RVJSSURFX0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotCi0vKiogCi0gKiBcZGVmIFVfSEFWRV9Q
TEFDRU1FTlRfTkVXCi0gKiAgRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBwbGFjZW1lbnQgbmV3
IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpbiBVTWVtb3J5IGZvciBT
VEwuCi0gKgotICogQHN0YWJsZSBJQ1UgMi42Ci0gKi8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKLSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZpbmUgVV9IQVZFX1BMQUNF
TUVOVF9ORVcgMQotI2VuZGlmCi0KLQotLyoqIAotICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJ
T05fTkVXIAotICogRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBNRkMgZGVidWcKLSAqIHZlcnNp
b24gb2YgdGhlIG9wZXJhdG9yIG5ldy4KLSAqCi0gKiBAc3RhYmxlIElDVSAzLjQKLSAqLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotI2lmbmRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05f
TkVXCi0jZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAotI2VuZGlmCi0KIC8qKgog
ICogQHsKICAqIFxkZWYgVV9OT19USFJPVwpAQCAtNzUsMTQgKzM2LDYyIEBAIFVfTkFNRVNQQUNF
X0JFR0lOCiAgKiAgICAgICAgIGNvbnN0cnVjdG9yIGlzIHN0aWxsIGNhbGxlZCwgYW5kIGlmIHRo
ZSBjb25zdHJ1Y3RvciByZWZlcmVuY2VzIG1lbWJlciAKICAqICAgICAgICAgZGF0YSwgKHdoaWNo
IGl0IHR5cGljYWxseSBkb2VzKSwgdGhlIHJlc3VsdCBpcyBhIHNlZ21lbnRhdGlvbiB2aW9sYXRp
b24uCiAgKgotICogQGRyYWZ0IElDVSA0LjIKLSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAorICogQHN0YWJsZSBJQ1UgNC4yCisgKi8KICNpZm5kZWYgVV9OT19USFJPVwogI2RlZmlu
ZSBVX05PX1RIUk9XIHRocm93KCkKICNlbmRpZgogCiAvKiogQH0gKi8KIAorLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLworLyogVUNsYXNzSUQtYmFzZWQgUlRUSSAqLworLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLworCisvKioKKyAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xhc3NlcyB3aXRo
b3V0IHVzaW5nIHRoZSBjb21waWxlcidzIFJUVEkuCisgKiBUaGlzIHdhcyB1c2VkIGJlZm9yZSBD
KysgY29tcGlsZXJzIGNvbnNpc3RlbnRseSBzdXBwb3J0ZWQgUlRUSS4KKyAqIElDVSA0LjYgcmVx
dWlyZXMgY29tcGlsZXIgUlRUSSB0byBiZSB0dXJuZWQgb24uCisgKgorICogRWFjaCBjbGFzcyBo
aWVyYXJjaHkgd2hpY2ggbmVlZHMKKyAqIHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgp
IG9yIG9wZXJhdG9yPT0oKSBkZWZpbmVzIHR3byBtZXRob2RzLAorICogZGVzY3JpYmVkIGluIGRl
dGFpbCBiZWxvdy4gIFVDbGFzc0lEIHZhbHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKKyAqIG9w
ZXJhdG9yPT0oKS4gTm90aGluZyBlbHNlIHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KKyAqCisg
KiBccGFyCisgKiBJbiBjbGFzcyBoaWVyYXJjaGllcyB0aGF0IGltcGxlbWVudCAicG9vciBtYW4n
cyBSVFRJIiwKKyAqIGVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBnZXREeW5hbWlj
Q2xhc3NJRCgpIGluIHRoZSBzYW1lIHdheToKKyAqCisgKiBcY29kZQorICogICAgICBjbGFzcyBE
ZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBn
ZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0CisgKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6
OmdldFN0YXRpY0NsYXNzSUQoKTsgfQorICogICAgICB9CisgKiBcZW5kY29kZQorICoKKyAqIEVh
Y2ggY29uY3JldGUgY2xhc3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwg
d2hpY2ggYWxsb3dzCisgKiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KKyAq
CisgKiBcY29kZQorICogICAgICBjbGFzcyBEZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICog
ICAgICAgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7Cisg
KiAgICAgIHByaXZhdGU6CisgKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7CisgKiAg
ICAgIH0KKyAqCisgKiAgICAgIC8vIEluIERlcml2ZWQuY3BwOgorICogICAgICBVQ2xhc3NJRCBE
ZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkKKyAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQp
JkRlcml2ZWQ6OmZnQ2xhc3NJRDsgfQorICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9
IDA7IC8vIFZhbHVlIGlzIGlycmVsZXZhbnQKKyAqIFxlbmRjb2RlCisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLwordHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwog
LyoqCiAgKiBVTWVtb3J5IGlzIHRoZSBjb21tb24gSUNVIGJhc2UgY2xhc3MuCiAgKiBBbGwgb3Ro
ZXIgSUNVIEMrKyBjbGFzc2VzIGFyZSBkZXJpdmVkIGZyb20gVU1lbW9yeSAoc3RhcnRpbmcgd2l0
aCBJQ1UgMi40KS4KQEAgLTE5NiwxMCArMjA1LDcgQEAgcHVibGljOgogICogYW5kIGFsbCBvdGhl
ciBwdWJsaWMgSUNVIEMrKyBjbGFzc2VzCiAgKiBhcmUgZGVyaXZlZCBmcm9tIFVPYmplY3QgKHN0
YXJ0aW5nIHdpdGggSUNVIDIuMikuCiAgKgotICogVU9iamVjdCBjb250YWlucyBjb21tb24gdmly
dHVhbCBmdW5jdGlvbnMgbGlrZSBmb3IgSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBJdCBk
b2VzIG5vdCBjb250YWluIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9k
cwotICogbGlrZSBnZXREeW5hbWljQ2xhc3NJRCB0byBhbGxvdyBkZXJpdmVkIGNsYXNzZXMgc3Vj
aCBhcyBGb3JtYXQKLSAqIHRvIGRlY2xhcmUgdGhlc2UgYXMgcHVyZSB2aXJ0dWFsLgorICogVU9i
amVjdCBjb250YWlucyBjb21tb24gdmlydHVhbCBmdW5jdGlvbnMsIGluIHBhcnRpY3VsYXIgYSB2
aXJ0dWFsIGRlc3RydWN0b3IuCiAgKgogICogVGhlIGNsb25lKCkgZnVuY3Rpb24gaXMgbm90IGF2
YWlsYWJsZSBpbiBVT2JqZWN0IGJlY2F1c2UgaXQgaXMgbm90CiAgKiBpbXBsZW1lbnRlZCBieSBh
bGwgSUNVIGNsYXNzZXMuCkBAIC0yMjMsMjEgKzIyOSwyMyBAQCBwdWJsaWM6CiAKICAgICAvKioK
ICAgICAgKiBJQ1U0QyAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0
aGUgYWN0dWFsIElDVSBjbGFzcy4KKyAgICAgKiBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlv
biByZXR1cm5zIGEgZHVtbXkgdmFsdWUuCisgICAgICoKKyAgICAgKiBVc2UgY29tcGlsZXIgUlRU
SSByYXRoZXIgdGhhbiBJQ1UncyAicG9vciBtYW4ncyBSVFRJIi4KKyAgICAgKiBTaW5jZSBJQ1Ug
NC42LCBuZXcgSUNVIEMrKyBjbGFzcyBoaWVyYXJjaGllcyBkbyBub3QgaW1wbGVtZW50ICJwb29y
IG1hbidzIFJUVEkiLgogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4yCiAgICAgICovCi0g
ICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoK
ICAgICAvLyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcHJvdGVjdGVkIHRvIHByZXZlbnQg
aW5zdGFudGlhdGlvbiBhbmQKICAgICAvLyBkaXJlY3QgdXNlIG9mIFVPYmplY3QgaXRzZWxmCiAK
ICAgICAvLyBkZWZhdWx0IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNl
IFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAgICAvLyBpbmxp
bmUgVU9iamVjdCgpIHt9CiAKICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVu
dGVkIG91dCBiZWNhdXNlIFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJ
RCkKICAgICAvLyBpbmxpbmUgVU9iamVjdChjb25zdCBVT2JqZWN0ICZvdGhlcikge30KIAogI2lm
IDAKQEAgLTI3MiwyMSArMjgwLDkgQEAgcHJvdGVjdGVkOgogICAgICAqIGhlcmUgd291bGQgYmUg
dG8gZGVjbGFyZSBhbmQgZW1wdHktaW1wbGVtZW50IGEgcHJvdGVjdGVkIG9yIHB1YmxpYyBvbmUu
CiAgICAgVU9iamVjdCAmVU9iamVjdDo6b3BlcmF0b3I9KGNvbnN0IFVPYmplY3QgJik7CiAgICAg
ICovCi0KLS8vIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBmb3IgUlRUSSB0aGF0IHN1cHBvcnQgc3Vi
dHlwaW5nLiBbYWxhbl0KLS8vIAotLy8gIHB1YmxpYzoKLS8vICAgICAvKioKLS8vICAgICAgKiBA
aW50ZXJuYWwKLS8vICAgICAgKi8KLS8vICAgICBzdGF0aWMgVUNsYXNzSUQgZ2V0U3RhdGljQ2xh
c3NJRCgpOwotLy8gCi0vLyAgICAgLyoqCi0vLyAgICAgICogQGludGVybmFsCi0vLyAgICAgICov
Ci0vLyAgICAgVUJvb2wgaW5zdGFuY2VPZihVQ2xhc3NJRCB0eXBlKSBjb25zdDsKIH07CiAKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBUaGlzIGlzIGEgc2ltcGxlIG1hY3Jv
IHRvIGFkZCBJQ1UgUlRUSSB0byBhbiBJQ1Ugb2JqZWN0IGltcGxlbWVudGF0aW9uLgogICogVGhp
cyBkb2VzIG5vdCBnbyBpbnRvIHRoZSBoZWFkZXIuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBp
biAqLmNwcCBmaWxlcy4KQEAgLTMxNywzNSArMzEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBy
ZXR1cm4gKFVDbGFzc0lEKSZjbGFzc0lEOyBcCiAgICAgfQogCi0vKioKLSAqIFRoaXMgaXMgYSBz
aW1wbGUgbWFjcm8gdG8gZXhwcmVzcyB0aGF0IGEgY2xhc3MgYW5kIGl0cyBzdWJjbGFzc2VzIGRv
IG5vdCBvZmZlcgotICogSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBCZWdpbm5pbmcgd2l0
aCBJQ1UgNC42LCBJQ1UgcmVxdWlyZXMgQysrIGNvbXBpbGVyIFJUVEkuCi0gKiBUaGlzIGRvZXMg
bm90IGdvIGludG8gdGhlIGhlYWRlci4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGluICouY3Bw
IGZpbGVzLgotICogVXNlIHRoaXMgd2l0aCBhIHByaXZhdGUgZ2V0RHluYW1pY0NsYXNzSUQoKSBp
biBhbiBpbW1lZGlhdGUgc3ViY2xhc3Mgb2YgVU9iamVjdC4KLSAqCi0gKiBAcGFyYW0gbXlDbGFz
cyBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBuZWVkcyBSVFRJIGRlZmluZWQuCi0gKiBAaW50
ZXJuYWwKLSAqLwotI2RlZmluZSBVT0JKRUNUX0RFRklORV9OT19SVFRJX0lNUExFTUVOVEFUSU9O
KG15Q2xhc3MpIFwKLSAgICBVQ2xhc3NJRCBteUNsYXNzOjpnZXREeW5hbWljQ2xhc3NJRCgpIGNv
bnN0IHsgcmV0dXJuIE5VTEw7IH0KLQotLy8gLyoqCi0vLyAgKiBUaGlzIG1hY3JvIGFkZHMgSUNV
IFJUVEkgdG8gYW4gSUNVIGNvbmNyZXRlIGNsYXNzIGltcGxlbWVudGF0aW9uLgotLy8gICogVGhp
cyBtYWNybyBzaG91bGQgYmUgaW52b2tlZCBpbiAqLmNwcCBmaWxlcy4gIFRoZSBjb3JyZXNwb25k
aW5nCi0vLyAgKiBoZWFkZXIgc2hvdWxkIGRlY2xhcmUgZ2V0RHluYW1pY0NsYXNzSUQgYW5kIGdl
dFN0YXRpY0NsYXNzSUQuCi0vLyAgKgotLy8gICogQHBhcmFtIG15Q2xhc3MgVGhlIG5hbWUgb2Yg
dGhlIGNsYXNzIHRoYXQgbmVlZHMgUlRUSSBkZWZpbmVkLgotLy8gICogQHBhcmFtIG15UGFyZW50
IFRoZSBuYW1lIG9mIHRoZSBteUNsYXNzJ3MgcGFyZW50LgotLy8gICogQGludGVybmFsCi0vLyAg
Ki8KLS8qI2RlZmluZSBVT0JKRUNUX0RFRklORV9SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xhc3Ms
IG15UGFyZW50KSBcCi0gICAgVU9CSkVDVF9ERUZJTkVfQUJTVFJBQ1RfUlRUSV9JTVBMRU1FTlRB
VElPTihteUNsYXNzLCBteVBhcmVudCkgXAotICAgIFVDbGFzc0lEIG15Q2xhc3M6OmdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3QgeyBcCi0gICAgICAgIHJldHVybiBteUNsYXNzOjpnZXRTdGF0aWND
bGFzc0lEKCk7IFwKLSAgICB9Ci0qLwotCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkg
Ki8KIAogVV9OQU1FU1BBQ0VfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvdXJlbmFtZS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91cmVuYW1lLmgKaW5kZXggNDY4
YmRiZDBmNDY5MjRkYzJlZTkzMzc0MDhlODY3MmEyZTg2N2E0OS4uNmIxZjQ5MDk4NzUwNjliNGQ5
ZmVlZmRkNzQ4M2Y1YTAzZmM1MDc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91cmVuYW1lLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91cmVuYW1lLmgKQEAgLTEs
NiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykg
MjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0
IChDKSAyMDAyLTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKICoKQEAgLTksNyArOSw3IEBACiAqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQp
CiAqICAgaW5kZW50YXRpb246NAogKgotKiAgIENyZWF0ZWQgYnk6IFBlcmwgc2NyaXB0IHdyaXR0
ZW4gYnkgVmxhZGltaXIgV2VpbnN0ZWluCisqICAgQ3JlYXRlZCBieTogUGVybCBzY3JpcHQgdG9v
bHMvZ2VucmVuLnBsIHdyaXR0ZW4gYnkgVmxhZGltaXIgV2VpbnN0ZWluCiAqCiAqICBDb250YWlu
cyBkYXRhIGZvciByZW5hbWluZyBJQ1UgZXhwb3J0cy4KICogIEdldHMgaW5jbHVkZWQgYnkgdW1h
Y2hpbmUuaApAQCAtMjEsOSArMjEsMTMgQEAKICNpZm5kZWYgVVJFTkFNRV9ICiAjZGVmaW5lIFVS
RU5BTUVfSAogCi0vKiBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIGRpc2FibGUgcmVu
YW1pbmcgb24gcGxhdGZvcm1zCi0gICB0aGF0IGRvIG5vdCB1c2UgQXV0b2NvbmYuICovCi0vKiAj
ZGVmaW5lIFVfRElTQUJMRV9SRU5BTUlORyAxICovCisvKiBVX0RJU0FCTEVfUkVOQU1JTkcgY2Fu
IGJlIGRlZmluZWQgaW4gdGhlIGZvbGxvd2luZyB3YXlzOgorICogICAtIHdoZW4gcnVubmluZyBj
b25maWd1cmUsIGUuZy4KKyAqICAgICAgICBydW5Db25maWd1cmVJQ1UgTGludXggLS1kaXNhYmxl
LXJlbmFtaW5nCisgKiAgIC0gYnkgY2hhbmdpbmcgdGhlIGRlZmF1bHQgc2V0dGluZyBvZiBVX0RJ
U0FCTEVfUkVOQU1JTkcgaW4gdWNvbmZpZy5oCisgKi8KKworI2luY2x1ZGUgInVuaWNvZGUvdWNv
bmZpZy5oIgogCiAjaWYgIVVfRElTQUJMRV9SRU5BTUlORwogCkBAIC0zMSw2ICszNSw3IEBACiAg
ICB0aGUgcGxhdGZvcm0gYSBjaGFuY2UgdG8gZGVmaW5lIGl0IGZpcnN0LgogICAgTm9ybWFsbHkg
KGlmIHV0eXBlcy5oIG9yIHVtYWNoaW5lLmggd2FzIGluY2x1ZGVkIGZpcnN0KSB0aGlzIHdpbGwg
bm90IGJlIG5lY2Vzc2FyeSBhcyBpdCB3aWxsIGFscmVhZHkgYmUgZGVmaW5lZC4KICAqLworCiAj
aWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQogI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hp
bmUuaCIKICNlbmRpZgpAQCAtNDgsMTQgKzUzLDkgQEAKIAogLyogQyBleHBvcnRzIHJlbmFtaW5n
IGRhdGEgKi8KIAotI2RlZmluZSBERUNQT1dFUlMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERF
Q1BPV0VSUykKLSNkZWZpbmUgREVDU1RJQ0tZVEFCIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShE
RUNTVElDS1lUQUIpCi0jZGVmaW5lIExObm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExObm4p
CiAjZGVmaW5lIFRfQ1N0cmluZ19pbnQ2NFRvU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUX0NTdHJpbmdfaW50NjRUb1N0cmluZykKICNkZWZpbmUgVF9DU3RyaW5nX2ludGVnZXJUb1N0
cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX2ludGVnZXJUb1N0cmluZykK
LSNkZWZpbmUgVF9DU3RyaW5nX3N0cmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0
cmluZ19zdHJpY21wKQogI2RlZmluZSBUX0NTdHJpbmdfc3RyaW5nVG9JbnRlZ2VyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUX0NTdHJpbmdfc3RyaW5nVG9JbnRlZ2VyKQotI2RlZmluZSBUX0NT
dHJpbmdfc3RybmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19zdHJuaWNt
cCkKICNkZWZpbmUgVF9DU3RyaW5nX3RvTG93ZXJDYXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShUX0NTdHJpbmdfdG9Mb3dlckNhc2UpCiAjZGVmaW5lIFRfQ1N0cmluZ190b1VwcGVyQ2FzZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3RvVXBwZXJDYXNlKQogI2RlZmluZSBV
Q05WX0ZST01fVV9DQUxMQkFDS19FU0NBUEUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDTlZf
RlJPTV9VX0NBTExCQUNLX0VTQ0FQRSkKQEAgLTc1LDYgKzc1LDcgQEAKICNkZWZpbmUgX0FTQ0lJ
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0FTQ0lJRGF0YSkKICNkZWZpbmUgX0JvY3Ux
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0JvY3UxRGF0YSkKICNkZWZpbmUgX0NFU1U4
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0NFU1U4RGF0YSkKKyNkZWZpbmUgX0NvbXBv
dW5kVGV4dERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9Db21wb3VuZFRleHREYXRhKQog
I2RlZmluZSBfSFpEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfSFpEYXRhKQogI2RlZmlu
ZSBfSU1BUERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9JTUFQRGF0YSkKICNkZWZpbmUg
X0lTQ0lJRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0lTQ0lJRGF0YSkKQEAgLTEwMiwy
MSArMTAzLDggQEAKICNkZWZpbmUgX1VURjMyTEVEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShfVVRGMzJMRURhdGEpCiAjZGVmaW5lIF9VVEY3RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoX1VURjdEYXRhKQogI2RlZmluZSBfVVRGOERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KF9VVEY4RGF0YSkKLSNkZWZpbmUgYm1zX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShi
bXNfY2xvc2UpCi0jZGVmaW5lIGJtc19lbXB0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1z
X2VtcHR5KQotI2RlZmluZSBibXNfZ2V0RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1z
X2dldERhdGEpCi0jZGVmaW5lIGJtc19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShibXNf
b3BlbikKLSNkZWZpbmUgYm1zX3NlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX3Nl
YXJjaCkKLSNkZWZpbmUgYm1zX3NldFRhcmdldFN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoYm1zX3NldFRhcmdldFN0cmluZykKLSNkZWZpbmUgYnVpbGRXU0NvbmZ1c2FibGVEYXRhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShidWlsZFdTQ29uZnVzYWJsZURhdGEpCiAjZGVmaW5lIGNt
ZW1vcnlfY2xlYW51cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY21lbW9yeV9jbGVhbnVwKQog
I2RlZmluZSBjbWVtb3J5X2luVXNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShjbWVtb3J5X2lu
VXNlKQotI2RlZmluZSBkMnV0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZDJ1dGFibGUp
Ci0jZGVmaW5lIGRlbGV0ZUNFTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlQ0VM
aXN0KQotI2RlZmluZSBkZWxldGVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRl
Q2hhcnMpCi0jZGVmaW5lIGRlbGV0ZUNvbGxEYXRhQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoZGVsZXRlQ29sbERhdGFDYWNoZUVudHJ5KQotI2RlZmluZSBkZWxldGVTdHJpbmdM
aXN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVTdHJpbmdMaXN0KQotI2RlZmluZSBk
ZWxldGVVbmljb2RlU3RyaW5nS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShkZWxldGVVbmlj
b2RlU3RyaW5nS2V5KQogI2RlZmluZSBpenJ1bGVfY2xvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKGl6cnVsZV9jbG9uZSkKICNkZWZpbmUgaXpydWxlX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShpenJ1bGVfY2xvc2UpCiAjZGVmaW5lIGl6cnVsZV9lcXVhbHMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKGl6cnVsZV9lcXVhbHMpCkBAIC0yMTIsOCArMjAwLDYgQEAKICNkZWZpbmUg
cmVzX2xvYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc19sb2FkKQogI2RlZmluZSByZXNf
cmVhZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUocmVzX3JlYWQpCiAjZGVmaW5lIHJlc191bmxv
YWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc191bmxvYWQpCi0jZGVmaW5lIHRtdXRmbXRI
YXNoVGFibGVWYWx1ZUNvbXBhcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHRtdXRmbXRI
YXNoVGFibGVWYWx1ZUNvbXBhcmF0b3IpCi0jZGVmaW5lIHRyaWVkaWN0X3N3YXAgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHRyaWVkaWN0X3N3YXApCiAjZGVmaW5lIHVfVUNoYXJzVG9DaGFycyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9VQ2hhcnNUb0NoYXJzKQogI2RlZmluZSB1X2F1c3Ry
Y3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2F1c3RyY3B5KQogI2RlZmluZSB1X2F1c3Ry
bmNweSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9hdXN0cm5jcHkpCkBAIC0yMzksNiArMjI1
LDcgQEAKICNkZWZpbmUgdV9mZW9mIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2Zlb2YpCiAj
ZGVmaW5lIHVfZmZsdXNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZmbHVzaCkKICNkZWZp
bmUgdV9mZ2V0Q29udmVydGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZnZXRDb252ZXJ0
ZXIpCisjZGVmaW5lIHVfZmdldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9mZ2V0TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1X2ZnZXRjIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2ZnZXRjKQogI2RlZmluZSB1X2ZnZXRjb2RlcGFnZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9mZ2V0Y29kZXBhZ2UpCiAjZGVmaW5lIHVfZmdldGN4IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2ZnZXRjeCkKQEAgLTI2Nyw2ICsyNTQsNyBAQAogI2RlZmluZSB1X2ZzZXR0cmFu
c2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mc2V0dHJhbnNsaXRlcmF0b3Ip
CiAjZGVmaW5lIHVfZnN0cm9wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnN0cm9wZW4p
CiAjZGVmaW5lIHVfZnVuZ2V0YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mdW5nZXRjKQor
I2RlZmluZSB1X2dldEJpZGlQYWlyZWRCcmFja2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2dldEJpZGlQYWlyZWRCcmFja2V0KQogI2RlZmluZSB1X2dldENvbWJpbmluZ0NsYXNzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldENvbWJpbmluZ0NsYXNzKQogI2RlZmluZSB1X2dldERh
dGFEaXJlY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0RGF0YURpcmVjdG9yeSkK
ICNkZWZpbmUgdV9nZXREYXRhVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRE
YXRhVmVyc2lvbikKQEAgLTI3Niw2ICsyNjQsNyBAQAogI2RlZmluZSB1X2dldEludFByb3BlcnR5
TWF4VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1
ZSkKICNkZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eU1pblZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2dldEludFByb3BlcnR5TWluVmFsdWUpCiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlW
YWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0eVZhbHVlKQorI2Rl
ZmluZSB1X2dldE1haW5Qcm9wZXJ0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldE1h
aW5Qcm9wZXJ0aWVzKQogI2RlZmluZSB1X2dldE51bWVyaWNWYWx1ZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXROdW1lcmljVmFsdWUpCiAjZGVmaW5lIHVfZ2V0UHJvcGVydHlFbnVtIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFByb3BlcnR5RW51bSkKICNkZWZpbmUgdV9nZXRQ
cm9wZXJ0eU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0UHJvcGVydHlOYW1lKQpA
QCAtMjg0LDkgKzI3Myw5IEBACiAjZGVmaW5lIHVfZ2V0VW5pY29kZVByb3BlcnRpZXMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0VW5pY29kZVByb3BlcnRpZXMpCiAjZGVmaW5lIHVfZ2V0
VW5pY29kZVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0VW5pY29kZVZlcnNp
b24pCiAjZGVmaW5lIHVfZ2V0VmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRW
ZXJzaW9uKQorI2RlZmluZSB1X2dldF9zdGRvdXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVf
Z2V0X3N0ZG91dCkKICNkZWZpbmUgdV9oYXNCaW5hcnlQcm9wZXJ0eSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9oYXNCaW5hcnlQcm9wZXJ0eSkKICNkZWZpbmUgdV9pbml0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2luaXQpCi0jZGVmaW5lIHVfaXNEYXRhT2xkZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVfaXNEYXRhT2xkZXIpCiAjZGVmaW5lIHVfaXNJRElnbm9yYWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0lESWdub3JhYmxlKQogI2RlZmluZSB1X2lzSURQYXJ0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzSURQYXJ0KQogI2RlZmluZSB1X2lzSURTdGFy
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0lEU3RhcnQpCkBAIC0zMTgsNyArMzA3LDYg
QEAKICNkZWZpbmUgdV9pc3RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzdGl0bGUp
CiAjZGVmaW5lIHVfaXN1cHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3VwcGVyKQog
I2RlZmluZSB1X2lzeGRpZ2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzeGRpZ2l0KQot
I2RlZmluZSB1X2xlbmd0aE9mSWRlbnRpY2FsTGV2ZWxSdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfbGVuZ3RoT2ZJZGVudGljYWxMZXZlbFJ1bikKICNkZWZpbmUgdV9sb2NidW5kX2Nsb3Nl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xvY2J1bmRfY2xvc2UpCiAjZGVmaW5lIHVfbG9j
YnVuZF9nZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbG9jYnVuZF9n
ZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVfbG9jYnVuZF9pbml0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X2xvY2J1bmRfaW5pdCkKQEAgLTMzNCw3ICszMjIsOSBAQAogI2RlZmluZSB1X21l
bXNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9tZW1zZXQpCiAjZGVmaW5lIHVfcGFyc2VN
ZXNzYWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3BhcnNlTWVzc2FnZSkKICNkZWZpbmUg
dV9wYXJzZU1lc3NhZ2VXaXRoRXJyb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcGFyc2VN
ZXNzYWdlV2l0aEVycm9yKQorI2RlZmluZSB1X3ByaW50ZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9wcmludGYpCiAjZGVmaW5lIHVfcHJpbnRmX3BhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X3ByaW50Zl9wYXJzZSkKKyNkZWZpbmUgdV9wcmludGZfdSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9wcmludGZfdSkKICNkZWZpbmUgdV9yZWxlYXNlRGVmYXVsdENvbnZlcnRlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9yZWxlYXNlRGVmYXVsdENvbnZlcnRlcikKICNkZWZp
bmUgdV9zY2FuZl9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9zY2FuZl9wYXJzZSkK
ICNkZWZpbmUgdV9zZXRBdG9taWNJbmNEZWNGdW5jdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zKQpAQCAtNDQ2LDcgKzQzNiwxMCBAQAogI2Rl
ZmluZSB1YmlkaV9nZXRNYXhWYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0
TWF4VmFsdWUpCiAjZGVmaW5lIHViaWRpX2dldE1lbW9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWJpZGlfZ2V0TWVtb3J5KQogI2RlZmluZSB1YmlkaV9nZXRNaXJyb3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHViaWRpX2dldE1pcnJvcikKKyNkZWZpbmUgdWJpZGlfZ2V0UGFpcmVkQnJh
Y2tldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFpcmVkQnJhY2tldCkKKyNk
ZWZpbmUgdWJpZGlfZ2V0UGFpcmVkQnJhY2tldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHViaWRpX2dldFBhaXJlZEJyYWNrZXRUeXBlKQogI2RlZmluZSB1YmlkaV9nZXRQYXJhTGV2ZWwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFMZXZlbCkKKyNkZWZpbmUgdWJp
ZGlfZ2V0UGFyYUxldmVsQXRJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0
UGFyYUxldmVsQXRJbmRleCkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYWdyYXBoIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhZ3JhcGgpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFn
cmFwaEJ5SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFncmFwaEJ5
SW5kZXgpCiAjZGVmaW5lIHViaWRpX2dldFByb2Nlc3NlZExlbmd0aCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWJpZGlfZ2V0UHJvY2Vzc2VkTGVuZ3RoKQpAQCAtNDcxLDYgKzQ2NCw3IEBACiAj
ZGVmaW5lIHViaWRpX3Jlb3JkZXJMb2dpY2FsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Ymlk
aV9yZW9yZGVyTG9naWNhbCkKICNkZWZpbmUgdWJpZGlfcmVvcmRlclZpc3VhbCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWJpZGlfcmVvcmRlclZpc3VhbCkKICNkZWZpbmUgdWJpZGlfc2V0Q2xh
c3NDYWxsYmFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0Q2xhc3NDYWxsYmFj
aykKKyNkZWZpbmUgdWJpZGlfc2V0Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJp
ZGlfc2V0Q29udGV4dCkKICNkZWZpbmUgdWJpZGlfc2V0SW52ZXJzZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWJpZGlfc2V0SW52ZXJzZSkKICNkZWZpbmUgdWJpZGlfc2V0TGluZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0TGluZSkKICNkZWZpbmUgdWJpZGlfc2V0UGFyYSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfc2V0UGFyYSkKQEAgLTQ5NSw2ICs0ODksNyBA
QAogI2RlZmluZSB1YnJrX29wZW5SdWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19v
cGVuUnVsZXMpCiAjZGVmaW5lIHVicmtfcHJlY2VkaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1YnJrX3ByZWNlZGluZykKICNkZWZpbmUgdWJya19wcmV2aW91cyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWJya19wcmV2aW91cykKKyNkZWZpbmUgdWJya19yZWZyZXNoVVRleHQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcmVmcmVzaFVUZXh0KQogI2RlZmluZSB1YnJrX3NhZmVD
bG9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zYWZlQ2xvbmUpCiAjZGVmaW5lIHVi
cmtfc2V0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zZXRUZXh0KQogI2RlZmlu
ZSB1YnJrX3NldFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3NldFVUZXh0KQpA
QCAtNTEzLDYgKzUwOCw3IEBACiAjZGVmaW5lIHVjYWxfZ2V0RFNUU2F2aW5ncyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9nZXREU1RTYXZpbmdzKQogI2RlZmluZSB1Y2FsX2dldERheU9m
V2Vla1R5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RGF5T2ZXZWVrVHlwZSkK
ICNkZWZpbmUgdWNhbF9nZXREZWZhdWx0VGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYWxfZ2V0RGVmYXVsdFRpbWVab25lKQorI2RlZmluZSB1Y2FsX2dldEZpZWxkRGlmZmVyZW5j
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRGaWVsZERpZmZlcmVuY2UpCiAjZGVm
aW5lIHVjYWxfZ2V0R3JlZ29yaWFuQ2hhbmdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2Fs
X2dldEdyZWdvcmlhbkNoYW5nZSkKICNkZWZpbmUgdWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9j
YWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldEtleXdvcmRWYWx1ZXNGb3JMb2Nh
bGUpCiAjZGVmaW5lIHVjYWxfZ2V0TGltaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxf
Z2V0TGltaXQpCkBAIC01MjEsMTMgKzUxNywxOCBAQAogI2RlZmluZSB1Y2FsX2dldE5vdyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXROb3cpCiAjZGVmaW5lIHVjYWxfZ2V0VFpEYXRh
VmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUWkRhdGFWZXJzaW9uKQog
I2RlZmluZSB1Y2FsX2dldFRpbWVab25lRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjYWxfZ2V0VGltZVpvbmVEaXNwbGF5TmFtZSkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9u
ZUlEIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lSUQpCisjZGVmaW5l
IHVjYWxfZ2V0VGltZVpvbmVJREZvcldpbmRvd3NJRCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNhbF9nZXRUaW1lWm9uZUlERm9yV2luZG93c0lEKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25l
VHJhbnNpdGlvbkRhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVU
cmFuc2l0aW9uRGF0ZSkKICNkZWZpbmUgdWNhbF9nZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2dldFR5cGUpCiAjZGVmaW5lIHVjYWxfZ2V0V2Vla2VuZFRyYW5zaXRpb24gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0V2Vla2VuZFRyYW5zaXRpb24pCisjZGVmaW5l
IHVjYWxfZ2V0V2luZG93c1RpbWVab25lSUQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxf
Z2V0V2luZG93c1RpbWVab25lSUQpCiAjZGVmaW5lIHVjYWxfaW5EYXlsaWdodFRpbWUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfaW5EYXlsaWdodFRpbWUpCiAjZGVmaW5lIHVjYWxfaXNT
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfaXNTZXQpCiAjZGVmaW5lIHVjYWxfaXNX
ZWVrZW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2lzV2Vla2VuZCkKICNkZWZpbmUg
dWNhbF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW4pCiAjZGVmaW5lIHVj
YWxfb3BlbkNvdW50cnlUaW1lWm9uZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfb3Bl
bkNvdW50cnlUaW1lWm9uZXMpCisjZGVmaW5lIHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuVGltZVpvbmVJREVudW1lcmF0aW9u
KQogI2RlZmluZSB1Y2FsX29wZW5UaW1lWm9uZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YWxfb3BlblRpbWVab25lcykKICNkZWZpbmUgdWNhbF9yb2xsIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX3JvbGwpCiAjZGVmaW5lIHVjYWxfc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y2FsX3NldCkKQEAgLTU2MCw2ICs1NjEsOCBAQAogI2RlZmluZSB1Y2FzZW1hcF9nZXRCcmVh
a0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRCcmVha0l0ZXJh
dG9yKQogI2RlZmluZSB1Y2FzZW1hcF9nZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYXNlbWFwX2dldExvY2FsZSkKICNkZWZpbmUgdWNhc2VtYXBfZ2V0T3B0aW9ucyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0T3B0aW9ucykKKyNkZWZpbmUgdWNhc2VtYXBf
aW50ZXJuYWxVVEY4VG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfaW50
ZXJuYWxVVEY4VG9UaXRsZSkKKyNkZWZpbmUgdWNhc2VtYXBfbWFwVVRGOCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhc2VtYXBfbWFwVVRGOCkKICNkZWZpbmUgdWNhc2VtYXBfb3BlbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfb3BlbikKICNkZWZpbmUgdWNhc2VtYXBfc2V0
QnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfc2V0QnJlYWtJ
dGVyYXRvcikKICNkZWZpbmUgdWNhc2VtYXBfc2V0TG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FzZW1hcF9zZXRMb2NhbGUpCkBAIC01NjksMTEgKzU3Miw2IEBACiAjZGVmaW5lIHVj
YXNlbWFwX3V0ZjhUb0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF91dGY4
VG9Mb3dlcikKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYXNlbWFwX3V0ZjhUb1RpdGxlKQogI2RlZmluZSB1Y2FzZW1hcF91dGY4VG9VcHBl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRvVXBwZXIpCi0jZGVmaW5l
IHVjZF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2Nsb3NlKQotI2RlZmluZSB1
Y2RfZmx1c2hDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNkX2ZsdXNoQ2FjaGUpCi0j
ZGVmaW5lIHVjZF9mcmVlQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9mcmVlQ2Fj
aGUpCi0jZGVmaW5lIHVjZF9nZXRDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNk
X2dldENvbGxhdG9yKQotI2RlZmluZSB1Y2Rfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNkX29wZW4pCiAjZGVmaW5lIHVjaGFyX2FkZFByb3BlcnR5U3RhcnRzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0cykKICNkZWZpbmUgdWNoYXJfc3dhcE5h
bWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2hhcl9zd2FwTmFtZXMpCiAjZGVmaW5lIHVj
bG5fY2xlYW51cE9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNsbl9jbGVhbnVwT25lKQpA
QCAtNjU2LDYgKzY1NCw3IEBACiAjZGVmaW5lIHVjbnZfaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaW9fc3RyaXBBU0NJSUZvckNvbXBhcmUpCiAj
ZGVmaW5lIHVjbnZfaW9fc3RyaXBFQkNESUNGb3JDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y252X2lvX3N0cmlwRUJDRElDRm9yQ29tcGFyZSkKICNkZWZpbmUgdWNudl9pc0FtYmln
dW91cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pc0FtYmlndW91cykKKyNkZWZpbmUg
dWNudl9pc0ZpeGVkV2lkdGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaXNGaXhlZFdp
ZHRoKQogI2RlZmluZSB1Y252X2xvYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfbG9h
ZCkKICNkZWZpbmUgdWNudl9sb2FkU2hhcmVkRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNudl9sb2FkU2hhcmVkRGF0YSkKICNkZWZpbmUgdWNudl9vcGVuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y252X29wZW4pCkBAIC02OTcsNyArNjk2LDYgQEAKICNkZWZpbmUgdWNvbF9jYWxj
U29ydEtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jYWxjU29ydEtleSkKICNkZWZp
bmUgdWNvbF9jYWxjU29ydEtleVNpbXBsZVRlcnRpYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y29sX2NhbGNTb3J0S2V5U2ltcGxlVGVydGlhcnkpCiAjZGVmaW5lIHVjb2xfY2xvbmVCaW5h
cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvbmVCaW5hcnkpCi0jZGVmaW5lIHVj
b2xfY2xvbmVSdWxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9uZVJ1bGVE
YXRhKQogI2RlZmluZSB1Y29sX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Ns
b3NlKQogI2RlZmluZSB1Y29sX2Nsb3NlRWxlbWVudHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfY2xvc2VFbGVtZW50cykKICNkZWZpbmUgdWNvbF9jb3VudEF2YWlsYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jb3VudEF2YWlsYWJsZSkKQEAgLTcxNCw5ICs3MTIsMTEg
QEAKICNkZWZpbmUgdWNvbF9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1Y29sX2dldEJvdW5kIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y29sX2dldEJvdW5kKQogI2RlZmluZSB1Y29sX2dldENFU3RyZW5ndGhEaWZmZXJl
bmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENFU3RyZW5ndGhEaWZmZXJlbmNl
KQorI2RlZmluZSB1Y29sX2dldENvbGxhdGlvbktleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRDb2xsYXRpb25LZXkpCiAjZGVmaW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25zIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldENvbnRyYWN0aW9ucykKICNkZWZpbmUgdWNvbF9n
ZXRDb250cmFjdGlvbnNBbmRFeHBhbnNpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29s
X2dldENvbnRyYWN0aW9uc0FuZEV4cGFuc2lvbnMpCiAjZGVmaW5lIHVjb2xfZ2V0RGlzcGxheU5h
bWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RGlzcGxheU5hbWUpCisjZGVmaW5l
IHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzKQogI2RlZmluZSB1Y29sX2dldEZpcnN0Q0Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Rmlyc3RDRSkKICNkZWZpbmUgdWNvbF9n
ZXRGdW5jdGlvbmFsRXF1aXZhbGVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRG
dW5jdGlvbmFsRXF1aXZhbGVudCkKICNkZWZpbmUgdWNvbF9nZXRLZXl3b3JkVmFsdWVzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEtleXdvcmRWYWx1ZXMpCkBAIC03MzUsOCArNzM1
LDYgQEAKICNkZWZpbmUgdWNvbF9nZXRSdWxlc0V4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y29sX2dldFJ1bGVzRXgpCiAjZGVmaW5lIHVjb2xfZ2V0U2hvcnREZWZpbml0aW9uU3RyaW5nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNob3J0RGVmaW5pdGlvblN0cmluZykKICNk
ZWZpbmUgdWNvbF9nZXRTb3J0S2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNv
cnRLZXkpCi0jZGVmaW5lIHVjb2xfZ2V0U29ydEtleVNpemUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjb2xfZ2V0U29ydEtleVNpemUpCi0jZGVmaW5lIHVjb2xfZ2V0U29ydEtleVdpdGhBbGxv
Y2F0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXlXaXRoQWxsb2Nh
dGlvbikKICNkZWZpbmUgdWNvbF9nZXRTdHJlbmd0aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWNvbF9nZXRTdHJlbmd0aCkKICNkZWZpbmUgdWNvbF9nZXRUYWlsb3JlZFNldCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNvbF9nZXRUYWlsb3JlZFNldCkKICNkZWZpbmUgdWNvbF9nZXRVQ0FW
ZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFVDQVZlcnNpb24pCkBAIC03
ODgsNiArNzg2LDcgQEAKICNkZWZpbmUgdWNvbF9zZXRWYXJpYWJsZVRvcCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9zZXRWYXJpYWJsZVRvcCkKICNkZWZpbmUgdWNvbF9zdHJjb2xsIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGwpCiAjZGVmaW5lIHVjb2xfc3RyY29s
bEl0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3RyY29sbEl0ZXIpCisjZGVmaW5l
IHVjb2xfc3RyY29sbFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3RyY29sbFVU
RjgpCiAjZGVmaW5lIHVjb2xfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zd2Fw
KQogI2RlZmluZSB1Y29sX3N3YXBCaW5hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
c3dhcEJpbmFyeSkKICNkZWZpbmUgdWNvbF9zd2FwSW52ZXJzZVVDQSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9zd2FwSW52ZXJzZVVDQSkKQEAgLTgwNSwxMiArODA0LDE0IEBACiAjZGVm
aW5lIHVjc2RldF9lbmFibGVJbnB1dEZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNz
ZGV0X2VuYWJsZUlucHV0RmlsdGVyKQogI2RlZmluZSB1Y3NkZXRfZ2V0QWxsRGV0ZWN0YWJsZUNo
YXJzZXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0QWxsRGV0ZWN0YWJsZUNo
YXJzZXRzKQogI2RlZmluZSB1Y3NkZXRfZ2V0Q29uZmlkZW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNzZGV0X2dldENvbmZpZGVuY2UpCisjZGVmaW5lIHVjc2RldF9nZXREZXRlY3RhYmxl
Q2hhcnNldHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXREZXRlY3RhYmxlQ2hh
cnNldHMpCiAjZGVmaW5lIHVjc2RldF9nZXRMYW5ndWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNzZGV0X2dldExhbmd1YWdlKQogI2RlZmluZSB1Y3NkZXRfZ2V0TmFtZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNzZGV0X2dldE5hbWUpCiAjZGVmaW5lIHVjc2RldF9nZXRVQ2hhcnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRVQ2hhcnMpCiAjZGVmaW5lIHVjc2Rl
dF9pc0lucHV0RmlsdGVyRW5hYmxlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2lz
SW5wdXRGaWx0ZXJFbmFibGVkKQogI2RlZmluZSB1Y3NkZXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNzZGV0X29wZW4pCiAjZGVmaW5lIHVjc2RldF9zZXREZWNsYXJlZEVuY29kaW5n
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfc2V0RGVjbGFyZWRFbmNvZGluZykKKyNk
ZWZpbmUgdWNzZGV0X3NldERldGVjdGFibGVDaGFyc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y3NkZXRfc2V0RGV0ZWN0YWJsZUNoYXJzZXQpCiAjZGVmaW5lIHVjc2RldF9zZXRUZXh0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfc2V0VGV4dCkKICNkZWZpbmUgdWN1cnJfY291
bnRDdXJyZW5jaWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9jb3VudEN1cnJlbmNp
ZXMpCiAjZGVmaW5lIHVjdXJyX2ZvckxvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1
cnJfZm9yTG9jYWxlKQpAQCAtODE4LDggKzgxOSwxMCBAQAogI2RlZmluZSB1Y3Vycl9nZXREZWZh
dWx0RnJhY3Rpb25EaWdpdHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldERlZmF1
bHRGcmFjdGlvbkRpZ2l0cykKICNkZWZpbmUgdWN1cnJfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2Fs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2Fs
ZSkKICNkZWZpbmUgdWN1cnJfZ2V0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJf
Z2V0TmFtZSkKKyNkZWZpbmUgdWN1cnJfZ2V0TnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjdXJyX2dldE51bWVyaWNDb2RlKQogI2RlZmluZSB1Y3Vycl9nZXRQbHVyYWxOYW1l
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXRQbHVyYWxOYW1lKQogI2RlZmluZSB1
Y3Vycl9nZXRSb3VuZGluZ0luY3JlbWVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJf
Z2V0Um91bmRpbmdJbmNyZW1lbnQpCisjZGVmaW5lIHVjdXJyX2lzQXZhaWxhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9pc0F2YWlsYWJsZSkKICNkZWZpbmUgdWN1cnJfb3BlbklT
T0N1cnJlbmNpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX29wZW5JU09DdXJyZW5j
aWVzKQogI2RlZmluZSB1Y3Vycl9yZWdpc3RlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1
cnJfcmVnaXN0ZXIpCiAjZGVmaW5lIHVjdXJyX3VucmVnaXN0ZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjdXJyX3VucmVnaXN0ZXIpCkBAIC04MzMsNiArODM2LDcgQEAKICNkZWZpbmUgdWRh
dF9nZXQyRGlnaXRZZWFyU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0MkRp
Z2l0WWVhclN0YXJ0KQogI2RlZmluZSB1ZGF0X2dldEF2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWRhdF9nZXRBdmFpbGFibGUpCiAjZGVmaW5lIHVkYXRfZ2V0Q2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0Q2FsZW5kYXIpCisjZGVmaW5lIHVkYXRfZ2V0
Q29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRDb250ZXh0KQogI2RlZmlu
ZSB1ZGF0X2dldExvY2FsZUJ5VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRM
b2NhbGVCeVR5cGUpCiAjZGVmaW5lIHVkYXRfZ2V0TnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZGF0X2dldE51bWJlckZvcm1hdCkKICNkZWZpbmUgdWRhdF9nZXRTeW1ib2xz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldFN5bWJvbHMpCkBAIC04NDAsOCArODQ0
LDEwIEBACiAjZGVmaW5lIHVkYXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9v
cGVuKQogI2RlZmluZSB1ZGF0X3BhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3Bh
cnNlKQogI2RlZmluZSB1ZGF0X3BhcnNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVkYXRfcGFyc2VDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9yZWdpc3Rlck9wZW5lciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdF9yZWdpc3Rlck9wZW5lcikKICNkZWZpbmUgdWRhdF9zZXQy
RGlnaXRZZWFyU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfc2V0MkRpZ2l0WWVh
clN0YXJ0KQogI2RlZmluZSB1ZGF0X3NldENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1ZGF0X3NldENhbGVuZGFyKQorI2RlZmluZSB1ZGF0X3NldENvbnRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVkYXRfc2V0Q29udGV4dCkKICNkZWZpbmUgdWRhdF9zZXRMZW5pZW50IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldExlbmllbnQpCiAjZGVmaW5lIHVkYXRfc2V0
TnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldE51bWJlckZvcm1h
dCkKICNkZWZpbmUgdWRhdF9zZXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0
X3NldFN5bWJvbHMpCkBAIC04NDksNiArODU1LDcgQEAKICNkZWZpbmUgdWRhdF90b1BhdHRlcm4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdG9QYXR0ZXJuKQogI2RlZmluZSB1ZGF0X3Rv
UGF0dGVyblJlbGF0aXZlRGF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF90b1BhdHRl
cm5SZWxhdGl2ZURhdGUpCiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVUaW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVyblJlbGF0aXZlVGltZSkKKyNkZWZpbmUg
dWRhdF91bnJlZ2lzdGVyT3BlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3VucmVn
aXN0ZXJPcGVuZXIpCiAjZGVmaW5lIHVkYXRhX2NoZWNrQ29tbW9uRGF0YSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdGFfY2hlY2tDb21tb25EYXRhKQogI2RlZmluZSB1ZGF0YV9jbG9zZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdGFfY2xvc2UpCiAjZGVmaW5lIHVkYXRhX2Nsb3Nl
U3dhcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdGFfY2xvc2VTd2FwcGVyKQpAQCAt
ODkyLDEyICs4OTksMTcgQEAKICNkZWZpbmUgdWRhdHBnX3NldEFwcGVuZEl0ZW1OYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0cGdfc2V0QXBwZW5kSXRlbU5hbWUpCiAjZGVmaW5lIHVk
YXRwZ19zZXREYXRlVGltZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdHBnX3Nl
dERhdGVUaW1lRm9ybWF0KQogI2RlZmluZSB1ZGF0cGdfc2V0RGVjaW1hbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdHBnX3NldERlY2ltYWwpCisjZGVmaW5lIHVkaWN0X3N3YXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkaWN0X3N3YXApCisjZGVmaW5lIHVkdGl0dmZtdF9jbG9zZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X2Nsb3NlKQorI2RlZmluZSB1ZHRpdHZm
bXRfZm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZHRpdHZmbXRfZm9ybWF0KQorI2Rl
ZmluZSB1ZHRpdHZmbXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X29w
ZW4pCiAjZGVmaW5lIHVlbnVtX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9j
bG9zZSkKICNkZWZpbmUgdWVudW1fY291bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVt
X2NvdW50KQogI2RlZmluZSB1ZW51bV9uZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51
bV9uZXh0KQogI2RlZmluZSB1ZW51bV9uZXh0RGVmYXVsdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWVudW1fbmV4dERlZmF1bHQpCiAjZGVmaW5lIHVlbnVtX29wZW5DaGFyU3RyaW5nc0VudW1l
cmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVt
ZXJhdGlvbikKICNkZWZpbmUgdWVudW1fb3BlbkZyb21TdHJpbmdFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3BlbkZyb21TdHJpbmdFbnVtZXJhdGlvbikKKyNkZWZp
bmUgdWVudW1fb3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZW51bV9vcGVuVUNoYXJTdHJpbmdzRW51bWVyYXRpb24pCiAjZGVmaW5lIHVlbnVtX3Jl
c2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9yZXNldCkKICNkZWZpbmUgdWVudW1f
dW5leHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX3VuZXh0KQogI2RlZmluZSB1ZW51
bV91bmV4dERlZmF1bHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX3VuZXh0RGVmYXVs
dCkKQEAgLTkwOCwzNCArOTIwLDQ5IEBACiAjZGVmaW5lIHVmaWxlX2dldGNoIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1ZmlsZV9nZXRjaCkKICNkZWZpbmUgdWZpbGVfZ2V0Y2gzMiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWZpbGVfZ2V0Y2gzMikKICNkZWZpbmUgdWZtdF82NHRvdSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF82NHRvdSkKKyNkZWZpbmUgdWZtdF9jbG9zZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9jbG9zZSkKICNkZWZpbmUgdWZtdF9kZWZhdWx0Q1BU
b1VuaWNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZGVmYXVsdENQVG9Vbmljb2Rl
KQogI2RlZmluZSB1Zm10X2RpZ2l0dmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRf
ZGlnaXR2YWx1ZSkKKyNkZWZpbmUgdWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Zm10X2dldEFycmF5SXRlbUJ5SW5kZXgpCisjZGVmaW5lIHVmbXRfZ2V0
QXJyYXlMZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0QXJyYXlMZW5ndGgp
CisjZGVmaW5lIHVmbXRfZ2V0RGF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRE
YXRlKQorI2RlZmluZSB1Zm10X2dldERlY051bUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Zm10X2dldERlY051bUNoYXJzKQorI2RlZmluZSB1Zm10X2dldERvdWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWZtdF9nZXREb3VibGUpCisjZGVmaW5lIHVmbXRfZ2V0SW50NjQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0SW50NjQpCisjZGVmaW5lIHVmbXRfZ2V0TG9u
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRMb25nKQorI2RlZmluZSB1Zm10X2dl
dE9iamVjdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRPYmplY3QpCisjZGVmaW5l
IHVmbXRfZ2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRUeXBlKQorI2Rl
ZmluZSB1Zm10X2dldFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRVQ2hh
cnMpCisjZGVmaW5lIHVmbXRfaXNOdW1lcmljIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10
X2lzTnVtZXJpYykKICNkZWZpbmUgdWZtdF9pc2RpZ2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Zm10X2lzZGlnaXQpCisjZGVmaW5lIHVmbXRfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWZtdF9vcGVuKQogI2RlZmluZSB1Zm10X3B0b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVmbXRfcHRvdSkKICNkZWZpbmUgdWZtdF91dG82NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWZtdF91dG82NCkKICNkZWZpbmUgdWZtdF91dG9wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Zm10X3V0b3ApCisjZGVmaW5lIHVnZW5kZXJfZ2V0SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVnZW5kZXJfZ2V0SW5zdGFuY2UpCisjZGVmaW5lIHVnZW5kZXJfZ2V0TGlzdEdlbmRl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWdlbmRlcl9nZXRMaXN0R2VuZGVyKQogI2RlZmlu
ZSB1aGFzaF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY2xvc2UpCiAjZGVm
aW5lIHVoYXNoX2NvbXBhcmVDYXNlbGVzc1VuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2NvbXBhcmVDYXNlbGVzc1VuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNo
X2NvbXBhcmVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUNoYXJz
KQogI2RlZmluZSB1aGFzaF9jb21wYXJlSUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
aGFzaF9jb21wYXJlSUNoYXJzKQogI2RlZmluZSB1aGFzaF9jb21wYXJlTG9uZyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUxvbmcpCisjZGVmaW5lIHVoYXNoX2NvbXBhcmVT
Y3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVTY3JpcHRTZXQp
CiAjZGVmaW5lIHVoYXNoX2NvbXBhcmVVQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2NvbXBhcmVVQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2NvbXBhcmVVbmljb2RlU3RyaW5nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlVW5pY29kZVN0cmluZykKICNkZWZp
bmUgdWhhc2hfY291bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvdW50KQogI2Rl
ZmluZSB1aGFzaF9kZWxldGVIYXNodGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNo
X2RlbGV0ZUhhc2h0YWJsZSkKLSNkZWZpbmUgdWhhc2hfZGVsZXRlVU9iamVjdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlVU9iamVjdCkKLSNkZWZpbmUgdWhhc2hfZGVsZXRl
VW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlVW5pY29k
ZVN0cmluZykKKyNkZWZpbmUgdWhhc2hfZGVsZXRlU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1aGFzaF9kZWxldGVTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2VxdWFscyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZXF1YWxzKQorI2RlZmluZSB1aGFzaF9lcXVhbHNT
Y3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2VxdWFsc1NjcmlwdFNldCkK
ICNkZWZpbmUgdWhhc2hfZmluZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZmluZCkK
LSNkZWZpbmUgdWhhc2hfZnJlZUJsb2NrIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9m
cmVlQmxvY2spCiAjZGVmaW5lIHVoYXNoX2dldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhh
c2hfZ2V0KQogI2RlZmluZSB1aGFzaF9nZXRpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFz
aF9nZXRpKQogI2RlZmluZSB1aGFzaF9oYXNoQ2FzZWxlc3NVbmljb2RlU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoQ2FzZWxlc3NVbmljb2RlU3RyaW5nKQogI2RlZmlu
ZSB1aGFzaF9oYXNoQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hDaGFy
cykKICNkZWZpbmUgdWhhc2hfaGFzaElDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhh
c2hfaGFzaElDaGFycykKICNkZWZpbmUgdWhhc2hfaGFzaExvbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2hhc2hMb25nKQorI2RlZmluZSB1aGFzaF9oYXNoU2NyaXB0U2V0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9o
YXNoVUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoVUNoYXJzKQotI2Rl
ZmluZSB1aGFzaF9oYXNoVUNoYXJzTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFz
aFVDaGFyc04pCiAjZGVmaW5lIHVoYXNoX2hhc2hVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9oYXNoVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfaWdldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaWdldCkKICNkZWZpbmUgdWhhc2hfaWdldGkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2lnZXRpKQpAQCAtOTg1LDYgKzEwMTIsNyBA
QAogI2RlZmluZSB1aXRlcl9zZXRVVEYxNkJFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aXRl
cl9zZXRVVEYxNkJFKQogI2RlZmluZSB1aXRlcl9zZXRVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1aXRlcl9zZXRVVEY4KQogI2RlZmluZSB1bGRuX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bGRuX2Nsb3NlKQorI2RlZmluZSB1bGRuX2dldENvbnRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVsZG5fZ2V0Q29udGV4dCkKICNkZWZpbmUgdWxkbl9nZXREaWFsZWN0SGFu
ZGxpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fZ2V0RGlhbGVjdEhhbmRsaW5nKQog
I2RlZmluZSB1bGRuX2dldExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9nZXRM
b2NhbGUpCiAjZGVmaW5lIHVsZG5fa2V5RGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVsZG5fa2V5RGlzcGxheU5hbWUpCkBAIC05OTIsNiArMTAyMCw3IEBACiAjZGVmaW5lIHVs
ZG5fbGFuZ3VhZ2VEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9sYW5n
dWFnZURpc3BsYXlOYW1lKQogI2RlZmluZSB1bGRuX2xvY2FsZURpc3BsYXlOYW1lIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bGRuX2xvY2FsZURpc3BsYXlOYW1lKQogI2RlZmluZSB1bGRuX29w
ZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fb3BlbikKKyNkZWZpbmUgdWxkbl9vcGVu
Rm9yQ29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9vcGVuRm9yQ29udGV4dCkK
ICNkZWZpbmUgdWxkbl9yZWdpb25EaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWxkbl9yZWdpb25EaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9zY3JpcHRDb2RlRGlzcGxheU5h
bWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fc2NyaXB0Q29kZURpc3BsYXlOYW1lKQog
I2RlZmluZSB1bGRuX3NjcmlwdERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bGRuX3NjcmlwdERpc3BsYXlOYW1lKQpAQCAtMTAyOCw2ICsxMDU3LDcgQEAKICNkZWZpbmUgdWxv
Y19nZXREaXNwbGF5TGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlz
cGxheUxhbmd1YWdlKQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlOYW1lKQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlT
Y3JpcHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVNjcmlwdCkKKyNk
ZWZpbmUgdWxvY19nZXREaXNwbGF5U2NyaXB0SW5Db250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bG9jX2dldERpc3BsYXlTY3JpcHRJbkNvbnRleHQpCiAjZGVmaW5lIHVsb2NfZ2V0RGlz
cGxheVZhcmlhbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsb2NfZ2V0RGlzcGxheVZhcmlh
bnQpCiAjZGVmaW5lIHVsb2NfZ2V0SVNPM0NvdW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVsb2NfZ2V0SVNPM0NvdW50cnkpCiAjZGVmaW5lIHVsb2NfZ2V0SVNPM0xhbmd1YWdlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldElTTzNMYW5ndWFnZSkKQEAgLTEwNzUsMTggKzEx
MDUsMjEgQEAKICNkZWZpbmUgdW1zZ190b1BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVtc2dfdG9QYXR0ZXJuKQogI2RlZmluZSB1bXNnX3Zmb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVtc2dfdmZvcm1hdCkKICNkZWZpbmUgdW1zZ192cGFyc2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVtc2dfdnBhcnNlKQotI2RlZmluZSB1bXR4X2F0b21pY19kZWMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVtdHhfYXRvbWljX2RlYykKLSNkZWZpbmUgdW10eF9hdG9taWNfaW5j
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2F0b21pY19pbmMpCi0jZGVmaW5lIHVtdHhf
Y2xlYW51cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9jbGVhbnVwKQotI2RlZmluZSB1
bXR4X2Rlc3Ryb3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfZGVzdHJveSkKLSNkZWZp
bmUgdW10eF9pbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2luaXQpCiAjZGVmaW5l
IHVtdHhfbG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9sb2NrKQogI2RlZmluZSB1
bXR4X3VubG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF91bmxvY2spCiAjZGVmaW5l
IHVuaXNldF9nZXRVbmljb2RlMzJJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5p
c2V0X2dldFVuaWNvZGUzMkluc3RhbmNlKQogI2RlZmluZSB1bm9ybTJfYXBwZW5kIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfYXBwZW5kKQogI2RlZmluZSB1bm9ybTJfY2xvc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9jbG9zZSkKKyNkZWZpbmUgdW5vcm0yX2NvbXBv
c2VQYWlyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfY29tcG9zZVBhaXIpCisjZGVm
aW5lIHVub3JtMl9nZXRDb21iaW5pbmdDbGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5v
cm0yX2dldENvbWJpbmluZ0NsYXNzKQogI2RlZmluZSB1bm9ybTJfZ2V0RGVjb21wb3NpdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldERlY29tcG9zaXRpb24pCiAjZGVmaW5l
IHVub3JtMl9nZXRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldElu
c3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZDSW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtMl9nZXRORkNJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GREluc3Rh
bmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZESW5zdGFuY2UpCisjZGVm
aW5lIHVub3JtMl9nZXRORktDQ2FzZWZvbGRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodW5vcm0yX2dldE5GS0NDYXNlZm9sZEluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZL
Q0luc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZLQ0luc3RhbmNl
KQorI2RlZmluZSB1bm9ybTJfZ2V0TkZLREluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bm9ybTJfZ2V0TkZLREluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0UmF3RGVjb21wb3Np
dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24p
CiAjZGVmaW5lIHVub3JtMl9oYXNCb3VuZGFyeUFmdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bm9ybTJfaGFzQm91bmRhcnlBZnRlcikKICNkZWZpbmUgdW5vcm0yX2hhc0JvdW5kYXJ5QmVm
b3JlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfaGFzQm91bmRhcnlCZWZvcmUpCiAj
ZGVmaW5lIHVub3JtMl9pc0luZXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfaXNJ
bmVydCkKQEAgLTExMDAsNyArMTEzMyw3IEBACiAjZGVmaW5lIHVub3JtX2Nsb3NlSXRlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1fY2xvc2VJdGVyKQogI2RlZmluZSB1bm9ybV9jb21w
YXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9jb21wYXJlKQogI2RlZmluZSB1bm9y
bV9jb25jYXRlbmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1fY29uY2F0ZW5hdGUp
Ci0jZGVmaW5lIHVub3JtX2dldEZDRFRyaWVJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW5vcm1fZ2V0RkNEVHJpZUluZGV4KQorI2RlZmluZSB1bm9ybV9nZXRGQ0QxNiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm1fZ2V0RkNEMTYpCiAjZGVmaW5lIHVub3JtX2dldFF1aWNrQ2hl
Y2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldFF1aWNrQ2hlY2spCiAjZGVmaW5l
IHVub3JtX2lzTm9ybWFsaXplZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1faXNOb3Jt
YWxpemVkKQogI2RlZmluZSB1bm9ybV9pc05vcm1hbGl6ZWRXaXRoT3B0aW9ucyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm1faXNOb3JtYWxpemVkV2l0aE9wdGlvbnMpCkBAIC0xMTIwLDYg
KzExNTMsNyBAQAogI2RlZmluZSB1bnVtX2Zvcm1hdERvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW51bV9mb3JtYXREb3VibGUpCiAjZGVmaW5lIHVudW1fZm9ybWF0RG91YmxlQ3VycmVu
Y3kgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0RG91YmxlQ3VycmVuY3kpCiAj
ZGVmaW5lIHVudW1fZm9ybWF0SW50NjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9y
bWF0SW50NjQpCisjZGVmaW5lIHVudW1fZm9ybWF0VUZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtX2Zvcm1hdFVGb3JtYXR0YWJsZSkKICNkZWZpbmUgdW51bV9nZXRBdHRy
aWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0QXR0cmlidXRlKQogI2RlZmlu
ZSB1bnVtX2dldEF2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9nZXRBdmFp
bGFibGUpCiAjZGVmaW5lIHVudW1fZ2V0RG91YmxlQXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtX2dldERvdWJsZUF0dHJpYnV0ZSkKQEAgLTExMzIsMTEgKzExNjYsMjQgQEAK
ICNkZWZpbmUgdW51bV9wYXJzZURvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9w
YXJzZURvdWJsZSkKICNkZWZpbmUgdW51bV9wYXJzZURvdWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bnVtX3BhcnNlRG91YmxlQ3VycmVuY3kpCiAjZGVmaW5lIHVudW1fcGFy
c2VJbnQ2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZUludDY0KQorI2RlZmlu
ZSB1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1f
cGFyc2VUb1VGb3JtYXR0YWJsZSkKICNkZWZpbmUgdW51bV9zZXRBdHRyaWJ1dGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVudW1fc2V0QXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3NldERvdWJs
ZUF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXREb3VibGVBdHRyaWJ1
dGUpCiAjZGVmaW5lIHVudW1fc2V0U3ltYm9sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVt
X3NldFN5bWJvbCkKICNkZWZpbmUgdW51bV9zZXRUZXh0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtX3NldFRleHRBdHRyaWJ1dGUpCiAjZGVmaW5lIHVudW1fdG9QYXR0ZXJu
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3RvUGF0dGVybikKKyNkZWZpbmUgdW51bXN5
c19jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19jbG9zZSkKKyNkZWZpbmUg
dW51bXN5c19nZXREZXNjcmlwdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19n
ZXREZXNjcmlwdGlvbikKKyNkZWZpbmUgdW51bXN5c19nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtc3lzX2dldE5hbWUpCisjZGVmaW5lIHVudW1zeXNfZ2V0UmFkaXggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0UmFkaXgpCisjZGVmaW5lIHVudW1zeXNfaXNB
bGdvcml0aG1pYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19pc0FsZ29yaXRobWlj
KQorI2RlZmluZSB1bnVtc3lzX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNf
b3BlbikKKyNkZWZpbmUgdW51bXN5c19vcGVuQXZhaWxhYmxlTmFtZXMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzKQorI2RlZmluZSB1bnVtc3lzX29w
ZW5CeU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfb3BlbkJ5TmFtZSkKKyNk
ZWZpbmUgdXBscnVsZXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX2Ns
b3NlKQorI2RlZmluZSB1cGxydWxlc19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxy
dWxlc19vcGVuKQorI2RlZmluZSB1cGxydWxlc19vcGVuRm9yVHlwZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBscnVsZXNfb3BlbkZvclR5cGUpCisjZGVmaW5lIHVwbHJ1bGVzX3NlbGVjdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfc2VsZWN0KQogI2RlZmluZSB1cGx1Z19j
bG9zZUxpYnJhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX2Nsb3NlTGlicmFyeSkK
ICNkZWZpbmUgdXBsdWdfZmluZExpYnJhcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVn
X2ZpbmRMaWJyYXJ5KQogI2RlZmluZSB1cGx1Z19nZXRDb25maWd1cmF0aW9uIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cGx1Z19nZXRDb25maWd1cmF0aW9uKQpAQCAtMTE2MCwxMiArMTIwNywx
MiBAQAogI2RlZmluZSB1cGx1Z19zZXRQbHVnTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwbHVnX3NldFBsdWdMZXZlbCkKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z05hbWUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwbHVnX3NldFBsdWdOYW1lKQogI2RlZmluZSB1cGx1Z19zZXRQbHVn
Tm9VbmxvYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHVnX3NldFBsdWdOb1VubG9hZCkK
LSNkZWZpbmUgdXBuYW1lX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbmFtZV9zd2Fw
KQogI2RlZmluZSB1cHJvcHNfZ2V0U291cmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJv
cHNfZ2V0U291cmNlKQogI2RlZmluZSB1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcm9wc3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cykKICNkZWZpbmUg
dXBydl9hZXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYWVzdHJuY3B5KQog
I2RlZmluZSB1cHJ2X2FzY2lpRnJvbUViY2RpYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBy
dl9hc2NpaUZyb21FYmNkaWMpCiAjZGVmaW5lIHVwcnZfYXNjaWl0b2xvd2VyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2FzY2lpdG9sb3dlcikKKyNkZWZpbmUgdXBydl9jYWxsb2MgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY2FsbG9jKQogI2RlZmluZSB1cHJ2X2NlaWwgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY2VpbCkKICNkZWZpbmUgdXBydl9jbnR0YWJfYWRk
Q29udHJhY3Rpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY250dGFiX2FkZENvbnRy
YWN0aW9uKQogI2RlZmluZSB1cHJ2X2NudHRhYl9jaGFuZ2VDb250cmFjdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9jbnR0YWJfY2hhbmdlQ29udHJhY3Rpb24pCkBAIC0xMjAyLDcg
KzEyNDksNiBAQAogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNGcm9tU3RyaW5nUXVp
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c0Zyb21T
dHJpbmdRdWlldCkKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U2V0U3RhdHVzUXVpZXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c1F1aWV0KQogI2RlZmlu
ZSB1cHJ2X2RlY0NvbnRleHRTdGF0dXNUb1N0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9kZWNDb250ZXh0U3RhdHVzVG9TdHJpbmcpCi0jZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRl
c3RFbmRpYW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RFbmRp
YW4pCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFRlc3RTYXZlZFN0YXR1cyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0VGVzdFNhdmVkU3RhdHVzKQogI2RlZmluZSB1cHJ2
X2RlY0NvbnRleHRUZXN0U3RhdHVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0Nv
bnRleHRUZXN0U3RhdHVzKQogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRaZXJvU3RhdHVzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRaZXJvU3RhdHVzKQpAQCAtMTI2OCwx
MiArMTMxNCwxNCBAQAogI2RlZmluZSB1cHJ2X2RlY051bWJlclZlcnNpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfZGVjTnVtYmVyVmVyc2lvbikKICNkZWZpbmUgdXBydl9kZWNOdW1i
ZXJYb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjTnVtYmVyWG9yKQogI2RlZmlu
ZSB1cHJ2X2RlY051bWJlclplcm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjTnVt
YmVyWmVybykKKyNkZWZpbmUgdXBydl9kZWxldGVVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X2RlbGV0ZVVPYmplY3QpCiAjZGVmaW5lIHVwcnZfZGVsZXRlX2NvbGxJdGVyYXRl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlbGV0ZV9jb2xsSXRlcmF0ZSkKICNkZWZp
bmUgdXBydl9kbF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9jbG9zZSkK
ICNkZWZpbmUgdXBydl9kbF9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RsX29w
ZW4pCi0jZGVmaW5lIHVwcnZfZGxfc3ltIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Rs
X3N5bSkKKyNkZWZpbmUgdXBydl9kbHN5bV9mdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2Rsc3ltX2Z1bmMpCiAjZGVmaW5lIHVwcnZfZWFzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2Vhc3RybmNweSkKICNkZWZpbmUgdXBydl9lYmNkaWNGcm9tQXNjaWkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWJjZGljRnJvbUFzY2lpKQorI2RlZmluZSB1cHJ2
X2ViY2RpY1RvTG93ZXJjYXNlQXNjaWkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZWJj
ZGljVG9Mb3dlcmNhc2VBc2NpaSkKICNkZWZpbmUgdXBydl9lYmNkaWN0b2xvd2VyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ViY2RpY3RvbG93ZXIpCiAjZGVmaW5lIHVwcnZfZmFicyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9mYWJzKQogI2RlZmluZSB1cHJ2X2Zsb29yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Zsb29yKQpAQCAtMTI5NSwxMyArMTM0MywxMyBA
QAogI2RlZmluZSB1cHJ2X2luaXRfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfaW5pdF9jb2xsSXRlcmF0ZSkKICNkZWZpbmUgdXBydl9pbml0X3BjZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9pbml0X3BjZSkKICNkZWZpbmUgdXBydl9pbnQzMkNvbXBhcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaW50MzJDb21wYXJhdG9yKQorI2RlZmlu
ZSB1cHJ2X2lzQVNDSUlMZXR0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNBU0NJ
SUxldHRlcikKICNkZWZpbmUgdXBydl9pc0luZmluaXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2lzSW5maW5pdGUpCiAjZGVmaW5lIHVwcnZfaXNJbnZhcmlhbnRTdHJpbmcgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNJbnZhcmlhbnRTdHJpbmcpCiAjZGVmaW5lIHVwcnZf
aXNJbnZhcmlhbnRVU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzSW52YXJp
YW50VVN0cmluZykKICNkZWZpbmUgdXBydl9pc05hTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9pc05hTikKICNkZWZpbmUgdXBydl9pc05lZ2F0aXZlSW5maW5pdHkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5KQogI2RlZmluZSB1cHJ2X2lzUG9z
aXRpdmVJbmZpbml0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc1Bvc2l0aXZlSW5m
aW5pdHkpCi0jZGVmaW5lIHVwcnZfaXNSdWxlV2hpdGVTcGFjZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9pc1J1bGVXaGl0ZVNwYWNlKQogI2RlZmluZSB1cHJ2X2l0b3UgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfaXRvdSkKICNkZWZpbmUgdXBydl9sb2cgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfbG9nKQogI2RlZmluZSB1cHJ2X21hbGxvYyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9tYWxsb2MpCkBAIC0xMzEyLDcgKzEzNjAsNiBAQAogI2RlZmluZSB1
cHJ2X21pbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9taW4pCiAjZGVmaW5lIHVwcnZf
bW9kZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9tb2RmKQogI2RlZmluZSB1cHJ2X25l
d19jb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9uZXdfY29sbEl0ZXJh
dGUpCi0jZGVmaW5lIHVwcnZfb3BlblJ1bGVXaGl0ZVNwYWNlU2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X29wZW5SdWxlV2hpdGVTcGFjZVNldCkKICNkZWZpbmUgdXBydl9wYXJzZUN1
cnJlbmN5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3BhcnNlQ3VycmVuY3kpCiAjZGVm
aW5lIHVwcnZfcGF0aElzQWJzb2x1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcGF0
aElzQWJzb2x1dGUpCiAjZGVmaW5lIHVwcnZfcG93IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X3BvdykKQEAgLTEzMjAsOSArMTM2NywxMiBAQAogI2RlZmluZSB1cHJ2X3JlYWxsb2MgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcmVhbGxvYykKICNkZWZpbmUgdXBydl9yb3VuZCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9yb3VuZCkKICNkZWZpbmUgdXBydl9zb3J0QXJy
YXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc29ydEFycmF5KQorI2RlZmluZSB1cHJ2
X3N0YWJsZUJpbmFyeVNlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zdGFibGVC
aW5hcnlTZWFyY2gpCiAjZGVmaW5lIHVwcnZfc3RyQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9zdHJDb21wYXJlKQogI2RlZmluZSB1cHJ2X3N0cmR1cCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9zdHJkdXApCisjZGVmaW5lIHVwcnZfc3RyaWNtcCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9zdHJpY21wKQogI2RlZmluZSB1cHJ2X3N0cm5kdXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RybmR1cCkKKyNkZWZpbmUgdXBydl9zdHJuaWNtcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zdHJuaWNtcCkKICNkZWZpbmUgdXBydl9zeW50
YXhFcnJvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9zeW50YXhFcnJvcikKICNkZWZp
bmUgdXBydl90aW1lem9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl90aW1lem9uZSkK
ICNkZWZpbmUgdXBydl90b3VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3RvdXBw
ZXIpCkBAIC0xMzg2LDYgKzE0MzYsNyBAQAogI2RlZmluZSB1cmVnZXhfb3BlblVUZXh0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfb3BlblVUZXh0KQogI2RlZmluZSB1cmVnZXhfcGF0
dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3BhdHRlcm4pCiAjZGVmaW5lIHVy
ZWdleF9wYXR0ZXJuVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9wYXR0ZXJu
VVRleHQpCisjZGVmaW5lIHVyZWdleF9yZWZyZXNoVVRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVyZWdleF9yZWZyZXNoVVRleHQpCiAjZGVmaW5lIHVyZWdleF9yZWdpb25FbmQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25FbmQpCiAjZGVmaW5lIHVyZWdleF9yZWdp
b25FbmQ2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3JlZ2lvbkVuZDY0KQogI2Rl
ZmluZSB1cmVnZXhfcmVnaW9uU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9y
ZWdpb25TdGFydCkKQEAgLTE0MTQsNiArMTQ2NSwxOSBAQAogI2RlZmluZSB1cmVnZXhfdXNlQW5j
aG9yaW5nQm91bmRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXNlQW5jaG9yaW5n
Qm91bmRzKQogI2RlZmluZSB1cmVnZXhfdXNlVHJhbnNwYXJlbnRCb3VuZHMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdleF91c2VUcmFuc3BhcmVudEJvdW5kcykKICNkZWZpbmUgdXJlZ2V4
X3V0ZXh0X3VuZXNjYXBlX2NoYXJBdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3V0
ZXh0X3VuZXNjYXBlX2NoYXJBdCkKKyNkZWZpbmUgdXJlZ2lvbl9hcmVFcXVhbCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9hcmVFcXVhbCkKKyNkZWZpbmUgdXJlZ2lvbl9jb250YWlu
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9jb250YWlucykKKyNkZWZpbmUgdXJl
Z2lvbl9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0QXZh
aWxhYmxlKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9ucykKKyNkZWZpbmUgdXJlZ2lv
bl9nZXRDb250YWluZWRSZWdpb25zT2ZUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVn
aW9uX2dldENvbnRhaW5lZFJlZ2lvbnNPZlR5cGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0Q29udGFp
bmluZ1JlZ2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250YWluaW5n
UmVnaW9uKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb25PZlR5cGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmluZ1JlZ2lvbk9mVHlwZSkKKyNk
ZWZpbmUgdXJlZ2lvbl9nZXROdW1lcmljQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJl
Z2lvbl9nZXROdW1lcmljQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRQcmVmZXJyZWRWYWx1ZXMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0UHJlZmVycmVkVmFsdWVzKQorI2Rl
ZmluZSB1cmVnaW9uX2dldFJlZ2lvbkNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdp
b25fZ2V0UmVnaW9uQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRSZWdpb25Gcm9tQ29kZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRSZWdpb25Gcm9tQ29kZSkKKyNkZWZpbmUg
dXJlZ2lvbl9nZXRSZWdpb25Gcm9tTnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVyZWdpb25fZ2V0UmVnaW9uRnJvbU51bWVyaWNDb2RlKQorI2RlZmluZSB1cmVnaW9uX2dldFR5
cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0VHlwZSkKICNkZWZpbmUgdXJl
c19jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jbG9zZSkKICNkZWZpbmUgdXJl
c19jb3B5UmVzYiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19jb3B5UmVzYikKICNkZWZp
bmUgdXJlc19jb3VudEFycmF5SXRlbXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY291
bnRBcnJheUl0ZW1zKQpAQCAtMTQ1NywxMyArMTUyMSwxOSBAQAogI2RlZmluZSB1cmVzX29wZW5V
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX29wZW5VKQogI2RlZmluZSB1cmVzX3Jlc2V0
SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfcmVzZXRJdGVyYXRvcikKICNk
ZWZpbmUgdXJlc19zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX3N3YXApCisjZGVm
aW5lIHVzY3JpcHRfYnJlYWtzQmV0d2VlbkxldHRlcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzY3JpcHRfYnJlYWtzQmV0d2VlbkxldHRlcnMpCiAjZGVmaW5lIHVzY3JpcHRfY2xvc2VSdW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfY2xvc2VSdW4pCiAjZGVmaW5lIHVzY3Jp
cHRfZ2V0Q29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRDb2RlKQogI2Rl
ZmluZSB1c2NyaXB0X2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0
TmFtZSkKKyNkZWZpbmUgdXNjcmlwdF9nZXRTYW1wbGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nKQorI2RlZmluZSB1c2NyaXB0X2dldFNhbXBs
ZVVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0U2FtcGxl
VW5pY29kZVN0cmluZykKICNkZWZpbmUgdXNjcmlwdF9nZXRTY3JpcHQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzY3JpcHRfZ2V0U2NyaXB0KQogI2RlZmluZSB1c2NyaXB0X2dldFNjcmlwdEV4
dGVuc2lvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5z
aW9ucykKICNkZWZpbmUgdXNjcmlwdF9nZXRTaG9ydE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzY3JpcHRfZ2V0U2hvcnROYW1lKQorI2RlZmluZSB1c2NyaXB0X2dldFVzYWdlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFVzYWdlKQogI2RlZmluZSB1c2NyaXB0X2hh
c1NjcmlwdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9oYXNTY3JpcHQpCisjZGVm
aW5lIHVzY3JpcHRfaXNDYXNlZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9pc0Nh
c2VkKQorI2RlZmluZSB1c2NyaXB0X2lzUmlnaHRUb0xlZnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzY3JpcHRfaXNSaWdodFRvTGVmdCkKICNkZWZpbmUgdXNjcmlwdF9uZXh0UnVuIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X25leHRSdW4pCiAjZGVmaW5lIHVzY3JpcHRfb3Bl
blJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9vcGVuUnVuKQogI2RlZmluZSB1
c2NyaXB0X3Jlc2V0UnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X3Jlc2V0UnVu
KQpAQCAtMTU2Nyw2ICsxNjM3LDExIEBACiAjZGVmaW5lIHVzcG9vZl9nZXRBbGxvd2VkTG9jYWxl
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEFsbG93ZWRMb2NhbGVzKQogI2Rl
ZmluZSB1c3Bvb2ZfZ2V0QWxsb3dlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzcG9vZl9nZXRBbGxvd2VkVW5pY29kZVNldCkKICNkZWZpbmUgdXNwb29mX2dldENoZWNrcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldENoZWNrcykKKyNkZWZpbmUgdXNwb29m
X2dldEluY2x1c2lvblNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldEluY2x1
c2lvblNldCkKKyNkZWZpbmUgdXNwb29mX2dldEluY2x1c2lvblVuaWNvZGVTZXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRJbmNsdXNpb25Vbmljb2RlU2V0KQorI2RlZmluZSB1
c3Bvb2ZfZ2V0UmVjb21tZW5kZWRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9n
ZXRSZWNvbW1lbmRlZFNldCkKKyNkZWZpbmUgdXNwb29mX2dldFJlY29tbWVuZGVkVW5pY29kZVNl
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFJlY29tbWVuZGVkVW5pY29kZVNl
dCkKKyNkZWZpbmUgdXNwb29mX2dldFJlc3RyaWN0aW9uTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9nZXRSZXN0cmljdGlvbkxldmVsKQogI2RlZmluZSB1c3Bvb2ZfZ2V0U2tl
bGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvbikKICNkZWZp
bmUgdXNwb29mX2dldFNrZWxldG9uVVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29m
X2dldFNrZWxldG9uVVRGOCkKICNkZWZpbmUgdXNwb29mX2dldFNrZWxldG9uVW5pY29kZVN0cmlu
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX2dldFNrZWxldG9uVW5pY29kZVN0cmlu
ZykKQEAgLTE1NzgsMjMgKzE2NTMsMjUgQEAKICNkZWZpbmUgdXNwb29mX3NldEFsbG93ZWRMb2Nh
bGVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0QWxsb3dlZExvY2FsZXMpCiAj
ZGVmaW5lIHVzcG9vZl9zZXRBbGxvd2VkVW5pY29kZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXNwb29mX3NldEFsbG93ZWRVbmljb2RlU2V0KQogI2RlZmluZSB1c3Bvb2Zfc2V0Q2hlY2tz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zfc2V0Q2hlY2tzKQorI2RlZmluZSB1c3Bv
b2Zfc2V0UmVzdHJpY3Rpb25MZXZlbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3Nl
dFJlc3RyaWN0aW9uTGV2ZWwpCiAjZGVmaW5lIHVzcG9vZl9zd2FwIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3Bvb2Zfc3dhcCkKICNkZWZpbmUgdXNwcmVwX2Nsb3NlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c3ByZXBfY2xvc2UpCiAjZGVmaW5lIHVzcHJlcF9vcGVuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3ByZXBfb3BlbikKICNkZWZpbmUgdXNwcmVwX29wZW5CeVR5cGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9vcGVuQnlUeXBlKQogI2RlZmluZSB1c3ByZXBf
cHJlcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX3ByZXBhcmUpCiAjZGVmaW5l
IHVzcHJlcF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3ByZXBfc3dhcCkKLSNkZWZp
bmUgdXN0cl9mb2xkQ2FzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl9mb2xkQ2FzZSkK
LSNkZWZpbmUgdXN0cl90b0xvd2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvTG93
ZXIpCi0jZGVmaW5lIHVzdHJfdG9UaXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90
b1RpdGxlKQotI2RlZmluZSB1c3RyX3RvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
dHJfdG9VcHBlcikKLSNkZWZpbmUgdXRleHRfY2FzZUNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHV0ZXh0X2Nhc2VDb21wYXJlKQotI2RlZmluZSB1dGV4dF9jYXNlQ29tcGFyZU5hdGl2
ZUxpbWl0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jYXNlQ29tcGFyZU5hdGl2ZUxp
bWl0KQorI2RlZmluZSB1c3RyX2hhc2hDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVz
dHJfaGFzaENoYXJzTikKKyNkZWZpbmUgdXN0cl9oYXNoSUNoYXJzTiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXN0cl9oYXNoSUNoYXJzTikKKyNkZWZpbmUgdXN0cl9oYXNoVUNoYXJzTiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl9oYXNoVUNoYXJzTikKKyNkZWZpbmUgdXN0cmNhc2Vf
aW50ZXJuYWxGb2xkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5hbEZv
bGQpCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXN0cmNhc2VfaW50ZXJuYWxUb0xvd2VyKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5h
bFRvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsVG9UaXRs
ZSkKKyNkZWZpbmUgdXN0cmNhc2VfaW50ZXJuYWxUb1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c3RyY2FzZV9pbnRlcm5hbFRvVXBwZXIpCisjZGVmaW5lIHVzdHJjYXNlX21hcCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfbWFwKQorI2RlZmluZSB1c3RyY2FzZV9zZXRU
ZW1wQ2FzZU1hcExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2Vfc2V0VGVt
cENhc2VNYXBMb2NhbGUpCiAjZGVmaW5lIHV0ZXh0X2NoYXIzMkF0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1dGV4dF9jaGFyMzJBdCkKICNkZWZpbmUgdXRleHRfY2xvbmUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHV0ZXh0X2Nsb25lKQogI2RlZmluZSB1dGV4dF9jbG9zZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXRleHRfY2xvc2UpCi0jZGVmaW5lIHV0ZXh0X2NvbXBhcmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvbXBhcmUpCi0jZGVmaW5lIHV0ZXh0X2NvbXBhcmVO
YXRpdmVMaW1pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY29tcGFyZU5hdGl2ZUxp
bWl0KQogI2RlZmluZSB1dGV4dF9jb3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9j
b3B5KQogI2RlZmluZSB1dGV4dF9jdXJyZW50MzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0
ZXh0X2N1cnJlbnQzMikKICNkZWZpbmUgdXRleHRfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1dGV4dF9lcXVhbHMpCkBAIC0xNzQzLDQ5OSArMTgyMCw2IEBACiAjZGVmaW5lIHp0cmFu
c19zZXRUaW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh6dHJhbnNfc2V0VGltZSkKICNkZWZp
bmUgenRyYW5zX3NldFRvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh6dHJhbnNfc2V0VG8pCiAK
LQotLyogQysrIGNsYXNzIG5hbWVzIHJlbmFtaW5nIGRlZmluZXMgKi8KLQotI2lmZGVmIFhQX0NQ
TFVTUExVUwotI2lmICFVX0hBVkVfTkFNRVNQQUNFCi0KLSNkZWZpbmUgQWJzb2x1dGVWYWx1ZVN1
YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQWJzb2x1dGVWYWx1ZVN1YnN0aXR1
dGlvbikKLSNkZWZpbmUgQWx0ZXJuYXRlU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEFsdGVybmF0ZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBBbmNo
b3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQW5jaG9yVGFibGUpCi0jZGVmaW5lIEFu
ZENvbnN0cmFpbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFuZENvbnN0cmFpbnQpCi0jZGVm
aW5lIEFubnVhbFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQW5udWFsVGlt
ZVpvbmVSdWxlKQotI2RlZmluZSBBbnlUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQW55VHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIEFyYWJpY09wZW5UeXBlTGF5b3V0RW5n
aW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSkK
LSNkZWZpbmUgQXJhYmljU2hhcGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJhYmljU2hh
cGluZykKLSNkZWZpbmUgQXJnRXh0cmFjdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBcmdF
eHRyYWN0b3IpCi0jZGVmaW5lIEJNUFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQk1QU2V0
KQotI2RlZmluZSBCYWNrd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShCYWNrd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yKQotI2RlZmluZSBCYWRDaGFyYWN0
ZXJUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFkQ2hhcmFjdGVyVGFibGUpCi0jZGVm
aW5lIEJhc2ljQ2FsZW5kYXJGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCYXNpY0Nh
bGVuZGFyRmFjdG9yeSkKLSNkZWZpbmUgQmFzaWNUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQmFzaWNUaW1lWm9uZSkKLSNkZWZpbmUgQmluYXJ5U2VhcmNoTG9va3VwVGFibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEJpbmFyeVNlYXJjaExvb2t1cFRhYmxlKQotI2RlZmluZSBC
b3llck1vb3JlU2VhcmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCb3llck1vb3JlU2VhcmNo
KQotI2RlZmluZSBCcmVha0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCcmVha0l0
ZXJhdG9yKQotI2RlZmluZSBCcmVha1RyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShCcmVha1RyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBCdWRkaGlzdENhbGVuZGFyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShCdWRkaGlzdENhbGVuZGFyKQotI2RlZmluZSBCdWlsZENvbXBh
Y3RUcmllSG9yaXpvbnRhbE5vZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFj
dFRyaWVIb3Jpem9udGFsTm9kZSkKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZU5vZGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEJ1aWxkQ29tcGFjdFRyaWVOb2RlKQotI2RlZmluZSBCdWlsZENv
bXBhY3RUcmllVmVydGljYWxOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBh
Y3RUcmllVmVydGljYWxOb2RlKQotI2RlZmluZSBCdWlsZGVyU2NyaXB0U2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShCdWlsZGVyU2NyaXB0U2V0KQotI2RlZmluZSBCeXRlU2luayBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQnl0ZVNpbmspCi0jZGVmaW5lIENFQnVmZmVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDRUJ1ZmZlcikKLSNkZWZpbmUgQ0VDYWxlbmRhciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ0VDYWxlbmRhcikKLSNkZWZpbmUgQ0VMaXN0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDRUxpc3QpCi0jZGVmaW5lIENFVG9TdHJpbmdzTWFwIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDRVRvU3RyaW5nc01hcCkKLSNkZWZpbmUgQ0ZhY3RvcnkgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENGYWN0b3J5KQotI2RlZmluZSBDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2FsZW5kYXIpCi0jZGVmaW5lIENhbGVuZGFyQXN0cm9ub21lciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2FsZW5kYXJBc3Ryb25vbWVyKQotI2RlZmluZSBDYWxlbmRhckNhY2hlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckNhY2hlKQotI2RlZmluZSBDYWxlbmRhckRh
dGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyRGF0YSkKLSNkZWZpbmUgQ2FsZW5k
YXJTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhclNlcnZpY2UpCi0jZGVm
aW5lIENhbm9uSXRlckRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uSXRlckRhdGEp
Ci0jZGVmaW5lIENhbm9uSXRlckRhdGFTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENhbm9uSXRlckRhdGFTaW5nbGV0b24pCi0jZGVmaW5lIENhbm9uTWFya0ZpbHRlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2Fub25NYXJrRmlsdGVyKQotI2RlZmluZSBDYW5vblNoYXBpbmcg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uU2hhcGluZykKLSNkZWZpbmUgQ2Fub25pY2Fs
SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uaWNhbEl0ZXJhdG9yKQotI2Rl
ZmluZSBDYXNlTWFwVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhc2VN
YXBUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9u
Rm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1
YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
aW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBDaGFp
bmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDNTdWJ0YWJsZSkK
LSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlKQot
I2RlZmluZSBDaGFyU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyU3RyaW5nKQot
I2RlZmluZSBDaGFyU3Vic3RpdHV0aW9uRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGFyU3Vic3RpdHV0aW9uRmlsdGVyKQotI2RlZmluZSBDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcmFjdGVySXRlcmF0b3IpCi0jZGVmaW5lIENoYXJhY3Rlck5v
ZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJhY3Rlck5vZGUpCi0jZGVmaW5lIENoYXJz
ZXREZXRlY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldERldGVjdG9yKQotI2Rl
ZmluZSBDaGFyc2V0TWF0Y2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRNYXRjaCkK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ18yMDIyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfMjAyMkNOIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMkNOKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfMjAy
MkpQIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMkpQKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfMjAyMktSIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfMjAyMktSKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8x
X2RhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2RhKQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfODg1OV8xX2RlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2VuIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2VuKQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfODg1OV8xX2VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
ODg1OV8xX2VzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX2ZyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2ZyKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
ODg1OV8xX2l0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX2l0
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX25sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV8xX25sKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX25v
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX25vKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfODg1OV8xX3B0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0
UmVjb2dfODg1OV8xX3B0KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8xX3N2IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8xX3N2KQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfODg1OV8yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8y
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX2NzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV8yX2NzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX2h1
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8yX2h1KQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfODg1OV8yX3BsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0
UmVjb2dfODg1OV8yX3BsKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV8yX3JvIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV8yX3JvKQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfODg1OV81IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV81
KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV81X3J1IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV81X3J1KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV82IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV82KQotI2RlZmluZSBDaGFy
c2V0UmVjb2dfODg1OV82X2FyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
ODg1OV82X2FyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV83IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV83KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV83
X2VsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV83X2VsKQotI2Rl
ZmluZSBDaGFyc2V0UmVjb2dfODg1OV84IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0
UmVjb2dfODg1OV84KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfODg1OV84X0lfaGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzhfSV9oZSkKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nXzg4NTlfOF9oZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4
NTlfOF9oZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOV90
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOV90cikKLSNkZWZp
bmUgQ2hhcnNldFJlY29nX0lCTTQyMF9hciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nX0lCTTQyMF9hcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyMF9hcl9sdHIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXJfbHRyKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX3J0bCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nX0lCTTQyMF9hcl9ydGwpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjRfaGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGUpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ19JQk00MjRfaGVfbHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfSUJNNDI0X2hlX2x0cikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9y
dGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjRfaGVfcnRsKQot
I2RlZmluZSBDaGFyc2V0UmVjb2dfS09JOF9SIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFy
c2V0UmVjb2dfS09JOF9SKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGOCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VURjgpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZf
MTZfQkUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMTZfQkUpCi0j
ZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMTZfTEUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ19VVEZfMTZfTEUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMzIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMzIpCi0jZGVmaW5lIENoYXJzZXRS
ZWNvZ19VVEZfMzJfQkUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEZf
MzJfQkUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19VVEZfMzJfTEUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoYXJzZXRSZWNvZ19VVEZfMzJfTEUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19Vbmlj
b2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVW5pY29kZSkKLSNkZWZp
bmUgQ2hhcnNldFJlY29nX2JpZzUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z19iaWc1KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfZXVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfZXVjKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfZXVjX2pwIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZXVjX2pwKQotI2RlZmluZSBDaGFyc2V0UmVj
b2dfZXVjX2tyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZXVjX2tyKQot
I2RlZmluZSBDaGFyc2V0UmVjb2dfZ2JfMTgwMzAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ19nYl8xODAzMCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX21iY3MgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19tYmNzKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
c2JjcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3NiY3MpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ19zamlzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
c2ppcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X3dpbmRvd3NfMTI1NiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3dpbmRv
d3NfMTI1NikKLSNkZWZpbmUgQ2hhcnNldFJlY29nbml6ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYXJzZXRSZWNvZ25pemVyKQotI2RlZmluZSBDaGVja2VkQXJyYXlCeXRlU2luayBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hlY2tlZEFycmF5Qnl0ZVNpbmspCi0jZGVmaW5lIENoaW5l
c2VDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hpbmVzZUNhbGVuZGFyKQotI2Rl
ZmluZSBDaG9pY2VGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENob2ljZUZvcm1hdCkK
LSNkZWZpbmUgQ2xhc3NEZWZGb3JtYXQxVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENs
YXNzRGVmRm9ybWF0MVRhYmxlKQotI2RlZmluZSBDbGFzc0RlZkZvcm1hdDJUYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZGb3JtYXQyVGFibGUpCi0jZGVmaW5lIENsYXNzRGVm
aW5pdGlvblRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFzc0RlZmluaXRpb25UYWJs
ZSkKLSNkZWZpbmUgQ2xvY2tNYXRoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbG9ja01hdGgp
Ci0jZGVmaW5lIENvbGxEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsRGF0YSkKLSNk
ZWZpbmUgQ29sbERhdGFDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGFDYWNo
ZSkKLSNkZWZpbmUgQ29sbERhdGFDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b2xsRGF0YUNhY2hlRW50cnkpCi0jZGVmaW5lIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKQotI2RlZmluZSBD
b2xsYXRpb25LZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbktleSkKLSNkZWZp
bmUgQ29sbGF0aW9uTG9jYWxlTGlzdEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDb2xsYXRpb25Mb2NhbGVMaXN0RW51bWVyYXRpb24pCi0jZGVmaW5lIENvbGxhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsYXRvcikKLSNkZWZpbmUgQ29sbGF0b3JGYWN0b3J5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsYXRvckZhY3RvcnkpCi0jZGVmaW5lIENvbXBhY3RU
cmllRGljdGlvbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRyaWVEaWN0aW9u
YXJ5KQotI2RlZmluZSBDb21wYWN0VHJpZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb21wYWN0VHJpZUVudW1lcmF0aW9uKQotI2RlZmluZSBDb21wb3NlTm9ybWFsaXplcjIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBvc2VOb3JtYWxpemVyMikKLSNkZWZpbmUgQ29t
cG91bmRUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcG91bmRUcmFu
c2xpdGVyYXRvcikKLSNkZWZpbmUgQ29uZnVzYWJsZWRhdGFCdWlsZGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDb25mdXNhYmxlZGF0YUJ1aWxkZXIpCi0jZGVmaW5lIENvbnRleHR1YWxHbHlw
aFN1YnN0aXR1dGlvblByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVh
bEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vzc29yKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0
aW9uQmFzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29udGV4dHVhbFN1YnN0aXR1dGlvbkJh
c2UpCi0jZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUp
Ci0jZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUpCi0j
ZGVmaW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUpCi0jZGVm
aW5lIENvbnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBDb3B0aWNDYWxlbmRh
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29wdGljQ2FsZW5kYXIpCi0jZGVmaW5lIENvdmVy
YWdlRm9ybWF0MVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZvcm1hdDFU
YWJsZSkKLSNkZWZpbmUgQ292ZXJhZ2VGb3JtYXQyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENvdmVyYWdlRm9ybWF0MlRhYmxlKQotI2RlZmluZSBDb3ZlcmFnZVRhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZVRhYmxlKQotI2RlZmluZSBDdXJyZW5jeUFtb3VudCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lBbW91bnQpCi0jZGVmaW5lIEN1cnJlbmN5
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeUZvcm1hdCkKLSNkZWZpbmUg
Q3VycmVuY3lQbHVyYWxJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDdXJyZW5jeVBsdXJh
bEluZm8pCi0jZGVmaW5lIEN1cnJlbmN5VW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3Vy
cmVuY3lVbml0KQotI2RlZmluZSBDdXJzaXZlQXR0YWNobWVudFN1YnRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDdXJzaXZlQXR0YWNobWVudFN1YnRhYmxlKQotI2RlZmluZSBEVFJlZHVu
ZGFudEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEVFJlZHVuZGFudEVudW1l
cmF0aW9uKQotI2RlZmluZSBEVFNrZWxldG9uRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKERUU2tlbGV0b25FbnVtZXJhdGlvbikKLSNkZWZpbmUgRGF0ZUZvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoRGF0ZUZvcm1hdCkKLSNkZWZpbmUgRGF0ZUZvcm1hdFN5bWJvbHMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVGb3JtYXRTeW1ib2xzKQotI2RlZmluZSBEYXRl
SW50ZXJ2YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVJbnRlcnZhbCkKLSNkZWZpbmUg
RGF0ZUludGVydmFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxG
b3JtYXQpCi0jZGVmaW5lIERhdGVJbnRlcnZhbEluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KERhdGVJbnRlcnZhbEluZm8pCi0jZGVmaW5lIERhdGVUaW1lTWF0Y2hlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRGF0ZVRpbWVNYXRjaGVyKQotI2RlZmluZSBEYXRlVGltZVBhdHRlcm5HZW5l
cmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lUGF0dGVybkdlbmVyYXRvcikK
LSNkZWZpbmUgRGF0ZVRpbWVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZVJ1
bGUpCi0jZGVmaW5lIERlY2ltYWxGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY2lt
YWxGb3JtYXQpCi0jZGVmaW5lIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShEZWNpbWFsRm9ybWF0U3ltYm9scykKLSNkZWZpbmUgRGVjb21wb3NlTm9ybWFsaXpl
cjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlY29tcG9zZU5vcm1hbGl6ZXIyKQotI2RlZmlu
ZSBEZWZhdWx0Q2FsZW5kYXJGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWZhdWx0
Q2FsZW5kYXJGYWN0b3J5KQotI2RlZmluZSBEZWZhdWx0Q2hhck1hcHBlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRGVmYXVsdENoYXJNYXBwZXIpCi0jZGVmaW5lIERldmljZVRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShEZXZpY2VUYWJsZSkKLSNkZWZpbmUgRGljdGlvbmFyeUJyZWFr
RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEaWN0aW9uYXJ5QnJlYWtFbmdpbmUpCi0j
ZGVmaW5lIERpZ2l0TGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGlnaXRMaXN0KQotI2Rl
ZmluZSBEaXN0YW5jZUluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERpc3RhbmNlSW5mbykK
LSNkZWZpbmUgRW51bVRvT2Zmc2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFbnVtVG9PZmZz
ZXQpCi0jZGVmaW5lIEVycm9yQ29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXJyb3JDb2Rl
KQotI2RlZmluZSBFc2NhcGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RXNjYXBlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIEV0aGlvcGljQ2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEV0aGlvcGljQ2FsZW5kYXIpCi0jZGVmaW5lIEV2ZW50TGlzdGVuZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEV2ZW50TGlzdGVuZXIpCi0jZGVmaW5lIEV4dGVuc2lv
blN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFeHRlbnNpb25TdWJ0YWJsZSkKLSNk
ZWZpbmUgRkNETm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZDRE5vcm1hbGl6
ZXIyKQotI2RlZmluZSBGQ0RUcmllU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShG
Q0RUcmllU2luZ2xldG9uKQotI2RlZmluZSBGZWF0dXJlTGlzdFRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGZWF0dXJlTGlzdFRhYmxlKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uKQotI2RlZmluZSBGaWVsZFBvc2l0aW9u
SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbkhhbmRsZXIpCi0j
ZGVmaW5lIEZpZWxkUG9zaXRpb25JdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmll
bGRQb3NpdGlvbkl0ZXJhdG9yKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uSXRlcmF0b3JIYW5kbGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uSXRlcmF0b3JIYW5kbGVyKQot
I2RlZmluZSBGaWVsZFBvc2l0aW9uT25seUhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEZpZWxkUG9zaXRpb25Pbmx5SGFuZGxlcikKLSNkZWZpbmUgRmlsdGVyZWROb3JtYWxpemVyMiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmlsdGVyZWROb3JtYWxpemVyMikKLSNkZWZpbmUgRm9u
dFJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvbnRSdW5zKQotI2RlZmluZSBGb3JtYXQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdCkKLSNkZWZpbmUgRm9ybWF0MUFuY2hvclRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQxQW5jaG9yVGFibGUpCi0jZGVmaW5l
IEZvcm1hdDJBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0MkFuY2hv
clRhYmxlKQotI2RlZmluZSBGb3JtYXQzQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZvcm1hdDNBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0TmFtZUVudW1lcmF0aW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXROYW1lRW51bWVyYXRpb24pCi0jZGVmaW5lIEZv
cm1hdFBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0UGFyc2VyKQotI2RlZmlu
ZSBGb3JtYXR0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0dGFibGUpCi0jZGVm
aW5lIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBGb3J3YXJkVVRyaWUyU3RyaW5nSXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcndhcmRVVHJpZTJTdHJpbmdJdGVyYXRvcikK
LSNkZWZpbmUgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uKQotI2RlZmluZSBGdW5jdGlvblJlcGxhY2Vy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGdW5jdGlvblJlcGxhY2VyKQotI2RlZmluZSBHREVG
TWFya0ZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR0RFRk1hcmtGaWx0ZXIpCi0jZGVm
aW5lIEdYTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHWExheW91dEVuZ2lu
ZSkKLSNkZWZpbmUgR2x5cGhEZWZpbml0aW9uVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEdseXBoRGVmaW5pdGlvblRhYmxlSGVhZGVyKQotI2RlZmluZSBHbHlwaEl0ZXJhdG9y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaEl0ZXJhdG9yKQotI2RlZmluZSBHbHlwaExv
b2t1cFRhYmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaExvb2t1cFRhYmxl
SGVhZGVyKQotI2RlZmluZSBHbHlwaFBvc2l0aW9uQWRqdXN0bWVudHMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEdseXBoUG9zaXRpb25BZGp1c3RtZW50cykKLSNkZWZpbmUgR2x5cGhQb3NpdGlv
bmluZ0xvb2t1cFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlv
bmluZ0xvb2t1cFByb2Nlc3NvcikKLSNkZWZpbmUgR2x5cGhQb3NpdGlvbmluZ1RhYmxlSGVhZGVy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uaW5nVGFibGVIZWFkZXIpCi0j
ZGVmaW5lIEdseXBoU3Vic3RpdHV0aW9uTG9va3VwUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShHbHlwaFN1YnN0aXR1dGlvbkxvb2t1cFByb2Nlc3NvcikKLSNkZWZpbmUgR2x5cGhT
dWJzdGl0dXRpb25UYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhTdWJz
dGl0dXRpb25UYWJsZUhlYWRlcikKLSNkZWZpbmUgR29vZFN1ZmZpeFRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShHb29kU3VmZml4VGFibGUpCi0jZGVmaW5lIEdyZWdvIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShHcmVnbykKLSNkZWZpbmUgR3JlZ29yaWFuQ2FsZW5kYXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEdyZWdvcmlhbkNhbGVuZGFyKQotI2RlZmluZSBIYW5PcGVuVHlwZUxh
eW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSGFuT3BlblR5cGVMYXlvdXRFbmdp
bmUpCi0jZGVmaW5lIEhhbmd1bE9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShIYW5ndWxPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSGVicmV3Q2FsZW5k
YXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEhlYnJld0NhbGVuZGFyKQotI2RlZmluZSBJQ1VC
cmVha0l0ZXJhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQnJlYWtJdGVy
YXRvckZhY3RvcnkpCi0jZGVmaW5lIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShJQ1VCcmVha0l0ZXJhdG9yU2VydmljZSkKLSNkZWZpbmUgSUNVQ29sbGF0
b3JGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VDb2xsYXRvckZhY3RvcnkpCi0j
ZGVmaW5lIElDVUNvbGxhdG9yU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQ29s
bGF0b3JTZXJ2aWNlKQotI2RlZmluZSBJQ1VEYXRhVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElDVURhdGFUYWJsZSkKLSNkZWZpbmUgSUNVTGFuZ3VhZ2VCcmVha0ZhY3RvcnkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKElDVUxhbmd1YWdlQnJlYWtGYWN0b3J5KQotI2RlZmluZSBJQ1VM
b2NhbGVTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VMb2NhbGVTZXJ2aWNlKQot
I2RlZmluZSBJQ1VOb3RpZmllciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTm90aWZpZXIp
Ci0jZGVmaW5lIElDVU51bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KElDVU51bWJlckZvcm1hdEZhY3RvcnkpCi0jZGVmaW5lIElDVU51bWJlckZvcm1hdFNlcnZpY2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVU51bWJlckZvcm1hdFNlcnZpY2UpCi0jZGVmaW5l
IElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVUmVz
b3VyY2VCdW5kbGVGYWN0b3J5KQotI2RlZmluZSBJQ1VTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShJQ1VTZXJ2aWNlKQotI2RlZmluZSBJQ1VTZXJ2aWNlRmFjdG9yeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoSUNVU2VydmljZUZhY3RvcnkpCi0jZGVmaW5lIElDVVNlcnZpY2VLZXkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2VLZXkpCi0jZGVmaW5lIElDVV9VdGls
aXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VfVXRpbGl0eSkKLSNkZWZpbmUgSUROQSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUROQSkKLSNkZWZpbmUgSW5kaWFuQ2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGlhbkNhbGVuZGFyKQotI2RlZmluZSBJbmRpY0NsYXNz
VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljQ2xhc3NUYWJsZSkKLSNkZWZpbmUg
SW5kaWNPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNP
cGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgSW5kaWNSZWFycmFuZ2VtZW50UHJvY2Vzc29y
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY1JlYXJyYW5nZW1lbnRQcm9jZXNzb3IpCi0j
ZGVmaW5lIEluZGljUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNSZW9y
ZGVyaW5nKQotI2RlZmluZSBJbml0aWFsVGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShJbml0aWFsVGltZVpvbmVSdWxlKQotI2RlZmluZSBJbnB1dFRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKElucHV0VGV4dCkKLSNkZWZpbmUgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24pCi0jZGVm
aW5lIElzbGFtaWNDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSXNsYW1pY0NhbGVu
ZGFyKQotI2RlZmluZSBJdGVyYXRlZENoYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEl0ZXJh
dGVkQ2hhcikKLSNkZWZpbmUgSmFwYW5lc2VDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoSmFwYW5lc2VDYWxlbmRhcikKLSNkZWZpbmUgS2VyblRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShLZXJuVGFibGUpCi0jZGVmaW5lIEtleXdvcmRFbnVtZXJhdGlvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoS2V5d29yZEVudW1lcmF0aW9uKQotI2RlZmluZSBLaG1lckNsYXNzVGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyQ2xhc3NUYWJsZSkKLSNkZWZpbmUgS2ht
ZXJPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2htZXJPcGVu
VHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgS2htZXJSZW9yZGVyaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShLaG1lclJlb3JkZXJpbmcpCi0jZGVmaW5lIExFQ2hhck1hcHBlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTEVDaGFyTWFwcGVyKQotI2RlZmluZSBMRUZvbnRJbnN0YW5jZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVGb250SW5zdGFuY2UpCi0jZGVmaW5lIExFR2x5cGhG
aWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFR2x5cGhGaWx0ZXIpCi0jZGVmaW5lIExF
R2x5cGhTdG9yYWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUdseXBoU3RvcmFnZSkKLSNk
ZWZpbmUgTEVJbnNlcnRpb25DYWxsYmFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNl
cnRpb25DYWxsYmFjaykKLSNkZWZpbmUgTEVJbnNlcnRpb25MaXN0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShMRUluc2VydGlvbkxpc3QpCi0jZGVmaW5lIExYVXRpbGl0aWVzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShMWFV0aWxpdGllcykKLSNkZWZpbmUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGFuZ3VhZ2VCcmVha0VuZ2luZSkKLSNkZWZpbmUgTGFu
Z3VhZ2VCcmVha0ZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExhbmd1YWdlQnJlYWtG
YWN0b3J5KQotI2RlZmluZSBMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExh
eW91dEVuZ2luZSkKLSNkZWZpbmUgTGlnYXR1cmVTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKExpZ2F0dXJlU3Vic3RpdHV0aW9uUHJvY2Vzc29yKQotI2RlZmlu
ZSBMaWdhdHVyZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShM
aWdhdHVyZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBMb2NEYXRhUGFyc2VyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShMb2NEYXRhUGFyc2VyKQotI2RlZmluZSBMb2NhbGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZSkKLSNkZWZpbmUgTG9jYWxlQmFzZWQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKExvY2FsZUJhc2VkKQotI2RlZmluZSBMb2NhbGVEaXNwbGF5TmFtZXMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZURpc3BsYXlOYW1lcykKLSNkZWZpbmUgTG9j
YWxlRGlzcGxheU5hbWVzSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlRGlzcGxh
eU5hbWVzSW1wbCkKLSNkZWZpbmUgTG9jYWxlS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShM
b2NhbGVLZXkpCi0jZGVmaW5lIExvY2FsZUtleUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExvY2FsZUtleUZhY3RvcnkpCi0jZGVmaW5lIExvY2FsZVJ1bnMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExvY2FsZVJ1bnMpCi0jZGVmaW5lIExvY2FsZVV0aWxpdHkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKExvY2FsZVV0aWxpdHkpCi0jZGVmaW5lIExvY2FsaXphdGlvbkluZm8gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsaXphdGlvbkluZm8pCi0jZGVmaW5lIExvb2t1cExp
c3RUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9va3VwTGlzdFRhYmxlKQotI2RlZmlu
ZSBMb29rdXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cFByb2Nlc3Nv
cikKLSNkZWZpbmUgTG9va3VwU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1
cFN1YnRhYmxlKQotI2RlZmluZSBMb29rdXBUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TG9va3VwVGFibGUpCi0jZGVmaW5lIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShMb3dlcmNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTVByZUZpeHVw
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTVByZUZpeHVwcykKLSNkZWZpbmUgTWFya0FycmF5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrQXJyYXkpCi0jZGVmaW5lIE1hcmtUb0Jhc2VQ
b3NpdGlvbmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrVG9CYXNlUG9z
aXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWFya1RvTGlnYXR1cmVQb3NpdGlvbmluZ1N1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNYXJrVG9MaWdhdHVyZVBvc2l0aW9uaW5nU3Vi
dGFibGUpCi0jZGVmaW5lIE1hcmtUb01hcmtQb3NpdGlvbmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShNYXJrVG9NYXJrUG9zaXRpb25pbmdTdWJ0YWJsZSkKLSNkZWZpbmUgTWVh
c3VyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVhc3VyZSkKLSNkZWZpbmUgTWVhc3VyZUZv
cm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVhc3VyZUZvcm1hdCkKLSNkZWZpbmUgTWVh
c3VyZVVuaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmVVbml0KQotI2RlZmluZSBN
ZXNzYWdlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZXNzYWdlRm9ybWF0KQotI2Rl
ZmluZSBNZXNzYWdlRm9ybWF0QWRhcHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVzc2Fn
ZUZvcm1hdEFkYXB0ZXIpCi0jZGVmaW5lIE1vZHVsdXNTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE1vZHVsdXNTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE1vb25SaXNlU2V0Q29v
cmRGdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb29uUmlzZVNldENvb3JkRnVuYykKLSNk
ZWZpbmUgTW9vblRpbWVBbmdsZUZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1vb25UaW1l
QW5nbGVGdW5jKQotI2RlZmluZSBNb3JwaFN1YnRhYmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShNb3JwaFN1YnRhYmxlSGVhZGVyKQotI2RlZmluZSBNb3JwaFRhYmxlSGVhZGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb3JwaFRhYmxlSGVhZGVyKQotI2RlZmluZSBNdWx0aXBs
ZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdWx0aXBsZVN1
YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKQotI2RlZmluZSBNdXRh
YmxlVHJpZURpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11dGFibGVUcmllRGlj
dGlvbmFyeSkKLSNkZWZpbmUgTXV0YWJsZVRyaWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTXV0YWJsZVRyaWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgTkZGYWN0b3J5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShORkZhY3RvcnkpCi0jZGVmaW5lIE5GS0RCdWZmZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE5GS0RCdWZmZXIpCi0jZGVmaW5lIE5GUnVsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTkZSdWxlKQotI2RlZmluZSBORlJ1bGVTZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE5GUnVsZVNldCkKLSNkZWZpbmUgTkZTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE5GU3Vic3RpdHV0aW9uKQotI2RlZmluZSBOR3JhbVBhcnNlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTkdyYW1QYXJzZXIpCi0jZGVmaW5lIE5hbWVUb0VudW0gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE5hbWVUb0VudW0pCi0jZGVmaW5lIE5hbWVVbmljb2RlVHJhbnNs
aXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIE5vbkNvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9uQ29udGV4dHVhbEdseXBoU3Vic3RpdHV0aW9uUHJvY2Vz
c29yKQotI2RlZmluZSBOb25Db250aWd1b3VzRW51bVRvT2Zmc2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShOb25Db250aWd1b3VzRW51bVRvT2Zmc2V0KQotI2RlZmluZSBOb29wTm9ybWFsaXpl
cjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vb3BOb3JtYWxpemVyMikKLSNkZWZpbmUgTm9y
bTJBbGxNb2RlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybTJBbGxNb2RlcykKLSNkZWZp
bmUgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
b3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE5vcm1hbGl6ZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyMikKLSNkZWZpbmUgTm9ybWFsaXplcjJGYWN0b3J5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyMkZhY3RvcnkpCi0jZGVmaW5lIE5v
cm1hbGl6ZXIySW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJJbXBsKQot
I2RlZmluZSBOb3JtYWxpemVyMldpdGhJbXBsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3Jt
YWxpemVyMldpdGhJbXBsKQotI2RlZmluZSBOdWxsU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShOdWxsU3Vic3RpdHV0aW9uKQotI2RlZmluZSBOdWxsVHJhbnNsaXRlcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bGxUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgTnVt
YmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJGb3JtYXQpCi0jZGVmaW5l
IE51bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bWJlckZvcm1h
dEZhY3RvcnkpCi0jZGVmaW5lIE51bWJlcmluZ1N5c3RlbSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTnVtYmVyaW5nU3lzdGVtKQotI2RlZmluZSBOdW1lcmF0b3JTdWJzdGl0dXRpb24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE51bWVyYXRvclN1YnN0aXR1dGlvbikKLSNkZWZpbmUgT2xzb25U
aW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoT2xzb25UaW1lWm9uZSkKLSNkZWZpbmUg
T3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9wZW5UeXBlTGF5
b3V0RW5naW5lKQotI2RlZmluZSBPcGVuVHlwZVV0aWxpdGllcyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoT3BlblR5cGVVdGlsaXRpZXMpCi0jZGVmaW5lIE9yQ29uc3RyYWludCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoT3JDb25zdHJhaW50KQotI2RlZmluZSBQQ0VCdWZmZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFBDRUJ1ZmZlcikKLSNkZWZpbmUgUGFpclBvc2l0aW9uaW5nRm9ybWF0
MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYWlyUG9zaXRpb25pbmdGb3JtYXQx
U3VidGFibGUpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUGFpclBvc2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlKQotI2RlZmlu
ZSBQYWlyUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFpclBv
c2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIFBhcmFncmFwaExheW91dCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoUGFyYWdyYXBoTGF5b3V0KQotI2RlZmluZSBQYXJzZURhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFBhcnNlRGF0YSkKLSNkZWZpbmUgUGFyc2VQb3NpdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUGFyc2VQb3NpdGlvbikKLSNkZWZpbmUgUGF0dGVybk1hcCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUGF0dGVybk1hcCkKLSNkZWZpbmUgUGF0dGVybk1hcEl0ZXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXR0ZXJuTWFwSXRlcmF0b3IpCi0jZGVmaW5l
IFBlcnNpYW5DYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGVyc2lhbkNhbGVuZGFy
KQotI2RlZmluZSBQbHVyYWxGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBsdXJhbEZv
cm1hdCkKLSNkZWZpbmUgUGx1cmFsS2V5d29yZEVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShQbHVyYWxLZXl3b3JkRW51bWVyYXRpb24pCi0jZGVmaW5lIFBsdXJhbFJ1bGVzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQbHVyYWxSdWxlcykKLSNkZWZpbmUgUHJvcGVydHlBbGlh
c2VzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQcm9wZXJ0eUFsaWFzZXMpCi0jZGVmaW5lIFB0
bkVsZW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFB0bkVsZW0pCi0jZGVmaW5lIFB0blNrZWxl
dG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQdG5Ta2VsZXRvbikKLSNkZWZpbmUgUXVhbnRp
ZmllciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUXVhbnRpZmllcikKLSNkZWZpbmUgUkJCSURh
dGFXcmFwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJRGF0YVdyYXBwZXIpCi0jZGVm
aW5lIFJCQklOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJTm9kZSkKLSNkZWZpbmUg
UkJCSVJ1bGVCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJUnVsZUJ1aWxkZXIp
Ci0jZGVmaW5lIFJCQklSdWxlU2Nhbm5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVJ1
bGVTY2FubmVyKQotI2RlZmluZSBSQkJJU2V0QnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoUkJCSVNldEJ1aWxkZXIpCi0jZGVmaW5lIFJCQklTdGF0ZURlc2NyaXB0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFJCQklTdGF0ZURlc2NyaXB0b3IpCi0jZGVmaW5lIFJCQklTeW1ib2xU
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN5bWJvbFRhYmxlKQotI2RlZmluZSBS
QkJJU3ltYm9sVGFibGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVN5bWJvbFRh
YmxlRW50cnkpCi0jZGVmaW5lIFJCQklUYWJsZUJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJCQklUYWJsZUJ1aWxkZXIpCi0jZGVmaW5lIFJDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUkNFQnVmZmVyKQotI2RlZmluZSBSYW5nZURlc2NyaXB0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFJhbmdlRGVzY3JpcHRvcikKLSNkZWZpbmUgUmVnZXhDb21waWxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShSZWdleENvbXBpbGUpCi0jZGVmaW5lIFJlZ2V4TWF0Y2hlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhNYXRjaGVyKQotI2RlZmluZSBSZWdleFBhdHRl
cm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ2V4UGF0dGVybikKLSNkZWZpbmUgUmVnZXhT
dGF0aWNTZXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWdleFN0YXRpY1NldHMpCi0jZGVm
aW5lIFJlZ3VsYXJFeHByZXNzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWd1bGFyRXhw
cmVzc2lvbikKLSNkZWZpbmUgUmVsYXRpdmVEYXRlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShSZWxhdGl2ZURhdGVGb3JtYXQpCi0jZGVmaW5lIFJlbW92ZVRyYW5zbGl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZW1vdmVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgUmVv
cmRlcmluZ0J1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVvcmRlcmluZ0J1ZmZlcikK
LSNkZWZpbmUgUmVwbGFjZWFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlcGxhY2VhYmxl
KQotI2RlZmluZSBSZXBsYWNlYWJsZUdsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlcGxh
Y2VhYmxlR2x1ZSkKLSNkZWZpbmUgUmVzb3VyY2VCdW5kbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJlc291cmNlQnVuZGxlKQotI2RlZmluZSBSaXNlU2V0Q29vcmRGdW5jIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSaXNlU2V0Q29vcmRGdW5jKQotI2RlZmluZSBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKQot
I2RlZmluZSBSdWxlQmFzZWRDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJh
c2VkQ29sbGF0b3IpCi0jZGVmaW5lIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoUnVsZUJhc2VkTnVtYmVyRm9ybWF0KQotI2RlZmluZSBSdWxlQmFzZWRUaW1l
Wm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkVGltZVpvbmUpCi0jZGVmaW5l
IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlQmFz
ZWRUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgUnVsZUNoYWluIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShSdWxlQ2hhaW4pCi0jZGVmaW5lIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUnVsZUNoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBSdWxlSGFsZiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUhhbGYpCi0jZGVmaW5lIFJ1bGVQYXJzZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVQYXJzZXIpCi0jZGVmaW5lIFJ1bkFycmF5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShSdW5BcnJheSkKLSNkZWZpbmUgU1BVU3RyaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShTUFVTdHJpbmcpCi0jZGVmaW5lIFNQVVN0cmluZ1Bvb2wgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNQVVN0cmluZ1Bvb2wpCi0jZGVmaW5lIFNhZmVab25lU3RyaW5n
Rm9ybWF0UHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTYWZlWm9uZVN0cmluZ0Zvcm1hdFB0
cikKLSNkZWZpbmUgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTYW1lVmFsdWVTdWJzdGl0dXRpb24pCi0jZGVmaW5lIFNjcmlwdExpc3RUYWJsZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0TGlzdFRhYmxlKQotI2RlZmluZSBTY3JpcHRSdW5JdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0UnVuSXRlcmF0b3IpCi0jZGVmaW5l
IFNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0U2V0KQotI2RlZmluZSBT
Y3JpcHRUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2NyaXB0VGFibGUpCi0jZGVmaW5l
IFNlYXJjaEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZWFyY2hJdGVyYXRvcikK
LSNkZWZpbmUgU2VnbWVudEFycmF5UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
ZWdtZW50QXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFNlZ21lbnRTaW5nbGVQcm9jZXNzb3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlZ21lbnRTaW5nbGVQcm9jZXNzb3IpCi0jZGVmaW5lIFNl
bGVjdEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VsZWN0Rm9ybWF0KQotI2RlZmlu
ZSBTZXJ2aWNlRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlcnZpY2VFbnVt
ZXJhdGlvbikKLSNkZWZpbmUgU2VydmljZUxpc3RlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShTZXJ2aWNlTGlzdGVuZXIpCi0jZGVmaW5lIFNpbXBsZUFycmF5UHJvY2Vzc29yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShTaW1wbGVBcnJheVByb2Nlc3NvcikKLSNkZWZpbmUgU2ltcGxlRGF0
ZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlRGF0ZUZvcm1hdCkKLSNkZWZp
bmUgU2ltcGxlRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlRmFjdG9yeSkK
LSNkZWZpbmUgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U2ltcGxlTG9jYWxlS2V5RmFjdG9yeSkKLSNkZWZpbmUgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9y
eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSkKLSNk
ZWZpbmUgU2ltcGxlU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW1wbGVTaW5n
bGV0b24pCi0jZGVmaW5lIFNpbXBsZVRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
aW1wbGVUaW1lWm9uZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQxU3VidGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxl
KQotI2RlZmluZSBTaW5nbGVQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFNp
bmdsZVBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBv
c2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MVN1
YnRhYmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNk
ZWZpbmUgU2luZ2xlU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFNpbmdsZVN1YnN0aXR1dGlvblN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVUYWJsZVByb2Nlc3Nv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2luZ2xlVGFibGVQcm9jZXNzb3IpCi0jZGVmaW5l
IFNwb29mRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Bvb2ZEYXRhKQotI2RlZmluZSBT
cG9vZkltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNwb29mSW1wbCkKLSNkZWZpbmUgU3Rh
dGVUYWJsZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RhdGVUYWJsZVByb2Nl
c3NvcikKLSNkZWZpbmUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBTdHJpbmdFbnVtZXJhdGlv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nRW51bWVyYXRpb24pCi0jZGVmaW5lIFN0
cmluZ0xpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0xpc3QpCi0jZGVmaW5lIFN0
cmluZ0xvY2FsaXphdGlvbkluZm8gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0xvY2Fs
aXphdGlvbkluZm8pCi0jZGVmaW5lIFN0cmluZ01hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFN0cmluZ01hdGNoZXIpCi0jZGVmaW5lIFN0cmluZ1BhaXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFN0cmluZ1BhaXIpCi0jZGVmaW5lIFN0cmluZ1BpZWNlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTdHJpbmdQaWVjZSkKLSNkZWZpbmUgU3RyaW5nUmVwbGFjZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFN0cmluZ1JlcGxhY2VyKQotI2RlZmluZSBTdHJpbmdTZWFyY2ggVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ1NlYXJjaCkKLSNkZWZpbmUgU3RyaW5nVG9DRXNNYXAg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ1RvQ0VzTWFwKQotI2RlZmluZSBTdHlsZVJ1
bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0eWxlUnVucykKLSNkZWZpbmUgU3Vic3RpdHV0
aW9uTG9va3VwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdWJzdGl0dXRpb25Mb29rdXApCi0j
ZGVmaW5lIFN1YnRhYmxlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdWJ0YWJs
ZVByb2Nlc3NvcikKLSNkZWZpbmUgU3VuVGltZUFuZ2xlRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU3VuVGltZUFuZ2xlRnVuYykKLSNkZWZpbmUgU3ltYm9sVGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFN5bWJvbFRhYmxlKQotI2RlZmluZSBUWkVudW1lcmF0aW9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUWkVudW1lcmF0aW9uKQotI2RlZmluZSBUYWl3YW5DYWxlbmRhciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGFpd2FuQ2FsZW5kYXIpCi0jZGVmaW5lIFRhcmdldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGFyZ2V0KQotI2RlZmluZSBUZXJuYXJ5Tm9kZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVGVybmFyeU5vZGUpCi0jZGVmaW5lIFRleHRUcmllTWFwIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUZXh0VHJpZU1hcCkKLSNkZWZpbmUgVGV4dFRyaWVNYXBT
ZWFyY2hSZXN1bHRIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUZXh0VHJpZU1hcFNl
YXJjaFJlc3VsdEhhbmRsZXIpCi0jZGVmaW5lIFRoYWlCcmVha0VuZ2luZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoVGhhaUJyZWFrRW5naW5lKQotI2RlZmluZSBUaGFpTGF5b3V0RW5naW5lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaGFpTGF5b3V0RW5naW5lKQotI2RlZmluZSBUaGFpU2hh
cGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGhhaVNoYXBpbmcpCi0jZGVmaW5lIFRpYmV0
YW5DbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaWJldGFuQ2xhc3NUYWJsZSkK
LSNkZWZpbmUgVGliZXRhbk9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShUaWJldGFuT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIFRpYmV0YW5SZW9yZGVy
aW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaWJldGFuUmVvcmRlcmluZykKLSNkZWZpbmUg
VGltZUFycmF5VGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lQXJyYXlU
aW1lWm9uZVJ1bGUpCi0jZGVmaW5lIFRpbWVVbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
aW1lVW5pdCkKLSNkZWZpbmUgVGltZVVuaXRBbW91bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRpbWVVbml0QW1vdW50KQotI2RlZmluZSBUaW1lVW5pdEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVGltZVVuaXRGb3JtYXQpCi0jZGVmaW5lIFRpbWVab25lIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUaW1lWm9uZSkKLSNkZWZpbmUgVGltZVpvbmVSdWxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUaW1lWm9uZVJ1bGUpCi0jZGVmaW5lIFRpbWVab25lVHJhbnNpdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmVUcmFuc2l0aW9uKQotI2RlZmluZSBUaXRsZWNh
c2VUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGl0bGVjYXNlVHJhbnNs
aXRlcmF0b3IpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1bGUpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGVE
YXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlRGF0YSkKLSNk
ZWZpbmUgVHJhbnNsaXRlcmF0aW9uUnVsZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJh
bnNsaXRlcmF0aW9uUnVsZVNldCkKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvckFsaWFz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvckFsaWFzKQotI2RlZmluZSBU
cmFuc2xpdGVyYXRvckVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRv
ckVudHJ5KQotI2RlZmluZSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShUcmFuc2xpdGVyYXRvcklEUGFyc2VyKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclBh
cnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JQYXJzZXIpCi0jZGVm
aW5lIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5z
bGl0ZXJhdG9yUmVnaXN0cnkpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yU3BlYyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JTcGVjKQotI2RlZmluZSBUcmlTdGF0ZVNpbmds
ZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpU3RhdGVTaW5nbGV0b24pCi0jZGVmaW5l
IFRyaWVXb3JkRGljdGlvbmFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJpZVdvcmREaWN0
aW9uYXJ5KQotI2RlZmluZSBUcmltbWVkQXJyYXlQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRyaW1tZWRBcnJheVByb2Nlc3NvcikKLSNkZWZpbmUgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcikKLSNk
ZWZpbmUgVUNvbGxhdGlvblBDRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVUNvbGxhdGlvblBD
RSkKLSNkZWZpbmUgVURhdGFQYXRoSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVE
YXRhUGF0aEl0ZXJhdG9yKQotI2RlZmluZSBVTG9jUnVucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVUxvY1J1bnMpCi0jZGVmaW5lIFVNZW1vcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVN
ZW1vcnkpCi0jZGVmaW5lIFVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVPYmplY3Qp
Ci0jZGVmaW5lIFVTdGFjayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVN0YWNrKQotI2RlZmlu
ZSBVU3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVTdHJpbmdFbnVt
ZXJhdGlvbikKLSNkZWZpbmUgVVRTNDYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVUUzQ2KQot
I2RlZmluZSBVVHJpZTJTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVUcmllMlNp
bmdsZXRvbikKLSNkZWZpbmUgVVZlY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3Rv
cikKLSNkZWZpbmUgVVZlY3RvcjMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVmVjdG9yMzIp
Ci0jZGVmaW5lIFVWZWN0b3I2NCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3RvcjY0KQot
I2RlZmluZSBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShV
bmVzY2FwZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBVbmhhbmRsZWRFbmdpbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFVuaGFuZGxlZEVuZ2luZSkKLSNkZWZpbmUgVW5pY29kZUFyYWJpY09w
ZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlQXJhYmlj
T3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIFVuaWNvZGVGaWx0ZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFVuaWNvZGVGaWx0ZXIpCi0jZGVmaW5lIFVuaWNvZGVGdW5jdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlRnVuY3RvcikKLSNkZWZpbmUgVW5pY29kZU1hdGNo
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVNYXRjaGVyKQotI2RlZmluZSBVbmlj
b2RlTmFtZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlTmFt
ZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBVbmljb2RlUmVwbGFjZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFVuaWNvZGVSZXBsYWNlcikKLSNkZWZpbmUgVW5pY29kZVNldCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVW5pY29kZVNldCkKLSNkZWZpbmUgVW5pY29kZVNldEl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU2V0SXRlcmF0b3IpCi0jZGVmaW5lIFVuaWNv
ZGVTZXRTdHJpbmdTcGFuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlU2V0U3RyaW5n
U3BhbikKLSNkZWZpbmUgVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5p
Y29kZVN0cmluZykKLSNkZWZpbmUgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBWVFpSZWFkZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZUWlJlYWRlcikKLSNkZWZpbmUgVlRaV3JpdGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWVFpXcml0ZXIpCi0jZGVmaW5lIFZUaW1lWm9uZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVlRpbWVab25lKQotI2RlZmluZSBWYWx1ZVJlY29yZCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVmFsdWVSZWNvcmQpCi0jZGVmaW5lIFZhbHVlUnVucyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVmFsdWVSdW5zKQotI2RlZmluZSBaU0ZDYWNoZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoWlNGQ2FjaGUpCi0jZGVmaW5lIFpTRkNhY2hlRW50cnkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFpTRkNhY2hlRW50cnkpCi0jZGVmaW5lIFpTRlN0cmluZ1Bvb2wg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRlN0cmluZ1Bvb2wpCi0jZGVmaW5lIFpTRlN0cmlu
Z1Bvb2xDaHVuayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWlNGU3RyaW5nUG9vbENodW5rKQot
I2RlZmluZSBab25lTWV0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZU1ldGEpCi0jZGVm
aW5lIFpvbmVTdHJpbmdGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdG
b3JtYXQpCi0jZGVmaW5lIFpvbmVTdHJpbmdJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSha
b25lU3RyaW5nSW5mbykKLSNkZWZpbmUgWm9uZVN0cmluZ1NlYXJjaFJlc3VsdEhhbmRsZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdTZWFyY2hSZXN1bHRIYW5kbGVyKQotI2Rl
ZmluZSBab25lU3RyaW5ncyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ3MpCi0j
ZGVmaW5lIGNvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShjb2xsSXRlcmF0ZSkK
LSNkZWZpbmUgbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwpCi0jZGVmaW5lIHV0aWw2NF9mcm9tRG91
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGlsNjRfZnJvbURvdWJsZSkKLSNkZWZpbmUg
dXRpbDY0X3BvdyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X3BvdykKLSNkZWZpbmUg
dXRpbDY0X3RvdSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X3RvdSkKLQotI2VuZGlm
Ci0jZW5kaWYKLQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91c2NyaXB0LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRl
eCBlZTIxYzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRh
ZmFiNTNmZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VzY3JpcHQuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzY3JpcHQuaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICBDb3B5cmlnaHQgKEMpIDE5
OTctMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3B5cmlnaHQg
KEMpIDE5OTctMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogICogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiAgKgpAQCAtNDQsMTgyICs0NCwzNjkgQEAKICAqIEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBl
ZGVmIGVudW0gVVNjcmlwdENvZGUgeworICAgIC8qCisgICAgICogTm90ZTogVVNjcmlwdENvZGUg
Y29uc3RhbnRzIGFuZCB0aGVpciBJU08gc2NyaXB0IGNvZGUgY29tbWVudHMKKyAgICAgKiBhcmUg
cGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQor
ICAgICAqICAgICBVU0NSSVBUXzxVbmljb2RlIFNjcmlwdCB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2Vy
PiwgIC8gKiA8SVNPIHNjcmlwdCBjb2RlPiAqIC8KKyAgICAgKi8KKworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9JTlZBTElEX0NPREUgPSAtMSwKKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09NTU9OICAgICAgID0gIDAsICAv
KiBaeXl5ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0lO
SEVSSVRFRCAgICA9ICAxLCAgLyogWmluaCAqLyAvKiAiQ29kZSBmb3IgaW5oZXJpdGVkIHNjcmlw
dCIsIGZvciBub24tc3BhY2luZyBjb21iaW5pbmcgbWFya3M7IGFsc28gUWFhaSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9BUkFCSUMgICAgICAgPSAgMiwg
IC8qIEFyYWIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
QVJNRU5JQU4gICAgID0gIDMsICAvKiBBcm1uICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0JFTkdBTEkgICAgICA9ICA0LCAgLyogQmVuZyAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9CT1BPTU9GTyAgICAgPSAgNSwg
IC8qIEJvcG8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
Q0hFUk9LRUUgICAgID0gIDYsICAvKiBDaGVyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0NPUFRJQyAgICAgICA9ICA3LCAgLyogQ29wdCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DWVJJTExJQyAgICAgPSAgOCwg
IC8qIEN5cmwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
REVTRVJFVCAgICAgID0gIDksICAvKiBEc3J0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0RFVkFOQUdBUkkgICA9IDEwLCAgLyogRGV2YSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9FVEhJT1BJQyAgICAgPSAxMSwg
IC8qIEV0aGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
R0VPUkdJQU4gICAgID0gMTIsICAvKiBHZW9yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0dPVEhJQyAgICAgICA9IDEzLCAgLyogR290aCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HUkVFSyAgICAgICAgPSAxNCwg
IC8qIEdyZWsgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
R1VKQVJBVEkgICAgID0gMTUsICAvKiBHdWpyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0dVUk1VS0hJICAgICA9IDE2LCAgLyogR3VydSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IQU4gICAgICAgICAgPSAxNywg
IC8qIEhhbmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
SEFOR1VMICAgICAgID0gMTgsICAvKiBIYW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0hFQlJFVyAgICAgICA9IDE5LCAgLyogSGViciAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ISVJBR0FOQSAgICAgPSAyMCwg
IC8qIEhpcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
S0FOTkFEQSAgICAgID0gMjEsICAvKiBLbmRhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0tBVEFLQU5BICAgICA9IDIyLCAgLyogS2FuYSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LSE1FUiAgICAgICAgPSAyMywg
IC8qIEtobXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
TEFPICAgICAgICAgID0gMjQsICAvKiBMYW9vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX0xBVElOICAgICAgICA9IDI1LCAgLyogTGF0biAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NQUxBWUFMQU0gICAgPSAyNiwg
IC8qIE1seW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
TU9OR09MSUFOICAgID0gMjcsICAvKiBNb25nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX01ZQU5NQVIgICAgICA9IDI4LCAgLyogTXltciAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PR0hBTSAgICAgICAgPSAyOSwg
IC8qIE9nYW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
T0xEX0lUQUxJQyAgID0gMzAsICAvKiBJdGFsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX09SSVlBICAgICAgICA9IDMxLCAgLyogT3J5YSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9SVU5JQyAgICAgICAgPSAzMiwg
IC8qIFJ1bnIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
U0lOSEFMQSAgICAgID0gMzMsICAvKiBTaW5oICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX1NZUklBQyAgICAgICA9IDM0LCAgLyogU3lyYyAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9UQU1JTCAgICAgICAgPSAzNSwg
IC8qIFRhbWwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
VEVMVUdVICAgICAgID0gMzYsICAvKiBUZWx1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgICBVU0NSSVBUX1RIQUFOQSAgICAgICA9IDM3LCAgLyogVGhhYSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USEFJICAgICAgICAgPSAzOCwg
IC8qIFRoYWkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRf
VElCRVRBTiAgICAgID0gMzksICAvKiBUaWJ0ICovCiAgICAgICAvKiogQ2FuYWRpYW5fQWJvcmln
aW5hbCBzY3JpcHQuIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9DQU5BRElBTl9B
Qk9SSUdJTkFMID0gNDAsICAvKiBDYW5zICovCiAgICAgICAvKiogQ2FuYWRpYW5fQWJvcmlnaW5h
bCBzY3JpcHQgKGFsaWFzKS4gQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1VDQVMg
ICAgICAgICA9IFVTQ1JJUFRfQ0FOQURJQU5fQUJPUklHSU5BTCwKKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfWUkgICAgICAgICAgID0gNDEsICAvKiBZaWlpICov
CisgICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDMuMiAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9UQUdBTE9HICAgICAgPSA0MiwgIC8qIFRnbGcg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEFOVU5PTyAg
ICAgID0gNDMsICAvKiBIYW5vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAg
ICBVU0NSSVBUX0JVSElEICAgICAgICA9IDQ0LCAgLyogQnVoZCAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9UQUdCQU5XQSAgICAgPSA0NSwgIC8qIFRhZ2Ig
Ki8KIAotICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0IEBzdGFibGUgSUNVIDIuNiAq
LworICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0ICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX0JSQUlMTEUgICAgICA9IDQ2LCAgLyogQnJhaSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9DWVBSSU9UICAg
ICAgPSA0NywgIC8qIENwcnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAg
IFVTQ1JJUFRfTElNQlUgICAgICAgID0gNDgsICAvKiBMaW1iICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX0xJTkVBUl9CICAgICA9IDQ5LCAgLyogTGluYiAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9PU01BTllBICAg
ICAgPSA1MCwgIC8qIE9zbWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAg
IFVTQ1JJUFRfU0hBVklBTiAgICAgID0gNTEsICAvKiBTaGF3ICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMi42ICovCiAgICAgICBVU0NSSVBUX1RBSV9MRSAgICAgICA9IDUyLCAgLyogVGFsZSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9VR0FSSVRJQyAg
ICAgPSA1MywgIC8qIFVnYXIgKi8KIAogICAgICAgLyoqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmlj
b2RlIDQuMC4xIEBzdGFibGUgSUNVIDMuMCAqLwogICAgICAgVVNDUklQVF9LQVRBS0FOQV9PUl9I
SVJBR0FOQSA9IDU0LC8qSHJrdCAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2Rl
IDQuMSBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUg
NC4xICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0JVR0lO
RVNFICAgICAgPSA1NSwgLyogQnVnaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwog
ICAgICAgVVNDUklQVF9HTEFHT0xJVElDICAgID0gNTYsIC8qIEdsYWcgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfS0hBUk9TSFRISSAgICA9IDU3LCAvKiBL
aGFyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX1NZTE9U
SV9OQUdSSSAgPSA1OCwgLyogU3lsbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwog
ICAgICAgVVNDUklQVF9ORVdfVEFJX0xVRSAgID0gNTksIC8qIFRhbHUgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfVElGSU5BR0ggICAgICA9IDYwLCAvKiBU
Zm5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX09MRF9Q
RVJTSUFOICAgPSA2MSwgLyogWHBlbyAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZy
b20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDMuNiAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2Rl
cyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9CQUxJTkVTRSAgICAgICAgICAgICAgICAgICAgICA9IDYyLCAvKiBCYWxpICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JBVEFLICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjMsIC8qIEJhdGsgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfQkxJU1NZTUJPTFMgICAgICAgICAgICAgICAgICAgPSA2NCwg
LyogQmxpcyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9C
UkFITUkgICAgICAgICAgICAgICAgICAgICAgICA9IDY1LCAvKiBCcmFoICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0NIQU0gICAgICAgICAgICAgICAgICAg
ICAgICAgID0gNjYsIC8qIENoYW0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfQ0lSVEggICAgICAgICAgICAgICAgICAgICAgICAgPSA2NywgLyogQ2lydCAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9PTERfQ0hVUkNI
X1NMQVZPTklDX0NZUklMTElDICA9IDY4LCAvKiBDeXJzICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX0RFTU9USUNfRUdZUFRJQU4gICAgICAgICAgICAgID0g
NjksIC8qIEVneWQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfSElFUkFUSUNfRUdZUFRJQU4gICAgICAgICAgICAgPSA3MCwgLyogRWd5aCAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9FR1lQVElBTl9ISUVST0dMWVBI
UyAgICAgICAgICA9IDcxLCAvKiBFZ3lwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX0tIVVRTVVJJICAgICAgICAgICAgICAgICAgICAgID0gNzIsIC8qIEdl
b2sgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfU0lNUExJ
RklFRF9IQU4gICAgICAgICAgICAgICAgPSA3MywgLyogSGFucyAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9UUkFESVRJT05BTF9IQU4gICAgICAgICAgICAg
ICA9IDc0LCAvKiBIYW50ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBV
U0NSSVBUX1BBSEFXSF9ITU9ORyAgICAgICAgICAgICAgICAgID0gNzUsIC8qIEhtbmcgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX0hVTkdBUklBTiAg
ICAgICAgICAgICAgICAgPSA3NiwgLyogSHVuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
NiAqLwogICAgICAgVVNDUklQVF9IQVJBUFBBTl9JTkRVUyAgICAgICAgICAgICAgICA9IDc3LCAv
KiBJbmRzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0pB
VkFORVNFICAgICAgICAgICAgICAgICAgICAgID0gNzgsIC8qIEphdmEgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0FZQUhfTEkgICAgICAgICAgICAgICAg
ICAgICAgPSA3OSwgLyogS2FsaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9MQVRJTl9GUkFLVFVSICAgICAgICAgICAgICAgICA9IDgwLCAvKiBMYXRmICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0dBRUxJ
QyAgICAgICAgICAgICAgICAgID0gODEsIC8qIExhdGcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTEVQQ0hBICAgICAgICAgICAgICAgICAgICAgICAgPSA4
MiwgLyogTGVwYyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9MSU5FQVJfQSAgICAgICAgICAgICAgICAgICAgICA9IDgzLCAvKiBMaW5hICovCiAgICAgICAv
KiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01BTkRBSUMgICAgICAgICAgICAg
ICAgICAgICAgID0gODQsIC8qIE1hbmQgKi8KICAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfTUFOREFFQU4gICAgICAgICAgICAgICAgICAgICAgPSBVU0NSSVBUX01B
TkRBSUMsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01BWUFO
X0hJRVJPR0xZUEhTICAgICAgICAgICAgID0gODUsIC8qIE1heWEgKi8KICAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUVST0lUSUNfSElFUk9HTFlQSFMgICAgICAg
ICAgPSA4NiwgLyogTWVybyAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9NRVJPSVRJQyAgICAgICAgICAgICAgICAgICAgICA9IFVTQ1JJUFRfTUVST0lUSUNf
SElFUk9HTFlQSFMsCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBU
X05LTyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODcsIC8qIE5rb28gKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfT1JLSE9OICAgICAgICAgICAgICAg
ICAgICAgICAgPSA4OCwgLyogT3JraCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwog
ICAgICAgVVNDUklQVF9PTERfUEVSTUlDICAgICAgICAgICAgICAgICAgICA9IDg5LCAvKiBQZXJt
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1BIQUdTX1BB
ICAgICAgICAgICAgICAgICAgICAgID0gOTAsIC8qIFBoYWcgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfUEhPRU5JQ0lBTiAgICAgICAgICAgICAgICAgICAg
PSA5MSwgLyogUGhueCAqLwotICAgICAgVVNDUklQVF9QSE9ORVRJQ19QT0xMQVJEICAgICAgICAg
ICAgICA9IDkyLCAvKiBQbHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAg
IFVTQ1JJUFRfTUlBTyAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5MiwgLyogUGxyZCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLworICAgICAgVVNDUklQVF9QSE9ORVRJQ19QT0xM
QVJEICAgICAgICAgICAgICA9IFVTQ1JJUFRfTUlBTywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfUk9OR09ST05HTyAgICAgICAgICAgICAgICAgICAgPSA5Mywg
LyogUm9ybyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9T
QVJBVEkgICAgICAgICAgICAgICAgICAgICAgICA9IDk0LCAvKiBTYXJhICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0VTVFJBTkdFTE9fU1lSSUFDICAgICAg
ICAgICAgID0gOTUsIC8qIFN5cmUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfV0VTVEVSTl9TWVJJQUMgICAgICAgICAgICAgICAgPSA5NiwgLyogU3lyaiAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9FQVNURVJOX1NZ
UklBQyAgICAgICAgICAgICAgICA9IDk3LCAvKiBTeXJuICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX1RFTkdXQVIgICAgICAgICAgICAgICAgICAgICAgID0g
OTgsIC8qIFRlbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfVkFJICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA5OSwgLyogVmFpaSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9WSVNJQkxFX1NQRUVDSCAgICAg
ICAgICAgICAgICA9IDEwMCwvKiBWaXNwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX0NVTkVJRk9STSAgICAgICAgICAgICAgICAgICAgID0gMTAxLC8qIFhz
dXggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVU5XUklU
VEVOX0xBTkdVQUdFUyAgICAgICAgICAgPSAxMDIsLyogWnh4eCAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9VTktOT1dOICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMywvKiBaenp6ICovIC8qIFVua25vd249IkNvZGUgZm9yIHVuY29kZWQgc2NyaXB0Iiwg
Zm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgKi8KIAotICAgICAgLyogTmV3IHNjcmlwdCBjb2Rl
cyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSAzLjggKi8KKyAgICAgIC8qIE5ldyBzY3JpcHQg
Y29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAg
ICAgIFVTQ1JJUFRfQ0FSSUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDQsLyogQ2FyaSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9KQVBBTkVTRSAg
ICAgICAgICAgICAgICAgICAgICA9IDEwNSwvKiBKcGFuICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy44ICovCiAgICAgICBVU0NSSVBUX0xBTk5BICAgICAgICAgICAgICAgICAgICAgICAgID0g
MTA2LC8qIExhbmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJ
UFRfTFlDSUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDcsLyogTHljaSAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MWURJQU4gICAgICAgICAgICAg
ICAgICAgICAgICA9IDEwOCwvKiBMeWRpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICov
CiAgICAgICBVU0NSSVBUX09MX0NISUtJICAgICAgICAgICAgICAgICAgICAgID0gMTA5LC8qIE9s
Y2sgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfUkVKQU5H
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTAsLyogUmpuZyAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9TQVVSQVNIVFJBICAgICAgICAgICAgICAgICAg
ICA9IDExMSwvKiBTYXVyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBV
U0NSSVBUX1NJR05fV1JJVElORyAgICAgICAgICAgICAgICAgID0gMTEyLC8qIFNnbncgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU1VOREFORVNFICAgICAg
ICAgICAgICAgICAgICAgPSAxMTMsLyogU3VuZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMu
OCAqLwogICAgICAgVVNDUklQVF9NT09OICAgICAgICAgICAgICAgICAgICAgICAgICA9IDExNCwv
KiBNb29uICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01F
SVRFSV9NQVlFSyAgICAgICAgICAgICAgICAgID0gMTE1LC8qIE10ZWkgKi8KIAotICAgICAgLyog
TmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjAgKi8KKyAgICAg
IC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfSU1QRVJJQUxfQVJBTUFJQyAgICAgICAgICAgICAg
PSAxMTYsLyogQXJtaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVND
UklQVF9BVkVTVEFOICAgICAgICAgICAgICAgICAgICAgICA9IDExNywvKiBBdnN0ICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0NIQUtNQSAgICAgICAgICAg
ICAgICAgICAgICAgID0gMTE4LC8qIENha20gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAg
Ki8KICAgICAgIFVTQ1JJUFRfS09SRUFOICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTksLyog
S29yZSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LQUlU
SEkgICAgICAgICAgICAgICAgICAgICAgICA9IDEyMCwvKiBLdGhpICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX01BTklDSEFFQU4gICAgICAgICAgICAgICAg
ICAgID0gMTIxLC8qIE1hbmkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAg
IFVTQ1JJUFRfSU5TQ1JJUFRJT05BTF9QQUhMQVZJICAgICAgICAgPSAxMjIsLyogUGhsaSAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9QU0FMVEVSX1BBSExB
VkkgICAgICAgICAgICAgICA9IDEyMywvKiBQaGxwICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC4wICovCiAgICAgICBVU0NSSVBUX0JPT0tfUEFITEFWSSAgICAgICAgICAgICAgICAgID0gMTI0
LC8qIFBobHYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRf
SU5TQ1JJUFRJT05BTF9QQVJUSElBTiAgICAgICAgPSAxMjUsLyogUHJ0aSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9TQU1BUklUQU4gICAgICAgICAgICAg
ICAgICAgICA9IDEyNiwvKiBTYW1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAg
ICAgICBVU0NSSVBUX1RBSV9WSUVUICAgICAgICAgICAgICAgICAgICAgID0gMTI3LC8qIFRhdnQg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfTUFUSEVNQVRJ
Q0FMX05PVEFUSU9OICAgICAgICAgPSAxMjgsLyogWm10aCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9TWU1CT0xTICAgICAgICAgICAgICAgICAgICAgICA9
IDEyOSwvKiBac3ltICovCiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5
MjQgQHN0YWJsZSBJQ1UgNC40ICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNP
IDE1OTI0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX0JB
TVVNICAgICAgICAgICAgICAgICAgICAgICAgID0gMTMwLC8qIEJhbXUgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfTElTVSAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxMzEsLyogTGlzdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAg
ICAgVVNDUklQVF9OQUtISV9HRUJBICAgICAgICAgICAgICAgICAgICA9IDEzMiwvKiBOa2diICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX09MRF9TT1VUSF9B
UkFCSUFOICAgICAgICAgICAgID0gMTMzLC8qIFNhcmIgKi8KIAotICAgICAgLyogTmV3IHNjcmlw
dCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjYgKi8KKyAgICAgIC8qIE5ldyBz
Y3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYg
Ki8KICAgICAgIFVTQ1JJUFRfQkFTU0FfVkFIICAgICAgICAgICAgICAgICAgICAgPSAxMzQsLyog
QmFzcyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9EVVBM
T1lBTl9TSE9SVEFORCAgICAgICAgICAgICA9IDEzNSwvKiBEdXBsICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0VMQkFTQU4gICAgICAgICAgICAgICAgICAg
ICAgID0gMTM2LC8qIEVsYmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAg
IFVTQ1JJUFRfR1JBTlRIQSAgICAgICAgICAgICAgICAgICAgICAgPSAxMzcsLyogR3JhbiAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9LUEVMTEUgICAgICAg
ICAgICAgICAgICAgICAgICA9IDEzOCwvKiBLcGVsICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
NC42ICovCiAgICAgICBVU0NSSVBUX0xPTUEgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTM5
LC8qIExvbWEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRf
TUVOREUgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDAsLyogTWVuZCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRVJPSVRJQ19DVVJTSVZFICAgICAg
ICAgICAgICA9IDE0MSwvKiBNZXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAg
ICAgICBVU0NSSVBUX09MRF9OT1JUSF9BUkFCSUFOICAgICAgICAgICAgID0gMTQyLC8qIE5hcmIg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTkFCQVRBRUFO
ICAgICAgICAgICAgICAgICAgICAgPSAxNDMsLyogTmJhdCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9QQUxNWVJFTkUgICAgICAgICAgICAgICAgICAgICA9
IDE0NCwvKiBQYWxtICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NS
SVBUX1NJTkRISSAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ1LC8qIFNpbmQgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfV0FSQU5HX0NJVEkgICAgICAg
ICAgICAgICAgICAgPSAxNDYsLyogV2FyYSAqLwogCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44
ICovCisgICAgICBVU0NSSVBUX0FGQUtBICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ3LC8q
IEFmYWsgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfSlVS
Q0hFTiAgICAgICAgICAgICAgICAgICAgICAgPSAxNDgsLyogSnVyYyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9NUk8gICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDE0OSwvKiBNcm9vICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAg
ICBVU0NSSVBUX05VU0hVICAgICAgICAgICAgICAgICAgICAgICAgID0gMTUwLC8qIE5zaHUgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfU0hBUkFEQSAgICAg
ICAgICAgICAgICAgICAgICAgPSAxNTEsLyogU2hyZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuOCAqLworICAgICAgVVNDUklQVF9TT1JBX1NPTVBFTkcgICAgICAgICAgICAgICAgICA9IDE1
MiwvKiBTb3JhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBU
X1RBS1JJICAgICAgICAgICAgICAgICAgICAgICAgID0gMTUzLC8qIFRha3IgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfVEFOR1VUICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNTQsLyogVGFuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLwor
ICAgICAgVVNDUklQVF9XT0xFQUkgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NSwvKiBXb2xl
ICovCisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQVF9BTkFUT0xJ
QU5fSElFUk9HTFlQSFMgICAgICAgICA9IDE1NiwvKiBIbHV3ICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgNDkgKi8KKyAgICAgIFVTQ1JJUFRfS0hPSktJICAgICAgICAgICAgICAgICAgICAgICAg
PSAxNTcsLyogS2hvaiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBVU0NS
SVBUX1RJUkhVVEEgICAgICAgICAgICAgICAgICAgICAgID0gMTU4LC8qIFRpcmggKi8KKworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX0NBVUNBU0lBTl9BTEJBTklB
TiAgICAgICAgICAgID0gMTU5LC8qIEFnaGIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA1MiAq
LworICAgICAgVVNDUklQVF9NQUhBSkFOSSAgICAgICAgICAgICAgICAgICAgICA9IDE2MCwvKiBN
YWhqICovCisKICAgICAgIC8qIFByaXZhdGUgdXNlIGNvZGVzIGZyb20gUWFhYSAtIFFhYnggYXJl
IG5vdCBzdXBwb3J0ZWQgKi8KLSAgICAgIFVTQ1JJUFRfQ09ERV9MSU1JVCAgICA9IDE0NworCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCisgICAgICBVU0NSSVBUX0NPREVfTElNSVQgICAg
PSAxNjEKIH0gVVNjcmlwdENvZGU7CiAKIC8qKgpAQCAtMjc3LDkgKzQ2NCw5IEBAIFVfU1RBQkxF
IFVTY3JpcHRDb2RlICBVX0VYUE9SVDIKIHVzY3JpcHRfZ2V0U2NyaXB0KFVDaGFyMzIgY29kZXBv
aW50LCBVRXJyb3JDb2RlICplcnIpOwogCiAvKioKLSAqIElzIGNvZGUgcG9pbnQgYyB1c2VkIGlu
IHNjcmlwdCBzYz8KLSAqIFRoYXQgaXMsIGRvZXMgY29kZSBwb2ludCBjIGhhdmUgdGhlIFNjcmlw
dCBwcm9wZXJ0eSB2YWx1ZSBzYywKLSAqIG9yIGRvIGNvZGUgcG9pbnQgYydzIFNjcmlwdF9FeHRl
bnNpb25zIGluY2x1ZGUgc2NyaXB0IGNvZGUgc2M/CisgKiBEbyB0aGUgU2NyaXB0X0V4dGVuc2lv
bnMgb2YgY29kZSBwb2ludCBjIGNvbnRhaW4gc2NyaXB0IHNjPworICogSWYgYyBkb2VzIG5vdCBo
YXZlIGV4cGxpY2l0IFNjcmlwdF9FeHRlbnNpb25zLCB0aGVuIHRoaXMgdGVzdHMgd2hldGhlcgor
ICogYyBoYXMgdGhlIFNjcmlwdCBwcm9wZXJ0eSB2YWx1ZSBzYy4KICAqCiAgKiBTb21lIGNoYXJh
Y3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAqIEZvciBtb3Jl
IGluZm9ybWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRz
L3RyMjQvLgpAQCAtMjg4LDE1ICs0NzUsMjIgQEAgdXNjcmlwdF9nZXRTY3JpcHQoVUNoYXIzMiBj
b2RlcG9pbnQsIFVFcnJvckNvZGUgKmVycik7CiAgKiBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhl
IFVuaWNvZGUgU3RhbmRhcmQsIGFuZCB0aHVzIGluIElDVS4KICAqIEBwYXJhbSBjIGNvZGUgcG9p
bnQKICAqIEBwYXJhbSBzYyBzY3JpcHQgY29kZQotICogQHJldHVybiBUUlVFIGlmIFNjcmlwdChj
KT09c2Mgb3Igc2MgaXMgaW4gU2NyaXB0X0V4dGVuc2lvbnMoYykKLSAqIEBkcmFmdCBJQ1UgNC42
CisgKiBAcmV0dXJuIFRSVUUgaWYgc2MgaXMgaW4gU2NyaXB0X0V4dGVuc2lvbnMoYykKKyAqIEBz
dGFibGUgSUNVIDQ5CiAgKi8KLVVfRFJBRlQgVUJvb2wgVV9FWFBPUlQyCitVX1NUQUJMRSBVQm9v
bCBVX0VYUE9SVDIKIHVzY3JpcHRfaGFzU2NyaXB0KFVDaGFyMzIgYywgVVNjcmlwdENvZGUgc2Mp
OwogCiAvKioKICAqIFdyaXRlcyBjb2RlIHBvaW50IGMncyBTY3JpcHRfRXh0ZW5zaW9ucyBhcyBh
IGxpc3Qgb2YgVVNjcmlwdENvZGUgdmFsdWVzCi0gKiB0byB0aGUgb3V0cHV0IHNjcmlwdHMgYXJy
YXkuCisgKiB0byB0aGUgb3V0cHV0IHNjcmlwdHMgYXJyYXkgYW5kIHJldHVybnMgdGhlIG51bWJl
ciBvZiBzY3JpcHQgY29kZXMuCisgKiAtIElmIGMgZG9lcyBoYXZlIFNjcmlwdF9FeHRlbnNpb25z
LCB0aGVuIHRoZSBTY3JpcHQgcHJvcGVydHkgdmFsdWUKKyAqICAgKG5vcm1hbGx5IENvbW1vbiBv
ciBJbmhlcml0ZWQpIGlzIG5vdCBpbmNsdWRlZC4KKyAqIC0gSWYgYyBkb2VzIG5vdCBoYXZlIFNj
cmlwdF9FeHRlbnNpb25zLCB0aGVuIHRoZSBvbmUgU2NyaXB0IGNvZGUgaXMgd3JpdHRlbiB0byB0
aGUgb3V0cHV0IGFycmF5LgorICogLSBJZiBjIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQsIHRo
ZW4gdGhlIG9uZSBVU0NSSVBUX1VOS05PV04gY29kZSBpcyB3cml0dGVuLgorICogSW4gb3RoZXIg
d29yZHMsIGlmIHRoZSByZXR1cm4gdmFsdWUgaXMgMSwKKyAqIHRoZW4gdGhlIG91dHB1dCBhcnJh
eSBjb250YWlucyBleGFjdGx5IGMncyBzaW5nbGUgU2NyaXB0IGNvZGUuCisgKiBJZiB0aGUgcmV0
dXJuIHZhbHVlIGlzIG4+PTIsIHRoZW4gdGhlIG91dHB1dCBhcnJheSBjb250YWlucyBjJ3MgbiBT
Y3JpcHRfRXh0ZW5zaW9ucyBzY3JpcHQgY29kZXMuCiAgKgogICogU29tZSBjaGFyYWN0ZXJzIGFy
ZSBjb21tb25seSB1c2VkIGluIG11bHRpcGxlIHNjcmlwdHMuCiAgKiBGb3IgbW9yZSBpbmZvcm1h
dGlvbiwgc2VlIFVBWCAjMjQ6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI0Ly4K
QEAgLTMxNCwxMyArNTA4LDEyMCBAQCB1c2NyaXB0X2hhc1NjcmlwdChVQ2hhcjMyIGMsIFVTY3Jp
cHRDb2RlIHNjKTsKICAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVz
dCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucwogICogICAgICAgICAgICAgICAgICBpbW1l
ZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAogICog
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBk
ZXRhaWxzLikKLSAqIEByZXR1cm4gbnVtYmVyIG9mIHNjcmlwdCBjb2RlcyBpbiBjJ3MgU2NyaXB0
X0V4dGVuc2lvbnMsCisgKiBAcmV0dXJuIG51bWJlciBvZiBzY3JpcHQgY29kZXMgaW4gYydzIFNj
cmlwdF9FeHRlbnNpb25zLCBvciAxIGZvciB0aGUgc2luZ2xlIFNjcmlwdCB2YWx1ZSwKICAqICAg
ICAgICAgd3JpdHRlbiB0byBzY3JpcHRzIHVubGVzcyBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiBp
bmRpY2F0ZXMgaW5zdWZmaWNpZW50IGNhcGFjaXR5Ci0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0
YWJsZSBJQ1UgNDkKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50
MzJfdCBVX0VYUE9SVDIKIHVzY3JpcHRfZ2V0U2NyaXB0RXh0ZW5zaW9ucyhVQ2hhcjMyIGMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVVNjcmlwdENvZGUgKnNjcmlwdHMsIGludDMyX3Qg
Y2FwYWNpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqZXJyb3JDb2Rl
KTsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisKKy8qKgorICogU2NyaXB0IHVzYWdlIGNv
bnN0YW50cy4KKyAqIFNlZSBVQVggIzMxIFVuaWNvZGUgSWRlbnRpZmllciBhbmQgUGF0dGVybiBT
eW50YXguCisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzMS8jVGFibGVfQ2Fu
ZGlkYXRlX0NoYXJhY3RlcnNfZm9yX0V4Y2x1c2lvbl9mcm9tX0lkZW50aWZpZXJzCisgKgorICog
QGRyYWZ0IElDVSA1MQorICovCit0eXBlZGVmIGVudW0gVVNjcmlwdFVzYWdlIHsKKyAgICAvKiog
Tm90IGVuY29kZWQgaW4gVW5pY29kZS4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJUFRfVVNB
R0VfTk9UX0VOQ09ERUQsCisgICAgLyoqIFVua25vd24gc2NyaXB0IHVzYWdlLiBAZHJhZnQgSUNV
IDUxICovCisgICAgVVNDUklQVF9VU0FHRV9VTktOT1dOLAorICAgIC8qKiBDYW5kaWRhdGUgZm9y
IEV4Y2x1c2lvbiBmcm9tIElkZW50aWZpZXJzLiBAZHJhZnQgSUNVIDUxICovCisgICAgVVNDUklQ
VF9VU0FHRV9FWENMVURFRCwKKyAgICAvKiogTGltaXRlZCBVc2Ugc2NyaXB0LiBAZHJhZnQgSUNV
IDUxICovCisgICAgVVNDUklQVF9VU0FHRV9MSU1JVEVEX1VTRSwKKyAgICAvKiogQXNwaXJhdGlv
bmFsIFVzZSBzY3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0FTUElS
QVRJT05BTCwKKyAgICAvKiogUmVjb21tZW5kZWQgc2NyaXB0LiBAZHJhZnQgSUNVIDUxICovCisg
ICAgVVNDUklQVF9VU0FHRV9SRUNPTU1FTkRFRAorfSBVU2NyaXB0VXNhZ2U7CisKKy8qKgorICog
V3JpdGVzIHRoZSBzY3JpcHQgc2FtcGxlIGNoYXJhY3RlciBzdHJpbmcuCisgKiBUaGlzIHN0cmlu
ZyBub3JtYWxseSBjb25zaXN0cyBvZiBvbmUgY29kZSBwb2ludCBidXQgbWlnaHQgYmUgbG9uZ2Vy
LgorICogVGhlIHN0cmluZyBpcyBlbXB0eSBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkLgor
ICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEBwYXJhbSBkZXN0IG91dHB1dCBz
dHJpbmcgYXJyYXkKKyAqIEBwYXJhbSBjYXBhY2l0eSBudW1iZXIgb2YgVUNoYXJzIGluIHRoZSBk
ZXN0IGFycmF5CisgKiBAcGFyYW0gcEVycm9yQ29kZSBzdGFuZGFyZCBJQ1UgaW4vb3V0IGVycm9y
IGNvZGUsIG11c3QgcGFzcyBVX1NVQ0NFU1MoKSBvbiBpbnB1dAorICogQHJldHVybiB0aGUgc3Ry
aW5nIGxlbmd0aCwgZXZlbiBpZiBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUgorICogQGRyYWZ0IElD
VSA1MQorICovCitVX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCit1c2NyaXB0X2dldFNhbXBsZVN0
cmluZyhVU2NyaXB0Q29kZSBzY3JpcHQsIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LCBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1Vf
TkFNRVNQQUNFX0JFR0lOCitjbGFzcyBVbmljb2RlU3RyaW5nOworVV9OQU1FU1BBQ0VfRU5ECisK
Ky8qKgorICogUmV0dXJucyB0aGUgc2NyaXB0IHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5nLgorICog
VGhpcyBzdHJpbmcgbm9ybWFsbHkgY29uc2lzdHMgb2Ygb25lIGNvZGUgcG9pbnQgYnV0IG1pZ2h0
IGJlIGxvbmdlci4KKyAqIFRoZSBzdHJpbmcgaXMgZW1wdHkgaWYgdGhlIHNjcmlwdCBpcyBub3Qg
ZW5jb2RlZC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIHRo
ZSBzYW1wbGUgY2hhcmFjdGVyIHN0cmluZworICogQGRyYWZ0IElDVSA1MQorICovCitVX0NPTU1P
Tl9BUEkgaWN1OjpVbmljb2RlU3RyaW5nIFVfRVhQT1JUMgordXNjcmlwdF9nZXRTYW1wbGVVbmlj
b2RlU3RyaW5nKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKyNlbmRpZgorCisvKioKKyAqIFJldHVy
bnMgdGhlIHNjcmlwdCB1c2FnZSBhY2NvcmRpbmcgdG8gVUFYICMzMSBVbmljb2RlIElkZW50aWZp
ZXIgYW5kIFBhdHRlcm4gU3ludGF4LgorICogUmV0dXJucyBVU0NSSVBUX1VTQUdFX05PVF9FTkNP
REVEIGlmIHRoZSBzY3JpcHQgaXMgbm90IGVuY29kZWQgaW4gVW5pY29kZS4KKyAqCisgKiBAcGFy
YW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIHNjcmlwdCB1c2FnZQorICogQHNlZSBV
U2NyaXB0VXNhZ2UKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVU2NyaXB0VXNhZ2Ug
VV9FWFBPUlQyCit1c2NyaXB0X2dldFVzYWdlKFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKy8qKgor
ICogUmV0dXJucyBUUlVFIGlmIHRoZSBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0Lgor
ICogRm9yIGV4YW1wbGUsIEFyYWIgYW5kIEhlYnIuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3Jp
cHQgY29kZQorICogQHJldHVybiBUUlVFIGlmIHRoZSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdAor
ICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9p
c1JpZ2h0VG9MZWZ0KFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKy8qKgorICogUmV0dXJucyBUUlVF
IGlmIHRoZSBzY3JpcHQgYWxsb3dzIGxpbmUgYnJlYWtzIGJldHdlZW4gbGV0dGVycyAoZXhjbHVk
aW5nIGh5cGhlbmF0aW9uKS4KKyAqIFN1Y2ggYSBzY3JpcHQgdHlwaWNhbGx5IHJlcXVpcmVzIGRp
Y3Rpb25hcnktYmFzZWQgbGluZSBicmVha2luZy4KKyAqIEZvciBleGFtcGxlLCBIYW5pIGFuZCBU
aGFpLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gVFJVRSBp
ZiB0aGUgc2NyaXB0IGFsbG93cyBsaW5lIGJyZWFrcyBiZXR3ZWVuIGxldHRlcnMKKyAqIEBkcmFm
dCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVQm9vbCBVX0VYUE9SVDIKK3VzY3JpcHRfYnJlYWtzQmV0
d2VlbkxldHRlcnMoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUg
aWYgaW4gbW9kZXJuIChvciBtb3N0IHJlY2VudCkgdXNhZ2Ugb2YgdGhlIHNjcmlwdCBjYXNlIGRp
c3RpbmN0aW9ucyBhcmUgY3VzdG9tYXJ5LgorICogRm9yIGV4YW1wbGUsIExhdG4gYW5kIEN5cmwu
CisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHJldHVybiBUUlVFIGlmIHRo
ZSBzY3JpcHQgaXMgY2FzZWQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworVV9EUkFGVCBVQm9vbCBV
X0VYUE9SVDIKK3VzY3JpcHRfaXNDYXNlZChVU2NyaXB0Q29kZSBzY3JpcHQpOworCisjZW5kaWYg
IC8qIFVfSElERV9EUkFGVF9BUEkgKi8KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VzZXQuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXNldC5oCmluZGV4
IDc3YWIwNjM0MmYyNmU5YzcwZTI3MzAyNGZhNmViZWY1NjJjZDU5ODEuLjQwNTEwY2Q0MTY3Yzhm
NzdkNTA2NjFkZmZmN2ZlMDliOWVmODA1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdXNldC5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXNldC5oCkBAIC0xLDcg
KzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdo
dCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCkBAIC04OSwxMyArODksNyBAQCBlbnVtIHsKICAgICAgKiBvZiBlYWNoIGV4
aXN0aW5nIGVsZW1lbnQgaW4gdGhlIHNldC4KICAgICAgKiBAc3RhYmxlIElDVSAzLjIKICAgICAg
Ki8KLSAgICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNCwKLSAgICAKLSAgICAvKioKLSAgICAg
KiBFbm91Z2ggZm9yIGFueSBzaW5nbGUtY29kZSBwb2ludCBzZXQKLSAgICAgKiBAaW50ZXJuYWwK
LSAgICAgKi8KLSAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFDSVRZPTgKKyAg
ICBVU0VUX0FERF9DQVNFX01BUFBJTkdTID0gNAogfTsKIAogLyoqCkBAIC0yMDcsNiArMjAxLDE2
IEBAIHR5cGVkZWYgZW51bSBVU2V0U3BhbkNvbmRpdGlvbiB7CiAgICAgVVNFVF9TUEFOX0NPTkRJ
VElPTl9DT1VOVAogfSBVU2V0U3BhbkNvbmRpdGlvbjsKIAorZW51bSB7CisgICAgLyoqCisgICAg
ICogQ2FwYWNpdHkgb2YgVVNlcmlhbGl6ZWRTZXQ6OnN0YXRpY0FycmF5LgorICAgICAqIEVub3Vn
aCBmb3IgYW55IHNpbmdsZS1jb2RlIHBvaW50IHNldC4KKyAgICAgKiBBbHNvIHByb3ZpZGVzIHBh
ZGRpbmcgZm9yIG5pY2Ugc2l6ZW9mKFVTZXJpYWxpemVkU2V0KS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjQKKyAgICAgKi8KKyAgICBVU0VUX1NFUklBTElaRURfU1RBVElDX0FSUkFZX0NBUEFDSVRZ
PTgKK307CisKIC8qKgogICogQSBzZXJpYWxpemVkIGZvcm0gb2YgYSBVbmljb2RlIHNldC4gIExp
bWl0ZWQgbWFuaXB1bGF0aW9ucyBhcmUKICAqIHBvc3NpYmxlIGRpcmVjdGx5IG9uIGEgc2VyaWFs
aXplZCBzZXQuICBTZWUgYmVsb3cuCkBAIC0yNDcsNyArMjUxLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
VVNlcmlhbGl6ZWRTZXQgewogICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KIFVfU1RBQkxFIFVTZXQq
IFVfRVhQT1JUMgotdXNldF9vcGVuRW1wdHkoKTsKK3VzZXRfb3BlbkVtcHR5KHZvaWQpOwogCiAv
KioKICAqIENyZWF0ZXMgYSBVU2V0IG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSByYW5nZSBvZiBj
aGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VzdHJpbmcuaCBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCmluZGV4IDJlZTE2ZTk5Y2YzYzAwN2Fi
NzVlYzFmNmJkNDFjMTVhZWFkOTI5NTIuLmQyZWEzMWM2NzQ3ZjhmMWMxZWIwMzcwZTI4NDNjM2Y2
NDQ5OGIwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXN0cmluZy5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEyLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0yMCw5ICsyMCwxNCBAQAog
I2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VpdGVyLmgiCiAK
LS8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRvIGF2b2lkIGluY2x1
ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KKy8qKgorICogXGRlZiBVQlJL
X1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCisgKiBAaW50ZXJuYWwgCisgKi8KKwogI2lmbmRlZiBV
QlJLX1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCiAjICAgZGVmaW5lIFVCUktfVFlQRURFRl9VQlJF
QUtfSVRFUkFUT1IKKy8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRv
IGF2b2lkIGluY2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KICAgICB0
eXBlZGVmIHN0cnVjdCBVQnJlYWtJdGVyYXRvciBVQnJlYWtJdGVyYXRvcjsKICNlbmRpZgogCkBA
IC0xNDYsOCArMTUxLDggQEAgdV9zdHJjYXQoVUNoYXIgICAgICpkc3QsCiAgKiBJZiA8Y29kZT5u
Jmx0Oz0wPC9jb2RlPiB0aGVuIGRzdCBpcyBub3QgbW9kaWZpZWQuCiAgKgogICogQHBhcmFtIGRz
dCBUaGUgZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmlu
Zy4KLSAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFwcGVu
ZC4KKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQg
aWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0
byBhcHBlbmQ7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRz
dDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNTUwLDkgKzU1NSw5IEBAIHVf
c3RyQ2FzZUNvbXBhcmUoY29uc3QgVUNoYXIgKnMxLCBpbnQzMl90IGxlbmd0aDEsCiAgKiBDb21w
YXJlIHR3byB1c3RyaW5ncyBmb3IgYml0d2lzZSBlcXVhbGl0eS4gCiAgKiBDb21wYXJlcyBhdCBt
b3N0IDxjb2RlPm48L2NvZGU+IGNoYXJhY3RlcnMuCiAgKgotICogQHBhcmFtIHVjczEgQSBzdHJp
bmcgdG8gY29tcGFyZS4KLSAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUuCi0gKiBA
cGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb21wYXJlLgorICog
QHBhcmFtIHVjczEgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBu
PD0wKS4KKyAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBiZSBOVUxML2lu
dmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFj
dGVycyB0byBjb21wYXJlOyBhbHdheXMgcmV0dXJucyAwIGlmIG48PTAuCiAgKiBAcmV0dXJuIDAg
aWYgPGNvZGU+czE8L2NvZGU+IGFuZCA8Y29kZT5zMjwvY29kZT4gYXJlIGJpdHdpc2UgZXF1YWw7
IGEgbmVnYXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9jb2RlPiBpcyBiaXR3aXNlIGxlc3Mg
dGhhbiA8Y29kZT5zMjwvY29kZT47IGEgcG9zaXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9j
b2RlPiBpcyBiaXR3aXNlIGdyZWF0ZXIgdGhhbiA8Y29kZT5zMjwvY29kZT4uCkBAIC02NjcsOCAr
NjcyLDggQEAgdV9zdHJjcHkoVUNoYXIgICAgICpkc3QsCiAgKiBpZiB0aGUgbGVuZ3RoIG9mIDxj
b2RlPnNyYzwvY29kZT4gaXMgbGVzcyB0aGFuIDxjb2RlPm48L2NvZGU+LgogICoKICAqIEBwYXJh
bSBkc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBz
dHJpbmcuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBj
b3B5LgorICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxp
ZCBpZiBuPD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJz
IHRvIGNvcHk7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRz
dDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNzQyLDggKzc0Nyw4IEBAIFVf
U1RBQkxFIGNoYXIqIFVfRVhQT1JUMiB1X2F1c3RybmNweShjaGFyICpkc3QsCiAvKioKICAqIFN5
bm9ueW0gZm9yIG1lbWNweSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBwYXJhbSBkZXN0
IFRoZSBkZXN0aW5hdGlvbiBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcK
LSAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weQorICogQHBh
cmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBpZiBjb3VudDw9
MCkKKyAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29weTsgbm8t
b3AgaWYgPD0wCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9jb2RlPgogICog
QHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTc1Myw4ICs3NTgsOCBAQCB1X21lbWNweShVQ2hhciAq
ZGVzdCwgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBjb3VudCk7CiAvKioKICAqIFN5bm9ueW0g
Zm9yIG1lbW1vdmUoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBAcGFyYW0gZGVzdCBUaGUg
ZGVzdGluYXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nCi0gKiBA
cGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmUKKyAqIEBwYXJhbSBz
cmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgY291bnQ8PTApCisg
KiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmU7IG5vLW9wIGlm
IDw9MAogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwvY29kZT4KICAqIEBzdGFi
bGUgSUNVIDIuMAogICovCkBAIC05MTgsNyArOTIzLDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNo
YXIgKnMsIFVDaGFyMzIgYywgaW50MzJfdCBjb3VudCk7CiAgKiAgICB9CiAgKiA8L3ByZT4KICAq
IAotICogTm90ZSB0aGF0IHRoZSBtYWNyb3Mgd2lsbCBOT1QgY29uc2lzdGVudGx5IHdvcmsgaWYg
dGhlaXIgYXJndW1lbnQgaXMgYW5vdGhlciAjZGVmaW5lLiAKKyAqIE5vdGUgdGhhdCB0aGUgbWFj
cm9zIHdpbGwgTk9UIGNvbnNpc3RlbnRseSB3b3JrIGlmIHRoZWlyIGFyZ3VtZW50IGlzIGFub3Ro
ZXIgPGNvZGU+I2RlZmluZTwvY29kZT4uIAogICogIFRoZSBmb2xsb3dpbmcgd2lsbCBub3Qgd29y
ayBvbiBhbGwgcGxhdGZvcm1zLCBkb24ndCB1c2UgaXQuCiAgKiAKICAqIDxwcmU+CkBAIC05MzQs
NyArOTM5LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVDaGFyMzIgYywgaW50MzJf
dCBjb3VudCk7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQoVV9ERUNMQVJF
X1VURjE2KQotIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGlj
IGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1VX0RFQ0xBUkVfVVRGMTYoY3MpCisjICAgZGVm
aW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgKnZh
cj0oY29uc3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpCiAgICAgLyoqQHN0YWJsZSBJQ1Ug
Mi4wICovCiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3RoKQogI2VsaWYg
VV9TSVpFT0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNFVF9GQU1JTFk9PVVf
QVNDSUlfRkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmluZWQoVV9XQ0hBUl9J
U19VVEYxNikpKQpAQCAtOTQyLDcgKzk0Nyw3IEBAIHVfbWVtcmNocjMyKGNvbnN0IFVDaGFyICpz
LCBVQ2hhcjMyIGMsIGludDMyX3QgY291bnQpOwogICAgIC8qKkBzdGFibGUgSUNVIDIuMCAqLwog
IyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0aCkKICNlbGlmIFVfU0laRU9G
X1VDSEFSPT0xICYmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0jICAgZGVmaW5l
IFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNoYXIgdmFyWyhs
ZW5ndGgpKzFdPXsgKGNvbnN0IFVDaGFyICopY3MgfQorIyAgIGRlZmluZSBVX1NUUklOR19ERUNM
KHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1jcwog
ICAgIC8qKkBzdGFibGUgSUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwg
Y3MsIGxlbmd0aCkKICNlbHNlCkBAIC0xMTU0LDEwICsxMTU5LDEyIEBAIHVfc3RyVG9UaXRsZShV
Q2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAjZW5kaWYKIAogLyoqCi0gKiBDYXNl
LWZvbGQgdGhlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuCisgKiBDYXNlLWZvbGRzIHRoZSBjaGFy
YWN0ZXJzIGluIGEgc3RyaW5nLgorICoKICAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBl
bmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKICAqIGJ1dCB0aGVyZSBpcyBhbiBvcHRp
b24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0ZWQg
SQotICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRp
bmcudHh0LgorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2Fz
ZUZvbGRpbmcudHh0LgorICoKICAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVy
IHRoYW4gdGhlIG9yaWdpbmFsLgogICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5h
dGlvbiBidWZmZXIgYXJlIGFsbG93ZWQgdG8gb3ZlcmxhcC4KICAqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3V0Zi5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91dGYuaApp
bmRleCBmNzk0Nzk5MzVkNGExZDZiMWJlZmNkNDA1Y2QwNGY1MjM4MWI5M2U3Li5mNTk1NGZlOWZl
Njk5ODkzYmQzMThlMjQ3NzI5MjZjMTc1YTIwYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3V0Zi5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmLmgKQEAgLTEs
NyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAo
QykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKQEAgLTIyLDE1ICsyMiwyMCBAQAogICogYSBzdXJyb2dhdGUgb3IgYSBu
b24tY2hhcmFjdGVyIGV0Yy4KICAqCiAgKiBUaGUgVUNoYXIgYW5kIFVDaGFyMzIgZGF0YSB0eXBl
cyBmb3IgVW5pY29kZSBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cwotICogYXJlIGRlZmluZWQg
aW4gdW1hY2hpbmVzLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBtYWNoaW5lLWRlcGVuZGVudC4KKyAq
IGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBtYWNoaW5lLWRl
cGVuZGVudC4KICAqCi0gKiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaCBhbmQgaXRzZWxm
IGluY2x1ZGVzIHV0ZjguaCBhbmQgdXRmMTYuaCBhZnRlciBzb21lCi0gKiBjb21tb24gZGVmaW5p
dGlvbnMuIFRob3NlIGZpbGVzIGRlZmluZSBtYWNyb3MgZm9yIGVmZmljaWVudGx5IGdldHRpbmcg
Y29kZSBwb2ludHMKKyAqIElmIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIGlzIDAg
dGhlbiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaAorICogYW5kIGl0c2VsZiBpbmNsdWRl
cyB1dGY4LmggYW5kIHV0ZjE2LmggYWZ0ZXIgc29tZQorICogY29tbW9uIGRlZmluaXRpb25zLgor
ICogSWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMgaXMgMSB0aGVuIGVhY2ggb2Yg
dGhlc2UgaGVhZGVycyBtdXN0IGJlCisgKiBpbmNsdWRlZCBleHBsaWNpdGx5IGlmIHRoZWlyIGRl
ZmluaXRpb25zIGFyZSB1c2VkLgorICoKKyAqIHV0ZjguaCBhbmQgdXRmMTYuaCBkZWZpbmUgbWFj
cm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCiAgKiBpbiBhbmQgb3V0IG9m
IFVURi04LzE2IHN0cmluZ3MuCiAgKiB1dGYxNi5oIG1hY3JvcyBoYXZlICJVMTZfIiBwcmVmaXhl
cy4KICAqIHV0ZjguaCBkZWZpbmVzIHNpbWlsYXIgbWFjcm9zIHdpdGggIlU4XyIgcHJlZml4ZXMg
Zm9yIFVURi04IHN0cmluZyBoYW5kbGluZy4KICAqCi0gKiBJQ1UgcHJvY2Vzc2VzIDE2LWJpdCBV
bmljb2RlIHN0cmluZ3MuCisgKiBJQ1UgbW9zdGx5IHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBz
dHJpbmdzLgogICogTW9zdCBvZiB0aGUgdGltZSwgc3VjaCBzdHJpbmdzIGFyZSB3ZWxsLWZvcm1l
ZCBVVEYtMTYuCiAgKiBTaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZXMgbXVzdCBiZSBoYW5kbGVk
IGFzIHdlbGwsIGFuZCBhcmUgdHJlYXRlZCBpbiBJQ1UKICAqIGxpa2UgcmVndWxhciBjb2RlIHBv
aW50cyB3aGVyZSBwb3NzaWJsZS4KQEAgLTQyLDE1ICs0NywxNiBAQAogICogSUNVIGZ1bmN0aW9u
cyBoYW5kbGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAoVSsxMDAwMC4uVSsxMGZmZmYpCiAg
KiBidXQgYXJlIG9wdGltaXplZCBmb3IgdGhlIG11Y2ggbW9yZSBmcmVxdWVudGx5IG9jY3Vycmlu
ZyBCTVAgY29kZSBwb2ludHMuCiAgKgotICogdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1
bnNpZ25lZCAxNi1iaXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KLSAq
IFVDaGFyIGlzIGRlZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2
X3QuCisgKiB1bWFjaGluZS5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0
IGludGVnZXIuCisgKiBXaGVyZSBhdmFpbGFibGUsIFVDaGFyIGlzIGRlZmluZWQgdG8gYmUgYSBj
aGFyMTZfdAorICogb3IgYSB3Y2hhcl90IChpZiB0aGF0IGlzIGFuIHVuc2lnbmVkIDE2LWJpdCB0
eXBlKSwgb3RoZXJ3aXNlIHVpbnQxNl90LgogICoKICAqIFVDaGFyMzIgaXMgZGVmaW5lZCB0byBi
ZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAoaW50MzJfdCksIGxhcmdlIGVub3VnaCBmb3IgYSAy
MS1iaXQKICAqIFVuaWNvZGUgY29kZSBwb2ludCAoVW5pY29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4
MTBmZmZmKS4KICAqIEJlZm9yZSBJQ1UgMi40LCB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdh
cyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5kZW50IGFzCiAgKiB0aGUgZGVmaW5pdGlvbiBvZiBV
Q2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBVQ2hhcjMyIGl0c2Vs
Zi4KICAqCi0gKiB1dGYuaCBhbHNvIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNyb3Mg
Zm9yIHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgorICogdXRmLmggZGVmaW5lcyBhIHNtYWxs
IG51bWJlciBvZiBDIG1hY3JvcyBmb3Igc2luZ2xlIFVuaWNvZGUgY29kZSBwb2ludHMuCiAgKiBU
aGVzZSBhcmUgc2ltcGxlIGNoZWNrcyBmb3Igc3Vycm9nYXRlcyBhbmQgbm9uLWNoYXJhY3RlcnMu
CiAgKiBGb3IgYWN0dWFsIFVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRpZXMgc2VlIHVjaGFyLmgu
CiAgKgpAQCAtNTksOSArNjUsNiBAQAogICogVGhlIG1hY3JvcyB3aWxsIGRldGVjdCBpZiBhIHN1
cnJvZ2F0ZSBjb2RlIHVuaXQgaXMgdW5wYWlyZWQKICAqIChsZWFkIHVuaXQgd2l0aG91dCB0cmFp
bCB1bml0IG9yIHZpY2UgdmVyc2EpIGFuZCBqdXN0IHJldHVybiB0aGUgdW5pdCBpdHNlbGYKICAq
IGFzIHRoZSBjb2RlIHBvaW50LgotICogKEl0IGlzIGFuIGFjY2lkZW50YWwgcHJvcGVydHkgb2Yg
VW5pY29kZSBhbmQgVVRGLTE2IHRoYXQgYWxsCi0gKiBtYWxmb3JtZWQgc2VxdWVuY2VzIGNhbiBi
ZSBleHByZXNzZWQgdW5hbWJpZ3VvdXNseSB3aXRoIGEgZGlzdGluY3Qgc3VicmFuZ2UKLSAqIG9m
IFVuaWNvZGUgY29kZSBwb2ludHMuKQogICoKICAqIFRoZSByZWd1bGFyICJzYWZlIiBtYWNyb3Mg
cmVxdWlyZSB0aGF0IHRoZSBpbml0aWFsLCBwYXNzZWQtaW4gc3RyaW5nIGluZGV4CiAgKiBpcyB3
aXRoaW4gYm91bmRzLiBUaGV5IG9ubHkgY2hlY2sgdGhlIGluZGV4IHdoZW4gdGhleSByZWFkIG1v
cmUgdGhhbiBvbmUKQEAgLTk1LDcgKzk4LDcgQEAKICAqIGNvZGUgcG9pbnQgdmFsdWVzICgwLi5V
KzEwZmZmZikuIFRoZXkgYXJlIGluZGljYXRlZCB3aXRoIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFk
LgogICoKICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgU3Ry
aW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5n
cy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4K
ICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYo
KSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4K
QEAgLTEwOCwzMiArMTExLDEyIEBACiAjaWZuZGVmIF9fVVRGX0hfXwogI2RlZmluZSBfX1VURl9I
X18KIAotI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91bWFj
aGluZS5oIgogLyogaW5jbHVkZSB0aGUgdXRmWFguaCBhZnRlciB0aGUgZm9sbG93aW5nIGRlZmlu
aXRpb25zICovCiAKIC8qIHNpbmdsZS1jb2RlIHBvaW50IGRlZmluaXRpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qKgotICogVGhpcyB2YWx1
ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZvciBBUElzIHRoYXQKLSAqICh0YWtl
IG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hhcjMyKS4KLSAqIEl0IGlzIG91dHNp
ZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAwLi4weDEwZmZmZi4KLSAqIAotICog
Rm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFsdWUgaW4gYSBuZXcgQVBJCi0gKiBj
b3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgotICoKLSAqIElDVSBBUElzIGRlc2ln
bmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNlcnZpY2Utc3BlY2lmaWMgImRvbmUi
Ci0gKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCi0gKiBUaG9zZSBtYXkgbmVlZCB0byBiZSBkaXN0
aW5ndWlzaGVkIGZyb20KLSAqIGFjdHVhbCBVK2ZmZmYgdGV4dCBjb250ZW50cyBieSBjYWxsaW5n
IGZ1bmN0aW9ucyBsaWtlCi0gKiBDaGFyYWN0ZXJJdGVyYXRvcjo6aGFzTmV4dCgpIG9yIFVuaWNv
ZGVTdHJpbmc6Omxlbmd0aCgpLgotICoKLSAqIEByZXR1cm4gLTEKLSAqIEBzZWUgVUNoYXIzMgot
ICogQHN0YWJsZSBJQ1UgMi40Ci0gKi8KLSNkZWZpbmUgVV9TRU5USU5FTCAoLTEpCi0KLS8qKgog
ICogSXMgdGhpcyBjb2RlIHBvaW50IGEgVW5pY29kZSBub25jaGFyYWN0ZXI/CiAgKiBAcGFyYW0g
YyAzMi1iaXQgY29kZSBwb2ludAogICogQHJldHVybiBUUlVFIG9yIEZBTFNFCkBAIC0yMjcsMTAg
KzIxMCwxNCBAQAogCiAvKiBpbmNsdWRlIHRoZSB1dGZYWC5oIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisjaWYgIVVfTk9fREVGQVVM
VF9JTkNMVURFX1VURl9IRUFERVJTCisKICNpbmNsdWRlICJ1bmljb2RlL3V0ZjguaCIKICNpbmNs
dWRlICJ1bmljb2RlL3V0ZjE2LmgiCiAKIC8qIHV0Zl9vbGQuaCBjb250YWlucyBkZXByZWNhdGVk
LCBwcmUtSUNVIDIuNCBkZWZpbml0aW9ucyAqLwogI2luY2x1ZGUgInVuaWNvZGUvdXRmX29sZC5o
IgogCi0jZW5kaWYKKyNlbmRpZiAgLyogIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJT
ICovCisKKyNlbmRpZiAgLyogX19VVEZfSF9fICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3V0ZjE2LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjE2LmgKaW5kZXgg
NTA3OWMxMTQ2YjNkMzQ3MjMwY2Q2OThhMGUxMzk2ODk3ZTQ4NDVhZC4uYmRkODhhOGI5YzRmMDBl
YTBkZjI3MmFjMDJmNjk2N2VmNjEwODliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91dGYxNi5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmMTYuaApAQCAtMSw3
ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmln
aHQgKEMpIDE5OTktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgpAQCAtMTksMTEgKzE5LDkgQEAKICAqIFxicmllZiBDIEFQSTogMTYtYml0
IFVuaWNvZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAKICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3Jv
cyB0byBkZWFsIHdpdGggMTYtYml0IFVuaWNvZGUgKFVURi0xNikgY29kZSB1bml0cyBhbmQgc3Ry
aW5ncy4KLSAqIHV0ZjE2LmggaXMgaW5jbHVkZWQgYnkgdXRmLmggYWZ0ZXIgdW5pY29kZS91bWFj
aGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCiAgKgogICogRm9yIG1vcmUg
aW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFw
dGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4K
KyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8
ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1l
bnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTM0LDcg
KzMyLDcgQEAKICNpZm5kZWYgX19VVEYxNl9IX18KICNkZWZpbmUgX19VVEYxNl9IX18KIAotLyog
dXRmLmggbXVzdCBiZSBpbmNsdWRlZCBmaXJzdC4gKi8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNo
aW5lLmgiCiAjaWZuZGVmIF9fVVRGX0hfXwogIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAj
ZW5kaWYKQEAgLTE4Miw2ICsxODAsOSBAQAogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gZWl0
aGVyIHRoZSBsZWFkIG9yIHRyYWlsIHN1cnJvZ2F0ZSB1bml0CiAgKiBmb3IgYSBzdXBwbGVtZW50
YXJ5IGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZAogICogdGhl
IGFkamFjZW50IG1hdGNoaW5nIHN1cnJvZ2F0ZSBhcyB3ZWxsLgorICoKKyAqIFRoZSBsZW5ndGgg
Y2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBJZiB0
aGUgb2Zmc2V0IHBvaW50cyB0byBhIHNpbmdsZSwgdW5wYWlyZWQgc3Vycm9nYXRlLCB0aGVuIHRo
YXQgaXRzZWxmCiAgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBvaW50LgogICogSXRl
cmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVMTZfTkVYVF9V
TlNBRkUgb3IgVTE2X05FWFQuCkBAIC0xOTksNyArMjAwLDcgQEAKICAgICBpZihVMTZfSVNfU1VS
Uk9HQVRFKGMpKSB7IFwKICAgICAgICAgdWludDE2X3QgX19jMjsgXAogICAgICAgICBpZihVMTZf
SVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAotICAgICAgICAgICAgaWYoKGkpKzE8KGxlbmd0aCkg
JiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAorICAgICAgICAgICAgaWYoKGkp
KzEhPShsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVsoaSkrMV0pKSB7IFwKICAgICAg
ICAgICAgICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5UQVJZKChjKSwgX19jMik7IFwKICAgICAg
ICAgICAgIH0gXAogICAgICAgICB9IGVsc2UgeyBcCkBAIC0yNDQsNiArMjQ1LDggQEAKICAqIChQ
b3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhh
bmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmll
cy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRl
ZCBzdHJpbmcuCisgKgogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgc3Vycm9n
YXRlIHVuaXQKICAqIGZvciBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCwgaW4gd2hpY2ggY2Fz
ZSB0aGUgbWFjcm8gd2lsbCByZWFkCiAgKiB0aGUgZm9sbG93aW5nIHRyYWlsIHN1cnJvZ2F0ZSBh
cyB3ZWxsLgpAQCAtMjYyLDcgKzI2NSw3IEBACiAgICAgKGMpPShzKVsoaSkrK107IFwKICAgICBp
ZihVMTZfSVNfTEVBRChjKSkgeyBcCiAgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKLSAgICAgICAg
aWYoKGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVsoaSldKSkgeyBcCisgICAg
ICAgIGlmKChpKSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKV0pKSB7IFwK
ICAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgICAgICAoYyk9VTE2X0dFVF9TVVBQTEVNRU5U
QVJZKChjKSwgX19jMik7IFwKICAgICAgICAgfSBcCkBAIC0zNDAsNiArMzQzLDggQEAKICAqIChQ
b3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVu
cGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgor
ICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5n
LgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3RyaW5nCiAgKiBAcGFyYW0gaSBzdHJp
bmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCiAgKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5n
dGgKQEAgLTM0Nyw3ICszNTIsNyBAQAogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUg
VTE2X0ZXRF8xKHMsIGksIGxlbmd0aCkgeyBcCi0gICAgaWYoVTE2X0lTX0xFQUQoKHMpWyhpKSsr
XSkgJiYgKGkpPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKKyAgICBpZihV
MTZfSVNfTEVBRCgocylbKGkpKytdKSAmJiAoaSkhPShsZW5ndGgpICYmIFUxNl9JU19UUkFJTCgo
cylbaV0pKSB7IFwKICAgICAgICAgKysoaSk7IFwKICAgICB9IFwKIH0KQEAgLTM3OCwxNiArMzgz
LDE4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNy
bywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3Vu
ZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJt
aW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCBVQ2hhciAqIHN0cmluZwotICog
QHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0
aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3Qg
YmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBA
cGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tpcAogICogQHNlZSBVMTZfRldEX05f
VU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVMTZfRldEX04ocywgaSwg
bGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7IFwKLSAgICB3aGlsZShfX04+MCAm
JiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4wICYmICgoaSk8KGxlbmd0aCkgfHwg
KChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVMTZfRldEXzEocywgaSwg
bGVuZ3RoKTsgXAogICAgICAgICAtLV9fTjsgXAogICAgIH0gXApAQCAtNTk4LDE1ICs2MDUsMTcg
QEAKICAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVu
Z3RoLgogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNo
ZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVn
YXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0
IFVDaGFyICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAo
dXN1YWxseSAwKQotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgc3RhcnQ8PWk8PWxlbmd0aAot
ICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBz
dGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0
cmluZyBvZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBz
dHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFUxNl9TRVRfQ1BfTElNSVRfVU5TQUZFCiAgKiBAc3RhYmxl
IElDVSAyLjQKICAqLwogI2RlZmluZSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5n
dGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYmIChpKTwobGVuZ3RoKSAmJiBVMTZfSVNfTEVB
RCgocylbKGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCisgICAgaWYoKHN0YXJ0
KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8fCAobGVuZ3RoKTwwKSAmJiBVMTZfSVNfTEVBRCgocylb
KGkpLTFdKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCiAgICAgICAgICsrKGkpOyBcCiAg
ICAgfSBcCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0ZjguaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmOC5oCmluZGV4IDY0MDU3OTVhNWExYzUzNjk4ODQ2ZDEx
MDE1Njk5YjYxYzMxMDIyMjQuLjIxZTVmM2QwNDc5MDUzMTU1ZjI5NGM0Mjg4NGY0Mjc0ZGE1NDRl
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmOC5oCisrKyBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdXRmOC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwOSwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xOSwxMSAr
MTksOSBAQAogICogXGJyaWVmIEMgQVBJOiA4LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1hY3Jvcwog
ICogCiAgKiBUaGlzIGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIDgtYml0IFVuaWNv
ZGUgKFVURi04KSBjb2RlIHVuaXRzIChieXRlcykgYW5kIHN0cmluZ3MuCi0gKiB1dGY4LmggaXMg
aW5jbHVkZWQgYnkgdXRmLmggYWZ0ZXIgdW5pY29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBj
b21tb24gZGVmaW5pdGlvbnMuCiAgKgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5o
IGFuZCB0aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1w
cm9qZWN0Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRl
LmljdS1wcm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElD
VSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dl
ZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19V
VEY4X0hfXwogI2RlZmluZSBfX1VURjhfSF9fCiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVkZWQg
Zmlyc3QuICovCisjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VURl9I
X18KICMgICBpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2VuZGlmCkBAIC02MiwxMyArNjAsNDEg
QEAgVV9DRlVOQyBVX0lNUE9SVCBjb25zdCB1aW50OF90IC8qIFVfSU1QT1JUMj8gKi8gLypVX0lN
UE9SVCovCiB1dGY4X2NvdW50VHJhaWxCeXRlc1syNTZdOwogCiAvKioKLSAqIENvdW50IHRoZSB0
cmFpbCBieXRlcyBmb3IgYSBVVEYtOCBsZWFkIGJ5dGUuCisgKiBDb3VudHMgdGhlIHRyYWlsIGJ5
dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIFJldHVybnMgMCBmb3IgMC4uMHhiZiBhcyB3
ZWxsIGFzIGZvciAweGZlIGFuZCAweGZmLgogICoKICAqIFRoaXMgaXMgaW50ZXJuYWwgc2luY2Ug
aXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseSBieSBleHRlcm5hbCBjbGllbnRz
OwogICogaG93ZXZlciBpdCBpcyBjYWxsZWQgYnkgcHVibGljIG1hY3JvcyBpbiB0aGlzIGZpbGUg
YW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxlLgorICoKKyAqIE5vdGU6IEJlZ2lubmluZyB3aXRo
IElDVSA1MCwgdGhlIGltcGxlbWVudGF0aW9uIHVzZXMgYSBtdWx0aS1jb25kaXRpb24gZXhwcmVz
c2lvbgorICogd2hpY2ggd2FzIHNob3duIGluIDIwMTIgKG9uIHg4Ni02NCkgdG8gY29tcGlsZSB0
byBmYXN0LCBicmFuY2gtZnJlZSBjb2RlLgorICogbGVhZEJ5dGUgaXMgZXZhbHVhdGVkIG11bHRp
cGxlIHRpbWVzLgorICoKKyAqIFRoZSBwcmUtSUNVIDUwIGltcGxlbWVudGF0aW9uIHVzZWQgdGhl
IGV4cG9ydGVkIGFycmF5IHV0ZjhfY291bnRUcmFpbEJ5dGVzOgorICogI2RlZmluZSBVOF9DT1VO
VF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzW2xlYWRCeXRlXSkK
KyAqIGxlYWRCeXRlIHdhcyBldmFsdWF0ZWQgZXhhY3RseSBvbmNlLgorICoKKyAqIEBwYXJhbSBs
ZWFkQnl0ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4
ZmYuCiAgKiBAaW50ZXJuYWwKICAqLwotI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFk
Qnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKyNkZWZpbmUg
VThfQ09VTlRfVFJBSUxfQllURVMobGVhZEJ5dGUpIFwKKyAgICAoKGxlYWRCeXRlKTwweGYwID8g
XAorICAgICAgICAoKGxlYWRCeXRlKT49MHhjMCkrKChsZWFkQnl0ZSk+PTB4ZTApIDogXAorICAg
ICAgICAobGVhZEJ5dGUpPDB4ZmUgPyAzKygobGVhZEJ5dGUpPj0weGY4KSsoKGxlYWRCeXRlKT49
MHhmYykgOiAwKQorCisvKioKKyAqIENvdW50cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTgg
bGVhZCBieXRlIG9mIGEgdmFsaWQgVVRGLTggc2VxdWVuY2UuCisgKiBUaGUgbWF4aW11bSBzdXBw
b3J0ZWQgbGVhZCBieXRlIGlzIDB4ZjQgY29ycmVzcG9uZGluZyB0byBVKzEwRkZGRi4KKyAqIGxl
YWRCeXRlIG1pZ2h0IGJlIGV2YWx1YXRlZCBtdWx0aXBsZSB0aW1lcy4KKyAqCisgKiBUaGlzIGlz
IGludGVybmFsIHNpbmNlIGl0IGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkgYnkg
ZXh0ZXJuYWwgY2xpZW50czsKKyAqIGhvd2V2ZXIgaXQgaXMgY2FsbGVkIGJ5IHB1YmxpYyBtYWNy
b3MgaW4gdGhpcyBmaWxlIGFuZCB0aHVzIG11c3QgcmVtYWluIHN0YWJsZS4KKyAqCisgKiBAcGFy
YW0gbGVhZEJ5dGUgVGhlIGZpcnN0IGJ5dGUgb2YgYSBVVEYtOCBzZXF1ZW5jZS4gTXVzdCBiZSAw
Li4weGZmLgorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVNf
VU5TQUZFKGxlYWRCeXRlKSBcCisgICAgKCgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49
MHhlMCkrKChsZWFkQnl0ZSk+PTB4ZjApKQogCiAvKioKICAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5
dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2VyIGJpdHMgdGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUg
cG9pbnQgdmFsdWUuCkBAIC0yMDYsMjQgKzIzMiw2MCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIFRoZSBvZmZzZXQg
bWF5IHBvaW50IHRvIGVpdGhlciB0aGUgbGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0
ZXMKICAqIGZvciBhIGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVh
ZCBhbGwgb2YgdGhlIGJ5dGVzCiAgKiBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxl
bmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAq
IElmIHRoZSBvZmZzZXQgcG9pbnRzIHRvIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwg
dGhlbgogICogYyBpcyBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZS4KICAqIEl0ZXJhdGlvbiB0aHJv
dWdoIGEgc3RyaW5nIGlzIG1vcmUgZWZmaWNpZW50IHdpdGggVThfTkVYVF9VTlNBRkUgb3IgVThf
TkVYVC4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0g
c3RhcnQgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBzdGFydDw9aTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAor
ICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFt
IGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBh
cmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hh
cjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9H
RVRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9HRVQocywgc3Rh
cnQsIGksIGxlbmd0aCwgYykgeyBcCi0gICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpbnQzMl90
KShpKTsgXAorICAgIGludDMyX3QgX3U4X2dldF9pbmRleD0oaSk7IFwKICAgICBVOF9TRVRfQ1Bf
U1RBUlQocywgc3RhcnQsIF91OF9nZXRfaW5kZXgpOyBcCiAgICAgVThfTkVYVChzLCBfdThfZ2V0
X2luZGV4LCBsZW5ndGgsIGMpOyBcCiB9CiAKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoq
CisgKiBHZXQgYSBjb2RlIHBvaW50IGZyb20gYSBzdHJpbmcgYXQgYSByYW5kb20tYWNjZXNzIG9m
ZnNldCwKKyAqIHdpdGhvdXQgY2hhbmdpbmcgdGhlIG9mZnNldC4KKyAqIFRoZSBvZmZzZXQgbWF5
IHBvaW50IHRvIGVpdGhlciB0aGUgbGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMK
KyAqIGZvciBhIGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBh
bGwgb2YgdGhlIGJ5dGVzCisgKiBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0
aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKKyAqIElm
IHRoZSBvZmZzZXQgcG9pbnRzIHRvIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhl
bgorICogYyBpcyBzZXQgdG8gVStGRkZELgorICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcg
aXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhUX1VOU0FGRSBvciBVOF9ORVhUX09SX0ZGRkQu
CisgKgorICogVGhpcyBtYWNybyBkb2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBV
K0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3Jt
ZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfR0VUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBv
cnRhbnQuCisgKgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFt
IHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJf
dCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0
aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlh
YmxlLCBzZXQgdG8gVStGRkZEIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfR0VUCisg
KiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVThfR0VUX09SX0ZGRkQocywgc3RhcnQsIGks
IGxlbmd0aCwgYykgeyBcCisgICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAorICAgIFU4
X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgX3U4X2dldF9pbmRleCk7IFwKKyAgICBVOF9ORVhUX09S
X0ZGRkQocywgX3U4X2dldF9pbmRleCwgbGVuZ3RoLCBjKTsgXAorfQorI2VuZGlmIC8qIFVfSElE
RV9EUkFGVF9BUEkgKi8KKwogLyogZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJkIGl0ZXJhdGlvbiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yNDUs
MTkgKzMwNywxNiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJf
dCBzdGFydCwgaW50MzJfdCBpKTsKICAqLwogI2RlZmluZSBVOF9ORVhUX1VOU0FGRShzLCBpLCBj
KSB7IFwKICAgICAoYyk9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAotICAgIGlmKCh1aW50OF90KSgo
YyktMHhjMCk8MHgzNSkgeyBcCi0gICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJ
TF9CWVRFUyhjKTsgXAotICAgICAgICBVOF9NQVNLX0xFQURfQllURShjLCBfX2NvdW50KTsgXAot
ICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBcCi0gICAgICAgIC8qIGVhY2ggZm9sbG93aW5nIGJy
YW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBcCi0gICAgICAgIGNhc2UgMzog
XAotICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAg
IGNhc2UgMjogXAotICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBc
Ci0gICAgICAgIGNhc2UgMTogXAotICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytd
JjB4M2YpOyBcCi0gICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVzIHRvIG9wdGltaXplIHN3aXRj
aCgpICovIFwKLSAgICAgICAgICAgIGJyZWFrOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAg
ICAgICAgaWYoKGMpPDB4ZTApIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXwo
KHMpWyhpKSsrXSYweDNmKTsgXAorICAgICAgICB9IGVsc2UgaWYoKGMpPDB4ZjApIHsgXAorICAg
ICAgICAgICAgLyogbm8gbmVlZCBmb3IgKGMmMHhmKSBiZWNhdXNlIHRoZSB1cHBlciBiaXRzIGFy
ZSB0cnVuY2F0ZWQgYWZ0ZXIgPDwxMiBpbiB0aGUgY2FzdCB0byAoVUNoYXIpICovIFwKKyAgICAg
ICAgICAgIChjKT0oVUNoYXIpKCgoYyk8PDEyKXwoKChzKVtpXSYweDNmKTw8Nil8KChzKVsoaSkr
MV0mMHgzZikpOyBcCisgICAgICAgICAgICAoaSkrPTI7IFwKKyAgICAgICAgfSBlbHNlIHsgXAor
ICAgICAgICAgICAgKGMpPSgoKGMpJjcpPDwxOCl8KCgocylbaV0mMHgzZik8PDEyKXwoKChzKVso
aSkrMV0mMHgzZik8PDYpfCgocylbKGkpKzJdJjB4M2YpOyBcCisgICAgICAgICAgICAoaSkrPTM7
IFwKICAgICAgICAgfSBcCiAgICAgfSBcCiB9CkBAIC0yNjgsMTQgKzMyNywxNiBAQCB1dGY4X2Jh
Y2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsK
ICAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFj
cm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmll
cy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRl
ZCBzdHJpbmcuCisgKgogICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBv
ZiBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsCiAgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxs
IHJlYWQgdGhlIHdob2xlIHNlcXVlbmNlLgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0
cmFpbCBieXRlIG9yIGFuIGlsbGVnYWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KICAqIGMgaXMgc2V0
IHRvIGEgbmVnYXRpdmUgdmFsdWUuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0
cmluZwotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBh
cmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZz
ZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVu
Z3RoCiAgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNh
c2Ugb2YgYW4gZXJyb3IKICAqIEBzZWUgVThfTkVYVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIu
NApAQCAtMjg2LDcgKzM0Nyw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpz
LCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7
IFwKICAgICAgICAgaWYoIC8qIGhhbmRsZSBVKzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAogICAg
ICAgICAgICAgKDB4ZTA8KGMpICYmIChjKTw9MHhlYykgJiYgXAotICAgICAgICAgICAgKCgoaSkr
MSk8KGxlbmd0aCkpICYmIFwKKyAgICAgICAgICAgICgoKGkpKzEpPChsZW5ndGgpIHx8IChsZW5n
dGgpPDApICYmIFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0w
eDNmICYmIFwKICAgICAgICAgICAgIChfX3QyPSh1aW50OF90KSgocylbKGkpKzFdLTB4ODApKTw9
IDB4M2YgXAogICAgICAgICApIHsgXApAQCAtMjk1LDE5ICszNTYsNzAgQEAgdXRmOF9iYWNrMVNh
ZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAg
ICAgICAgICAoaSkrPTI7IFwKICAgICAgICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5V
KzA3RkYgaW5saW5lICovIFwKICAgICAgICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYm
IFwKLSAgICAgICAgICAgICgoaSk8KGxlbmd0aCkpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShs
ZW5ndGgpKSAmJiBcCiAgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9
MHgzZiBcCiAgICAgICAgICkgeyBcCi0gICAgICAgICAgICAoYyk9KFVDaGFyKSgoKChjKSYweDFm
KTw8Nil8X190MSk7IFwKKyAgICAgICAgICAgIChjKT0oKChjKSYweDFmKTw8Nil8X190MTsgXAog
ICAgICAgICAgICAgKysoaSk7IFwKLSAgICAgICAgfSBlbHNlIGlmKFU4X0lTX0xFQUQoYykpIHsg
XAorICAgICAgICB9IGVsc2UgeyBcCiAgICAgICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAi
Y29tcGxpY2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCi0gICAgICAgICAgICAoYyk9dXRmOF9u
ZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGludDMyX3QpKGxlbmd0
aCksIGMsIC0xKTsgXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgoY29u
c3QgdWludDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBjLCAtMSk7IFwKKyAgICAgICAgfSBcCisg
ICAgfSBcCit9CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2Rl
IHBvaW50IGZyb20gYSBzdHJpbmcgYXQgYSBjb2RlIHBvaW50IGJvdW5kYXJ5IG9mZnNldCwKKyAq
IGFuZCBhZHZhbmNlIHRoZSBvZmZzZXQgdG8gdGhlIG5leHQgY29kZSBwb2ludCBib3VuZGFyeS4K
KyAqIChQb3N0LWluY3JlbWVudGluZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCisgKiAiU2FmZSIgbWFj
cm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmll
cy4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRl
ZCBzdHJpbmcuCisgKgorICogVGhlIG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBv
ZiBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsCisgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxs
IHJlYWQgdGhlIHdob2xlIHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0
cmFpbCBieXRlIG9yIGFuIGlsbGVnYWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KKyAqIGMgaXMgc2V0
IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdl
ZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3Ig
YW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9ORVhUKCkgaWYgdGhhdCBkaXN0aW5j
dGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmlu
ZworICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisg
KiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0
IFVDaGFyMzIgdmFyaWFibGUsIHNldCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICog
QHNlZSBVOF9ORVhUCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVThfTkVYVF9PUl9G
RkZEKHMsIGksIGxlbmd0aCwgYykgeyBcCisgICAgKGMpPSh1aW50OF90KShzKVsoaSkrK107IFwK
KyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKKyAg
ICAgICAgaWYoIC8qIGhhbmRsZSBVKzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAorICAgICAgICAg
ICAgKDB4ZTA8KGMpICYmIChjKTw9MHhlYykgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxl
bmd0aCkgfHwgKGxlbmd0aCk8MCkgJiYgXAorICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChz
KVtpXS0weDgwKSk8PTB4M2YgJiYgXAorICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVso
aSkrMV0tMHg4MCkpPD0gMHgzZiBcCisgICAgICAgICkgeyBcCisgICAgICAgICAgICAvKiBubyBu
ZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhlIHVwcGVyIGJpdHMgYXJlIHRydW5jYXRlZCBhZnRl
ciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hhcikgKi8gXAorICAgICAgICAgICAgKGMpPShVQ2hh
cikoKChjKTw8MTIpfChfX3QxPDw2KXxfX3QyKTsgXAorICAgICAgICAgICAgKGkpKz0yOyBcCisg
ICAgICAgIH0gZWxzZSBpZiggLyogaGFuZGxlIFUrMDA4MC4uVSswN0ZGIGlubGluZSAqLyBcCisg
ICAgICAgICAgICAoKGMpPDB4ZTAgJiYgKGMpPj0weGMyKSAmJiBcCisgICAgICAgICAgICAoKGkp
IT0obGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgw
KSk8PTB4M2YgXAorICAgICAgICApIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2
KXxfX3QxOyBcCisgICAgICAgICAgICArKyhpKTsgXAogICAgICAgICB9IGVsc2UgeyBcCi0gICAg
ICAgICAgICAoYyk9VV9TRU5USU5FTDsgXAorICAgICAgICAgICAgLyogZnVuY3Rpb24gY2FsbCBm
b3IgImNvbXBsaWNhdGVkIiBhbmQgZXJyb3IgY2FzZXMgKi8gXAorICAgICAgICAgICAgKGMpPXV0
ZjhfbmV4dENoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBj
LCAtMyk7IFwKICAgICAgICAgfSBcCiAgICAgfSBcCiB9CisjZW5kaWYgLyogVV9ISURFX0RSQUZU
X0FQSSAqLwogCiAvKioKICAqIEFwcGVuZCBhIGNvZGUgcG9pbnQgdG8gYSBzdHJpbmcsIG92ZXJ3
cml0aW5nIDEgdG8gNCBieXRlcy4KQEAgLTM1MSw5ICs0NjMsOSBAQCB1dGY4X2JhY2sxU2FmZUJv
ZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIHRoZW4g
aXNFcnJvciBpcyBzZXQgdG8gVFJVRS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICog
c3RyaW5nIGJ1ZmZlcgotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFj
aXR5Ci0gKiBAcGFyYW0gY2FwYWNpdHkgc2l6ZSBvZiB0aGUgc3RyaW5nIGJ1ZmZlcgotICogQHBh
cmFtIGMgY29kZSBwb2ludCB0byBhcHBlbmQKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9m
ZnNldCwgbXVzdCBiZSBpPGNhcGFjaXR5CisgKiBAcGFyYW0gY2FwYWNpdHkgaW50MzJfdCBzaXpl
IG9mIHRoZSBzdHJpbmcgYnVmZmVyCisgKiBAcGFyYW0gYyBVQ2hhcjMyIGNvZGUgcG9pbnQgdG8g
YXBwZW5kCiAgKiBAcGFyYW0gaXNFcnJvciBvdXRwdXQgVUJvb2wgc2V0IHRvIFRSVUUgaWYgYW4g
ZXJyb3Igb2NjdXJzLCBvdGhlcndpc2Ugbm90IG1vZGlmaWVkCiAgKiBAc2VlIFU4X0FQUEVORF9V
TlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAtMzY5LDcgKzQ4MSw3IEBAIHV0ZjhfYmFjazFT
YWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAg
ICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+NikmMHgzZil8MHg4MCk7IFwKICAgICAg
ICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChjKSYweDNmKXwweDgwKTsgXAogICAgIH0gZWxzZSB7
IFwKLSAgICAgICAgKGkpPXV0ZjhfYXBwZW5kQ2hhclNhZmVCb2R5KHMsIChpbnQzMl90KShpKSwg
KGludDMyX3QpKGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwKKyAgICAgICAgKGkpPXV0Zjhf
YXBwZW5kQ2hhclNhZmVCb2R5KHMsIChpKSwgKGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwK
ICAgICB9IFwKIH0KIApAQCAtMzg0LDcgKzQ5Niw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25z
dCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogQHN0YWJsZSBJQ1Ug
Mi40CiAgKi8KICNkZWZpbmUgVThfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAotICAgIChpKSs9MStV
OF9DT1VOVF9UUkFJTF9CWVRFUygocylbaV0pOyBcCisgICAgKGkpKz0xK1U4X0NPVU5UX1RSQUlM
X0JZVEVTX1VOU0FGRSgodWludDhfdCkocylbaV0pOyBcCiB9CiAKIC8qKgpAQCAtMzkyLDkgKzUw
NCwxMSBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFy
dCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNh
ZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJv
dW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRl
cm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcK
LSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBs
ZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBt
dXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAog
ICogQHNlZSBVOF9GV0RfMV9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCkBAIC00MDIs
NyArNTE2LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qg
c3RhcnQsIGludDMyX3QgaSk7CiAgICAgdWludDhfdCBfX2I9KHVpbnQ4X3QpKHMpWyhpKSsrXTsg
XAogICAgIGlmKFU4X0lTX0xFQUQoX19iKSkgeyBcCiAgICAgICAgIHVpbnQ4X3QgX19jb3VudD1V
OF9DT1VOVF9UUkFJTF9CWVRFUyhfX2IpOyBcCi0gICAgICAgIGlmKChpKStfX2NvdW50PihsZW5n
dGgpKSB7IFwKKyAgICAgICAgaWYoKGkpK19fY291bnQ+KGxlbmd0aCkgJiYgKGxlbmd0aCk+PTAp
IHsgXAogICAgICAgICAgICAgX19jb3VudD0odWludDhfdCkoKGxlbmd0aCktKGkpKTsgXAogICAg
ICAgICB9IFwKICAgICAgICAgd2hpbGUoX19jb3VudD4wICYmIFU4X0lTX1RSQUlMKChzKVtpXSkp
IHsgXApAQCAtNDM4LDE2ICs1NTIsMTggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4
X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcg
aXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNl
cyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5l
Z2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25z
dCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8
bGVuZ3RoCi0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMy
X3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQz
Ml90IHN0cmluZyBsZW5ndGgKICAqIEBwYXJhbSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBz
a2lwCiAgKiBAc2VlIFU4X0ZXRF9OX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNk
ZWZpbmUgVThfRldEX04ocywgaSwgbGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7
IFwKLSAgICB3aGlsZShfX04+MCAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4w
ICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAg
ICAgICBVOF9GV0RfMShzLCBpLCBsZW5ndGgpOyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBc
CkBAIC00NzksMTQgKzU5NSwxNCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAq
cywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZv
ciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBw
YXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBz
dHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIHN0YXJ0PD1pCisgKiBAcGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zm
c2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3Qg
YmUgc3RhcnQ8PWkKICAqIEBzZWUgVThfU0VUX0NQX1NUQVJUX1VOU0FGRQogICogQHN0YWJsZSBJ
Q1UgMi40CiAgKi8KICNkZWZpbmUgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKSB7IFwKICAg
ICBpZihVOF9JU19UUkFJTCgocylbKGkpXSkpIHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNh
ZmVCb2R5KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sx
U2FmZUJvZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwKIH0KIApAQCAtNTQ3LDggKzY2Myw4
IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBp
bnQzMl90IGkpOwogICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBz
ZXF1ZW5jZSwgdGhlbiBjIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICoKICAqIEBwYXJh
bSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJp
bmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJl
IHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQg
KHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBz
dGFydDxpCiAgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGlu
IGNhc2Ugb2YgYW4gZXJyb3IKICAqIEBzZWUgVThfUFJFVl9VTlNBRkUKICAqIEBzdGFibGUgSUNV
IDIuNApAQCAtNTU2LDEzICs2NzIsNDIgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4
X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAjZGVmaW5lIFU4X1BSRVYocywgc3Rh
cnQsIGksIGMpIHsgXAogICAgIChjKT0odWludDhfdCkocylbLS0oaSldOyBcCiAgICAgaWYoKGMp
Pj0weDgwKSB7IFwKLSAgICAgICAgaWYoKGMpPD0weGJmKSB7IFwKLSAgICAgICAgICAgIChjKT11
dGY4X3ByZXZDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywg
LTEpOyBcCi0gICAgICAgIH0gZWxzZSB7IFwKLSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBc
Ci0gICAgICAgIH0gXAorICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1
aW50OF90ICopcywgc3RhcnQsICYoaSksIGMsIC0xKTsgXAorICAgIH0gXAorfQorCisjaWZuZGVm
IFVfSElERV9EUkFGVF9BUEkKKy8qKgorICogTW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9u
ZSBjb2RlIHBvaW50IGJvdW5kYXJ5IHRvIHRoZSBwcmV2aW91cyBvbmUKKyAqIGFuZCBnZXQgdGhl
IGNvZGUgcG9pbnQgYmV0d2VlbiB0aGVtLgorICogKFByZS1kZWNyZW1lbnRpbmcgYmFja3dhcmQg
aXRlcmF0aW9uLikKKyAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNl
cyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgorICoKKyAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5
IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgorICogSWYgdGhlIG9mZnNldCBpcyBi
ZWhpbmQgYSBtdWx0aS1ieXRlIHNlcXVlbmNlLCB0aGVuIHRoZSBtYWNybyB3aWxsIHJlYWQKKyAq
IHRoZSB3aG9sZSBzZXF1ZW5jZS4KKyAqIElmIHRoZSBvZmZzZXQgaXMgYmVoaW5kIGEgbGVhZCBi
eXRlLCB0aGVuIHRoYXQgaXRzZWxmCisgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBv
aW50LgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5j
ZSwgdGhlbiBjIGlzIHNldCB0byBVK0ZGRkQuCisgKgorICogVGhpcyBtYWNybyBkb2VzIG5vdCBk
aXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBVK0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZG
RkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3JtZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfUFJFVigp
IGlmIHRoYXQgZGlzdGluY3Rpb24gaXMgaW1wb3J0YW50LgorICoKKyAqIEBwYXJhbSBzIGNvbnN0
IHVpbnQ4X3QgKiBzdHJpbmcKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmlu
ZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBzdGFydDxpCisgKiBAcGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0
IHRvIFUrRkZGRCBpbiBjYXNlIG9mIGFuIGVycm9yCisgKiBAc2VlIFU4X1BSRVYKKyAqIEBkcmFm
dCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9QUkVWX09SX0ZGRkQocywgc3RhcnQsIGksIGMpIHsg
XAorICAgIChjKT0odWludDhfdCkocylbLS0oaSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwK
KyAgICAgICAgKGMpPXV0ZjhfcHJldkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0
YXJ0LCAmKGkpLCBjLCAtMyk7IFwKICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRf
QVBJICovCiAKIC8qKgogICogTW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBv
aW50IGJvdW5kYXJ5IHRvIHRoZSBwcmV2aW91cyBvbmUuCkBAIC01ODYsMTQgKzczMSwxNCBAQCB1
dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJf
dCBpKTsKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQg
Zm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBz
dHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDAp
Ci0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBz
dGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJh
bSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAc2VlIFU4X0JB
Q0tfMV9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0JBQ0tfMShz
LCBzdGFydCwgaSkgeyBcCiAgICAgaWYoVThfSVNfVFJBSUwoKHMpWy0tKGkpXSkpIHsgXAotICAg
ICAgICAoaSk9dXRmOF9iYWNrMVNhZmVCb2R5KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisg
ICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwK
IH0KIApAQCAtNjI2LDggKzc3MSw4IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90
ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3Mg
Zm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICog
QHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IGluZGV4IG9m
IHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IGluZGV4IG9mIHRoZSBzdGFydCBv
ZiB0aGUgc3RyaW5nCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUg
c3RhcnQ8aQogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRvIHNraXAKICAqIEBz
ZWUgVThfQkFDS19OX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC02NjYsMTUgKzgxMSwx
NyBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwg
aW50MzJfdCBpKTsKICAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBz
dHJpbmcgbGVuZ3RoLgogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVu
Y2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUg
bmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNv
bnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zm
c2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0
PD1pPD1sZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0
YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFt
IGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBw
YXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFU4X1NFVF9DUF9MSU1J
VF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X1NFVF9DUF9MSU1J
VChzLCBzdGFydCwgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZigoc3RhcnQpPChpKSAmJiAoaSk8KGxl
bmd0aCkpIHsgXAorICAgIGlmKChzdGFydCk8KGkpICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5n
dGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVOF9CQUNLXzEocywgc3RhcnQsIGkp
OyBcCiAgICAgICAgIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICB9IFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXRmX29sZC5oIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91dGZfb2xkLmgKaW5kZXggODUwNGEwMzBkZGZjNGRiYWUzNjNlNWI1ZmE2YzVkMTU4YmI3
Y2NlMy4uZjkxMjViMWRkMmVkN2UxYzY4NGRhMTY1NGY1ZTQ3ZGQ3Y2Q1ZmIxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dGZfb2xkLmgKKysrIGIvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91dGZfb2xkLmgKQEAgLTEgKzEsMTE2OSBAQAotLyogVGhpcyBmaWxlIGlzIGludGVu
dGlvbmFsbHkgbGVmdCBibGFuay4gKi8KKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dGZfb2xkLmgKKyogICBl
bmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGlu
ZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAyc2VwMjEKKyogICBjcmVhdGVkIGJ5
OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmllZiBDIEFQ
STogRGVwcmVjYXRlZCBtYWNyb3MgZm9yIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nCisgKi8KKwor
LyoqCisgKiAKKyAqIFRoZSBtYWNyb3MgaW4gdXRmX29sZC5oIGFyZSBhbGwgZGVwcmVjYXRlZCBh
bmQgdGhlaXIgdXNlIGRpc2NvdXJhZ2VkLgorICogU29tZSBvZiB0aGUgZGVzaWduIHByaW5jaXBs
ZXMgYmVoaW5kIHRoZSBzZXQgb2YgVVRGIG1hY3JvcworICogaGF2ZSBjaGFuZ2VkIG9yIHByb3Zl
ZCBpbXByYWN0aWNhbC4KKyAqIEFsbW9zdCBhbGwgb2YgdGhlIG9sZCAiVVRGIG1hY3JvcyIgYXJl
IGF0IGxlYXN0IHJlbmFtZWQuCisgKiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgbmV3IGVxdWl2
YWxlbnQgdG8gYW4gb2xkIG1hY3JvLCBwbGVhc2Ugc2VlIHRoZQorICogY29tbWVudCBhdCB0aGUg
b2xkIG9uZS4KKyAqCisgKiBCcmllZiBzdW1tYXJ5IG9mIHJlYXNvbnMgZm9yIGRlcHJlY2F0aW9u
OgorICogLSBTd2l0Y2ggb24gVVRGX1NJWkUgKHNlbGVjdGlvbiBvZiBVVEYtOC8xNi8zMiBkZWZh
dWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgaW1wcmFjdGljYWwuCisgKiAtIFN3aXRj
aCBvbiBVVEZfU0FGRSBldGMuIChzZWxlY3Rpb24gb2YgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1
bHQgc3RyaW5nIHByb2Nlc3NpbmcpCisgKiAgIHdhcyBvZiBsaXR0bGUgdXNlIGFuZCBpbXByYWN0
aWNhbC4KKyAqIC0gV2hvbGUgY2xhc3NlcyBvZiBtYWNyb3MgYmVjYW1lIG9ic29sZXRlIG91dHNp
ZGUgb2YgdGhlIFVURl9TSVpFL1VURl9TQUZFCisgKiAgIHNlbGVjdGlvbiBmcmFtZXdvcms6IFVU
RjMyXyBtYWNyb3MgKGFsbCB0cml2aWFsKQorICogICBhbmQgVVRGXyBkZWZhdWx0IGFuZCBpbnRl
cm1lZGlhdGUgbWFjcm9zIChhbGwgYWxpYXNlcykuCisgKiAtIFRoZSBzZWxlY3Rpb24gZnJhbWV3
b3JrIGFsc28gY2F1c2VkIG1hbnkgbWFjcm8gYWxpYXNlcy4KKyAqIC0gQ2hhbmdlIGluIFVuaWNv
ZGUgc3RhbmRhcmQ6ICJpcnJlZ3VsYXIiIHNlcXVlbmNlcyAoMy4wKSBiZWNhbWUgaWxsZWdhbCAo
My4yKS4KKyAqIC0gQ2hhbmdlIG9mIGxhbmd1YWdlIGluIFVuaWNvZGUgc3RhbmRhcmQ6CisgKiAg
IEdyb3dpbmcgZGlzdGluY3Rpb24gYmV0d2VlbiBpbnRlcm5hbCB4LWJpdCBVbmljb2RlIHN0cmlu
Z3MgYW5kIGV4dGVybmFsIFVURi14CisgKiAgIGZvcm1zLCB3aXRoIHRoZSBmb3JtZXIgbW9yZSBs
ZW5pZW50LgorICogICBTdWdnZXN0cyByZW5hbWluZyBvZiBVVEYxNl8gbWFjcm9zIHRvIFUxNl8u
CisgKiAtIFRoZSBwcmVmaXggIlVURl8iIHdpdGhvdXQgYSB3aWR0aCBudW1iZXIgY29uZnVzZWQg
c29tZSB1c2Vycy4KKyAqIC0gIlNhZmUiIGFwcGVuZCBtYWNyb3MgbmVlZGVkIHRoZSBhZGRpdGlv
biBvZiBhbiBlcnJvciBpbmRpY2F0b3Igb3V0cHV0LgorICogLSAiU2FmZSIgVVRGLTggbWFjcm9z
IHVzZWQgbGVnaXRpbWF0ZSAoaWYgcmFyZWx5IHVzZWQpIGNvZGUgcG9pbnQgdmFsdWVzCisgKiAg
IHRvIGluZGljYXRlIGVycm9yIGNvbmRpdGlvbnMuCisgKiAtIFRoZSB1c2Ugb2YgdGhlICJfQ0hB
UiIgaW5maXggZm9yIGNvZGUgcG9pbnQgb3BlcmF0aW9ucyBjb25mdXNlZCBzb21lIHVzZXJzLgor
ICoKKyAqIE1vcmUgZGV0YWlsczoKKyAqCisgKiBVbnRpbCBJQ1UgMi4yLCB1dGYuaCB0aGVvcmV0
aWNhbGx5IGFsbG93ZWQgdG8gY2hvb3NlIGFtb25nIFVURi04LzE2LzMyCisgKiBmb3Igc3RyaW5n
IHByb2Nlc3NpbmcsIGFuZCBhbW9uZyB1bnNhZmUvc2FmZS9zdHJpY3QgZGVmYXVsdCBtYWNyb3Mg
Zm9yIHRoYXQuCisgKgorICogSXQgcHJvdmVkIG5lYXJseSBpbXBvc3NpYmxlIHRvIHdyaXRlIG5v
bi10cml2aWFsLCBoaWdoLXBlcmZvcm1hbmNlIGNvZGUKKyAqIHRoYXQgaXMgVVRGLWdlbmVyaWMu
CisgKiBVbnNhZmUgZGVmYXVsdCBtYWNyb3Mgd291bGQgYmUgZGFuZ2Vyb3VzIGZvciBkZWZhdWx0
IHN0cmluZyBwcm9jZXNzaW5nLAorICogYW5kIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhlICJzdHJp
Y3QiIHZlcnNpb25zIGRpc2FwcGVhcmVkOgorICogQmV0d2VlbiBVbmljb2RlIDMuMCBhbmQgMy4y
IGFsbCAiaXJyZWd1bGFyIiBVVEYtOCBzZXF1ZW5jZXMgYmVjYW1lIGlsbGVnYWwuCisgKiBUaGUg
b25seSBvdGhlciBjb25kaXRpb25zIHRoYXQgInN0cmljdCIgY2hlY2tlZCBmb3Igd2VyZSBub24t
Y2hhcmFjdGVycywKKyAqIHdoaWNoIGFyZSB2YWxpZCBkdXJpbmcgcHJvY2Vzc2luZy4gT25seSBk
dXJpbmcgdGV4dCBpbnB1dC9vdXRwdXQgc2hvdWxkIHRoZXkKKyAqIGJlIGNoZWNrZWQsIGFuZCBh
dCB0aGF0IHRpbWUgb3RoZXIgd2VsbC1mb3JtZWRuZXNzIGNoZWNrcyBtYXkgYmUKKyAqIG5lY2Vz
c2FyeSBvciB1c2VmdWwgYXMgd2VsbC4KKyAqIFRoaXMgY2FuIHN0aWxsIGJlIGRvbmUgYnkgdXNp
bmcgVTE2X05FWFQgYW5kIFVfSVNfVU5JQ09ERV9OT05DSEFSCisgKiBvciBVX0lTX1VOSUNPREVf
Q0hBUi4KKyAqCisgKiBUaGUgb2xkIFVURjhfLi4uX1NBRkUgbWFjcm9zIGFsc28gdXNlZCBzb21l
IG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzCisgKiB0byBpbmRpY2F0ZSBtYWxmb3JtZWQgc2Vx
dWVuY2VzLgorICogVGhlIG5ldyBVVEY4XyBtYWNyb3Mgd2l0aG91dCBzdWZmaXggdXNlIG5lZ2F0
aXZlIHZhbHVlcyBpbnN0ZWFkLgorICoKKyAqIFRoZSBlbnRpcmUgY29udGVudHMgb2YgdXRmMzIu
aCB3YXMgbW92ZWQgaGVyZSB3aXRob3V0IHJlcGxhY2VtZW50CisgKiBiZWNhdXNlIGFsbCB0aG9z
ZSBtYWNyb3Mgd2VyZSB0cml2aWFsIGFuZAorICogd2VyZSBtZWFuaW5nZnVsIG9ubHkgaW4gdGhl
IGZyYW1ld29yayBvZiBjaG9vc2luZyB0aGUgVVRGIHNpemUuCisgKgorICogU2VlIEppdHRlcmJ1
ZyAyMTUwIGFuZCBpdHMgZGlzY3Vzc2lvbiBvbiB0aGUgSUNVIG1haWxpbmcgbGlzdAorICogaW4g
U2VwdGVtYmVyIDIwMDIuCisgKgorICogPGhyPgorICoKKyAqIDxlbT5PYnNvbGV0ZSBwYXJ0PC9l
bT4gb2YgcHJlLUlDVSAyLjQgdXRmLmggZmlsZSBkb2N1bWVudGF0aW9uOgorICoKKyAqIDxwPlRo
ZSBvcmlnaW5hbCBjb25jZXB0IGZvciB0aGVzZSBmaWxlcyB3YXMgZm9yIElDVSB0byBhbGxvdwor
ICogaW4gcHJpbmNpcGxlIHRvIHNldCB3aGljaCBVVEYgKFVURi04LzE2LzMyKSBpcyB1c2VkIGlu
dGVybmFsbHkKKyAqIGJ5IGRlZmluaW5nIFVURl9TSVpFIHRvIGVpdGhlciA4LCAxNiwgb3IgMzIu
IHV0Zi5oIHdvdWxkIHRoZW4gZGVmaW5lIHRoZSBVQ2hhciB0eXBlCisgKiBhY2NvcmRpbmdseS4g
VVRGLTE2IHdhcyB0aGUgZGVmYXVsdC48L3A+CisgKgorICogPHA+VGhpcyBjb25jZXB0IGhhcyBi
ZWVuIGFiYW5kb25lZC4KKyAqIEEgbG90IG9mIHRoZSBJQ1Ugc291cmNlIGNvZGUgYXNzdW1lcyBV
Q2hhciBzdHJpbmdzIGFyZSBpbiBVVEYtMTYuCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgdHJ1ZSBm
b3IgbG93LWxldmVsIGNvZGUgbGlrZQorICogY29udmVyc2lvbiwgbm9ybWFsaXphdGlvbiwgYW5k
IGNvbGxhdGlvbi4KKyAqIFRoZSB1dGYuaCBoZWFkZXIgZW5mb3JjZXMgdGhlIGRlZmF1bHQgb2Yg
VVRGLTE2LgorICogVGhlIFVURi04IGFuZCBVVEYtMzIgbWFjcm9zIHJlbWFpbiBmb3Igbm93IGZv
ciBjb21wbGV0ZW5lc3MgYW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuPC9wPgorICoKKyAqIDxw
PkFjY29yZGluZ2x5LCB1dGYuaCBkZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJp
dCBpbnRlZ2VyLiBJZiB0aGlzIG1hdGNoZXMgd2NoYXJfdCwgdGhlbgorICogVUNoYXIgaXMgZGVm
aW5lZCB0byBiZSBleGFjdGx5IHdjaGFyX3QsIG90aGVyd2lzZSB1aW50MTZfdC48L3A+CisgKgor
ICogPHA+VUNoYXIzMiBpcyBkZWZpbmVkIHRvIGJlIGEgc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIChp
bnQzMl90KSwgbGFyZ2UgZW5vdWdoIGZvciBhIDIxLWJpdAorICogVW5pY29kZSBjb2RlIHBvaW50
IChVbmljb2RlIHNjYWxhciB2YWx1ZSwgMC4uMHgxMGZmZmYpLgorICogQmVmb3JlIElDVSAyLjQs
IHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyMzIgd2FzIHNpbWlsYXJseSBwbGF0Zm9ybS1kZXBlbmRl
bnQgYXMKKyAqIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyLiBGb3IgZGV0YWlscyBzZWUgdGhlIGRv
Y3VtZW50YXRpb24gZm9yIFVDaGFyMzIgaXRzZWxmLjwvcD4KKyAqCisgKiA8cD51dGYuaCBhbHNv
IGRlZmluZXMgYSBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIGhhbmRsaW5nIHNpbmdsZSBVbmljb2Rl
IGNvZGUgcG9pbnRzIGFuZAorICogZm9yIHVzaW5nIFVURiBVbmljb2RlIHN0cmluZ3MuIEl0IGlu
Y2x1ZGVzIHV0ZjguaCwgdXRmMTYuaCwgYW5kIHV0ZjMyLmggZm9yIHRoZSBhY3R1YWwKKyAqIGlt
cGxlbWVudGF0aW9ucyBvZiB0aG9zZSBtYWNyb3MgYW5kIHRoZW4gYWxpYXNlcyBvbmUgc2V0IG9m
IHRoZW0gKGZvciBVVEYtMTYpIGZvciBnZW5lcmFsIHVzZS4KKyAqIFRoZSBVVEYtc3BlY2lmaWMg
bWFjcm9zIGhhdmUgdGhlIFVURiBzaXplIGluIHRoZSBtYWNybyBuYW1lIHByZWZpeGVzIChVVEYx
Nl8uLi4pLCB3aGlsZQorICogdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIGFsd2F5cyBiZWdpbiB3
aXRoIFVURl8uLi48L3A+CisgKgorICogPHA+TWFueSBzdHJpbmcgb3BlcmF0aW9ucyBjYW4gYmUg
ZG9uZSB3aXRoIG9yIHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcuCisgKiBXaGVyZSBzdWNoIGEgZGlz
dGluY3Rpb24gaXMgdXNlZnVsLCB0aGVyZSBhcmUgdHdvIHZlcnNpb25zIG9mIHRoZSBtYWNyb3Ms
ICJ1bnNhZmUiIGFuZCAic2FmZSIKKyAqIG9uZXMgd2l0aCAuLi5fVU5TQUZFIGFuZCAuLi5fU0FG
RSBzdWZmaXhlcy4gVGhlIHVuc2FmZSBtYWNyb3MgYXJlIGZhc3QgYnV0IG1heSBjYXVzZQorICog
cHJvZ3JhbSBmYWlsdXJlcyBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IHdlbGwtZm9ybWVkLiBUaGUg
c2FmZSBtYWNyb3MgaGF2ZSBhbiBhZGRpdGlvbmFsLCBib29sZWFuCisgKiBwYXJhbWV0ZXIgInN0
cmljdCIuIElmIHN0cmljdCBpcyBGQUxTRSwgdGhlbiBvbmx5IGlsbGVnYWwgc2VxdWVuY2VzIGFy
ZSBkZXRlY3RlZC4KKyAqIE90aGVyd2lzZSwgaXJyZWd1bGFyIHNlcXVlbmNlcyBhbmQgbm9uLWNo
YXJhY3RlcnMgYXJlIGRldGVjdGVkIGFzIHdlbGwgKGxpa2Ugc2luZ2xlIHN1cnJvZ2F0ZXMpLgor
ICogU2FmZSBtYWNyb3MgcmV0dXJuIHNwZWNpYWwgZXJyb3IgY29kZSBwb2ludHMgZm9yIGlsbGVn
YWwvaXJyZWd1bGFyIHNlcXVlbmNlczoKKyAqIFR5cGljYWxseSwgVStmZmZmLCBvciB2YWx1ZXMg
dGhhdCB3b3VsZCByZXN1bHQgaW4gYSBjb2RlIHVuaXQgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgbGVu
Z3RoCisgKiBhcyB0aGUgZXJyb25lb3VzIGlucHV0IHNlcXVlbmNlLjxicj4KKyAqIE5vdGUgdGhh
dCBfVU5TQUZFIG1hY3JvcyBoYXZlIGZld2VyIHBhcmFtZXRlcnM6IFRoZXkgZG8gbm90IGhhdmUg
dGhlIHN0cmljdG5lc3MgcGFyYW1ldGVyLCBhbmQKKyAqIHRoZXkgZG8gbm90IGhhdmUgc3RhcnQv
bGVuZ3RoIHBhcmFtZXRlcnMgZm9yIGJvdW5kYXJ5IGNoZWNraW5nLjwvcD4KKyAqCisgKiA8cD5I
ZXJlLCB0aGUgbWFjcm9zIGFyZSBhbGlhc2VkIGluIHR3byBzdGVwczoKKyAqIEluIHRoZSBmaXJz
dCBzdGVwLCB0aGUgVVRGLXNwZWNpZmljIG1hY3JvcyB3aXRoIFVURjE2XyBwcmVmaXggYW5kIF9V
TlNBRkUgYW5kIF9TQUZFIHN1ZmZpeGVzIGFyZQorICogYWxpYXNlZCBhY2NvcmRpbmcgdG8gdGhl
IFVURl9TSVpFIHRvIG1hY3JvcyB3aXRoIFVURl8gcHJlZml4IGFuZCB0aGUgc2FtZSBzdWZmaXhl
cyBhbmQgc2lnbmF0dXJlcy4KKyAqIFRoZW4sIGluIGEgc2Vjb25kIHN0ZXAsIHRoZSBkZWZhdWx0
LCBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhcmUgc2V0IHRvIHVzZSBlaXRoZXIgdGhlIHVuc2FmZSBv
cgorICogdGhlIHNhZmUvbm90IHN0cmljdCAoZGVmYXVsdCkgb3IgdGhlIHNhZmUvc3RyaWN0IG1h
Y3JvOworICogdGhlc2UgZ2VuZXJhbCBtYWNyb3MgZG8gbm90IGhhdmUgYSBzdHJpY3RuZXNzIHBh
cmFtZXRlci48L3A+CisgKgorICogPHA+SXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBkZWZh
dWx0IGNob2ljZSBmb3IgdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIHRvIGJlIHVuc2FmZSwgc2Fm
ZS9ub3Qgc3RyaWN0IG9yIHNhZmUvc3RyaWN0LgorICogVGhlIGRlZmF1bHQgaXMgc2FmZS9ub3Qg
c3RyaWN0LiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gc2VsZWN0IHRoZSB1bnNhZmUgbWFjcm9z
IGFzIHRoZSBiYXNpcyBmb3IKKyAqIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5nIGluIElDVSEgVG8g
c2VsZWN0IHRoaXMsIGRlZmluZSBVVEZfU0FGRSwgVVRGX1NUUklDVCwgb3IgVVRGX1VOU0FGRS48
L3A+CisgKgorICogPHA+Rm9yIGdlbmVyYWwgdXNlLCBvbmUgc2hvdWxkIHVzZSB0aGUgZGVmYXVs
dCwgZ2VuZXJhbCBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgbm8gX1NBRkUvX1VOU0FGRSBz
dWZmaXguCisgKiBPbmx5IGluIHNvbWUgY2FzZXMgaXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBjb250
cm9sIHRoZSBjaG9pY2Ugb2YgbWFjcm8gZGlyZWN0bHkgYW5kIHVzZSBhIGxlc3MgZ2VuZXJpYyBh
bGlhcy4KKyAqIEZvciBleGFtcGxlLCBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGEgc3RyaW5n
IGlzIHdlbGwtZm9ybWVkIGFuZCB0aGUgaW5kZXggd2lsbCBzdGF5IHdpdGhpbiB0aGUgYm91bmRz
LAorICogdGhlbiB0aGUgX1VOU0FGRSB2ZXJzaW9uIG1heSBiZSB1c2VkLgorICogSWYgYSBVVEYt
OCBzdHJpbmcgaXMgdG8gYmUgcHJvY2Vzc2VkLCB0aGVuIHRoZSBtYWNyb3Mgd2l0aCBVVEY4XyBw
cmVmaXhlcyBuZWVkIHRvIGJlIHVzZWQuPC9wPgorICoKKyAqIDxocj4KKyAqCisgKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgdGhlIG1hY3JvcyBpbiB1dGYuaCwgdXRmMTYuaCwgdXRmOC5oIGlu
c3RlYWQuCisgKi8KKworI2lmbmRlZiBfX1VURl9PTERfSF9fCisjZGVmaW5lIF9fVVRGX09MRF9I
X18KKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworI2luY2x1ZGUgInVuaWNvZGUv
dXRmLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYx
Ni5oIgorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWZkZWYgVV9VU0VfVVRGX0RFUFJF
Q0FURVMKKy8qKgorICogVW5pY29kZSBzdHJpbmcgYW5kIGFycmF5IG9mZnNldCBhbmQgaW5kZXgg
dHlwZS4KKyAqIElDVSBhbHdheXMgY291bnRzIFVuaWNvZGUgY29kZSB1bml0cyAoVUNoYXJzKSBm
b3IKKyAqIHN0cmluZyBvZmZzZXRzLCBpbmRleGVzLCBhbmQgbGVuZ3Rocywgbm90IFVuaWNvZGUg
Y29kZSBwb2ludHMuCisgKgorICogQG9ic29sZXRlIElDVSAyLjYuIFVzZSBpbnQzMl90IGRpcmVj
dGx5IGluc3RlYWQgc2luY2UgdGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIHRoYXQgcmVsZWFz
ZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IFVUZXh0T2Zmc2V0OworI2VuZGlmCisKKy8qKiBOdW1i
ZXIgb2YgYml0cyBpbiBhIFVuaWNvZGUgc3RyaW5nIGNvZGUgdW5pdCAtIElDVSB1c2VzIDE2LWJp
dCBVbmljb2RlLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX1NJWkUgMTYKKworLyoqCisgKiBUaGUgZGVmYXVsdCBjaG9pY2UgZm9y
IGdlbmVyYWwgVW5pY29kZSBzdHJpbmcgbWFjcm9zIGlzIHRvIHVzZSB0aGUgLi4uX1NBRkUgbWFj
cm8gaW1wbGVtZW50YXRpb25zCisgKiB3aXRoIHN0cmljdD1GQUxTRS4KKyAqCisgKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZf
U0FGRQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI3VuZGVmIFVURl9VTlNBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyN1bmRlZiBVVEZfU1RSSUNUCisKKy8qKgorICogVVRGOF9FUlJP
Ul9WQUxVRV8xIGFuZCBVVEY4X0VSUk9SX1ZBTFVFXzIgYXJlIHNwZWNpYWwgZXJyb3IgdmFsdWVz
IGZvciBVVEYtOCwKKyAqIHdoaWNoIG5lZWQgMSBvciAyIGJ5dGVzIGluIFVURi04OgorICogXGNv
ZGUKKyAqIFUrMDAxNSA9IE5BSyA9IE5lZ2F0aXZlIEFja25vd2xlZGdlLCBDMCBjb250cm9sIGNo
YXJhY3RlcgorICogVSswMDlmID0gaGlnaGVzdCBDMSBjb250cm9sIGNoYXJhY3RlcgorICogXGVu
ZGNvZGUKKyAqCisgKiBUaGVzZSBhcmUgdXNlZCBieSBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBzbyB0
aGF0IHRoZXkgY2FuIHJldHVybiBhbiBlcnJvciB2YWx1ZQorICogdGhhdCBuZWVkcyB0aGUgc2Ft
ZSBudW1iZXIgb2YgY29kZSB1bml0cyAoYnl0ZXMpIGFzIHdlcmUgc2VlbiBieQorICogYSBtYWNy
by4gVGhleSBzaG91bGQgYmUgdGVzdGVkIHdpdGggVVRGX0lTX0VSUk9SKCkgb3IgVVRGX0lTX1ZB
TElEKCkuCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xk
LmguCisgKi8KKyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8xIDB4MTUKKworLyoqCisgKiBTZWUg
ZG9jdW1lbnRhdGlvbiBvbiBVVEY4X0VSUk9SX1ZBTFVFXzEgZm9yIGRldGFpbHMuCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGOF9FUlJPUl9WQUxVRV8yIDB4OWYKKworLyoqCisgKiBFcnJvciB2YWx1ZSBmb3IgYWxs
IFVURnMuIFRoaXMgY29kZSBwb2ludCB2YWx1ZSB3aWxsIGJlIHNldCBieSBtYWNyb3Mgd2l0aCBl
cnJvcgorICogY2hlY2tpbmcgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
X0VSUk9SX1ZBTFVFIDB4ZmZmZgorCisvKioKKyAqIElzIGEgZ2l2ZW4gMzItYml0IGNvZGUgYW4g
ZXJyb3IgdmFsdWUKKyAqIGFzIHJldHVybmVkIGJ5IG9uZSBvZiB0aGUgbWFjcm9zIGZvciBhbnkg
VVRGPworICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5o
LgorICovCisjZGVmaW5lIFVURl9JU19FUlJPUihjKSBcCisgICAgKCgoYykmMHhmZmZlKT09MHhm
ZmZlIHx8IChjKT09VVRGOF9FUlJPUl9WQUxVRV8xIHx8IChjKT09VVRGOF9FUlJPUl9WQUxVRV8y
KQorCisvKioKKyAqIFRoaXMgaXMgYSBjb21iaW5lZCBtYWNybzogSXMgYyBhIHZhbGlkIFVuaWNv
ZGUgdmFsdWUgX2FuZF8gbm90IGFuIGVycm9yIGNvZGU/CisgKgorICogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1ZBTElE
KGMpIFwKKyAgICAoVVRGX0lTX1VOSUNPREVfQ0hBUihjKSAmJiBcCisgICAgIChjKSE9VVRGOF9F
UlJPUl9WQUxVRV8xICYmIChjKSE9VVRGOF9FUlJPUl9WQUxVRV8yKQorCisvKioKKyAqIElzIHRo
aXMgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgYSBzdXJyb2dhdGUgKFUrZDgwMC4uVStkZmZmKT8K
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19TVVJST0dBVEUgYW5kIFUx
Nl9JU19TVVJST0dBVEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJP
R0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmY4MDApPT0weGQ4MDApCisKKy8qKgorICogSXMg
YSBnaXZlbiAzMi1iaXQgY29kZSBwb2ludCBhIFVuaWNvZGUgbm9uY2hhcmFjdGVyPworICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RFX05PTkNIQVIsIHNl
ZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihjKSBcCisg
ICAgKChjKT49MHhmZGQwICYmIFwKKyAgICAgKCh1aW50MzJfdCkoYyk8PTB4ZmRlZiB8fCAoKGMp
JjB4ZmZmZSk9PTB4ZmZmZSkgJiYgXAorICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZikKKwor
LyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCB2YWx1ZSBhIFVuaWNvZGUgY29kZSBwb2ludCB2YWx1
ZSAoMC4uVSsxMGZmZmYpCisgKiB0aGF0IGNhbiBiZSBhc3NpZ25lZCBhIGNoYXJhY3Rlcj8KKyAq
CisgKiBDb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgY2hhcmFjdGVycyBpbmNsdWRlOgorICogLSBz
aW5nbGUgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIChVK2Q4MDAuLlUrZGZmZiwgMjA0OCBjb2RlIHBv
aW50cykKKyAqIC0gdGhlIGxhc3QgdHdvIGNvZGUgcG9pbnRzIG9uIGVhY2ggcGxhbmUgKFUrX19m
ZmZlIGFuZCBVK19fZmZmZiwgMzQgY29kZSBwb2ludHMpCisgKiAtIFUrZmRkMC4uVStmZGVmIChu
ZXcgd2l0aCBVbmljb2RlIDMuMSwgMzIgY29kZSBwb2ludHMpCisgKiAtIHRoZSBoaWdoZXN0IFVu
aWNvZGUgY29kZSBwb2ludCB2YWx1ZSBpcyBVKzEwZmZmZgorICoKKyAqIFRoaXMgbWVhbnMgdGhh
dCBhbGwgY29kZSBwb2ludHMgYmVsb3cgVStkODAwIGFyZSBjaGFyYWN0ZXIgY29kZSBwb2ludHMs
CisgKiBhbmQgdGhhdCBib3VuZGFyeSBpcyB0ZXN0ZWQgZmlyc3QgZm9yIHBlcmZvcm1hbmNlLgor
ICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RFX0NIQVIs
IHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfQ0hBUihjKSBcCisg
ICAgKCh1aW50MzJfdCkoYyk8MHhkODAwIHx8IFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk+MHhk
ZmZmICYmIFwKKyAgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmICYmIFwKKyAgICAgICAg
ICFVVEZfSVNfVU5JQ09ERV9OT05DSEFSKGMpKSkKKworLyogRm9ybWVybHkgdXRmOC5oIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K
KworLyoqCisgKiBDb3VudCB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlLgor
ICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9DT1VOVF9UUkFJTF9CWVRFUywg
c2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEY4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRC
eXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQorCisvKioKKyAq
IE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2VyIGJpdHMgdGhhdCBm
b3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFU4X01BU0tfTEVBRF9CWVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURjhfTUFTS19MRUFEX0JZVEUobGVhZEJ5dGUsIGNvdW50VHJhaWxCeXRlcykgKChsZWFk
Qnl0ZSkmPSgxPDwoNi0oY291bnRUcmFpbEJ5dGVzKSkpLTEpCisKKy8qKiBJcyB0aGlzIHRoaXMg
Y29kZSBwb2ludCBhIHNpbmdsZSBjb2RlIHVuaXQgKGJ5dGUpPyBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFU4X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9JU19TSU5HTEUodWNoYXIpICgoKHVjaGFyKSYweDgwKT09MCkKKy8qKiBJcyB0aGlzIHRoaXMg
Y29kZSB1bml0IHRoZSBsZWFkIGNvZGUgdW5pdCAoYnl0ZSkgb2YgYSBjb2RlIHBvaW50PyBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjhfSVNfTEVBRCh1Y2hhcikgKCh1aW50OF90KSgodWNoYXIpLTB4YzApPDB4
M2UpCisvKiogSXMgdGhpcyB0aGlzIGNvZGUgdW5pdCBhIHRyYWlsaW5nIGNvZGUgdW5pdCAoYnl0
ZSkgb2YgYSBjb2RlIHBvaW50PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lT
X1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0lTX1RSQUlMKHVjaGFyKSAo
KCh1Y2hhcikmMHhjMCk9PTB4ODApCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVuaWNvZGUgdmFs
dWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBVc2UgVThfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHg3ZikgaW5zdGVhZCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORUVEX01VTFRJUExFX1VDSEFSKGMpICgo
dWludDMyX3QpKGMpPjB4N2YpCisKKy8qKgorICogR2l2ZW4gdGhlIGxlYWQgY2hhcmFjdGVyLCBo
b3cgbWFueSBieXRlcyBhcmUgdGFrZW4gYnkgdGhpcyBjb2RlIHBvaW50LgorICogSUNVIGRvZXMg
bm90IGRlYWwgd2l0aCBjb2RlIHBvaW50cyA+MHgxMGZmZmYKKyAqIHVubGVzcyBuZWNlc3Nhcnkg
Zm9yIGFkdmFuY2luZyBpbiB0aGUgYnl0ZSBzdHJlYW0uCisgKgorICogVGhlc2UgbGVuZ3RoIG1h
Y3JvcyB0YWtlIGludG8gYWNjb3VudCB0aGF0IGZvciB2YWx1ZXMgPjB4MTBmZmZmCisgKiB0aGUg
VVRGOF9BUFBFTkRfQ0hBUl9TQUZFIG1hY3JvcyB3b3VsZCB3cml0ZSB0aGUgZXJyb3IgY29kZSBw
b2ludCAweGZmZmYKKyAqIHdpdGggMyBieXRlcy4KKyAqIENvZGUgcG9pbnQgY29tcGFyaXNvbnMg
bmVlZCB0byBiZSBpbiB1aW50MzJfdCBiZWNhdXNlIFVDaGFyMzIKKyAqIG1heSBiZSBhIHNpZ25l
ZCB0eXBlLCBhbmQgbmVnYXRpdmUgdmFsdWVzIG11c3QgYmUgcmVjb2duaXplZC4KKyAqCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIGluc3RlYWQsIHNlZSB1dGYuaC4KKyAq
LworI2lmIDEKKyMgICBkZWZpbmUgVVRGOF9DSEFSX0xFTkdUSChjKSBcCisgICAgICAgICgodWlu
dDMyX3QpKGMpPD0weDdmID8gMSA6IFwKKyAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDdm
ZiA/IDIgOiBcCisgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoKGMpLTB4MTAwMDApPjB4ZmZm
ZmYgPyAzIDogNCkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbHNlCisjICAgZGVm
aW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZiA/
IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZmYgPyAyIDogXAorICAgICAg
ICAgICAgICAgICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAzIDogXAorICAgICAgICAgICAgICAg
ICAgICAoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYgPyA0IDogXAorICAgICAgICAgICAgICAgICAg
ICAgICAgKCh1aW50MzJfdCkoYyk8PTB4M2ZmZmZmZiA/IDUgOiBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmZmZmZmYgPyA2IDogMykgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgICAgICAgICAgICkgXAorICAgICAgICAg
ICAgICAgICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbmRpZgorCisvKiogVGhl
IG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHBlciBjb2RlIHBvaW50LiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFU4X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjhfTUFYX0NIQVJfTEVOR1RIIDQKKworLyoqIEF2ZXJhZ2UgbnVtYmVyIG9mIGNvZGUgdW5p
dHMgY29tcGFyZWQgdG8gVVRGLTE2LiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9BUlJBWV9TSVpFKHNpemUpICgoNSooc2l6ZSkp
LzIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0dFVF9VTlNBRkUs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMp
IHsgXAorICAgIGludDMyX3QgX3V0ZjhfZ2V0X2NoYXJfdW5zYWZlX2luZGV4PShpbnQzMl90KShp
KTsgXAorICAgIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIF91dGY4X2dldF9jaGFyX3Vu
c2FmZV9pbmRleCk7IFwKKyAgICBVVEY4X05FWFRfQ0hBUl9VTlNBRkUocywgX3V0ZjhfZ2V0X2No
YXJfdW5zYWZlX2luZGV4LCBjKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNl
IFU4X0dFVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFS
X1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICBpbnQzMl90IF91
dGY4X2dldF9jaGFyX3NhZmVfaW5kZXg9KGludDMyX3QpKGkpOyBcCisgICAgVVRGOF9TRVRfQ0hB
Ul9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBfdXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4KTsgXAorICAg
IFVURjhfTkVYVF9DSEFSX1NBRkUocywgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCwgbGVuZ3Ro
LCBjLCBzdHJpY3QpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X05FWFRfQ0hB
Ul9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZigodWlu
dDhfdCkoKGMpLTB4YzApPDB4MzUpIHsgXAorICAgICAgICB1aW50OF90IF9fY291bnQ9VVRGOF9D
T1VOVF9UUkFJTF9CWVRFUyhjKTsgXAorICAgICAgICBVVEY4X01BU0tfTEVBRF9CWVRFKGMsIF9f
Y291bnQpOyBcCisgICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKKyAgICAgICAgLyogZWFjaCBm
b2xsb3dpbmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKKyAgICAg
ICAgY2FzZSAzOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7
IFwKKyAgICAgICAgY2FzZSAyOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkr
K10mMHgzZik7IFwKKyAgICAgICAgY2FzZSAxOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8
KChzKVsoaSkrK10mMHgzZik7IFwKKyAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8gb3B0
aW1pemUgc3dpdGNoKCkgKi8gXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAgICAgICAgfSBcCisg
ICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0FQUEVO
RF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfVU5T
QUZFKHMsIGksIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4N2YpIHsgXAorICAgICAg
ICAocylbKGkpKytdPSh1aW50OF90KShjKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgaWYo
KHVpbnQzMl90KShjKTw9MHg3ZmYpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhf
dCkoKChjKT4+Nil8MHhjMCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYo
KHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1
aW50OF90KSgoKGMpPj4xMil8MHhlMCk7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAg
ICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpPj4xOCl8MHhmMCk7IFwKKyAgICAg
ICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+MTIpJjB4M2YpfDB4ODApOyBc
CisgICAgICAgICAgICB9IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQ4X3QpKCgoKGMp
Pj42KSYweDNmKXwweDgwKTsgXAorICAgICAgICB9IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWlu
dDhfdCkoKChjKSYweDNmKXwweDgwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIChpKSs9MStVVEY4X0NPVU5U
X1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVThfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4
X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3
aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBcCisgICAg
ICAgIC0tX19OOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNf
VFJBSUwoKHMpW2ldKSkgeyAtLShpKTsgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBVc2UgVThfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X05F
WFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhp
KSsrXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKFVURjhfSVNfTEVBRChj
KSkgeyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KHMsICYoaSksIChp
bnQzMl90KShsZW5ndGgpLCBjLCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAg
ICAgICAgIChjKT1VVEY4X0VSUk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfQVBQRU5EIGluc3RlYWQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgs
IGMpICB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAgICAgICAgKHMpWyhp
KSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChpKT11dGY4X2Fw
cGVuZENoYXJTYWZlQm9keShzLCAoaW50MzJfdCkoaSksIChpbnQzMl90KShsZW5ndGgpLCBjLCBO
VUxMKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9GV0RfMV9TQUZFKHMs
IGksIGxlbmd0aCkgVThfRldEXzEocywgaSwgbGVuZ3RoKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
OF9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwgbikgVThfRldEX04ocywgaSwgbGVuZ3RoLCBuKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfU1RBUlQsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFy
dCwgaSkgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVOF9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSld
OyBcCisgICAgaWYoVVRGOF9JU19UUkFJTChjKSkgeyBcCisgICAgICAgIHVpbnQ4X3QgX19iLCBf
X2NvdW50PTEsIF9fc2hpZnQ9NjsgXAorXAorICAgICAgICAvKiBjIGlzIGEgdHJhaWwgYnl0ZSAq
LyBcCisgICAgICAgIChjKSY9MHgzZjsgXAorICAgICAgICBmb3IoOzspIHsgXAorICAgICAgICAg
ICAgX19iPShzKVstLShpKV07IFwKKyAgICAgICAgICAgIGlmKF9fYj49MHhjMCkgeyBcCisgICAg
ICAgICAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShfX2IsIF9fY291bnQpOyBcCisgICAgICAg
ICAgICAgICAgKGMpfD0oVUNoYXIzMilfX2I8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICBi
cmVhazsgXAorICAgICAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgICAgIChjKXw9KFVD
aGFyMzIpKF9fYiYweDNmKTw8X19zaGlmdDsgXAorICAgICAgICAgICAgICAgICsrX19jb3VudDsg
XAorICAgICAgICAgICAgICAgIF9fc2hpZnQrPTY7IFwKKyAgICAgICAgICAgIH0gXAorICAgICAg
ICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VThfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLXzFf
VU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNfVFJBSUwoKHMpWy0tKGkpXSkpIHt9
IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFDS19OX1VO
U0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fVU5TQUZFKHMsIGks
IG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7IFwKKyAg
ICAgICAgVVRGOF9CQUNLXzFfVU5TQUZFKHMsIGkpOyBcCisgICAgICAgIC0tX19OOyBcCisgICAg
fSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X1NFVF9DUF9M
SU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfTElN
SVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAg
IFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBVc2UgVThfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1BS
RVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0o
aSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMpPD0weGJmKSB7IFwK
KyAgICAgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkocywgc3RhcnQsICYoaSksIGMs
IHN0cmljdCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgKGMpPVVURjhfRVJS
T1JfVkFMVUVfMTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEY4X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBVOF9CQUNLXzEocywgc3RhcnQsIGkpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfTiwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikgVThfQkFD
S19OKHMsIHN0YXJ0LCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NI
QVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoKSBVOF9TRVRfQ1BfTElNSVQocywgc3Rh
cnQsIGksIGxlbmd0aCkKKworLyogRm9ybWVybHkgdXRmMTYuaCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIElzIHVjaGFy
IGEgZmlyc3QvbGVhZCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VV9JU19MRUFEIGFuZCBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0lTX0ZJUlNUX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmZjMDApPT0weGQ4MDAp
CisKKy8qKiBJcyB1Y2hhciBhIHNlY29uZC90cmFpbCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlMLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEZfSVNfU0VDT05EX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIp
JjB4ZmZmZmZjMDApPT0weGRjMDApCisKKy8qKiBBc3N1bWluZyBjIGlzIGEgc3Vycm9nYXRlLCBp
cyBpdCBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFVfSVNfU1VSUk9HQVRFX0xFQUQgYW5kIFUxNl9JU19TVVJST0dBVEVfTEVBRCwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJPR0FURV9GSVJTVChjKSAoKChjKSYweDQw
MCk9PTApCisKKy8qKiBIZWxwZXIgY29uc3RhbnQgZm9yIFVURjE2X0dFVF9QQUlSX1ZBTFVFLiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TVVJST0dBVEVfT0ZGU0VULCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU1VSUk9HQVRFX09GRlNFVCAoKDB4ZDgwMDw8MTBV
TCkrMHhkYzAwLTB4MTAwMDApCisKKy8qKiBHZXQgdGhlIFVURi0zMiB2YWx1ZSBmcm9tIHRoZSBz
dXJyb2dhdGUgY29kZSB1bml0cy4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
R0VUX1NVUFBMRU1FTlRBUlksIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0dFVF9Q
QUlSX1ZBTFVFKGZpcnN0LCBzZWNvbmQpIFwKKyAgICAoKChmaXJzdCk8PDEwVUwpKyhzZWNvbmQp
LVVURl9TVVJST0dBVEVfT0ZGU0VUKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZJUlNUX1NVUlJP
R0FURShzdXBwbGVtZW50YXJ5KSAoVUNoYXIpKCgoc3VwcGxlbWVudGFyeSk+PjEwKSsweGQ3YzAp
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9UUkFJTCwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkg
KFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpJjB4M2ZmKXwweGRjMDApCisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRUFELCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEYxNl9MRUFEKHN1cHBsZW1lbnRhcnkpIFVURl9GSVJTVF9TVVJST0dBVEUoc3VwcGxlbWVu
dGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1RSQUlMLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9UUkFJTChzdXBwbGVtZW50YXJ5KSBVVEZf
U0VDT05EX1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfSVNfU0lOR0xFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9JU19TSU5HTEUodWNoYXIpICFVVEZfSVNfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGMTZfSVNfTEVBRCh1Y2hhcikgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSh1
Y2hhcikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX1RSQUlM
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9JU19UUkFJTCh1Y2hhcikgVVRGX0lT
X1NFQ09ORF9TVVJST0dBVEUodWNoYXIpCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFyIFVuaWNvZGUg
dmFsdWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBVc2UgVTE2X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4ZmZmZikgaW5z
dGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hB
UihjKSAoKHVpbnQzMl90KShjKT4weGZmZmYpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFUxNl9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0NI
QVJfTEVOR1RIKGMpICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAxIDogMikKKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X01BWF9DSEFSX0xFTkdUSCAyCisKKy8qKiBBdmVyYWdlIG51bWJl
ciBvZiBjb2RlIHVuaXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0FSUkFZX1NJWkUoc2l6
ZSkgKHNpemUpCisKKy8qKgorICogR2V0IGEgc2luZ2xlIGNvZGUgcG9pbnQgZnJvbSBhbiBvZmZz
ZXQgdGhhdCBwb2ludHMgdG8gYW55CisgKiBvZiB0aGUgY29kZSB1bml0cyB0aGF0IGJlbG9uZyB0
byB0aGF0IGNvZGUgcG9pbnQuCisgKiBBc3N1bWUgMDw9aTxsZW5ndGguCisgKgorICogVGhpcyBj
b3VsZCBiZSB1c2VkIGZvciBpdGVyYXRpb24gdG9nZXRoZXIgd2l0aAorICogVVRGMTZfQ0hBUl9M
RU5HVEgoKSBhbmQgVVRGX0lTX0VSUk9SKCksCisgKiBidXQgdGhlIHVzZSBvZiBVVEYxNl9ORVhU
X0NIQVJbX1VOU0FGRV0oKSBhbmQKKyAqIFVURjE2X1BSRVZfQ0hBUltfVU5TQUZFXSgpIGlzIG1v
cmUgZWZmaWNpZW50IGZvciB0aGF0LgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfR0VUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEYxNl9HRVRf
Q0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorICAgIGlmKFVURl9J
U19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICBpZihVVEZfSVNfU1VSUk9HQVRFX0ZJUlNUKGMp
KSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIChzKVsoaSkr
MV0pOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJ
Ul9WQUxVRSgocylbKGkpLTFdLCAoYykpOyBcCisgICAgICAgIH0gXAorICAgIH0gXAorfQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGMTZfR0VUX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoLCBj
LCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZfSVNfU1VSUk9HQVRF
KGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZihVVEZfSVNfU1VS
Uk9HQVRFX0ZJUlNUKGMpKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxPChsZW5ndGgpICYmIFVU
Rl9JU19TRUNPTkRfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAorICAgICAgICAgICAg
ICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAg
ICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQgYnkgVVRGX0lTX0VS
Uk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAgICAgICB9IGVsc2Ug
aWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dh
dGUgKi8gXAorICAgICAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICAgICAg
ICAgIH0gXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICBpZigoaSktMT49KHN0YXJ0
KSAmJiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAgICAg
ICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAoYykpOyBcCisgICAgICAg
ICAgICAgICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQgYnkgVVRG
X0lTX0VSUk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAgICAgICB9
IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzZWNvbmQg
c3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgICAgICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFV
VEZfSVNfVU5JQ09ERV9DSEFSKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZf
TkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRfQ0hBUl9V
TlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAgICBpZihVVEZfSVNf
RklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVF
KChjKSwgKHMpWyhpKSsrXSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFJlbmFtZWQgdG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjE2X0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigodWludDMy
X3QpKGMpPD0weGZmZmYpIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoYyk7IFwK
KyAgICB9IGVsc2UgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90KSgoKGMpPj4xMCkr
MHhkN2MwKTsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChjKSYweDNmZil8MHhk
YzAwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0Rf
MV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSgocylbKGkp
KytdKSkgeyBcCisgICAgICAgICsrKGkpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjE2X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9f
Tj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjE2X0ZXRF8xX1VOU0FG
RShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJUX1VOU0FGRSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAor
ICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKChzKVtpXSkpIHsgXAorICAgICAgICAtLShp
KTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9ORVhU
IGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FWFRfQ0hBUl9TQUZF
KHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAg
IGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICB1aW50MTZfdCBfX2My
OyBcCisgICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBVVEZfSVNfU0VDT05EX1NVUlJPR0FURShf
X2MyPShzKVsoaSldKSkgeyBcCisgICAgICAgICAgICArKyhpKTsgXAorICAgICAgICAgICAgKGMp
PVVURjE2X0dFVF9QQUlSX1ZBTFVFKChjKSwgX19jMik7IFwKKyAgICAgICAgICAgIC8qIHN0cmlj
dDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigpIGFuZCBV
VEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAor
ICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSAqLyBcCisgICAgICAgICAg
ICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3Ry
aWN0KSAmJiAhVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIC8qIHVubWF0Y2hl
ZCBzZWNvbmQgc3Vycm9nYXRlIG9yIG90aGVyIG5vbi1jaGFyYWN0ZXIgKi8gXAorICAgICAgICAo
Yyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykgeyBcCisgICAgaWYoKHVpbnQz
Ml90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKGMpOyBc
CisgICAgfSBlbHNlIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgaWYo
KGkpKzE8KGxlbmd0aCkpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgo
Yyk+PjEwKSsweGQ3YzApOyBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChj
KSYweDNmZil8MHhkYzAwKTsgXAorICAgICAgICB9IGVsc2UgLyogbm90IGVub3VnaCBzcGFjZSAq
LyB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAg
IH0gXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSBlcnJvciB2YWx1ZSAqLyB7IFwK
KyAgICAgICAgKHMpWyhpKSsrXT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30KKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8xKHMs
IGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZX
RF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfTl9TQUZFKHMsIGksIGxl
bmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgVTE2X1NFVF9DUF9T
VEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X1BSRVZfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9QUkVWX0NI
QVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRG
X0lTX1NFQ09ORF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJf
VkFMVUUoKHMpWy0tKGkpXSwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfU0VD
T05EX1NVUlJPR0FURSgocylbLS0oaSldKSkgeyBcCisgICAgICAgIC0tKGkpOyBcCisgICAgfSBc
Cit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNLX05fVU5T
QUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05fVU5TQUZFKHMsIGks
IG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9fTj4wKSB7IFwKKyAg
ICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQ
X0xJTUlUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJf
TElNSVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoKHMp
WyhpKS0xXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisj
ZGVmaW5lIFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAor
ICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUoYykp
IHsgXAorICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisgICAgICAgIGlmKChpKT4oc3RhcnQpICYm
IFVURl9JU19GSVJTVF9TVVJST0dBVEUoX19jMj0ocylbKGkpLTFdKSkgeyBcCisgICAgICAgICAg
ICAtLShpKTsgXAorICAgICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKF9fYzIsIChj
KSk7IFwKKyAgICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1
Z2h0IGJ5IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAg
ICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgLyogdW5tYXRjaGVkIHNlY29u
ZCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAg
ICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0cmljdCkgJiYgIVVURl9JU19VTklDT0RFX0NIQVIo
YykpIHsgXAorICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9nYXRlIG9yIG90aGVyIG5v
bi1jaGFyYWN0ZXIgKi8gXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBc
Cit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9CQUNLXzEsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBV
MTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1l
ZCB0byBVMTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05f
U0FGRShzLCBzdGFydCwgaSwgbikgVTE2X0JBQ0tfTihzLCBzdGFydCwgaSwgbikKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwg
bGVuZ3RoKSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKy8qIEZvcm1l
cmx5IHV0ZjMyLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICovCisKKy8qCisqIE9sZCBkb2N1bWVudGF0aW9uOgorKgorKiAgIFRoaXMg
ZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggVVRGLTMyIGNvZGUgdW5pdHMgYW5kIGNv
ZGUgcG9pbnRzLgorKiAgIFNpZ25hdHVyZXMgYW5kIHNlbWFudGljcyBhcmUgdGhlIHNhbWUgYXMg
Zm9yIHRoZSBzaW1pbGFybHkgbmFtZWQgbWFjcm9zCisqICAgaW4gdXRmMTYuaC4KKyogICB1dGYz
Mi5oIGlzIGluY2x1ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hpbmUuaDwvcD4KKyog
ICBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCisqICAgPHA+PGI+VXNhZ2U6PC9iPiAgSUNV
IGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJlIGZvbGxvd2Vk
IHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgorKiAgICAgICAgICAgICAgICAgIENvbXBvdW5kIHN0
YXRlbWVudHMgKGN1cmx5IGJyYWNlcyB7fSkgbXVzdCBiZSB1c2VkICBmb3IgaWYtZWxzZS13aGls
ZS4uLgorKiAgICAgICAgICAgICAgICAgIGJvZGllcyBhbmQgYWxsIG1hY3JvIHN0YXRlbWVudHMg
c2hvdWxkIGJlIHRlcm1pbmF0ZWQgd2l0aCBzZW1pY29sb24uPC9wPgorKi8KKworLyogaW50ZXJu
YWwgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TQUZFKGMsIHN0cmljdCkgXAorICAgICgh
KHN0cmljdCkgPyBcCisgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmIDogXAorICAgICAg
ICBVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKQorCisvKgorICogRm9yIHRoZSBzZW1hbnRpY3Mgb2Yg
YWxsIG9mIHRoZXNlIG1hY3Jvcywgc2VlIHV0ZjE2LmguCisgKiBUaGUgVVRGLTMyIHZlcnNpb25z
IGFyZSB0cml2aWFsIGJlY2F1c2UgYW55IGNvZGUgcG9pbnQgaXMKKyAqIGVuY29kZWQgdXNpbmcg
ZXhhY3RseSBvbmUgY29kZSB1bml0LgorICovCisKKy8qIHNpbmdsZS1jb2RlIHBvaW50IGRlZmlu
aXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisK
Ky8qIGNsYXNzZXMgb2YgY29kZSB1bml0IHZhbHVlcyAqLworCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0lTX1NJTkdM
RSh1Y2hhcikgMQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19MRUFEKHVjaGFyKSAwCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0lTX1RS
QUlMKHVjaGFyKSAwCisKKy8qIG51bWJlciBvZiBjb2RlIHVuaXRzIHBlciBjb2RlIHBvaW50ICov
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMzJfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAwCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0NIQVJf
TEVOR1RIKGMpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTUFYX0NIQVJfTEVOR1RIIDEKKworLyogYXZlcmFnZSBu
dW1iZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYgKi8KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9B
UlJBWV9TSVpFKHNpemUpIChzaXplKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFSX1VOU0FGRShzLCBp
LCBjKSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfR0VUX0NIQVJfU0FG
RShzLCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbaV07IFwK
KyAgICBpZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9F
UlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndhcmQg
aXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjMyX05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkr
K107IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisg
ICAgKHMpWyhpKSsrXT0oYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfMV9VTlNBRkUocywgaSkg
eyBcCisgICAgKysoaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfTl9VTlNBRkUocywgaSwgbikg
eyBcCisgICAgKGkpKz0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9TVEFSVF9VTlNB
RkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVYVF9DSEFSX1NBRkUocywgaSwgbGVuZ3Ro
LCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYoIVVURjMyX0lT
X1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7IFwKKyAg
ICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykg
eyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpIHsgXAorICAgICAgICAocylbKGkp
KytdPShjKTsgXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSAweGZmZmQgKi8geyBc
CisgICAgICAgIChzKVsoaSkrK109MHhmZmZkOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJf
RldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIHsgXAorICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
MzJfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIHsgXAorICAgIGlmKCgoaSkrPShuKSk+KGxl
bmd0aCkpIHsgXAorICAgICAgICAoaSk9KGxlbmd0aCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYzMl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwKK30KKworLyogZGVmaW5p
dGlvbnMgd2l0aCBiYWNrd2FyZCBpdGVyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsg
XAorICAgIChjKT0ocylbLS0oaSldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQkFDS18xX1VOU0FGRShz
LCBpKSB7IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jz
b2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9VTlNBRkUocywg
aSwgbikgeyBcCisgICAgKGkpLT0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9MSU1J
VF9VTlNBRkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1NBRkUocywgc3Rh
cnQsIGksIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVstLShpKV07IFwKKyAgICBpZighVVRG
MzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwK
KyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0LCBpLCBu
KSB7IFwKKyAgICAoaSktPShuKTsgXAorICAgIGlmKChpKTwoc3RhcnQpKSB7IFwKKyAgICAgICAg
KGkpPShzdGFydCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9MSU1JVF9T
QUZFKHMsIGksIGxlbmd0aCkgeyBcCit9CisKKy8qIEZvcm1lcmx5IHV0Zi5oLCBwYXJ0IDIgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8q
KgorICogRXN0aW1hdGUgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGZvciBhIHN0cmluZyBiYXNl
ZCBvbiB0aGUgbnVtYmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzLgorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9BUlJB
WV9TSVpFKHNpemUpIFVURjE2X0FSUkFZX1NJWkUoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgICAgIFVURjE2X0dF
VF9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUx
Nl9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0dFVF9DSEFSX1NB
RkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSBVVEYxNl9HRVRfQ0hBUl9TQUZFKHMs
IHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgIFVURjE2X05FWFRf
Q0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZf
TkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSX1NB
RkUocywgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpICBVVEYxNl9ORVhUX0NIQVJfU0FGRShzLCBpLCBs
ZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfQVBQRU5EX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVO
RF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfVU5T
QUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBp
bnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQVBQRU5EX0NIQVJfU0FGRShz
LCBpLCBsZW5ndGgsIGMpICAgICAgICBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0
aCwgYykKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzFf
VU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFfVU5TQUZFKHMsIGkp
ICAgICAgICAgICAgICAgICAgICAgICBVVEYxNl9GV0RfMV9VTlNBRkUocywgaSkKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpICAgICAgICAgICAgICAgICBV
VEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEZfRldEX05fVU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgICBVVEYxNl9GV0Rf
Tl9VTlNBRkUocywgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEX05fU0FGRShzLCBp
LCBsZW5ndGgsIG4pICAgICAgICAgICAgICBVVEYxNl9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwg
bikKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NU
QVJUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX1NUQVJU
X1VOU0FGRShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMs
IGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RB
UlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMs
IHN0YXJ0LCBpKSAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkp
CisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1BSRVZfVU5TQUZF
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBj
KSAgICAgICAgICAgICAgICBVVEYxNl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4g
Ki8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpICAg
VVRGMTZfUFJFVl9DSEFSX1NBRkUocywgc3RhcnQsIGksIGMsIHN0cmljdCkKKworCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMV9VTlNBRkUocywgaSkgICAgICAgICAgICAgICAg
ICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZf
QkFDS18xX1NBRkUocywgc3RhcnQsIGkpICAgICAgICAgICAgICAgICBVVEYxNl9CQUNLXzFfU0FG
RShzLCBzdGFydCwgaSkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfQkFDS19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9V
TlNBRkUocywgaSwgbikgICAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1VOU0FGRShzLCBp
LCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4p
ICAgICAgICAgICAgICBVVEYxNl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikKKworCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlUX1VOU0FGRSwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBp
KSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBs
ZW5ndGgpIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkKKwor
LyogRGVmaW5lIGRlZmF1bHQgbWFjcm9zIChVVEYtMTYgInNhZmUiKSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSB1bml0IGFs
b25lIGVuY29kZSBhIGNvZGUgcG9pbnQgKEJNUCwgbm90IGEgc3Vycm9nYXRlKT8KKyAqIFNhbWUg
YXMgVVRGMTZfSVNfU0lOR0xFLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
X0lTX1NJTkdMRSBhbmQgVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmlu
ZSBVVEZfSVNfU0lOR0xFKHVjaGFyKSBVMTZfSVNfU0lOR0xFKHVjaGFyKQorCisvKioKKyAqIElz
IHRoaXMgY29kZSB1bml0IHRoZSBmaXJzdCBvbmUgb2Ygc2V2ZXJhbCAoYSBsZWFkIHN1cnJvZ2F0
ZSk/CisgKiBTYW1lIGFzIFVURjE2X0lTX0xFQUQuCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBS
ZW5hbWVkIHRvIFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGX0lTX0xFQUQodWNoYXIpIFUxNl9JU19MRUFEKHVjaGFyKQorCisvKioKKyAq
IElzIHRoaXMgY29kZSB1bml0IG9uZSBvZiBzZXZlcmFsIGJ1dCBub3QgdGhlIGZpcnN0IG9uZSAo
YSB0cmFpbCBzdXJyb2dhdGUpPworICogU2FtZSBhcyBVVEYxNl9JU19UUkFJTC4KKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlMLCBz
ZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19UUkFJTCh1Y2hhcikgVTE2X0lTX1RS
QUlMKHVjaGFyKQorCisvKioKKyAqIERvZXMgdGhpcyBjb2RlIHBvaW50IHJlcXVpcmUgbXVsdGlw
bGUgY29kZSB1bml0cyAoaXMgaXQgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQpPworICogU2Ft
ZSBhcyBVVEYxNl9ORUVEX01VTFRJUExFX1VDSEFSLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
VXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYpIGluc3RlYWQuCisg
Ki8KKyNkZWZpbmUgVVRGX05FRURfTVVMVElQTEVfVUNIQVIoYykgVVRGMTZfTkVFRF9NVUxUSVBM
RV9VQ0hBUihjKQorCisvKioKKyAqIEhvdyBtYW55IGNvZGUgdW5pdHMgYXJlIHVzZWQgdG8gZW5j
b2RlIHRoaXMgY29kZSBwb2ludCAoMSBvciAyKT8KKyAqIFNhbWUgYXMgVVRGMTZfQ0hBUl9MRU5H
VEguCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRU5HVEgsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0NIQVJfTEVOR1RIKGMpIFUxNl9MRU5HVEgoYykK
KworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIGF0IG1vc3QgZm9yIGFueSBV
bmljb2RlIGNvZGUgcG9pbnQgKDIpPworICogU2FtZSBhcyBVVEYxNl9NQVhfQ0hBUl9MRU5HVEgu
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9NQVhfQ0hBUl9MRU5HVEggVTE2X01BWF9MRU5H
VEgKKworLyoqCisgKiBTZXQgYyB0byB0aGUgY29kZSBwb2ludCB0aGF0IGNvbnRhaW5zIHRoZSBj
b2RlIHVuaXQgaS4KKyAqIGkgY291bGQgcG9pbnQgdG8gdGhlIGxlYWQgb3IgdGhlIHRyYWlsIHN1
cnJvZ2F0ZSBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKiBpIGlzIG5vdCBtb2RpZmllZC4KKyAqIFNh
bWUgYXMgVVRGMTZfR0VUX0NIQVIuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfR0VULCBzZWUgdXRmX29sZC5oLgorICovCisj
ZGVmaW5lIFVURl9HRVRfQ0hBUihzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSBVMTZfR0VUKHMsIHN0
YXJ0LCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhh
dCBzdGFydHMgYXQgY29kZSB1bml0IGkKKyAqIGFuZCBhZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBj
b2RlIHVuaXRzIG9mIHRoaXMgY29kZSBwb2ludCAocG9zdC1pbmNyZW1lbnQpLgorICogaSBtdXN0
IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50LgorICogT3RoZXJ3
aXNlIGMgaXMgc2V0IHRvIHRoZSB0cmFpbCB1bml0IChzdXJyb2dhdGUpIGl0c2VsZi4KKyAqIFNh
bWUgYXMgVVRGMTZfTkVYVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxp
PD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9ORVhU
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9ORVhUX0NIQVIocywgaSwgbGVuZ3Ro
LCBjKSBVMTZfTkVYVChzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQXBwZW5kIHRoZSBjb2Rl
IHVuaXRzIG9mIGNvZGUgcG9pbnQgYyB0byB0aGUgc3RyaW5nIGF0IGluZGV4IGkKKyAqIGFuZCBh
ZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBuZXcgY29kZSB1bml0cyAocG9zdC1pbmNyZW1lbnQpLgor
ICogVGhlIGNvZGUgdW5pdHMgYmVnaW5uaW5nIGF0IGluZGV4IGkgd2lsbCBiZSBvdmVyd3JpdHRl
bi4KKyAqIFNhbWUgYXMgVVRGMTZfQVBQRU5EX0NIQVIuCisgKiBccHJlIDA8PWM8PTB4MTBmZmZm
CisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfQVBQRU5EIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguCisg
Ki8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSKHMsIGksIGxlbmd0aCwgYykgVVRGMTZfQVBQRU5E
X0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQWR2YW5jZSBpIHRvIGJleW9u
ZCB0aGUgY29kZSB1bml0cyBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGJlZ2lucyBhdCBpLgorICog
SS5lLiwgYWR2YW5jZSBpIGJ5IG9uZSBjb2RlIHBvaW50LgorICogU2FtZSBhcyBVVEYxNl9GV0Rf
MS4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzEsIHNlZSB1dGZfb2xkLmguCisg
Ki8KKyNkZWZpbmUgVVRGX0ZXRF8xKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8xKHMsIGksIGxlbmd0
aCkKKworLyoqCisgKiBBZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBjb2RlIHVuaXRzIG9mIHRoZSBu
IGNvZGUgcG9pbnRzIHdoZXJlIHRoZSBmaXJzdCBvbmUgYmVnaW5zIGF0IGkuCisgKiBJLmUuLCBh
ZHZhbmNlIGkgYnkgbiBjb2RlIHBvaW50cy4KKyAqIFNhbWUgYXMgVVQxNl9GV0RfTi4KKyAqIFxw
cmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX04sIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikK
KworLyoqCisgKiBUYWtlIHRoZSByYW5kb20tYWNjZXNzIGluZGV4IGkgYW5kIGFkanVzdCBpdCBz
byB0aGF0IGl0IHBvaW50cyB0byB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIGNvZGUgcG9pbnQuCisg
KiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIHRvIGFueSBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50
IGFuZCBpcyBtb3ZlZCB0byBwb2ludCB0bworICogdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUg
c2FtZSBjb2RlIHBvaW50LiBpIGlzIG5ldmVyIGluY3JlbWVudGVkLgorICogSW4gb3RoZXIgd29y
ZHMsIGlmIGkgcG9pbnRzIHRvIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgaXMgcHJlY2VkZWQgYnkg
YSBtYXRjaGluZworICogbGVhZCBzdXJyb2dhdGUsIHRoZW4gaSBpcyBkZWNyZW1lbnRlZC4gT3Ro
ZXJ3aXNlIGl0IGlzIG5vdCBtb2RpZmllZC4KKyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3RhcnQg
YW4gaXRlcmF0aW9uIHdpdGggVVRGX05FWFRfQ0hBUigpIGZyb20gYSByYW5kb20gaW5kZXguCisg
KiBTYW1lIGFzIFVURjE2X1NFVF9DSEFSX1NUQVJULgorICogXHByZSBzdGFydDw9aTxsZW5ndGgK
KyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBV
VEZfU0VUX0NIQVJfU1RBUlQocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1BfU1RBUlQocywgc3RhcnQs
IGkpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBoYXMgY29kZSB1bml0
cyBiZWZvcmUgaQorICogYW5kIG1vdmUgaSBiYWNrd2FyZCAodG93YXJkcyB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIHRoaXMgY29kZSBw
b2ludCAocHJlLWluY3JlbWVudCkuCisgKiBpIG11c3QgcG9pbnQgdG8gdGhlIGZpcnN0IGNvZGUg
dW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29kZSBwb2ludCAoaT09bGVuZ3RoIGlzIGFs
bG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9QUkVWX0NIQVIuCisgKiBccHJlIHN0YXJ0PGk8PWxl
bmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfUFJFViwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZf
UFJFVl9DSEFSKHMsIHN0YXJ0LCBpLCBjKSBVMTZfUFJFVihzLCBzdGFydCwgaSwgYykKKworLyoq
CisgKiBNb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5n
KQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGhhcyBj
b2RlIHVuaXRzIGJlZm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG9uZSBjb2Rl
IHBvaW50LgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhl
IGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNh
bWUgYXMgVVRGMTZfQkFDS18xLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0
YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS18xKHMsIHN0YXJ0
LCBpKSBVMTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKioKKyAqIE1vdmUgaSBiYWNrd2FyZCAo
dG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IG9mIHRoZSBuIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBjb2RlIHVuaXRzIGJlZm9yZSBp
LgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG4gY29kZSBwb2ludHMuCisgKiBpIG11c3Qg
cG9pbnQgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29k
ZSBwb2ludCAoaT09bGVuZ3RoIGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9CQUNLX04u
CisgKiBccHJlIHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgor
ICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9CQUNLX04ocywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04o
cywgc3RhcnQsIGksIG4pCisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBp
IGFuZCBhZGp1c3QgaXQgc28gdGhhdCBpdCBwb2ludHMgYmV5b25kCisgKiBhIGNvZGUgcG9pbnQu
IFRoZSBpbnB1dCBpbmRleCBwb2ludHMgYmV5b25kIGFueSBjb2RlIHVuaXQKKyAqIG9mIGEgY29k
ZSBwb2ludCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgYmV5b25kIHRoZSBsYXN0IGNvZGUgdW5pdCBv
ZiB0aGUgc2FtZQorICogY29kZSBwb2ludC4gaSBpcyBuZXZlciBkZWNyZW1lbnRlZC4KKyAqIElu
IG90aGVyIHdvcmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHBy
ZWNlZGVkIGJ5IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgaW5jcmVt
ZW50ZWQuIE90aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIHN0YXJ0IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9QUkVWX0NIQVIoKSBmcm9tIGEgcmFuZG9t
IGluZGV4LgorICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9MSU1JVC4KKyAqIFxwcmUgc3RhcnQ8
aTw9bGVuZ3RoCisgKiBccG9zdCBzdGFydDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpIFUxNl9TRVRf
Q1BfTElNSVQocywgc3RhcnQsIGksIGxlbmd0aCkKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNB
VEVEX0FQSSAqLworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91dHlwZXMuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXR5cGVzLmgKaW5kZXggMDBiZjE0
Y2U4ZTZlNWQ2ZWM4ZWQ4N2Q4ZTk1NjE3MGNhNTc3ODdiMi4uOGY5MjRjOWQxNDI0MTc5Mjg0NjRi
Nzk0NDc5NjEyMTc2MDEwMjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91
dHlwZXMuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V0eXBlcy5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDEy
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zNCw5ICsz
NCwxMyBAQAogCiAKICNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCi0jaW5jbHVkZSAidW5p
Y29kZS91dGYuaCIKICNpbmNsdWRlICJ1bmljb2RlL3V2ZXJzaW9uLmgiCiAjaW5jbHVkZSAidW5p
Y29kZS91Y29uZmlnLmgiCisjaW5jbHVkZSA8ZmxvYXQuaD4KKworI2lmICFVX05PX0RFRkFVTFRf
SU5DTFVERV9VVEZfSEVBREVSUworIyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCisjZW5kaWYK
IAogLyohCiAgKiBcZmlsZQpAQCAtNTMsOSArNTcsOSBAQAogICogXGRlZiBVX1NIT1dfQ1BMVVNQ
TFVTX0FQSQogICogQGludGVybmFsCiAgKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBf
X2NwbHVzcGx1cwogIyAgIGlmbmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQotIyAgICAgICBkZWZp
bmUgVV9TSE9XX0NQTFVTUExVU19BUEkgMQorIyAgICAgICBkZWZpbmUgVV9TSE9XX0NQTFVTUExV
U19BUEkgMAogIyAgIGVuZGlmCiAjZWxzZQogIyAgIHVuZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJ
CkBAIC02Nyw2ICs3MSwxMiBAQAogLyoqCiAgKiBcZGVmIFVfSElERV9EUkFGVF9BUEkKICAqIERl
ZmluZSB0aGlzIHRvIDEgdG8gcmVxdWVzdCB0aGF0IGRyYWZ0IEFQSSBiZSAiaGlkZGVuIgorICog
QGludGVybmFsCisgKi8KKy8qKgorICogXGRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgKiBEZWZp
bmUgdGhpcyB0byAxIHRvIHJlcXVlc3QgdGhhdCBpbnRlcm5hbCBBUEkgYmUgImhpZGRlbiIKKyAq
IEBpbnRlcm5hbAogICovCiAjaWYgIVVfREVGQVVMVF9TSE9XX0RSQUZUICYmICFkZWZpbmVkKFVf
U0hPV19EUkFGVF9BUEkpCiAjZGVmaW5lIFVfSElERV9EUkFGVF9BUEkgMQpAQCAtNzUsMTE2ICs4
NSw4IEBACiAjZGVmaW5lIFVfSElERV9JTlRFUk5BTF9BUEkgMQogI2VuZGlmCiAKLSNpZmRlZiBV
X0hJREVfRFJBRlRfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91ZHJhZnQuaCIKLSNlbmRpZgotCi0j
aWZkZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91ZGVwcmN0ZC5o
IgotI2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKLSNpbmNsdWRlICJ1bmlj
b2RlL3VvYnNsZXRlLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKLSNp
bmNsdWRlICJ1bmljb2RlL3VpbnRybmFsLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9TWVNU
RU1fQVBJCi0jaW5jbHVkZSAidW5pY29kZS91c3lzdGVtLmgiCi0jZW5kaWYKLQogLyoqIEB9ICov
CiAKLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogY2hhciBDaGFyYWN0ZXIgc2V0IGZhbWls
eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLwotCi0vKioKLSAqIFVfQ0hBUlNFVF9GQU1JTFkgaXMgZXF1YWwg
dG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBBU0NJSSBiYXNlZCBwbGF0Zm9y
bS4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVmaW5lIFVfQVNDSUlfRkFNSUxZIDAKLQot
LyoqCi0gKiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUg
cGxhdGZvcm0gaXMgYW4gRUJDRElDIGJhc2VkIHBsYXRmb3JtLgotICogQHN0YWJsZSBJQ1UgMi4w
Ci0gKi8KLSNkZWZpbmUgVV9FQkNESUNfRkFNSUxZIDEKLQotLyoqCi0gKiBcZGVmIFVfQ0hBUlNF
VF9GQU1JTFkKLSAqCi0gKiA8cD5UaGVzZSBkZWZpbml0aW9ucyBhbGxvdyB0byBzcGVjaWZ5IHRo
ZSBlbmNvZGluZyBvZiB0ZXh0Ci0gKiBpbiB0aGUgY2hhciBkYXRhIHR5cGUgYXMgZGVmaW5lZCBi
eSB0aGUgcGxhdGZvcm0gYW5kIHRoZSBjb21waWxlci4KLSAqIEl0IGlzIGVub3VnaCB0byBkZXRl
cm1pbmUgdGhlIGNvZGUgcG9pbnQgdmFsdWVzIG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIsCi0g
KiB3aGljaCBhcmUgdGhlIG9uZXMgc2hhcmVkIGJ5IGFsbCBlbmNvZGluZ3MgdGhhdCBhcmUgaW4g
dXNlCi0gKiBvbiBhIGdpdmVuIHBsYXRmb3JtLjwvcD4KLSAqCi0gKiA8cD5UaG9zZSAiaW52YXJp
YW50IGNoYXJhY3RlcnMiIHNob3VsZCBiZSBhbGwgdGhlIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNl
Ci0gKiBsYXRpbiBsZXR0ZXJzLCB0aGUgZGlnaXRzLCB0aGUgc3BhY2UsIGFuZCAiYmFzaWMgcHVu
Y3R1YXRpb24iLgotICogQWxzbywgJ1xcbicsICdcXHInLCAnXFx0JyBzaG91bGQgYmUgYXZhaWxh
YmxlLjwvcD4KLSAqCi0gKiA8cD5UaGUgbGlzdCBvZiAiaW52YXJpYW50IGNoYXJhY3RlcnMiIGlz
Ojxicj4KLSAqIFxjb2RlCi0gKiAgICBBLVogIGEteiAgMC05ICBTUEFDRSAgIiAgJSAgJmFtcDsg
ICcgICggICkgICogICsgICwgIC0gIC4gIC8gIDogIDsgIDwgID0gID4gID8gIF8KLSAqIFxlbmRj
b2RlCi0gKiA8YnI+Ci0gKiAoNTIgbGV0dGVycyArIDEwIG51bWJlcnMgKyAyMCBwdW5jL3N5bS9z
cGFjZSA9IDgyIHRvdGFsKTwvcD4KLSAqCi0gKiA8cD5UaGlzIG1hdGNoZXMgdGhlIElCTSBTeW50
YWN0aWMgQ2hhcmFjdGVyIFNldCAoQ1MgNjQwKS48L3A+Ci0gKgotICogPHA+SW4gb3RoZXIgd29y
ZHMsIGFsbCB0aGUgZ3JhcGhpYyBjaGFyYWN0ZXJzIGluIDctYml0IEFTQ0lJIHNob3VsZAotICog
YmUgc2FmZWx5IGFjY2Vzc2libGUgZXhjZXB0IHRoZSBmb2xsb3dpbmc6PC9wPgotICoKLSAqIFxj
b2RlCi0gKiAgICAnXCcgPGJhY2tzbGFzaD4KLSAqICAgICdbJyA8bGVmdCBicmFja2V0PgotICog
ICAgJ10nIDxyaWdodCBicmFja2V0PgotICogICAgJ3snIDxsZWZ0IGJyYWNlPgotICogICAgJ30n
IDxyaWdodCBicmFjZT4KLSAqICAgICdeJyA8Y2lyY3VtZmxleD4KLSAqICAgICd+JyA8dGlsZGU+
Ci0gKiAgICAnIScgPGV4Y2xhbWF0aW9uIG1hcms+Ci0gKiAgICAnIycgPG51bWJlciBzaWduPgot
ICogICAgJ3wnIDx2ZXJ0aWNhbCBsaW5lPgotICogICAgJyQnIDxkb2xsYXIgc2lnbj4KLSAqICAg
ICdAJyA8Y29tbWVyY2lhbCBhdD4KLSAqICAgICdgJyA8Z3JhdmUgYWNjZW50PgotICogXGVuZGNv
ZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0KLSNpZm5kZWYgVV9DSEFSU0VUX0ZBTUlMWQot
IyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIDAKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9D
SEFSU0VUX0lTX1VURjgKLSAqCi0gKiBIYXJkY29kZSB0aGUgZGVmYXVsdCBjaGFyc2V0IHRvIFVU
Ri04LgotICoKLSAqIElmIHRoaXMgaXMgc2V0IHRvIDEsIHRoZW4KLSAqIC0gSUNVIHdpbGwgYXNz
dW1lIHRoYXQgYWxsIG5vbi1pbnZhcmlhbnQgY2hhciosIFN0cmluZ1BpZWNlLCBzdGQ6OnN0cmlu
ZyBldGMuCi0gKiAgIGNvbnRhaW4gVVRGLTggdGV4dCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBz
eXN0ZW0gQVBJIHVzZXMKLSAqIC0gc29tZSBJQ1UgY29kZSB3aWxsIHVzZSBmYXN0IGZ1bmN0aW9u
cyBsaWtlIHVfc3RyRnJvbVVURjgoKQotICogICByYXRoZXIgdGhhbiB0aGUgbW9yZSBnZW5lcmFs
IGFuZCBtb3JlIGhlYXZ5LXdlaWdodCBjb252ZXJzaW9uIEFQSSAodWNudi5oKQotICogLSB1Y252
X2dldERlZmF1bHROYW1lKCkgYWx3YXlzIHJldHVybnMgIlVURi04IgotICogLSB1Y252X3NldERl
ZmF1bHROYW1lKCkgaXMgZGlzYWJsZWQgYW5kIHdpbGwgbm90IGNoYW5nZSB0aGUgZGVmYXVsdCBj
aGFyc2V0Ci0gKiAtIHN0YXRpYyBidWlsZHMgb2YgSUNVIGFyZSBzbWFsbGVyCi0gKiAtIG1vcmUg
ZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUgd2l0aCB0aGUgVUNPTkZJR19OT19DT05WRVJTSU9O
IGJ1aWxkLXRpbWUKLSAqICAgY29uZmlndXJhdGlvbiBvcHRpb24gKHNlZSB1bmljb2RlL3Vjb25m
aWcuaCkKLSAqIC0gdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZCBvcHRpb24gaW4gdWNv
bmZpZy5oIGlzIG1vcmUgdXNhYmxlCi0gKgotICogQHN0YWJsZSBJQ1UgNC4yCi0gKiBAc2VlIFVD
T05GSUdfTk9fQ09OVkVSU0lPTgotICovCi0jaWZuZGVmIFVfQ0hBUlNFVF9JU19VVEY4Ci0jICAg
ZGVmaW5lIFVfQ0hBUlNFVF9JU19VVEY4IDAKLSNlbmRpZgotCiAvKj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCiAvKiBJQ1VEQVRBIG5hbWluZyBzY2hlbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCkBAIC0y
MzIsOSArMTM0LDExIEBACiAgKiBJQ1UgMS44Lnggb24gRUJDRElDLCBldGMuLgogICogQHN0YWJs
ZSBJQ1UgMi4wCiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBVX0lDVV9W
RVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUiAgLyoqPCBAaW50ZXJuYWwgKi8KKyNk
ZWZpbmUgVV9JQ1VEQVRBX05BTUUgICAgImljdWR0IiBVX0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNV
REFUQV9UWVBFX0xFVFRFUgorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAjZGVmaW5lIFVf
VVNSREFUQV9OQU1FICAgICJ1c3JkdCIgVV9JQ1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQ
RV9MRVRURVIgIC8qKjwgQGludGVybmFsICovCi0jZGVmaW5lIFVfVVNFX1VTUkRBVEEgICAgIDAg
IC8qKjwgQGludGVybmFsICovCisjZGVmaW5lIFVfVVNFX1VTUkRBVEEgICAgIDEgIC8qKjwgQGlu
dGVybmFsICovCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogLyoqCiAgKiAg
VV9JQ1VfRU5UUllfUE9JTlQgaXMgdGhlIG5hbWUgb2YgdGhlIERMTCBlbnRyeSBwb2ludCB0byB0
aGUgSUNVIGRhdGEgbGlicmFyeS4KQEAgLTI0NywzOCArMTUxLDI4IEBACiAgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcI2RlZmluZSBVX0lDVV9FTlRSWV9QT0lOVCBpY3VkdDE5
X2RhdAogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VEQVRBX0VOVFJZX1BP
SU5UICBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSwg
VV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0pCisjZGVmaW5lIFVfSUNVREFUQV9FTlRSWV9QT0lOVCAg
VV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0sVV9MSUJf
U1VGRklYX0NfTkFNRSkKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKLSAqIERv
IG5vdCB1c2UuCisgKiBEbyBub3QgdXNlLiBOb3RlIHRoYXQgaXQncyBPSyBmb3IgdGhlIDJuZCBh
cmd1bWVudCB0byBiZSB1bmRlZmluZWQgKGxpdGVyYWwpLgogICogQGludGVybmFsCiAgKi8KLSNk
ZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBVX0RFRl9JQ1VE
QVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikKKyNkZWZpbmUgVV9ERUYyX0lDVURBVEFfRU5U
UllfUE9JTlQobWFqb3Isc3VmZikgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvcixzdWZm
KQorCiAvKioKICAqIERvIG5vdCB1c2UuCiAgKiBAaW50ZXJuYWwKICAqLwogI2lmbmRlZiBVX0RF
Rl9JQ1VEQVRBX0VOVFJZX1BPSU5UCiAvKiBhZmZlY3RlZCBieSBzeW1ib2wgcmVuYW1pbmcuIFNl
ZSBwbGF0Zm9ybS5oICovCi0jZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3Is
IG1pbm9yKSBpY3VkdCMjbWFqb3IjI21pbm9yIyNfZGF0Ci0jZW5kaWYKLQotLyoqCi0gKiBcZGVm
IFVfQ0FMTENPTlYKLSAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJTi9VX0NERUNMX0VORCwgdGhp
cyBxdWFsaWZpZXIgaXMgbmVjZXNzYXJ5Ci0gKiBpbiBjYWxsYmFjayBmdW5jdGlvbiB0eXBlZGVm
cyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50aW9uCi0gKiBpcyBjb21wYXRp
YmxlLgotICoKLSAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24tSUNVLUFQSSBmdW5jdGlvbnMu
Ci0gKiBXaGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQSSwKLSAqIHlvdSBtdXN0IHVz
ZSB0aGUgVV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4KLSAqIEBzdGFibGUgSUNVIDIu
MAotICovCi0jaWYgZGVmaW5lZChPUzM5MCkgJiYgZGVmaW5lZChYUF9DUExVU1BMVVMpCi0jICAg
IGRlZmluZSBVX0NBTExDT05WIF9fY2RlY2wKKyNpZm5kZWYgVV9MSUJfU1VGRklYX0NfTkFNRQor
I2RlZmluZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBzdWZmKSBpY3VkdCMjbWFq
b3IjI19kYXQKICNlbHNlCi0jICAgIGRlZmluZSBVX0NBTExDT05WIFVfRVhQT1JUMgorI2RlZmlu
ZSBVX0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBzdWZmKSBpY3VkdCMjc3VmZiAjIyBt
YWpvciMjX2RhdAorI2VuZGlmCiAjZW5kaWYKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQ
SSAqLwogCiAvKioKICAqIFxkZWYgTlVMTApAQCAtMjg2LDcgKzE4MCw3IEBACiAgKiBAc3RhYmxl
IElDVSAyLjAKICAqLwogI2lmbmRlZiBOVUxMCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYg
X19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCAgICAwCiAjZWxzZQogI2RlZmluZSBOVUxMICAgICgo
dm9pZCAqKTApCkBAIC0zMTUsNTQgKzIwOSwxNyBAQCB0eXBlZGVmIGRvdWJsZSBVRGF0ZTsKIC8q
KiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBwZXIgZGF5IEBzdGFibGUgSUNVIDIuMCAqLwog
I2RlZmluZSBVX01JTExJU19QRVJfREFZICAgICAgICg4NjQwMDAwMCkKIAotCi0vKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCi0vKiBVQ2xhc3NJRC1iYXNlZCBSVFRJICovCi0vKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCisvKiogCisgKiBNYXhpbXVtIFVEYXRlIHZhbHVlIAorICogQHN0YWJsZSBJQ1UgNC44
IAorICovIAorI2RlZmluZSBVX0RBVEVfTUFYIERCTF9NQVgKIAogLyoqCi0gKiBVQ2xhc3NJRCBp
cyB1c2VkIHRvIGlkZW50aWZ5IGNsYXNzZXMgd2l0aG91dCB1c2luZyBSVFRJLCBzaW5jZSBSVFRJ
Ci0gKiBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgQysrIGNvbXBpbGVycy4gIEVhY2ggY2xh
c3MgaGllcmFyY2h5IHdoaWNoIG5lZWRzCi0gKiB0byBpbXBsZW1lbnQgcG9seW1vcnBoaWMgY2xv
bmUoKSBvciBvcGVyYXRvcj09KCkgZGVmaW5lcyB0d28gbWV0aG9kcywKLSAqIGRlc2NyaWJlZCBp
biBkZXRhaWwgYmVsb3cuICBVQ2xhc3NJRCB2YWx1ZXMgY2FuIGJlIGNvbXBhcmVkIHVzaW5nCi0g
KiBvcGVyYXRvcj09KCkuIE5vdGhpbmcgZWxzZSBzaG91bGQgYmUgZG9uZSB3aXRoIHRoZW0uCi0g
KgotICogXHBhcgotICogZ2V0RHluYW1pY0NsYXNzSUQoKSBpcyBkZWNsYXJlZCBpbiB0aGUgYmFz
ZSBjbGFzcyBvZiB0aGUgaGllcmFyY2h5IGFzCi0gKiBhIHB1cmUgdmlydHVhbC4gIEVhY2ggY29u
Y3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBpdCBpbiB0aGUgc2FtZSB3YXk6Ci0gKgotICogXGNv
ZGUKLSAqICAgICAgY2xhc3MgQmFzZSB7Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAgICAgICAgIHZp
cnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdCA9IDA7Ci0gKiAgICAgIH0K
LSAqCi0gKiAgICAgIGNsYXNzIERlcml2ZWQgewotICogICAgICBwdWJsaWM6Ci0gKiAgICAgICAg
ICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3QKLSAqICAgICAgICAg
ICAgeyByZXR1cm4gRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpOyB9Ci0gKiAgICAgIH0KLSAq
IFxlbmRjb2RlCi0gKgotICogRWFjaCBjb25jcmV0ZSBjbGFzcyBpbXBsZW1lbnRzIGdldFN0YXRp
Y0NsYXNzSUQoKSBhcyB3ZWxsLCB3aGljaCBhbGxvd3MKLSAqIGNsaWVudHMgdG8gdGVzdCBmb3Ig
YSBzcGVjaWZpYyB0eXBlLgotICoKLSAqIFxjb2RlCi0gKiAgICAgIGNsYXNzIERlcml2ZWQgewot
ICogICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdl
dFN0YXRpY0NsYXNzSUQoKTsKLSAqICAgICAgcHJpdmF0ZToKLSAqICAgICAgICAgIHN0YXRpYyBj
aGFyIGZnQ2xhc3NJRDsKLSAqICAgICAgfQotICoKLSAqICAgICAgLy8gSW4gRGVyaXZlZC5jcHA6
Ci0gKiAgICAgIFVDbGFzc0lEIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKQotICogICAgICAg
IHsgcmV0dXJuIChVQ2xhc3NJRCkmRGVyaXZlZDo6ZmdDbGFzc0lEOyB9Ci0gKiAgICAgIGNoYXIg
RGVyaXZlZDo6ZmdDbGFzc0lEID0gMDsgLy8gVmFsdWUgaXMgaXJyZWxldmFudAotICogXGVuZGNv
ZGUKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi10eXBlZGVmIHZvaWQqIFVDbGFzc0lEOworICog
TWluaW11bSBVRGF0ZSB2YWx1ZSAKKyAqIEBzdGFibGUgSUNVIDQuOCAKKyAqLyAKKyNkZWZpbmUg
VV9EQVRFX01JTiAtVV9EQVRFX01BWAogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKiBTaGFy
ZWQgbGlicmFyeS9ETEwgaW1wb3J0LWV4cG9ydCBBUEkgY29udHJvbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICovCkBAIC0zNzMsNyArMjMwLDcgQEAgdHlwZWRlZiB2b2lkKiBVQ2xhc3NJ
RDsKICAqIElDVSBpcyBzZXBhcmF0ZWQgaW50byB0aHJlZSBsaWJyYXJpZXMuCiAgKi8KIAotLyoK
Ky8qKgogICogXGRlZiBVX0NPTUJJTkVEX0lNUExFTUVOVEFUSU9OCiAgKiBTZXQgdG8gZXhwb3J0
IGxpYnJhcnkgc3ltYm9scyBmcm9tIGluc2lkZSB0aGUgSUNVIGxpYnJhcnkKICAqIHdoZW4gYWxs
IG9mIElDVSBpcyBpbiBhIHNpbmdsZSBsaWJyYXJ5LgpAQCAtNTQwLDkgKzM5Nyw5IEBAIHR5cGVk
ZWYgdm9pZCogVUNsYXNzSUQ7CiAgKgogICogTm90ZTogVGhpcyBpcyBjdXJyZW50bHkgb25seSBk
b25lIG9uIFdpbmRvd3MgYmVjYXVzZQogICogc29tZSBMaW51eC9Vbml4IGNvbXBpbGVycyBoYXZl
IHByb2JsZW1zIHdpdGggZGVmaW5pbmcgZ2xvYmFsIG5ldy9kZWxldGUuCi0gKiBPbiBXaW5kb3dz
LCBVX1dJTkRPV1MgaXMgZGVmaW5lZCwgYW5kIGl0IGlzIF9NU0NfVkVSPj0xMjAwIGZvciBNU1ZD
IDYuMCBhbmQgaGlnaGVyLgorICogT24gV2luZG93cywgaXQgaXMgX01TQ19WRVI+PTEyMDAgZm9y
IE1TVkMgNi4wIGFuZCBoaWdoZXIuCiAgKi8KLSNpZiBkZWZpbmVkKFhQX0NQTFVTUExVUykgJiYg
ZGVmaW5lZChXSU4zMikgJiYgVV9ERUJVRyAmJiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OICYm
IChfTVNDX1ZFUj49MTIwMCkgJiYgIWRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5UQVRJT04pICYm
IChkZWZpbmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBM
RU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVf
TEFZT1VUX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJ
T04pKQorI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmIFVfREVCVUcgJiYgVV9PVkVSUklERV9D
WFhfQUxMT0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDApICYmICFkZWZpbmVkKFVfU1RBVElDX0lN
UExFTUVOVEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVm
aW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElP
TikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9V
VEVYX0lNUExFTUVOVEFUSU9OKSkKIAogI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioK
QEAgLTc0Myw2ICs2MDAsNyBAQCB0eXBlZGVmIGVudW0gVUVycm9yQ29kZSB7CiAgICAgVV9VTkRF
RklORURfS0VZV09SRCwgICAgICAgICAgICAgIC8qKjwgVW5kZWZpbmVkIFBsdXJhbCBrZXl3b3Jk
ICovCiAgICAgVV9ERUZBVUxUX0tFWVdPUkRfTUlTU0lORywgICAgICAgIC8qKjwgTWlzc2luZyBE
RUZBVUxUIHJ1bGUgaW4gcGx1cmFsIHJ1bGVzICovCiAgICAgVV9ERUNJTUFMX05VTUJFUl9TWU5U
QVhfRVJST1IsICAgIC8qKjwgRGVjaW1hbCBudW1iZXIgc3ludGF4IGVycm9yICovCisgICAgVV9G
T1JNQVRfSU5FWEFDVF9FUlJPUiwgICAgICAgICAgIC8qKjwgQ2Fubm90IGZvcm1hdCBhIG51bWJl
ciBleGFjdGx5IGFuZCByb3VuZGluZyBtb2RlIGlzIFJPVU5EX1VOTkVDRVNTQVJZIEBzdGFibGUg
SUNVIDQuOCAqLwogICAgIFVfRk1UX1BBUlNFX0VSUk9SX0xJTUlULCAgICAgICAgICAvKio8IFRo
ZSBsaW1pdCBmb3IgZm9ybWF0IGxpYnJhcnkgZXJyb3JzICovCiAKICAgICAvKgpAQCAtODI2LDcg
KzY4NCw3IEBAIHR5cGVkZWYgZW51bSBVRXJyb3JDb2RlIHsKIC8qIFVzZSB0aGUgZm9sbG93aW5n
IHRvIGRldGVybWluZSBpZiBhbiBVRXJyb3JDb2RlIHJlcHJlc2VudHMgKi8KIC8qIG9wZXJhdGlv
bmFsIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4gKi8KIAotI2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVm
IF9fY3BsdXNwbHVzCiAgICAgLyoqCiAgICAgICogRG9lcyB0aGUgZXJyb3IgY29kZSBpbmRpY2F0
ZSBzdWNjZXNzPwogICAgICAqIEBzdGFibGUgSUNVIDIuMApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91dmVybnVtLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V2ZXJudW0u
aAppbmRleCA3MjIxNjEyOTIwOTJkYTYwNjI4OWMwNmVjMjM2MTMwODUzOTFjNDE4Li5iZDBiMGM5
ODk4YTIzNTc5ZThmYjgxMTlmNmNkMTYzOWFjMmE4ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3V2ZXJudW0uaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3V2ZXJu
dW0uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29w
eXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgogKgpAQCAtMTIsNTcgKzEyLDY2IEBACiAqICAgQ3JlYXRlZCBi
eTogVmxhZGltaXIgV2VpbnN0ZWluCiAqICAgVXBkYXRlZCBieTogU3RldmVuIFIuIExvb21pcwog
KgotKiAgR2V0cyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4KLSoKLSog
SU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhpbmdzIG5l
ZWQgdG8gYmUgZG9uZToKLSogc291cmNlL2NvbW1vbi91bmljb2RlL3V2ZXJudW0uaCAtIHRoaXMg
ZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKLSogICAgICAgIHBhdGNobGV2ZWwsIHN1ZmZpeCwg
dmVyc2lvbiwgc2hvcnQgdmVyc2lvbiBjb25zdGFudHMsIG5hbWVzcGFjZSwKLSogICAgICAgICAg
ICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0Ci0qCi0qIFRoZSBmb2xsb3dp
bmcgZmlsZXMgbmVlZCB0byBiZSB1cGRhdGVkIGFzIHdlbGwsIHdoaWNoIGNhbiBiZSBkb25lCi0q
ICBieSBydW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRvd3MtbWFr
ZWZpbGVzJyBpbiBpY3Uvc291cmNlLgotKgotKgotKiBzb3VyY2UvY29tbW9uL2NvbW1vbi52Y3By
b2ogLSB1cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbwotKiAgICAg
ICAgICAgICAgICAgICB0aGF0IGl0IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmlu
YXRpb24KLSogc291cmNlL2kxOG4vaTE4bi52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9u
LnZjcHJvagotKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUg
Y29tbW9uLnZjcHJvagotKiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQot
KiBzb3VyY2Uvc3R1YmRhdGEvc3R1YmRhdGEudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1v
bi52Y3Byb2oKLSogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24u
dmNwcm9qCi0qIHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFN
RSBzbyB0aGF0IGl0IGNvbnRhaW5zCi0qICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBu
ZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24gYW5kIHRoZSBVbmljb2RlIHZlcnNpb24uCiAqLwog
CisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IGRlZmluaXRpb25zIG9mIElDVSB2ZXJz
aW9uIG51bWJlcnMKKyAqCisgKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgYnkgdXZlcnNpb24uaCBh
bmQgb3RoZXIgZmlsZXMuIFRoaXMgZmlsZSBjb250YWlucyBvbmx5CisgKiBtYWNyb3MgYW5kIGRl
ZmluaXRpb25zLiBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVycyBhcmUgZGVmaW5lZCBoZXJlLgor
ICovCisKKyAvKgorICAqIElNUE9SVEFOVDogV2hlbiB1cGRhdGluZyB2ZXJzaW9uLCB0aGUgZm9s
bG93aW5nIHRoaW5ncyBuZWVkIHRvIGJlIGRvbmU6CisgICogc291cmNlL2NvbW1vbi91bmljb2Rl
L3V2ZXJudW0uaCAtIHRoaXMgZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKKyAgKiAgICAgICAg
cGF0Y2hsZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50cywgbmFt
ZXNwYWNlLAorICAqICAgICAgICAgICAgICAgICAgICByZW5hbWluZyBtYWNybywgYW5kIGNvcHly
aWdodAorICAqCisgICogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMg
d2VsbCwgd2hpY2ggY2FuIGJlIGRvbmUKKyAgKiAgYnkgcnVubmluZyB0aGUgVU5JWCBtYWtlZmls
ZSB0YXJnZXQgJ3VwZGF0ZS13aW5kb3dzLW1ha2VmaWxlcycgaW4gaWN1L3NvdXJjZS4KKyAgKgor
ICAqCisgICogc291cmNlL2NvbW1vbi9jb21tb24udmNwcm9qIC0gdXBkYXRlICdPdXRwdXQgZmls
ZSBuYW1lJyBvbiB0aGUgbGluayB0YWIgc28KKyAgKiAgICAgICAgICAgICAgICAgICB0aGF0IGl0
IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24KKyAgKiBzb3VyY2UvaTE4
bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNl
L2xheW91dC9sYXlvdXQudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAg
KiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQorICAqIHNvdXJjZS9zdHVi
ZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAq
IHNvdXJjZS9pby9pby52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAq
IHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFNRSBzbyB0aGF0
IGl0IGNvbnRhaW5zCisgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBtYWpv
ci9taW5vciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KKyAgKi8KKwogI2lm
bmRlZiBVVkVSTlVNX0gKICNkZWZpbmUgVVZFUk5VTV9ICiAKLS8qKiBUaGUgc3RhbmRhcmQgY29w
eXJpZ2h0IG5vdGljZSB0aGF0IGdldHMgY29tcGlsZWQgaW50byBlYWNoIGxpYnJhcnkuIAorLyoq
IFRoZSBzdGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVh
Y2ggbGlicmFyeS4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50
IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFVfQ09Q
WVJJR0hUX1NUUklORyBcCi0gICIgQ29weXJpZ2h0IChDKSAyMDExLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuICIKKyAgIiBDb3B5cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIgogCi0v
KiogVGhlIGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisvKiogVGhl
IGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVl
IHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFi
bGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNIDQKKyNkZWZp
bmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNTIKIAotLyoqIFRoZSBjdXJyZW50IElDVSBtaW5v
ciB2ZXJzaW9uIGFzIGFuIGludGVnZXIuIAorLyoqIFRoZSBjdXJyZW50IElDVSBtaW5vciB2ZXJz
aW9uIGFzIGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vi
c2VxdWVudCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmlu
ZSBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA2CisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUlOT1Jf
TlVNIDEKIAotLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4gIAorLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVh
c2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJ
T05fUEFUQ0hMRVZFTF9OVU0gMQorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1BBVENITEVWRUxfTlVN
IDAKIAotLyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFuIGludGVn
ZXIuICAKKy8qKiBUaGUgY3VycmVudCBJQ1UgYnVpbGQgbGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRl
Z2VyLgogICogIFRoaXMgdmFsdWUgaXMgZm9yIHVzZSBieSBJQ1UgY2xpZW50cy4gSXQgZGVmYXVs
dHMgdG8gMC4KICAqICBAc3RhYmxlIElDVSA0LjAKICAqLwpAQCAtNzAsMzkgKzc5LDU5IEBACiAj
ZGVmaW5lIFVfSUNVX1ZFUlNJT05fQlVJTERMRVZFTF9OVU0gMAogI2VuZGlmCiAKLS8qKiBHbHVl
ZCB2ZXJzaW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMgCisvKiogR2x1ZWQgdmVyc2lvbiBzdWZmaXgg
Zm9yIHJlbmFtZXJzCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVu
dCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmluZSBVX0lD
VV9WRVJTSU9OX1NVRkZJWCBfNDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TVUZGSVggXzUyCiAK
LS8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMgCisvKioKKyAq
IFxkZWYgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKKyAqIEBpbnRlcm5hbAorICovCisv
KioKKyAqIFxkZWYgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisg
Ki8KKy8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMKICAqICBU
aGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVS4K
ICAqICBJZiBhIGN1c3RvbSBzdWZmaXggKHN1Y2ggYXMgbWF0Y2hpbmcgbGlicmFyeSBzdWZmaXhl
cykgaXMgZGVzaXJlZCwgdGhpcyBjYW4gYmUgbW9kaWZpZWQuCiAgKiAgTm90ZSB0aGF0IGlmIHBy
ZXNlbnQsIHBsYXRmb3JtLmggbWF5IGNvbnRhaW4gYW4gZWFybGllciBkZWZpbml0aW9uIG9mIHRo
aXMgbWFjcm8uCisgKiAgXGRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICAqICBAc3RhYmxl
IElDVSA0LjIKICAqLworCiAjaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQotI2RlZmlu
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfNDYKKyNpZmRlZiBVX0hBVkVf
TElCX1NVRkZJWAorI2RlZmluZSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSx6KSB4
ICMjIHkgIyMgIHoKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHop
IFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopCisjZGVmaW5lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LFVfSUNV
X1ZFUlNJT05fU1VGRklYLFVfTElCX1NVRkZJWF9DX05BTUUpCisjZWxzZQorI2RlZmluZSBVX0RF
Rl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkgeCAjIyB5CisjZGVmaW5lIFVfREVGMl9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHgseSkgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkp
CisjZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh4LFVfSUNVX1ZFUlNJT05fU1VGRklYKQorI2VuZGlmCiAjZW5kaWYKIAog
LyoqIFRoZSBjdXJyZW50IElDVSBsaWJyYXJ5IHZlcnNpb24gYXMgYSBkb3R0ZWQtZGVjaW1hbCBz
dHJpbmcuIFRoZSBwYXRjaGxldmVsCi0gKiAgb25seSBhcHBlYXJzIGluIHRoaXMgc3RyaW5nIGlm
IGl0IG5vbi16ZXJvLiAKKyAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYgaXQgbm9u
LXplcm8uCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVudCByZWxl
YXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjQKICAqLwotI2RlZmluZSBVX0lDVV9WRVJT
SU9OICI0LjYuMSIKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTiAiNTIuMSIKIAotLyoqIFRoZSBjdXJy
ZW50IElDVSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBk
b3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLiAKKy8qKiBUaGUgY3VycmVudCBJQ1UgbGli
cmFyeSBtYWpvci9taW5vciB2ZXJzaW9uIGFzIGEgc3RyaW5nIHdpdGhvdXQgZG90cywgZm9yIGxp
YnJhcnkgbmFtZSBzdWZmaXhlcy4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBz
dWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVm
aW5lIFVfSUNVX1ZFUlNJT05fU0hPUlQgIjQ2IgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NIT1JU
ICI1MiIKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKiogRGF0YSB2ZXJzaW9uIGlu
IElDVTRDLgogICogQGludGVybmFsIElDVSA0LjQgSW50ZXJuYWwgVXNlIE9ubHkKICAqKi8KLSNk
ZWZpbmUgVV9JQ1VfREFUQV9WRVJTSU9OICI0LjYiCisjZGVmaW5lIFVfSUNVX0RBVEFfVkVSU0lP
TiAiNTIuMSIKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQogICogSUNVIGNvbGxhdGlvbiBmcmFtZXdvcmsgdmVyc2lvbiBpbmZvcm1hdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91dmVyc2lvbi5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS91dmVyc2lvbi5oCmluZGV4IGU1NGNkNTVhNjdjYmM0Y2M2OTJlNGUz
NjkyMWRhMmIzNmFkMTVhNWYuLjc0ZTMwOTEwNTUxNGFkZjM4MjM3YTNiN2E0MDk4MDFhODE1YTVk
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdXZlcnNpb24uaAorKysgYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTEsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTY3
LDcgKzY3LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xF
TkdUSF07CiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBiZWdpbnMgYW4gZXh0ZXJuICJD
KysiIGxpbmthZ2UgYmxvY2sgKHRvIHByb3RlY3QKICAqIGFnYWluc3QgY2FzZXMgaW4gd2hpY2gg
YW4gZXh0ZXJuYWwgY2xpZW50IGluY2x1ZGVzIElDVSBoZWFkZXIgZmlsZXMgaW5zaWRlCiAgKiBh
biBleHRlcm4gIkMiIGxpbmthZ2UgYmxvY2spLgotICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBw
b3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGJlZ2lucyBhIG5hbWVzcGFjZSBibG9jay4KKyAqCisg
KiBJdCBhbHNvIGJlZ2lucyBhIHZlcnNpb25lZC1JQ1UtbmFtZXNwYWNlIGJsb2NrLgogICogQHN0
YWJsZSBJQ1UgMi40CiAgKi8KIApAQCAtNzcsOCArNzgsOCBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZl
cnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFdoZW4gbm90IGNvbXBpbGluZyBm
b3IgQysrLCBpdCBkb2VzIG5vdGhpbmcuCiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBl
bmRzIHRoZSBleHRlcm4gIkMrKyIgYmxvY2sgYmVndW4gYnkKICAqIFVfTkFNRVNQQUNFX0JFR0lO
LgotICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGVu
ZHMgdGhlIG5hbWVzcGFjZSBibG9jawotICogYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4uCisg
KgorICogSXQgYWxzbyBlbmRzIHRoZSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jayBiZWd1
biBieSBVX05BTUVTUEFDRV9CRUdJTi4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTg2
LDcgKzg3LDkgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xF
TkdUSF07CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1VTRQogICogVGhpcyBpcyB1c2VkIHRvIHNwZWNp
ZnkgdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQogICogcHVibGljIElDVSBDKysg
QVBJIG5hbWVzcGFjZS4KLSAqIElmIHRoZSBjb21waWxlciBkb2Vzbid0IHN1cHBvcnQgbmFtZXNw
YWNlcywgdGhpcyBkb2VzIG5vdGhpbmcuCisgKiBUaGlzIGlzIGludm9rZWQgYnkgZGVmYXVsdDsg
d2UgcmVjb21tZW5kIHRoYXQgeW91IHR1cm4gaXQgb2ZmOgorICogU2VlIHRoZSAiUmVjb21tZW5k
ZWQgQnVpbGQgT3B0aW9ucyIgc2VjdGlvbiBvZiB0aGUgSUNVNEMgcmVhZG1lCisgKiAoaHR0cDov
L3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90cnVuay9yZWFkbWUuaHRtbCNS
ZWNCdWlsZCkKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTk0LDEzICs5NywxNCBAQCB0
eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFxk
ZWYgVV9OQU1FU1BBQ0VfUVVBTElGSUVSCiAgKiBUaGlzIGlzIHVzZWQgdG8gcXVhbGlmeSB0aGF0
IGEgZnVuY3Rpb24gb3IgY2xhc3MgaXMgcGFydCBvZgogICogdGhlIHB1YmxpYyBJQ1UgQysrIEFQ
SSBuYW1lc3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFj
ZXMsIHRoaXMgZG9lcyBub3RoaW5nLgorICoKKyAqIFRoaXMgbWFjcm8gaXMgdW5uZWNlc3Nhcnkg
c2luY2UgSUNVIDQ5IHJlcXVpcmVzIG5hbWVzcGFjZSBzdXBwb3J0LgorICogWW91IGNhbiBqdXN0
IHVzZSAiaWN1OjoiIGluc3RlYWQuCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCiAvKiBEZWZp
bmUgbmFtZXNwYWNlIHN5bWJvbHMgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LiAqLwotI2lm
ZGVmIFhQX0NQTFVTUExVUwotI2lmIFVfSEFWRV9OQU1FU1BBQ0UKKyNpZmRlZiBfX2NwbHVzcGx1
cwogIyAgIGlmIFVfRElTQUJMRV9SRU5BTUlORwogIyAgICAgICBkZWZpbmUgVV9JQ1VfTkFNRVNQ
QUNFIGljdQogICAgICAgICBuYW1lc3BhY2UgVV9JQ1VfTkFNRVNQQUNFIHsgfQpAQCAtMTIyLDEy
ICsxMjYsNiBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVO
R1RIXTsKICAgICAgICAgVV9OQU1FU1BBQ0VfVVNFCiAjICAgZW5kaWYKICNlbHNlCi0jICAgZGVm
aW5lIFVfTkFNRVNQQUNFX0JFR0lOIGV4dGVybiAiQysrIiB7Ci0jICAgZGVmaW5lIFVfTkFNRVNQ
QUNFX0VORCB9Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQotIyAgIGRlZmluZSBVX05BTUVT
UEFDRV9RVUFMSUZJRVIKLSNlbmRpZgotI2Vsc2UKICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfQkVH
SU4KICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfRU5ECiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VT
RQpAQCAtMTgwLDcgKzE3OCw3IEBAIHVfdmVyc2lvbkZyb21VU3RyaW5nKFVWZXJzaW9uSW5mbyB2
ZXJzaW9uQXJyYXksIGNvbnN0IFVDaGFyICp2ZXJzaW9uU3RyaW5nKTsKICAqIEBzdGFibGUgSUNV
IDIuNAogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgotdV92ZXJzaW9uVG9TdHJpbmcoVVZl
cnNpb25JbmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7Cit1X3ZlcnNpb25U
b1N0cmluZyhjb25zdCBVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjaGFyICp2ZXJzaW9uU3Ry
aW5nKTsKIAogLyoqCiAgKiBHZXRzIHRoZSBJQ1UgcmVsZWFzZSB2ZXJzaW9uLiAgVGhlIHZlcnNp
b24gYXJyYXkgc3RvcmVzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS9ieXRlc3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS9ieXRlc3RyZWFtLmgKaW5kZXggZmI5ZTA3YTI1ZGNkOWI5NWQ5YTM3YTBiOGE3MmIz
NWU2M2ExZmZiOC4uMTc0YWEzOGFmY2UwNzAyMDE0YWJhODhlNTI5MzdlZmU0YWJlYzEyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvYnl0ZXN0cmVhbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL2J5dGVzdHJlYW0uaApAQCAtMSw0ICsxLDQgQEAKLS8v
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisvLyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcwogLy8gQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIC8v
CiAvLyBDb3B5cmlnaHQgMjAwNyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgpAQCAt
NTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAqIFZpcnR1YWwgZGVzdHJ1Y3Rvci4KICAgICogQHN0
YWJsZSBJQ1UgNC4yCiAgICAqLwotICB2aXJ0dWFsIH5CeXRlU2luaygpIHsgfQorICB2aXJ0dWFs
IH5CeXRlU2luaygpOwogCiAgIC8qKgogICAgKiBBcHBlbmQgImJ5dGVzWzAsbi0xXSIgdG8gdGhp
cy4KQEAgLTE1MCwxMiArMTUwLDE3IEBAIHB1YmxpYzoKICAgICovCiAgIENoZWNrZWRBcnJheUJ5
dGVTaW5rKGNoYXIqIG91dGJ1ZiwgaW50MzJfdCBjYXBhY2l0eSk7CiAgIC8qKgorICAgKiBEZXN0
cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSA0LjIKKyAgICovCisgIHZpcnR1YWwgfkNoZWNrZWRB
cnJheUJ5dGVTaW5rKCk7CisgIC8qKgogICAgKiBSZXR1cm5zIHRoZSBzaW5rIHRvIGl0cyBvcmln
aW5hbCBzdGF0ZSwgd2l0aG91dCBtb2RpZnlpbmcgdGhlIGJ1ZmZlci4KICAgICogVXNlZnVsIGZv
ciByZXVzaW5nIGJvdGggdGhlIGJ1ZmZlciBhbmQgdGhlIHNpbmsgZm9yIG11bHRpcGxlIHN0cmVh
bXMuCiAgICAqIFJlc2V0cyB0aGUgc3RhdGUgdG8gTnVtYmVyT2ZCeXRlc1dyaXR0ZW4oKT1OdW1i
ZXJPZkJ5dGVzQXBwZW5kZWQoKT0wCiAgICAqIGFuZCBPdmVyZmxvd2VkKCk9RkFMU0UuCiAgICAq
IEByZXR1cm4gKnRoaXMKLSAgICogQGRyYWZ0IElDVSA0LjYKKyAgICogQHN0YWJsZSBJQ1UgNC42
CiAgICAqLwogICB2aXJ0dWFsIENoZWNrZWRBcnJheUJ5dGVTaW5rJiBSZXNldCgpOwogICAvKioK
QEAgLTIwMSw3ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAqIElmIE92ZXJmbG93ZWQoKSB0aGVuIE51
bWJlck9mQnl0ZXNBcHBlbmRlZCgpPk51bWJlck9mQnl0ZXNXcml0dGVuKCkKICAgICogZWxzZSB0
aGV5IHJldHVybiB0aGUgc2FtZSBudW1iZXIuCiAgICAqIEByZXR1cm4gbnVtYmVyIG9mIGJ5dGVz
IHdyaXR0ZW4gdG8gdGhlIGJ1ZmZlcgotICAgKiBAZHJhZnQgSUNVIDQuNgorICAgKiBAc3RhYmxl
IElDVSA0LjYKICAgICovCiAgIGludDMyX3QgTnVtYmVyT2ZCeXRlc0FwcGVuZGVkKCkgY29uc3Qg
eyByZXR1cm4gYXBwZW5kZWRfOyB9CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL2No
YXJpdGVyLmgKaW5kZXggMTJmYzkyNDhhMjNiNWE2NzQ0NTJmM2JhNGMzMGQ5MTkxOGUyNzkzMi4u
ZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
Y3UvdW5pY29kZS9jaGFyaXRlci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAq
Ci0qICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKQEAgLTM2Miw2ICszNjIsMTIgQEAgcHVibGljOgogICAgIGVu
dW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKIAogICAgIC8qKgorICAgICAq
IERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgogICAgICAqIFJldHVybnMgYSBwb2lu
dGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCiAgICAgICogY29uY3Jl
dGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNhbWUKICAgICAgKiBj
aGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0aGlzIG9uZS4gIFRo
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvbG9jYWxwb2ludGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaAppbmRleCBiNzZhMWY4
NTYyOTkyM2JkZGI4NDZlOThhMDg0ODMzNDdjYTRlZTRhLi5lM2NjYjI1ODE1NGNjMjE2MDk4ZWJj
MjczOWZiN2I2ODIyMDU5Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29k
ZS9sb2NhbHBvaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9sb2NhbHBv
aW50ZXIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0q
ICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTQ0LDYgKzE0NCwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIHB0cj1wOwogICAgIH0KIHByb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBBY3R1
YWwgcG9pbnRlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KICAgICBUICpwdHI7CiBwcml2
YXRlOgogICAgIC8vIE5vIGNvbXBhcmlzb24gb3BlcmF0b3JzIHdpdGggb3RoZXIgTG9jYWxQb2lu
dGVyQmFzZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wbGF0Zm9y
bS5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcGxhdGZvcm0uaAppbmRleCAzZGU0MGQy
NTY1NTNjNGFhZjFlYzA0ODMxZTk5YzU1M2ZkN2M0NmU5Li4xYjJhYjMwNmVhMzM3ODI5ZmQ5OWIy
YzBmMjgyNzBkMjljN2JiMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29k
ZS9wbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3BsYXRmb3JtLmgK
QEAgLTEsMTUgKzEsMTEgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5
cmlnaHQgKEMpIDE5OTctMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKLSogTm90ZTogYXV0b2NvbmYgY3JlYXRlcyBwbGF0Zm9y
bS5oIGZyb20gcGxhdGZvcm0uaC5pbiBhdCBjb25maWd1cmUgdGltZS4KLSoKLSoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotKgogKiAgRklMRSBOQU1FIDogcGxhdGZvcm0uaAogKgogKiAgIERhdGUgICAg
ICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCkBAIC0yMywzNzkgKzE5LDczNyBAQAogI2lmbmRl
ZiBfUExBVEZPUk1fSAogI2RlZmluZSBfUExBVEZPUk1fSAogCisjaW5jbHVkZSAidW5pY29kZS91
Y29uZmlnLmgiCisjaW5jbHVkZSAidW5pY29kZS91dmVybnVtLmgiCisKIC8qKgotICogXGZpbGUg
Ci0gKiBcYnJpZWYgQmFzaWMgdHlwZXMgZm9yIHRoZSBwbGF0Zm9ybSAKKyAqIFxmaWxlCisgKiBc
YnJpZWYgQmFzaWMgdHlwZXMgZm9yIHRoZSBwbGF0Zm9ybS4KKyAqCisgKiBUaGlzIGZpbGUgdXNl
ZCB0byBiZSBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYvY29uZmlndXJlLgorICogU3RhcnRpbmcgd2l0
aCBJQ1UgNDksIHBsYXRmb3JtLmggaXMgYSBub3JtYWwgc291cmNlIGZpbGUsCisgKiB0byBzaW1w
bGlmeSBjcm9zcy1jb21waWxpbmcgYW5kIHdvcmtpbmcgd2l0aCBub24tYXV0b2NvbmYvbWFrZSBi
dWlsZCBzeXN0ZW1zLgorICoKKyAqIFdoZW4gYSB2YWx1ZSBpbiB0aGlzIGZpbGUgZG9lcyBub3Qg
d29yayBvbiBhIHBsYXRmb3JtLCB0aGVuIHBsZWFzZQorICogdHJ5IHRvIGRlcml2ZSBpdCBmcm9t
IHRoZSBVX1BMQVRGT1JNIHZhbHVlCisgKiAoZm9yIHdoaWNoIHdlIG1pZ2h0IG5lZWQgYSBuZXcg
dmFsdWUgY29uc3RhbnQgaW4gcmFyZSBjYXNlcykKKyAqIGFuZC9vciBmcm9tIG90aGVyIG1hY3Jv
cyB0aGF0IGFyZSBwcmVkZWZpbmVkIGJ5IHRoZSBjb21waWxlcgorICogb3IgZGVmaW5lZCBpbiBz
dGFuZGFyZCAoUE9TSVggb3IgcGxhdGZvcm0gb3IgY29tcGlsZXIpIGhlYWRlcnMuCisgKgorICog
QXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCwgeW91IGNhbiBhZGQgYW4gZXhwbGljaXQgPGNvZGU+
I2RlZmluZTwvY29kZT4gZm9yIHNvbWUgbWFjcm9zCisgKiBiZWZvcmUgaXQgaXMgZmlyc3QgdGVz
dGVkLCBvciBhZGQgYW4gZXF1aXZhbGVudCAtRCBtYWNybyBkZWZpbml0aW9uCisgKiB0byB0aGUg
Y29tcGlsZXIncyBjb21tYW5kIGxpbmUuCisgKgorICogTm90ZTogU29tZSBjb21waWxlcnMgcHJv
dmlkZSB3YXlzIHRvIHNob3cgdGhlIHByZWRlZmluZWQgbWFjcm9zLgorICogRm9yIGV4YW1wbGUs
IHdpdGggZ2NjIHlvdSBjYW4gY29tcGlsZSBhbiBlbXB0eSAuYyBmaWxlIGFuZCBoYXZlIHRoZSBj
b21waWxlcgorICogcHJpbnQgdGhlIHByZWRlZmluZWQgbWFjcm9zIHdpdGgKKyAqIFxjb2RlCisg
KiBnY2MgLUUgLWRNIC14IGMgL2Rldi9udWxsIHwgc29ydAorICogXGVuZGNvZGUKKyAqIChZb3Ug
Y2FuIHByb3ZpZGUgYW4gYWN0dWFsIGVtcHR5IC5jIGZpbGUgcmF0aGVyIHRoYW4gL2Rldi9udWxs
LgorICogPGNvZGU+LXggYysrPC9jb2RlPiBpcyBmb3IgQysrLikKICAqLwogCi0vKiBUaGlzIGZp
bGUgc2hvdWxkIGJlIGluY2x1ZGVkIGJlZm9yZSB1dmVybnVtLmguICovCi0jaWYgZGVmaW5lZChV
VkVSTlVNX0gpCi0jIGVycm9yIERvIG5vdCBpbmNsdWRlIHVuaWNvZGUvdXZlcm51bS5oIGJlZm9y
ZSAjaW5jbHVkaW5nIHVuaWNvZGUvcGxhdGZvcm0uaC4gIEluc3RlYWQgb2YgdW5pY29kZS91dmVy
bnVtLmgsICNpbmNsdWRlIHVuaWNvZGUvdXZlcnNpb24uaAotI2VuZGlmCi0KIC8qKgotICogRGV0
ZXJtaW5lIHdoZXRlciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmllcy4gCisgKiBE
ZWZpbmUgc29tZSB0aGluZ3Mgc28gdGhhdCB0aGV5IGNhbiBiZSBkb2N1bWVudGVkLgogICogQGlu
dGVybmFsCiAgKi8KLSNpZm5kZWYgVUNMTl9OT19BVVRPX0NMRUFOVVAKLSNkZWZpbmUgVUNMTl9O
T19BVVRPX0NMRUFOVVAgMQotI2VuZGlmCi0KLS8qIE5lZWQgcGxhdGZvcm0uaCB3aGVuIHVzaW5n
IENZR1dJTk1TVkMgdG8gZ2V0IGRlZmluaXRpb25zIGFib3ZlLiBJZ25vcmUgZXZlcnl0aGluZyBl
bHNlLiAqLwotI2lmbmRlZiBDWUdXSU5NU1ZDCisjaWZkZWYgVV9JTl9ET1hZR0VOCisvKgorICog
UHJvYmxlbTogInBsYXRmb3JtLmg6MzM1OiB3YXJuaW5nOiBkb2N1bWVudGF0aW9uIGZvciB1bmtu
b3duIGRlZmluZSBVX0hBVkVfU1REX1NUUklORyBmb3VuZC4iIG1lYW5zIHRoYXQgVV9IQVZFX1NU
RF9TVFJJTkcgaXMgbm90IGRvY3VtZW50ZWQuCisgKiBTb2x1dGlvbjogI2RlZmluZSBhbnkgZGVm
aW5lcyBmb3Igbm9uIEBpbnRlcm5hbCBBUEkgaGVyZSwgc28gdGhhdCB0aGV5IGFyZSB2aXNpYmxl
IGluIHRoZSBkb2NzLiAgSWYgeW91IGp1c3Qgc2V0IFBSRURFRklORUQgaW4gRG94eWZpbGUuaW4s
ICB0aGV5IHdvbid0IGJlIGRvY3VtZW50ZWQuCisgKi8KIAotLyoqIERlZmluZSB0aGUgcGxhdGZv
cm0gd2UncmUgb24uICovCi0jaWZuZGVmIFVfREFSV0lOCi0jZGVmaW5lIFVfREFSV0lOCisvKiBO
b25lIGZvciBub3cuICovCiAjZW5kaWYKIAogLyoqCi0gKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAot
ICogRGVmaW5lIHdoZXRoZXIgZGlyZW50LmggaXMgYXZhaWxhYmxlIAorICogXGRlZiBVX1BMQVRG
T1JNCisgKiBUaGUgVV9QTEFURk9STSBtYWNybyBkZWZpbmVzIHRoZSBwbGF0Zm9ybSB3ZSdyZSBv
bi4KKyAqCisgKiBXZSB1c2VkIHRvIGRlZmluZSBvbmUgZGlmZmVyZW50LCB2YWx1ZS1sZXNzIG1h
Y3JvIHBlciBwbGF0Zm9ybS4KKyAqIFRoYXQgbWFkZSBpdCBoYXJkIHRvIGtub3cgdGhlIHNldCBv
ZiByZWxldmFudCBwbGF0Zm9ybXMgYW5kIG1hY3JvcywKKyAqIGFuZCBoYXJkIHRvIGRlYWwgd2l0
aCB2YXJpYW50cyBvZiBwbGF0Zm9ybXMuCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNDksIHdl
IGRlZmluZSBwbGF0Zm9ybXMgYXMgbnVtZXJpYyBtYWNyb3MsCisgKiB3aXRoIHJhbmdlcyBvZiB2
YWx1ZXMgZm9yIHJlbGF0ZWQgcGxhdGZvcm1zIGFuZCB0aGVpciB2YXJpYW50cy4KKyAqIFRoZSBV
X1BMQVRGT1JNIG1hY3JvIGlzIHNldCB0byBvbmUgb2YgdGhlc2UgdmFsdWVzLgorICoKKyAqIEhp
c3RvcmljYWwgbm90ZSBmcm9tIHRoZSBTb2xhcmlzIFdpa2lwZWRpYSBhcnRpY2xlOgorICogQVQm
VCBhbmQgU3VuIGNvbGxhYm9yYXRlZCBvbiBhIHByb2plY3QgdG8gbWVyZ2UgdGhlIG1vc3QgcG9w
dWxhciBVbml4IHZhcmlhbnRzCisgKiBvbiB0aGUgbWFya2V0IGF0IHRoYXQgdGltZTogQlNELCBT
eXN0ZW0gViwgYW5kIFhlbml4LgorICogVGhpcyBiZWNhbWUgVW5peCBTeXN0ZW0gViBSZWxlYXNl
IDQgKFNWUjQpLgorICoKICAqIEBpbnRlcm5hbAogICovCi0jaWZuZGVmIFVfSEFWRV9ESVJFTlRf
SAotI2RlZmluZSBVX0hBVkVfRElSRU5UX0ggMQotI2VuZGlmCiAKLS8qKiBEZWZpbmUgd2hldGhl
ciBpbnR0eXBlcy5oIGlzIGF2YWlsYWJsZSAqLwotI2lmbmRlZiBVX0hBVkVfSU5UVFlQRVNfSAot
I2RlZmluZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisvKiogVW5rbm93biBwbGF0Zm9ybS4gQGludGVy
bmFsICovCisjZGVmaW5lIFVfUEZfVU5LTk9XTiAwCisvKiogV2luZG93cyBAaW50ZXJuYWwgKi8K
KyNkZWZpbmUgVV9QRl9XSU5ET1dTIDEwMDAKKy8qKiBNaW5HVy4gV2luZG93cywgY2FsbHMgdG8g
V2luMzIgQVBJLCBidXQgdXNpbmcgR05VIGdjYyBhbmQgYmludXRpbHMuIEBpbnRlcm5hbCAqLwor
I2RlZmluZSBVX1BGX01JTkdXIDE4MDAKKy8qKgorICogQ3lnd2luLiBXaW5kb3dzLCBjYWxscyB0
byBjeWd3aW4xLmRsbCBmb3IgUG9zaXggZnVuY3Rpb25zLAorICogdXNpbmcgTVNWQyBvciBHTlUg
Z2NjIGFuZCBiaW51dGlscy4KKyAqIEBpbnRlcm5hbAorICovCisjZGVmaW5lIFVfUEZfQ1lHV0lO
IDE5MDAKKy8qIFJlc2VydmUgMjAwMCBmb3IgVV9QRl9VTklYPyAqLworLyoqIEhQLVVYIGlzIGJh
c2VkIG9uIFVOSVggU3lzdGVtIFYuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0hQVVggMjEw
MAorLyoqIFNvbGFyaXMgaXMgYSBVbml4IG9wZXJhdGluZyBzeXN0ZW0gYmFzZWQgb24gU1ZSNC4g
QGludGVybmFsICovCisjZGVmaW5lIFVfUEZfU09MQVJJUyAyNjAwCisvKiogQlNEIGlzIGEgVU5J
WCBvcGVyYXRpbmcgc3lzdGVtIGRlcml2YXRpdmUuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BG
X0JTRCAzMDAwCisvKiogQUlYIGlzIGJhc2VkIG9uIFVOSVggU3lzdGVtIFYgUmVsZWFzZXMgYW5k
IDQuMyBCU0QuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0FJWCAzMTAwCisvKiogSVJJWCBp
cyBiYXNlZCBvbiBVTklYIFN5c3RlbSBWIHdpdGggQlNEIGV4dGVuc2lvbnMuIEBpbnRlcm5hbCAq
LworI2RlZmluZSBVX1BGX0lSSVggMzIwMAorLyoqCisgKiBEYXJ3aW4gaXMgYSBQT1NJWC1jb21w
bGlhbnQgb3BlcmF0aW5nIHN5c3RlbSwgY29tcG9zZWQgb2YgY29kZSBkZXZlbG9wZWQgYnkgQXBw
bGUsCisgKiBhcyB3ZWxsIGFzIGNvZGUgZGVyaXZlZCBmcm9tIE5lWFRTVEVQLCBCU0QsIGFuZCBv
dGhlciBwcm9qZWN0cywKKyAqIGJ1aWx0IGFyb3VuZCB0aGUgTWFjaCBrZXJuZWwuCisgKiBEYXJ3
aW4gZm9ybXMgdGhlIGNvcmUgc2V0IG9mIGNvbXBvbmVudHMgdXBvbiB3aGljaCBNYWMgT1MgWCwg
QXBwbGUgVFYsIGFuZCBpT1MgYXJlIGJhc2VkLgorICogKE9yaWdpbmFsIGRlc2NyaXB0aW9uIG1v
ZGlmaWVkIGZyb20gV2lraVBlZGlhLikKKyAqIEBpbnRlcm5hbAorICovCisjZGVmaW5lIFVfUEZf
REFSV0lOIDM1MDAKKy8qKiBpUGhvbmUgT1MgKGlPUykgaXMgYSBkZXJpdmF0aXZlIG9mIE1hYyBP
UyBYLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9JUEhPTkUgMzU1MAorLyoqIFFOWCBpcyBh
IGNvbW1lcmNpYWwgVW5peC1saWtlIHJlYWwtdGltZSBvcGVyYXRpbmcgc3lzdGVtIHJlbGF0ZWQg
dG8gQlNELiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9RTlggMzcwMAorLyoqIExpbnV4IGlz
IGEgVW5peC1saWtlIG9wZXJhdGluZyBzeXN0ZW0uIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BG
X0xJTlVYIDQwMDAKKy8qKiBBbmRyb2lkIGlzIGJhc2VkIG9uIExpbnV4LiBAaW50ZXJuYWwgKi8K
KyNkZWZpbmUgVV9QRl9BTkRST0lEIDQwNTAKKy8qKiAiQ2xhc3NpYyIgTWFjIE9TICgxOTg0LTIw
MDEpIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0NMQVNTSUNfTUFDT1MgODAwMAorLyoqIHov
T1MgaXMgdGhlIHN1Y2Nlc3NvciB0byBPUy8zOTAgd2hpY2ggd2FzIHRoZSBzdWNjZXNzb3IgdG8g
TVZTLiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9PUzM5MCA5MDAwCisvKiogIklCTSBpIiBp
cyB0aGUgY3VycmVudCBuYW1lIG9mIHdoYXQgdXNlZCB0byBiZSBpNS9PUyBhbmQgZWFybGllciBP
Uy80MDAuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX09TNDAwIDk0MDAKKworI2lmZGVmIFVf
UExBVEZPUk0KKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZp
bmVkKF9fTUlOR1czMl9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfTUlOR1cKKyNlbGlm
IGRlZmluZWQoX19DWUdXSU5fXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0NZR1dJTgor
I2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoV0lONjQp
IHx8IGRlZmluZWQoX1dJTjY0KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfV0lORE9XUwor
I2VsaWYgZGVmaW5lZChfX0FORFJPSURfXykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0FO
RFJPSUQKKyAgICAvKiBBbmRyb2lkIHdjaGFyX3Qgc3VwcG9ydCBkZXBlbmRzIG9uIHRoZSBBUEkg
bGV2ZWwuICovCisjICAgaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KKyNlbGlmIGRlZmlu
ZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fbGludXgpCisjICAg
ZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9MSU5VWAorI2VsaWYgZGVmaW5lZChfX0FQUExFX18pICYm
IGRlZmluZWQoX19NQUNIX18pCisjICAgaW5jbHVkZSA8VGFyZ2V0Q29uZGl0aW9uYWxzLmg+Cisj
ICAgaWYgZGVmaW5lZChUQVJHRVRfT1NfSVBIT05FKSAmJiBUQVJHRVRfT1NfSVBIT05FICAvKiB2
YXJpYW50IG9mIFRBUkdFVF9PU19NQUMgKi8KKyMgICAgICAgZGVmaW5lIFVfUExBVEZPUk0gVV9Q
Rl9JUEhPTkUKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfREFSV0lO
CisjICAgZW5kaWYKKyNlbGlmIGRlZmluZWQoQlNEKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8
fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBk
ZWZpbmVkKF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fTWlyQlNEX18pCisjICAgZGVmaW5lIFVf
UExBVEZPUk0gVV9QRl9CU0QKKyNlbGlmIGRlZmluZWQoc3VuKSB8fCBkZWZpbmVkKF9fc3VuKQor
ICAgIC8qIENoZWNrIGRlZmluZWQoX19TVlI0KSB8fCBkZWZpbmVkKF9fc3ZyNF9fKSB0byBkaXN0
aW5ndWlzaCBTb2xhcmlzIGZyb20gU3VuT1M/ICovCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9Q
Rl9TT0xBUklTCisjICAgaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICAgICAgLyogU29sYXJpcy9H
Q0MgbmVlZHMgdGhpcyBoZWFkZXIgZmlsZSB0byBnZXQgdGhlIHByb3BlciBlbmRpYW5uZXNzLiBO
b3JtYWxseSwgdGhpcworICAgICAgICAgKiBoZWFkZXIgZmlsZSBpcyBpbmNsdWRlZCB3aXRoIHN0
ZGRlZi5oIGJ1dCBvbiBTb2xhaXJzL0dDQywgdGhlIEdDQyB2ZXJzaW9uIG9mIHN0ZGRlZi5oCisg
ICAgICAgICAqICBpcyBpbmNsdWRlZCB3aGljaCBkb2VzIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVy
IGZpbGUuCisgICAgICAgICAqLworIyAgICAgICBpbmNsdWRlIDxzeXMvaXNhX2RlZnMuaD4KKyMg
ICBlbmRpZgorI2VsaWYgZGVmaW5lZChfQUlYKSB8fCBkZWZpbmVkKF9fVE9TX0FJWF9fKQorIyAg
IGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQUlYCisjZWxpZiBkZWZpbmVkKF9ocHV4KSB8fCBkZWZp
bmVkKGhwdXgpIHx8IGRlZmluZWQoX19ocHV4KQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZf
SFBVWAorI2VsaWYgZGVmaW5lZChzZ2kpIHx8IGRlZmluZWQoX19zZ2kpCisjICAgZGVmaW5lIFVf
UExBVEZPUk0gVV9QRl9JUklYCisjZWxpZiBkZWZpbmVkKG1hY2ludG9zaCkKKyMgICBkZWZpbmUg
VV9QTEFURk9STSBVX1BGX0NMQVNTSUNfTUFDT1MKKyNlbGlmIGRlZmluZWQoX19RTlhfXykgfHwg
ZGVmaW5lZChfX1FOWE5UT19fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfUU5YCisjZWxp
ZiBkZWZpbmVkKF9fVE9TX01WU19fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfT1MzOTAK
KyNlbGlmIGRlZmluZWQoX19PUzQwMF9fKSB8fCBkZWZpbmVkKF9fVE9TX09TNDAwX18pCisjICAg
ZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9PUzQwMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9S
TSBVX1BGX1VOS05PV04KICNlbmRpZgogCiAvKioKLSAqIERlZmluZSB3aGF0IHN1cHBvcnQgZm9y
IEMrKyBzdHJlYW1zIGlzIGF2YWlsYWJsZS4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBp
cyBzZXQgdG8gMTk5NzExLCB0aGVuICZsdDtpb3N0cmVhbSZndDsgaXMgYXZhaWxhYmxlCi0gKiAo
MTk5NzcxMSBpcyB0aGUgZGF0ZSB0aGUgSVNPL0lFQyBDKysgRkRJUyB3YXMgcHVibGlzaGVkKSwg
YW5kIHRoZW4KLSAqIG9uZSBzaG91bGQgcXVhbGlmeSBzdHJlYW1zIHVzaW5nIHRoZSBzdGQgbmFt
ZXNwYWNlIGluIElDVSBoZWFkZXIKLSAqIGZpbGVzLgotICogICAgIElmIFVfSU9TVFJFQU1fU09V
UkNFIGlzIHNldCB0byAxOTg1MDYsIHRoZW4gJmx0O2lvc3RyZWFtLmgmZ3Q7IGlzCi0gKiBhdmFp
bGFibGUgaW5zdGVhZCAoMTk4NTA2IGlzIHRoZSBkYXRlIHdoZW4gU3Ryb3VzdHJ1cCBwdWJsaXNo
ZWQKLSAqICJBbiBFeHRlbnNpYmxlIEkvTyBGYWNpbGl0eSBmb3IgQysrIiBhdCB0aGUgc3VtbWVy
IFVTRU5JWCBjb25mZXJlbmNlKS4KLSAqICAgICBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyAwLCB0
aGVuIEMrKyBzdHJlYW1zIGFyZSBub3QgYXZhaWxhYmxlIGFuZAotICogc3VwcG9ydCBmb3IgdGhl
bSB3aWxsIGJlIHNpbGVudGx5IHN1cHByZXNzZWQgaW4gSUNVLgotICoKKyAqIFxkZWYgQ1lHV0lO
TVNWQworICogRGVmaW5lZCBpZiB0aGlzIGlzIFdpbmRvd3Mgd2l0aCBDeWd3aW4sIGJ1dCB1c2lu
ZyBNU1ZDIHJhdGhlciB0aGFuIGdjYy4KKyAqIE90aGVyd2lzZSB1bmRlZmluZWQuCisgKiBAaW50
ZXJuYWwKICAqLwotCi0jaWZuZGVmIFVfSU9TVFJFQU1fU09VUkNFCi0jZGVmaW5lIFVfSU9TVFJF
QU1fU09VUkNFIDE5OTcxMQorLyogQ29tbWVudGVkIG91dCBiZWNhdXNlIHRoaXMgaXMgYWxyZWFk
eSBzZXQgaW4gbWgtY3lnd2luLW1zdmMKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfQ1lHV0lOICYm
IGRlZmluZWQoX01TQ19WRVIpCisjICAgZGVmaW5lIENZR1dJTk1TVkMKICNlbmRpZgorKi8KIAog
LyoqCi0gKiBcZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0gKiBEZWZpbmUgd2hldGhlciB0aGUgc3Rh
bmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBpcyBhdmFpbGFibGUuCi0gKiBG
b3IgcGxhdGZvcm1zIHRoYXQgZG8gbm90IHVzZSBwbGF0Zm9ybS5oIGFuZCBkbyBub3QgZGVmaW5l
IHRoaXMgY29uc3RhbnQKLSAqIGluIHRoZWlyIHBsYXRmb3JtLXNwZWNpZmljIGhlYWRlcnMsIHN0
ZF9zdHJpbmcuaCBkZWZhdWx0cwotICogVV9IQVZFX1NURF9TVFJJTkcgdG8gMS4KKyAqIFxkZWYg
VV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBs
YXRmb3JtIHVzZXMgb25seSB0aGUgV2luMzIgQVBJLgorICogU2V0IHRvIDEgZm9yIFdpbmRvd3Mv
TVNWQyBhbmQgTWluR1cgYnV0IG5vdCBDeWd3aW4uCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRl
ZiBVX0hBVkVfU1REX1NUUklORwotI2RlZmluZSBVX0hBVkVfU1REX1NUUklORyAxCisjaWZkZWYg
VV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgKFVfUEZfV0lORE9XUyA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZP
Uk0gPD0gVV9QRl9NSU5HVykgfHwgZGVmaW5lZChDWUdXSU5NU1ZDKQorIyAgIGRlZmluZSBVX1BM
QVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkgMQorI2Vsc2UKKyAgICAvKiBDeWd3aW4gaW1wbGVt
ZW50cyBQT1NJWC4gKi8KKyMgICBkZWZpbmUgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJ
IDAKICNlbmRpZgogCi0vKiogQHsgRGV0ZXJtaW5lcyB3aGV0aGVyIHNwZWNpZmljIHR5cGVzIGFy
ZSBhdmFpbGFibGUgKi8KLSNpZm5kZWYgVV9IQVZFX0lOVDhfVAotI2RlZmluZSBVX0hBVkVfSU5U
OF9UIDEKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKyAqIERlZmluZXMg
d2hldGhlciB0aGUgV2luMzIgQVBJIGlzIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0uCisgKiBT
ZXQgdG8gMSBmb3IgV2luZG93cy9NU1ZDLCBNaW5HVyBhbmQgQ3lnd2luLgorICogQGludGVybmFs
CisgKi8KKyNpZmRlZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BGX1dJTkRPV1MgPD0gVV9QTEFURk9STSAmJiBV
X1BMQVRGT1JNIDw9IFVfUEZfQ1lHV0lOCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSEFTX1dJTjMy
X0FQSSAxCisjZWxzZQorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgMAogI2Vu
ZGlmCiAKLSNpZm5kZWYgVV9IQVZFX1VJTlQ4X1QKLSNkZWZpbmUgVV9IQVZFX1VJTlQ4X1QgMAor
LyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWAorICogRGVmaW5lcyB3aGV0
aGVyIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRzIChtb3N0IG9mKSB0aGUgUE9TSVggQVBJLgorICog
U2V0IHRvIDEgZm9yIEN5Z3dpbiBhbmQgbW9zdCBvdGhlciBwbGF0Zm9ybXMuCisgKiBAaW50ZXJu
YWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWAorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMy
X0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUworIyAgIGRlZmluZSBVX1BM
QVRGT1JNX0lNUExFTUVOVFNfUE9TSVggMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9QTEFURk9STV9J
TVBMRU1FTlRTX1BPU0lYIDEKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9JTlQxNl9UCi0jZGVm
aW5lIFVfSEFWRV9JTlQxNl9UIDEKKy8qKgorICogXGRlZiBVX1BMQVRGT1JNX0lTX0xJTlVYX0JB
U0VECisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGlzIExpbnV4IG9yIG9uZSBvZiBp
dHMgZGVyaXZhdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSVNf
TElOVVhfQkFTRUQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBV
X1BGX0xJTlVYIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX0FORFJPSUQKKyMg
ICBkZWZpbmUgVV9QTEFURk9STV9JU19MSU5VWF9CQVNFRCAxCisjZWxzZQorIyAgIGRlZmluZSBV
X1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VEIDAKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9VSU5U
MTZfVAotI2RlZmluZSBVX0hBVkVfVUlOVDE2X1QgMAorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1f
SVNfREFSV0lOX0JBU0VECisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGlzIERhcndp
biBvciBvbmUgb2YgaXRzIGRlcml2YXRpdmVzLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBV
X1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmIFVfUEZfREFSV0lOIDw9IFVfUExBVEZPUk0gJiYgVV9QTEFURk9STSA8PSBV
X1BGX0lQSE9ORQorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRCAxCisjZWxz
ZQorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRCAwCiAjZW5kaWYKIAotI2lm
bmRlZiBVX0hBVkVfSU5UMzJfVAotI2RlZmluZSBVX0hBVkVfSU5UMzJfVCAxCisvKioKKyAqIFxk
ZWYgVV9IQVZFX1NURElOVF9ICisgKiBEZWZpbmVzIHdoZXRoZXIgc3RkaW50LmggaXMgYXZhaWxh
YmxlLiBJdCBpcyBhIEM5OSBzdGFuZGFyZCBoZWFkZXIuCisgKiBXZSB1c2VkIHRvIGluY2x1ZGUg
aW50dHlwZXMuaCB3aGljaCBpbmNsdWRlcyBzdGRpbnQuaCBidXQgd2UgdXN1YWxseSBkbyBub3Qg
bmVlZAorICogdGhlIGFkZGl0aW9uYWwgZGVmaW5pdGlvbnMgZnJvbSBpbnR0eXBlcy5oLgorICog
QGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfU1RESU5UX0gKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkK
KyMgICBpZiBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgVV9QTEFURk9STSA9PSBVX1BGX01JTkdX
IHx8IChkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUj49MTYwMCkKKyAgICAgICAgLyogV2lu
ZG93cyBWaXN1YWwgU3R1ZGlvIDkgYW5kIGJlbG93IGRvIG5vdCBoYXZlIHN0ZGludC5oICYgaW50
dHlwZXMuaCwgYnV0IFZTIDIwMTAgYWRkcyB0aGVtLiAqLworIyAgICAgICBkZWZpbmUgVV9IQVZF
X1NURElOVF9IIDEKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMAor
IyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfU09MQVJJUworICAgIC8qIFNvbGFy
aXMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZF
X1NURElOVF9IIDAKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BSVggJiYgIWRlZmluZWQoX0FJ
WDUxKSAmJiBkZWZpbmVkKF9QT1dFUikKKyAgICAvKiBQUEMgQUlYIDw9IDQuMyBoYXMgaW50dHlw
ZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMAor
I2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZFX1NURElOVF9IIDEKICNlbmRpZgogCi0jaWZuZGVmIFVf
SEFWRV9VSU5UMzJfVAotI2RlZmluZSBVX0hBVkVfVUlOVDMyX1QgMAorLyoqCisgKiBcZGVmIFVf
SEFWRV9JTlRUWVBFU19ICisgKiBEZWZpbmVzIHdoZXRoZXIgaW50dHlwZXMuaCBpcyBhdmFpbGFi
bGUuIEl0IGlzIGEgQzk5IHN0YW5kYXJkIGhlYWRlci4KKyAqIFdlIGluY2x1ZGUgaW50dHlwZXMu
aCB3aGVyZSBpdCBpcyBhdmFpbGFibGUgYnV0IHN0ZGludC5oIGlzIG5vdC4KKyAqIEBpbnRlcm5h
bAorICovCisjaWZkZWYgVV9IQVZFX0lOVFRZUEVTX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmlu
ZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfU09MQVJJUworICAgIC8qIFNv
bGFyaXMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9I
QVZFX0lOVFRZUEVTX0ggMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWCAmJiAhZGVmaW5l
ZChfQUlYNTEpICYmIGRlZmluZWQoX1BPV0VSKQorICAgIC8qIFBQQyBBSVggPD0gNC4zIGhhcyBp
bnR0eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9JTlRUWVBF
U19IIDEKKyNlbHNlCisgICAgLyogTW9zdCBwbGF0Zm9ybXMgaGF2ZSBib3RoIGludHR5cGVzLmgg
YW5kIHN0ZGludC5oLCBvciBuZWl0aGVyLiAqLworIyAgIGRlZmluZSBVX0hBVkVfSU5UVFlQRVNf
SCBVX0hBVkVfU1RESU5UX0gKICNlbmRpZgogCi0jaWZuZGVmIFVfSEFWRV9JTlQ2NF9UCi0jZGVm
aW5lIFVfSEFWRV9JTlQ2NF9UIDEKKy8qKgorICogXGRlZiBVX0lPU1RSRUFNX1NPVVJDRQorICog
RGVmaW5lcyB3aGF0IHN1cHBvcnQgZm9yIEMrKyBzdHJlYW1zIGlzIGF2YWlsYWJsZS4KKyAqCisg
KiBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk5NzExLCB0aGVuICZsdDtpb3N0cmVh
bSZndDsgaXMgYXZhaWxhYmxlCisgKiAodGhlIElTTy9JRUMgQysrIEZESVMgd2FzIHB1Ymxpc2hl
ZCBpbiBOb3ZlbWJlciAxOTk3KSwgYW5kIHRoZW4KKyAqIG9uZSBzaG91bGQgcXVhbGlmeSBzdHJl
YW1zIHVzaW5nIHRoZSBzdGQgbmFtZXNwYWNlIGluIElDVSBoZWFkZXIKKyAqIGZpbGVzLgorICog
U3RhcnRpbmcgd2l0aCBJQ1UgNDksIHRoaXMgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIHZlcnNpb24u
CisgKgorICogSWYgVV9JT1NUUkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5ODUwNiwgdGhlbiAmbHQ7
aW9zdHJlYW0uaCZndDsgaXMKKyAqIGF2YWlsYWJsZSBpbnN0ZWFkIChpbiBKdW5lIDE5ODUgU3Ry
b3VzdHJ1cCBwdWJsaXNoZWQKKyAqICJBbiBFeHRlbnNpYmxlIEkvTyBGYWNpbGl0eSBmb3IgQysr
IiBhdCB0aGUgc3VtbWVyIFVTRU5JWCBjb25mZXJlbmNlKS4KKyAqIFN0YXJ0aW5nIHdpdGggSUNV
IDQ5LCB0aGlzIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZCBhbnkgbW9yZS4KKyAqCisgKiBJZiBV
X0lPU1RSRUFNX1NPVVJDRSBpcyAwIChvciBhbnkgdmFsdWUgbGVzcyB0aGFuIDE5OTcxMSksCisg
KiB0aGVuIEMrKyBzdHJlYW1zIGFyZSBub3QgYXZhaWxhYmxlIGFuZAorICogc3VwcG9ydCBmb3Ig
dGhlbSB3aWxsIGJlIHNpbGVudGx5IHN1cHByZXNzZWQgaW4gSUNVLgorICoKKyAqIEBpbnRlcm5h
bAorICovCisjaWZuZGVmIFVfSU9TVFJFQU1fU09VUkNFCisjZGVmaW5lIFVfSU9TVFJFQU1fU09V
UkNFIDE5OTcxMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX1VJTlQ2NF9UCi0jZGVmaW5lIFVf
SEFWRV9VSU5UNjRfVCAwCisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9TVFJJTkcKKyAqIERlZmlu
ZXMgd2hldGhlciB0aGUgc3RhbmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7IGhlYWRlciBp
cyBhdmFpbGFibGUuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9TVERfU1RSSU5H
CisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2Vsc2UKKyMgICBkZWZpbmUg
VV9IQVZFX1NURF9TVFJJTkcgMQogI2VuZGlmCiAKLS8qKiBAfSAqLwotCiAvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCiAvKiogQHsgQ29tcGlsZXIgYW5kIGVudmlyb25tZW50IGZlYXR1cmVzICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CiAKLS8qIERlZmluZSB3aGV0aGVyIG5hbWVzcGFjZSBpcyBzdXBwb3J0ZWQgKi8KLSNpZm5kZWYg
VV9IQVZFX05BTUVTUEFDRQotI2RlZmluZSBVX0hBVkVfTkFNRVNQQUNFIDEKLSNlbmRpZgotCi0v
KiBEZXRlcm1pbmVzIHRoZSBlbmRpYW5uZXNzIG9mIHRoZSBwbGF0Zm9ybQotICAgSXQncyBkb25l
IHRoaXMgd2F5IGluIGNhc2UgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyBhcmUgYmVpbmcgYnVpbHQg
YXQgb25jZS4KLSAgIEZvciBleGFtcGxlLCBEYXJ3aW4gc3VwcG9ydHMgZmF0IGJpbmFyaWVzLCB3
aGljaCBjYW4gYmUgYm90aCBQUEMgYW5kIHg4NiBiYXNlZC4gKi8KLSNpZiBkZWZpbmVkKEJZVEVf
T1JERVIpICYmIGRlZmluZWQoQklHX0VORElBTikKLSNkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChC
WVRFX09SREVSID09IEJJR19FTkRJQU4pCisvKioKKyAqIFxkZWYgVV9HQ0NfTUFKT1JfTUlOT1IK
KyAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb21waWxlciBpcyBnY2MgKHRlc3QgZm9yICE9IDAp
LAorICogYW5kIGlmIHNvLCBjb250YWlucyBpdHMgbWFqb3IgKHRpbWVzIDEwMCkgYW5kIG1pbm9y
IHZlcnNpb24gbnVtYmVycy4KKyAqIElmIHRoZSBjb21waWxlciBpcyBub3QgZ2NjLCB0aGVuIFVf
R0NDX01BSk9SX01JTk9SID09IDAuCisgKgorICogRm9yIGV4YW1wbGUsIGZvciB0ZXN0aW5nIGZv
ciB3aGV0aGVyIHdlIGhhdmUgZ2NjLCBhbmQgd2hldGhlciBpdCdzIDQuNiBvciBoaWdoZXIsCisg
KiB1c2UgIiNpZiBVX0dDQ19NQUpPUl9NSU5PUiA+PSA0MDYiLgorICogQGludGVybmFsCisgKi8K
KyNpZmRlZiBfX0dOVUNfXworIyAgIGRlZmluZSBVX0dDQ19NQUpPUl9NSU5PUiAoX19HTlVDX18g
KiAxMDAgKyBfX0dOVUNfTUlOT1JfXykKICNlbHNlCi0jZGVmaW5lIFVfSVNfQklHX0VORElBTiAx
CisjICAgZGVmaW5lIFVfR0NDX01BSk9SX01JTk9SIDAKICNlbmRpZgogCi0vKiAxIG9yIDAgdG8g
ZW5hYmxlIG9yIGRpc2FibGUgdGhyZWFkcy4gIElmIHVuZGVmaW5lZCwgZGVmYXVsdCBpczogZW5h
YmxlIHRocmVhZHMuICovCi0jaWZuZGVmIElDVV9VU0VfVEhSRUFEUyAKLSNkZWZpbmUgSUNVX1VT
RV9USFJFQURTIDEKLSNlbmRpZgotCi0vKiBPbiBzdHJvbmcgbWVtb3J5IG1vZGVsIENQVXMgKGUu
Zy4geDg2IENQVXMpLCB3ZSB1c2UgYSBzYWZlICYgcXVpY2sgZG91YmxlIGNoZWNrIGxvY2suICov
Ci0jaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo
X194ODZfNjRfXykpCi0jZGVmaW5lIFVNVFhfU1RST05HX01FTU9SWV9NT0RFTCAxCi0jZW5kaWYK
LQotI2lmbmRlZiBVX0RFQlVHCi0jZGVmaW5lIFVfREVCVUcgMAotI2VuZGlmCi0KLSNpZm5kZWYg
VV9SRUxFQVNFCi0jZGVmaW5lIFVfUkVMRUFTRSAxCisvKioKKyAqIFxkZWYgVV9JU19CSUdfRU5E
SUFOCisgKiBEZXRlcm1pbmVzIHRoZSBlbmRpYW5uZXNzIG9mIHRoZSBwbGF0Zm9ybS4KKyAqIEBp
bnRlcm5hbAorICovCisjaWZkZWYgVV9JU19CSUdfRU5ESUFOCisgICAgLyogVXNlIHRoZSBwcmVk
ZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChCWVRFX09SREVSKSAmJiBkZWZpbmVkKEJJ
R19FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAoQllURV9PUkRFUiA9PSBCSUdf
RU5ESUFOKQorI2VsaWYgZGVmaW5lZChfX0JZVEVfT1JERVJfXykgJiYgZGVmaW5lZChfX09SREVS
X0JJR19FTkRJQU5fXykKKyAgICAvKiBnY2MgKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFO
IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0JJR19FTkRJQU5fXykKKyNlbGlmIGRlZmluZWQo
X19CSUdfRU5ESUFOX18pIHx8IGRlZmluZWQoX0JJR19FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNf
QklHX0VORElBTiAxCisjZWxpZiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKSB8fCBkZWZpbmVk
KF9MSVRUTEVfRU5ESUFOKQorIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMAorI2VsaWYgVV9Q
TEFURk9STSA9PSBVX1BGX09TMzkwIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCB8fCBkZWZp
bmVkKF9fczM5MF9fKSB8fCBkZWZpbmVkKF9fczM5MHhfXykKKyAgICAvKiBUaGVzZSBwbGF0Zm9y
bXMgZG8gbm90IGFwcGVhciB0byBwcmVkZWZpbmUgYW55IGVuZGlhbm5lc3MgbWFjcm9zLiAqLwor
IyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChfUEFfUklTQzFfMCkg
fHwgZGVmaW5lZChfUEFfUklTQzFfMSkgfHwgZGVmaW5lZChfUEFfUklTQzJfMCkKKyAgICAvKiBI
UFBBIGRvIG5vdCBhcHBlYXIgdG8gcHJlZGVmaW5lIGFueSBlbmRpYW5uZXNzIG1hY3Jvcy4gKi8K
KyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoc3BhcmMpIHx8IGRl
ZmluZWQoX19zcGFyYykgfHwgZGVmaW5lZChfX3NwYXJjX18pCisgICAgLyogU29tZSBzcGFyYyBi
YXNlZCBzeXN0ZW1zIChlLmcuIExpbnV4KSBkbyBub3QgcHJlZGVmaW5lIGFueSBlbmRpYW5uZXNz
IG1hY3Jvcy4gKi8KKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbHNlCisjICAgZGVm
aW5lIFVfSVNfQklHX0VORElBTiAwCiAjZW5kaWYKIAotLyogRGV0ZXJtaW5lIHdoZXRoZXIgdG8g
ZGlzYWJsZSByZW5hbWluZyBvciBub3QuIFRoaXMgb3ZlcnJpZGVzIHRoZQotICAgc2V0dGluZyBp
biB1bWFjaGluZS5oIHdoaWNoIGlzIGZvciBhbGwgcGxhdGZvcm1zLiAqLwotI2lmbmRlZiBVX0RJ
U0FCTEVfUkVOQU1JTkcKLSNkZWZpbmUgVV9ESVNBQkxFX1JFTkFNSU5HIDEKKy8qKgorICogXGRl
ZiBVX0hBVkVfUExBQ0VNRU5UX05FVworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIG92ZXJyaWRl
IHBsYWNlbWVudCBuZXcgYW5kIGRlbGV0ZSBmb3IgU1RMLgorICogQHN0YWJsZSBJQ1UgMi42Cisg
Ki8KKyNpZmRlZiBVX0hBVkVfUExBQ0VNRU5UX05FVworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5l
ZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgIGRlZmluZSBVX0hB
VkVfUExBQ0VNRU5UX05FVyAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfUExBQ0VNRU5UX05F
VyAxCiAjZW5kaWYKIAotLyogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gb3ZlcnJpZGUgbmV3IGFuZCBk
ZWxldGUuICovCi0jaWZuZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04KLSNkZWZpbmUgVV9P
VkVSUklERV9DWFhfQUxMT0NBVElPTiAxCi0jZW5kaWYKLS8qIERldGVybWluZSB3aGV0aGVyIHRv
IG92ZXJyaWRlIHBsYWNlbWVudCBuZXcgYW5kIGRlbGV0ZSBmb3IgU1RMLiAqLwotI2lmbmRlZiBV
X0hBVkVfUExBQ0VNRU5UX05FVwotI2RlZmluZSBVX0hBVkVfUExBQ0VNRU5UX05FVyAxCisvKioK
KyAqIFxkZWYgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAKKyAqIERlZmluZSB0aGlzIHRvIGRl
ZmluZSB0aGUgTUZDIGRlYnVnIHZlcnNpb24gb2YgdGhlIG9wZXJhdG9yIG5ldy4KKyAqCisgKiBA
c3RhYmxlIElDVSAzLjQKKyAqLworI2lmZGVmIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcKKyAg
ICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVS
KQorIyAgIGRlZmluZSBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIDEKKyNlbHNlCisjICAgZGVm
aW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAogI2VuZGlmCiAKLS8qIERldGVybWluZSB3
aGV0aGVyIHRvIGVuYWJsZSB0cmFjaW5nLiAqLwotI2lmbmRlZiBVX0VOQUJMRV9UUkFDSU5HCi0j
ZGVmaW5lIFVfRU5BQkxFX1RSQUNJTkcgMQorLyogQ29tcGF0aWJpbGl0eSB3aXRoIG5vbiBjbGFu
ZyBjb21waWxlcnMgKi8KKyNpZm5kZWYgX19oYXNfYXR0cmlidXRlCisjICAgIGRlZmluZSBfX2hh
c19hdHRyaWJ1dGUoeCkgMAogI2VuZGlmCiAKIC8qKgotICogV2hldGhlciB0byBlbmFibGUgRHlu
YW1pYyBsb2FkaW5nIGluIElDVQorICogXGRlZiBVX01BTExPQ19BVFRSCisgKiBBdHRyaWJ1dGUg
dG8gbWFyayBmdW5jdGlvbnMgYXMgbWFsbG9jLWxpa2UKICAqIEBpbnRlcm5hbAogICovCi0jaWZu
ZGVmIFVfRU5BQkxFX0RZTE9BRAotI2RlZmluZSBVX0VOQUJMRV9EWUxPQUQgMQorI2lmIGRlZmlu
ZWQoX19HTlVDX18pICYmIF9fR05VQ19fPj0zCisjICAgIGRlZmluZSBVX01BTExPQ19BVFRSIF9f
YXR0cmlidXRlX18gKChfX21hbGxvY19fKSkKKyNlbHNlCisjICAgIGRlZmluZSBVX01BTExPQ19B
VFRSCiAjZW5kaWYKIAogLyoqCi0gKiBXaGV0aGVyIHRvIHRlc3QgRHluYW1pYyBsb2FkaW5nIGFz
IGFuIE9TIGNhcGFiaWx0eQorICogXGRlZiBVX0FMTE9DX1NJWkVfQVRUUgorICogQXR0cmlidXRl
IHRvIHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGFsbG9jYXRlZCBidWZmZXIgZm9yIG1hbGxvYy1s
aWtlIGZ1bmN0aW9ucwogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9DSEVDS19EWUxPQUQK
LSNkZWZpbmUgVV9DSEVDS19EWUxPQUQgMQotI2VuZGlmCi0KLQotLyoqIERvIHdlIGFsbG93IElD
VSB1c2VycyB0byB1c2UgdGhlIGRyYWZ0IEFQSXMgYnkgZGVmYXVsdD8gKi8KLSNpZm5kZWYgVV9E
RUZBVUxUX1NIT1dfRFJBRlQKLSNkZWZpbmUgVV9ERUZBVUxUX1NIT1dfRFJBRlQgMQorI2lmIChk
ZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPiA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9f
R05VQ19NSU5PUl9fID49IDMpKSkgfHwgX19oYXNfYXR0cmlidXRlKGFsbG9jX3NpemUpCisjICAg
ZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSKFgpIF9fYXR0cmlidXRlX18gKChhbGxvY19zaXplKFgp
KSkKKyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIyKFgsWSkgX19hdHRyaWJ1dGVfXyAoKGFs
bG9jX3NpemUoWCxZKSkpCisjZWxzZQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUihYKQor
IyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUjIoWCxZKQogI2VuZGlmCiAKIC8qKiBAfSAqLwog
CiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgQ2hhcmFjdGVyIGRhdGEgdHlwZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoq
IEB7IENoYXJhY3RlciBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgKChkZWZp
bmVkKE9TMzkwKSAmJiAoIWRlZmluZWQoX19DSEFSU0VUX0xJQikgfHwgIV9fQ0hBUlNFVF9MSUIp
KSkgfHwgZGVmaW5lZChPUzQwMCkKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSAxCisvKioK
KyAqIFVfQ0hBUlNFVF9GQU1JTFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0
Zm9ybSBpcyBhbiBBU0NJSSBiYXNlZCBwbGF0Zm9ybS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICov
CisjZGVmaW5lIFVfQVNDSUlfRkFNSUxZIDAKKworLyoqCisgKiBVX0NIQVJTRVRfRkFNSUxZIGlz
IGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZvcm0gaXMgYW4gRUJDRElDIGJhc2Vk
IHBsYXRmb3JtLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyNkZWZpbmUgVV9FQkNESUNfRkFN
SUxZIDEKKworLyoqCisgKiBcZGVmIFVfQ0hBUlNFVF9GQU1JTFkKKyAqCisgKiA8cD5UaGVzZSBk
ZWZpbml0aW9ucyBhbGxvdyB0byBzcGVjaWZ5IHRoZSBlbmNvZGluZyBvZiB0ZXh0CisgKiBpbiB0
aGUgY2hhciBkYXRhIHR5cGUgYXMgZGVmaW5lZCBieSB0aGUgcGxhdGZvcm0gYW5kIHRoZSBjb21w
aWxlci4KKyAqIEl0IGlzIGVub3VnaCB0byBkZXRlcm1pbmUgdGhlIGNvZGUgcG9pbnQgdmFsdWVz
IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIsCisgKiB3aGljaCBhcmUgdGhlIG9uZXMgc2hhcmVk
IGJ5IGFsbCBlbmNvZGluZ3MgdGhhdCBhcmUgaW4gdXNlCisgKiBvbiBhIGdpdmVuIHBsYXRmb3Jt
LjwvcD4KKyAqCisgKiA8cD5UaG9zZSAiaW52YXJpYW50IGNoYXJhY3RlcnMiIHNob3VsZCBiZSBh
bGwgdGhlIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlCisgKiBsYXRpbiBsZXR0ZXJzLCB0aGUgZGln
aXRzLCB0aGUgc3BhY2UsIGFuZCAiYmFzaWMgcHVuY3R1YXRpb24iLgorICogQWxzbywgJ1xcbics
ICdcXHInLCAnXFx0JyBzaG91bGQgYmUgYXZhaWxhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgbGlz
dCBvZiAiaW52YXJpYW50IGNoYXJhY3RlcnMiIGlzOjxicj4KKyAqIFxjb2RlCisgKiAgICBBLVog
IGEteiAgMC05ICBTUEFDRSAgIiAgJSAgJmFtcDsgICcgICggICkgICogICsgICwgIC0gIC4gIC8g
IDogIDsgIDwgID0gID4gID8gIF8KKyAqIFxlbmRjb2RlCisgKiA8YnI+CisgKiAoNTIgbGV0dGVy
cyArIDEwIG51bWJlcnMgKyAyMCBwdW5jL3N5bS9zcGFjZSA9IDgyIHRvdGFsKTwvcD4KKyAqCisg
KiA8cD5UaGlzIG1hdGNoZXMgdGhlIElCTSBTeW50YWN0aWMgQ2hhcmFjdGVyIFNldCAoQ1MgNjQw
KS48L3A+CisgKgorICogPHA+SW4gb3RoZXIgd29yZHMsIGFsbCB0aGUgZ3JhcGhpYyBjaGFyYWN0
ZXJzIGluIDctYml0IEFTQ0lJIHNob3VsZAorICogYmUgc2FmZWx5IGFjY2Vzc2libGUgZXhjZXB0
IHRoZSBmb2xsb3dpbmc6PC9wPgorICoKKyAqIFxjb2RlCisgKiAgICAnXCcgPGJhY2tzbGFzaD4K
KyAqICAgICdbJyA8bGVmdCBicmFja2V0PgorICogICAgJ10nIDxyaWdodCBicmFja2V0PgorICog
ICAgJ3snIDxsZWZ0IGJyYWNlPgorICogICAgJ30nIDxyaWdodCBicmFjZT4KKyAqICAgICdeJyA8
Y2lyY3VtZmxleD4KKyAqICAgICd+JyA8dGlsZGU+CisgKiAgICAnIScgPGV4Y2xhbWF0aW9uIG1h
cms+CisgKiAgICAnIycgPG51bWJlciBzaWduPgorICogICAgJ3wnIDx2ZXJ0aWNhbCBsaW5lPgor
ICogICAgJyQnIDxkb2xsYXIgc2lnbj4KKyAqICAgICdAJyA8Y29tbWVyY2lhbCBhdD4KKyAqICAg
ICdgJyA8Z3JhdmUgYWNjZW50PgorICogXGVuZGNvZGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICov
CisjaWZkZWYgVV9DSEFSU0VUX0ZBTUlMWQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiAoIWRlZmluZWQoX19DSEFS
U0VUX0xJQikgfHwgIV9fQ0hBUlNFVF9MSUIpCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkg
VV9FQkNESUNfRkFNSUxZCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAgJiYgIWRlZmlu
ZWQoX19VVEYzMl9fKQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfRUJDRElDX0ZBTUlM
WQorI2Vsc2UKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSBVX0FTQ0lJX0ZBTUlMWQorI2Vu
ZGlmCisKKy8qKgorICogXGRlZiBVX0NIQVJTRVRfSVNfVVRGOAorICoKKyAqIEhhcmRjb2RlIHRo
ZSBkZWZhdWx0IGNoYXJzZXQgdG8gVVRGLTguCisgKgorICogSWYgdGhpcyBpcyBzZXQgdG8gMSwg
dGhlbgorICogLSBJQ1Ugd2lsbCBhc3N1bWUgdGhhdCBhbGwgbm9uLWludmFyaWFudCBjaGFyKiwg
U3RyaW5nUGllY2UsIHN0ZDo6c3RyaW5nIGV0Yy4KKyAqICAgY29udGFpbiBVVEYtOCB0ZXh0LCBy
ZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHN5c3RlbSBBUEkgdXNlcworICogLSBzb21lIElDVSBjb2Rl
IHdpbGwgdXNlIGZhc3QgZnVuY3Rpb25zIGxpa2UgdV9zdHJGcm9tVVRGOCgpCisgKiAgIHJhdGhl
ciB0aGFuIHRoZSBtb3JlIGdlbmVyYWwgYW5kIG1vcmUgaGVhdnktd2VpZ2h0IGNvbnZlcnNpb24g
QVBJICh1Y252LmgpCisgKiAtIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBhbHdheXMgcmV0dXJucyAi
VVRGLTgiCisgKiAtIHVjbnZfc2V0RGVmYXVsdE5hbWUoKSBpcyBkaXNhYmxlZCBhbmQgd2lsbCBu
b3QgY2hhbmdlIHRoZSBkZWZhdWx0IGNoYXJzZXQKKyAqIC0gc3RhdGljIGJ1aWxkcyBvZiBJQ1Ug
YXJlIHNtYWxsZXIKKyAqIC0gbW9yZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSB3aXRoIHRo
ZSBVQ09ORklHX05PX0NPTlZFUlNJT04gYnVpbGQtdGltZQorICogICBjb25maWd1cmF0aW9uIG9w
dGlvbiAoc2VlIHVuaWNvZGUvdWNvbmZpZy5oKQorICogLSB0aGUgVUNPTkZJR19OT19DT05WRVJT
SU9OIGJ1aWxkIG9wdGlvbiBpbiB1Y29uZmlnLmggaXMgbW9yZSB1c2FibGUKKyAqCisgKiBAc3Rh
YmxlIElDVSA0LjIKKyAqIEBzZWUgVUNPTkZJR19OT19DT05WRVJTSU9OCisgKi8KKyNpZmRlZiBV
X0NIQVJTRVRfSVNfVVRGOAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lEIHx8IFVfUExBVEZPUk1fSVNfREFSV0lOX0JB
U0VECisjICAgZGVmaW5lIFVfQ0hBUlNFVF9JU19VVEY4IDEKKyNlbHNlCisjICAgZGVmaW5lIFVf
Q0hBUlNFVF9JU19VVEY4IDAKICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0qLwotLyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IHdjaGFyIHN1cHBvcnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBJbmZvcm1hdGlvbiBh
Ym91dCB3Y2hhciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAotI2lmbmRlZiBVX0hBVkVfV0NIQVJfSAotI2Rl
ZmluZSBVX0hBVkVfV0NIQVJfSCAgICAgIDEKKy8qKgorICogXGRlZiBVX0hBVkVfV0NIQVJfSAor
ICogSW5kaWNhdGVzIHdoZXRoZXIgPHdjaGFyLmg+IGlzIGF2YWlsYWJsZSAoMSkgb3Igbm90ICgw
KS4gU2V0IHRvIDEgYnkgZGVmYXVsdC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2lm
ZGVmIFVfSEFWRV9XQ0hBUl9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgJiYgX19BTkRST0lEX0FQSV9fIDwgOQor
ICAgIC8qCisgICAgICogQW5kcm9pZCBiZWZvcmUgR2luZ2VyYnJlYWQgKEFuZHJvaWQgMi4zLCBB
UEkgbGV2ZWwgOSkgZGlkIG5vdCBzdXBwb3J0IHdjaGFyX3QuCisgICAgICogVGhlIHR5cGUgYW5k
IGhlYWRlciBleGlzdGVkLCBidXQgdGhlIGxpYnJhcnkgZnVuY3Rpb25zIGRpZCBub3Qgd29yayBh
cyBleHBlY3RlZC4KKyAgICAgKiBUaGUgc2l6ZSBvZiB3Y2hhcl90IHdhcyAxIGJ1dCBMInh5eiIg
c3RyaW5nIGxpdGVyYWxzIGhhZCAzMi1iaXQgdW5pdHMgYW55d2F5LgorICAgICAqLworIyAgIGRl
ZmluZSBVX0hBVkVfV0NIQVJfSCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfV0NIQVJfSCAx
CiAjZW5kaWYKIAotI2lmbmRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0jZGVmaW5lIFVfU0laRU9GX1dD
SEFSX1QgICAgNAorLyoqCisgKiBcZGVmIFVfU0laRU9GX1dDSEFSX1QKKyAqIFVfU0laRU9GX1dD
SEFSX1Q9PXNpemVvZih3Y2hhcl90KQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisjaWZk
ZWYgVV9TSVpFT0ZfV0NIQVJfVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIChVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCAmJiBfX0FORFJPSURfQVBJX18gPCA5
KSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNPUworICAgIC8qCisgICAgICogQ2xh
c3NpYyBNYWMgT1MgYW5kIE1hYyBPUyBYIGJlZm9yZSAxMC4zIChQYW50aGVyKSBkaWQgbm90IHN1
cHBvcnQgd2NoYXJfdCBvciB3c3RyaW5nLgorICAgICAqIE5ld2VyIE1hYyBPUyBYIGhhcyBzaXpl
IDQuCisgICAgICovCisjICAgZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMQorI2VsaWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DWUdXSU4KKyMgICBkZWZp
bmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYCisgICAg
LyoKKyAgICAgKiBBSVggNi4xIGluZm9ybWF0aW9uLCBzZWN0aW9uICJXaWRlIGNoYXJhY3RlciBk
YXRhIHJlcHJlc2VudGF0aW9uIjoKKyAgICAgKiAiLi4uIHRoZSB3Y2hhcl90IGRhdGF0eXBlIGlz
IDMyLWJpdCBpbiB0aGUgNjQtYml0IGVudmlyb25tZW50IGFuZAorICAgICAqIDE2LWJpdCBpbiB0
aGUgMzItYml0IGVudmlyb25tZW50LiIKKyAgICAgKiBhbmQKKyAgICAgKiAiQWxsIGxvY2FsZXMg
dXNlIFVuaWNvZGUgZm9yIHRoZWlyIHdpZGUgY2hhcmFjdGVyIGNvZGUgdmFsdWVzIChwcm9jZXNz
IGNvZGUpLAorICAgICAqIGV4Y2VwdCB0aGUgSUJNLWV1Y1RXIGNvZGVzZXQuIgorICAgICAqLwor
IyAgIGlmZGVmIF9fNjRCSVRfXworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0Cisj
ICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAorICAgIC8qCisgICAgICogei9PUyBWMVIxMSBp
bmZvcm1hdGlvbiBjZW50ZXIsIHNlY3Rpb24gIkxQNjQgfCBJTFAzMiI6CisgICAgICogIkluIDMx
LWJpdCBtb2RlLCB0aGUgc2l6ZSBvZiBsb25nIGFuZCBwb2ludGVycyBpcyA0IGJ5dGVzIGFuZCB0
aGUgc2l6ZSBvZiB3Y2hhcl90IGlzIDIgYnl0ZXMuCisgICAgICogVW5kZXIgTFA2NCwgdGhlIHNp
emUgb2YgbG9uZyBhbmQgcG9pbnRlciBpcyA4IGJ5dGVzIGFuZCB0aGUgc2l6ZSBvZiB3Y2hhcl90
IGlzIDQgYnl0ZXMuIgorICAgICAqLworIyAgIGlmZGVmIF9MUDY0CisjICAgICAgIGRlZmluZSBV
X1NJWkVPRl9XQ0hBUl9UIDQKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hB
Ul9UIDIKKyMgICBlbmRpZgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisjICAgaWYg
ZGVmaW5lZChfX1VURjMyX18pCisgICAgICAgIC8qCisgICAgICAgICAqIExPQ0FMRVRZUEUoKkxP
Q0FMRVVURikgaXMgc3BlY2lmaWVkLgorICAgICAgICAgKiBXaWRlLWNoYXJhY3RlciBzdHJpbmdz
IGFyZSBpbiBVVEYtMzIsCisgICAgICAgICAqIG5hcnJvdy1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUg
aW4gVVRGLTguCisgICAgICAgICAqLworIyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCA0
CisjICAgZWxpZiBkZWZpbmVkKF9fVUNTMl9fKQorICAgICAgICAvKgorICAgICAgICAgKiBMT0NB
TEVUWVBFKCpMT0NBTEVVQ1MyKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFj
dGVyIHN0cmluZ3MgYXJlIGluIFVDUy0yLAorICAgICAgICAgKiBuYXJyb3ctY2hhcmFjdGVyIHN0
cmluZ3MgYXJlIGluIEVCQ0RJQy4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVP
Rl9XQ0hBUl9UIDIKKyNlbHNlCisgICAgICAgIC8qCisgICAgICAgICAqIExPQ0FMRVRZUEUoKkNM
RCkgb3IgTE9DQUxFVFlQRSgqTE9DQUxFKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUt
Y2hhcmFjdGVyIHN0cmluZ3MgYXJlIGluIDE2LWJpdCBFQkNESUMsCisgICAgICAgICAqIG5hcnJv
dy1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gRUJDRElDLgorICAgICAgICAgKi8KKyMgICAgICAg
ZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxzZQorIyAgIGRlZmluZSBV
X1NJWkVPRl9XQ0hBUl9UIDQKICNlbmRpZgogCiAjaWZuZGVmIFVfSEFWRV9XQ1NDUFkKLSNkZWZp
bmUgVV9IQVZFX1dDU0NQWSAgICAgICAxCisjZGVmaW5lIFVfSEFWRV9XQ1NDUFkgVV9IQVZFX1dD
SEFSX0gKICNlbmRpZgogCiAvKiogQH0gKi8KIAogLyoqCisgKiBcZGVmIFVfSEFWRV9DSEFSMTZf
VAorICogRGVmaW5lcyB3aGV0aGVyIHRoZSBjaGFyMTZfdCB0eXBlIGlzIGF2YWlsYWJsZSBmb3Ig
VVRGLTE2CisgKiBhbmQgdSJhYmMiIFVURi0xNiBzdHJpbmcgbGl0ZXJhbHMgYXJlIHN1cHBvcnRl
ZC4KKyAqIFRoaXMgaXMgYSBuZXcgc3RhbmRhcmQgdHlwZSBhbmQgc3RhbmRhcmQgc3RyaW5nIGxp
dGVyYWwgc3ludGF4IGluIEMrKzB4CisgKiBidXQgaGFzIGJlZW4gYXZhaWxhYmxlIGluIHNvbWUg
Y29tcGlsZXJzIGJlZm9yZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0NIQVIx
Nl9UCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2Vsc2UKKyAgICAvKgor
ICAgICAqIE5vdGVzOgorICAgICAqIFZpc3VhbCBTdHVkaW8gMTAgKF9NU0NfVkVSPj0xNjAwKSBk
ZWZpbmVzIGNoYXIxNl90IGJ1dAorICAgICAqIGRvZXMgbm90IHN1cHBvcnQgdSJhYmMiIHN0cmlu
ZyBsaXRlcmFscy4KKyAgICAgKiBnY2MgNC40IGRlZmluZXMgdGhlIF9fQ0hBUjE2X1RZUEVfXyBt
YWNybyB0byBhIHVzYWJsZSB0eXBlIGJ1dAorICAgICAqIGRvZXMgbm90IHN1cHBvcnQgdSJhYmMi
IHN0cmluZyBsaXRlcmFscy4KKyAgICAgKiBDKysxMSBhbmQgQzExIHJlcXVpcmUgc3VwcG9ydCBm
b3IgVVRGLTE2IGxpdGVyYWxzCisgICAgICovCisjICAgaWYgKGRlZmluZWQoX19jcGx1c3BsdXMp
ICYmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wpIHx8IChkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18p
ICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTCkKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9D
SEFSMTZfVCAxCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgVV9IQVZFX0NIQVIxNl9UIDAKKyMg
ICBlbmRpZgorI2VuZGlmCisKKy8qKgogICogQHsKICAqIFxkZWYgVV9ERUNMQVJFX1VURjE2Ci0g
KiBEbyBub3QgdXNlIHRoaXMgbWFjcm8uIFVzZSB0aGUgVU5JQ09ERV9TVFJJTkcgb3IgVV9TVFJJ
TkdfREVDTCBtYWNyb3MKLSAqIGluc3RlYWQuCi0gKiBAaW50ZXJuYWwKLSAqCi0gKiBcZGVmIFVf
R05VQ19VVEYxNl9TVFJJTkcKKyAqIERvIG5vdCB1c2UgdGhpcyBtYWNybyBiZWNhdXNlIGl0IGlz
IG5vdCBkZWZpbmVkIG9uIGFsbCBwbGF0Zm9ybXMuCisgKiBVc2UgdGhlIFVOSUNPREVfU1RSSU5H
IG9yIFVfU1RSSU5HX0RFQ0wgbWFjcm9zIGluc3RlYWQuCiAgKiBAaW50ZXJuYWwKICAqLwotI2lm
bmRlZiBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jZGVmaW5lIFVfR05VQ19VVEYxNl9TVFJJTkcgMAot
I2VuZGlmCi0jaWYgMSB8fCBkZWZpbmVkKFVfQ0hFQ0tfVVRGMTZfU1RSSU5HKQotI2lmIChkZWZp
bmVkKF9feGxDX18pICYmIGRlZmluZWQoX19JQk1fVVRGX0xJVEVSQUwpICYmIFVfU0laRU9GX1dD
SEFSX1QgIT0gMikgXAorI2lmZGVmIFVfREVDTEFSRV9VVEYxNgorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfSEFWRV9DSEFSMTZfVCBcCisgICAgfHwgKGRlZmlu
ZWQoX194bENfXykgJiYgZGVmaW5lZChfX0lCTV9VVEZfTElURVJBTCkgJiYgVV9TSVpFT0ZfV0NI
QVJfVCAhPSAyKSBcCiAgICAgfHwgKGRlZmluZWQoX19IUF9hQ0MpICYmIF9fSFBfYUNDID49IDAz
NTAwMCkgXAotICAgIHx8IChkZWZpbmVkKF9fSFBfY2MpICYmIF9fSFBfY2MgPj0gMTExMTA2KSBc
Ci0gICAgfHwgVV9HTlVDX1VURjE2X1NUUklORwotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3Ry
aW5nKSB1ICMjIHN0cmluZwotI2VsaWYgKGRlZmluZWQoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJP
X0NDID49IDB4NTUwKQotLyogfHwgKGRlZmluZWQoX19TVU5QUk9fQykgJiYgX19TVU5QUk9fQyA+
PSAweDU4MCkgKi8KLS8qIFN1bidzIEMgY29tcGlsZXIgaGFzIGlzc3VlcyB3aXRoIHRoaXMgbm90
YXRpb24sIGFuZCBpdCdzIHVucmVsaWFibGUuICovCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihz
dHJpbmcpIFUgIyMgc3RyaW5nCisgICAgfHwgKGRlZmluZWQoX19IUF9jYykgJiYgX19IUF9jYyA+
PSAxMTExMDYpCisjICAgZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIHUgIyMgc3RyaW5n
CiAjZWxpZiBVX1NJWkVPRl9XQ0hBUl9UID09IDIgXAotICAgICYmIChVX0NIQVJTRVRfRkFNSUxZ
ID09IDAgfHwgKChkZWZpbmVkKE9TMzkwKSB8fCBkZWZpbmVkKE9TNDAwKSkgJiYgZGVmaW5lZChf
X1VDUzJfXykpKQotI2RlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBMICMjIHN0cmluZwot
I2VuZGlmCi0jZW5kaWYKLQotLyoqIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8q
KiBAeyBJbmZvcm1hdGlvbiBhYm91dCBQT1NJWCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KLSNpZm5k
ZWYgVV9IQVZFX05MX0xBTkdJTkZPX0NPREVTRVQKLSNkZWZpbmUgVV9IQVZFX05MX0xBTkdJTkZP
X0NPREVTRVQgIDEKLSNlbmRpZgotCi0jaWZuZGVmIFVfTkxfTEFOR0lORk9fQ09ERVNFVAotI2Rl
ZmluZSBVX05MX0xBTkdJTkZPX0NPREVTRVQgICAgICAgQ09ERVNFVAotI2VuZGlmCi0KLSNpZiAx
Ci0jZGVmaW5lIFVfVFpTRVQgICAgICAgICB0enNldAotI2VuZGlmCi0jaWYgMAotI2RlZmluZSBV
X1RJTUVaT05FICAgICAgdGltZXpvbmUKLSNlbmRpZgotI2lmIDEKLSNkZWZpbmUgVV9UWk5BTUUg
ICAgICAgIHR6bmFtZQorICAgICYmIChVX0NIQVJTRVRfRkFNSUxZID09IDAgfHwgKFVfUEZfT1Mz
OTAgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfT1M0MDAgJiYgZGVmaW5lZChf
X1VDUzJfXykpKQorIyAgIGRlZmluZSBVX0RFQ0xBUkVfVVRGMTYoc3RyaW5nKSBMICMjIHN0cmlu
ZworI2Vsc2UKKyAgICAvKiBMZWF2ZSBVX0RFQ0xBUkVfVVRGMTYgdW5kZWZpbmVkLiBTZWUgdW5p
c3RyLmguICovCiAjZW5kaWYKIAotI2RlZmluZSBVX0hBVkVfTU1BUCAgICAgMQotI2RlZmluZSBV
X0hBVkVfUE9QRU4gICAgMQotCiAvKiogQH0gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwot
LyoqIEB7IFN5bWJvbCBpbXBvcnQtZXhwb3J0IGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKiBAeyBTeW1ib2wgaW1wb3J0LWV4cG9ydCBj
b250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KIAotI2lmIDEKLSNkZWZpbmUgVV9FWFBPUlQgX19hdHRyaWJ1dGVf
XygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyNpZmRlZiBVX0VYUE9SVAorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5U
QVRJT04pCisjICAgZGVmaW5lIFVfRVhQT1JUCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorIyAg
IGRlZmluZSBVX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQog
I2VsaWYgKGRlZmluZWQoX19TVU5QUk9fQ0MpICYmIF9fU1VOUFJPX0NDID49IDB4NTUwKSBcCiAg
ICB8fCAoZGVmaW5lZChfX1NVTlBST19DKSAmJiBfX1NVTlBST19DID49IDB4NTUwKSAKLSNkZWZp
bmUgVV9FWFBPUlQgX19nbG9iYWwKKyMgICBkZWZpbmUgVV9FWFBPUlQgX19nbG9iYWwKIC8qI2Vs
aWYgZGVmaW5lZChfX0hQX2FDQykgfHwgZGVmaW5lZChfX0hQX2NjKQotI2RlZmluZSBVX0VYUE9S
VCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkqLworIyAgIGRlZmluZSBVX0VYUE9SVCBfX2RlY2xzcGVj
KGRsbGV4cG9ydCkqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9FWFBP
UlQgX19kZWNsc3BlYyhkbGxleHBvcnQpCiAjZWxzZQotI2RlZmluZSBVX0VYUE9SVAorIyAgIGRl
ZmluZSBVX0VYUE9SVAogI2VuZGlmCiAKIC8qIFVfQ0FMTENPTlYgaXMgcmVsZWF0ZWQgdG8gVV9F
WFBPUlQyICovCi0jZGVmaW5lIFVfRVhQT1JUMgotCi0vKiBjeWd3aW4gbmVlZHMgdG8gZXhwb3J0
L2ltcG9ydCBkYXRhICovCi0jaWYgZGVmaW5lZChVX0NZR1dJTikgJiYgIWRlZmluZWQoX19HTlVD
X18pCi0jZGVmaW5lIFVfSU1QT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2lmZGVmIFVfRVhQ
T1JUMgorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQo
X01TQ19WRVIpCisjICAgZGVmaW5lIFVfRVhQT1JUMiBfX2NkZWNsCiAjZWxzZQotI2RlZmluZSBV
X0lNUE9SVCAKLSNlbmRpZgotCi0vKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0v
KiogQHsgQ29kZSBhbGlnbm1lbnQgYW5kIEMgZnVuY3Rpb24gaW5saW5pbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0jaWZu
ZGVmIFVfSU5MSU5FCi0jICAgaWZkZWYgX19jcGx1c3BsdXMKLSMgICAgICAgZGVmaW5lIFVfSU5M
SU5FIGlubGluZQotIyAgIGVsc2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FIF9faW5saW5lX18K
LSMgICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgVV9BTElHTl9DT0RFCi0jZGVmaW5lIFVfQUxJ
R05fQ09ERShuKSAKKyMgICBkZWZpbmUgVV9FWFBPUlQyCiAjZW5kaWYKIAotLyoqIEB9ICovCi0K
LS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBHQ0MgYnVpbHQgaW4gZnVuY3Rpb25zIGZv
ciBhdG9taWMgbWVtb3J5IG9wZXJhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCi0KLS8qKgotICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKLSAq
IEBpbnRlcm5hbAotICovCi0jaWZuZGVmIFVfSEFWRV9HQ0NfQVRPTUlDUwotI2RlZmluZSBVX0hB
VkVfR0NDX0FUT01JQ1MgMQorI2lmZGVmIFVfSU1QT1JUCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyAgICAvKiBXaW5kb3dzIG5l
ZWRzIHRvIGV4cG9ydC9pbXBvcnQgZGF0YS4gKi8KKyMgICBkZWZpbmUgVV9JTVBPUlQgX19kZWNs
c3BlYyhkbGxpbXBvcnQpCisjZWxzZQorIyAgIGRlZmluZSBVX0lNUE9SVCAKICNlbmRpZgogCi0v
KiogQH0gKi8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IFByb2dyYW1zIHVzZWQg
YnkgSUNVIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQogLyoqCi0gKiBcZGVmIFVfTUFLRQotICog
V2hhdCBwcm9ncmFtIHRvIGV4ZWN1dGUgdG8gcnVuICdtYWtlJworICogXGRlZiBVX0NBTExDT05W
CisgKiBTaW1pbGFyIHRvIFVfQ0RFQ0xfQkVHSU4vVV9DREVDTF9FTkQsIHRoaXMgcXVhbGlmaWVy
IGlzIG5lY2Vzc2FyeQorICogaW4gY2FsbGJhY2sgZnVuY3Rpb24gdHlwZWRlZnMgdG8gbWFrZSBz
dXJlIHRoYXQgdGhlIGNhbGxpbmcgY29udmVudGlvbgorICogaXMgY29tcGF0aWJsZS4KKyAqCisg
KiBUaGlzIGlzIG9ubHkgdXNlZCBmb3Igbm9uLUlDVS1BUEkgZnVuY3Rpb25zLgorICogV2hlbiBh
IGZ1bmN0aW9uIGlzIGEgcHVibGljIElDVSBBUEksCisgKiB5b3UgbXVzdCB1c2UgdGhlIFVfQ0FQ
SSBhbmQgVV9FWFBPUlQyIHF1YWxpZmllcnMuCisgKiBAc3RhYmxlIElDVSAyLjAKICAqLwotI2lm
bmRlZiBVX01BS0UKLSNkZWZpbmUgVV9NQUtFICAiL3Vzci9iaW4vZ251bWFrZSIKKyNpZiBVX1BM
QVRGT1JNID09IFVfUEZfT1MzOTAgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyMgICAgZGVmaW5l
IFVfQ0FMTENPTlYgX19jZGVjbAorI2Vsc2UKKyMgICAgZGVmaW5lIFVfQ0FMTENPTlYgVV9FWFBP
UlQyCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KLSNlbmRpZiAvKiBDWUdXSU5NU1ZDICovCi0KLS8q
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KLS8qIEN1c3RvbSBpY3UgZW50cnkgcG9pbnQgcmVuYW1pbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCi0KLS8qKgotICogRGVmaW5lIHRoZSBsaWJyYXJ5IHN1ZmZpeCB3
aXRoIEMgc3ludGF4LgotICogQGludGVybmFsCi0gKi8KLSMgZGVmaW5lIFVfTElCX1NVRkZJWF9D
X05BTUUgCi0vKioKLSAqIERlZmluZSB0aGUgbGlicmFyeSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0
aCBDIHN5bnRheAotICogQGludGVybmFsCi0gKi8KLSMgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05B
TUVfU1RSSU5HICIiCi0vKioKLSAqIDEgaWYgYSBjdXN0b20gbGlicmFyeSBzdWZmaXggaXMgc2V0
Ci0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9IQVZFX0xJQl9TVUZGSVggMAotCi0jaWYg
VV9IQVZFX0xJQl9TVUZGSVgKLSMgaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQotLyog
UmVuYW1pbmcgcGF0dGVybjogICAgdV9zdHJjcHlfNDFfc3VmZml4ICovCi0jICBkZWZpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIHggIyMgXyAjIyA0NiAjIyAKLSMgIGRlZmluZSBV
X0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikgaWN1ZHQjIyMjbWFqb3IjI21p
bm9yIyNfZGF0Ci0KLSMgZW5kaWYKLSNlbmRpZgorLyogQH0gKi8KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wdHlwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2ljdS91bmljb2RlL3B0eXBlcy5oCmluZGV4IDFmMzRkMmY4NGU0MTBlZjc5MzBhNjZlZjZlNzRj
YjY0YmNiYzU4MWQuLmI3ZjcxMTYwMzI4MmMzNmM3MzIyMjBlN2E5NmM5MTMzZGQwMjUwZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3B0eXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3B0eXBlcy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTIsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTcs
NDAgKzE3LDY5IEBACiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICovCiAKKy8qKgorICogXGZpbGUK
KyAqIFxicmllZiBDIEFQSTogRGVmaW5pdGlvbnMgb2YgaW50ZWdlciB0eXBlcyBvZiB2YXJpb3Vz
IHdpZHRocworICovCisKICNpZm5kZWYgX1BUWVBFU19ICiAjZGVmaW5lIF9QVFlQRVNfSAogCi0j
aW5jbHVkZSA8c3lzL3R5cGVzLmg+CisvKioKKyAqIFxkZWYgX19TVERDX0xJTUlUX01BQ1JPUwor
ICogQWNjb3JkaW5nIHRvIHRoZSBMaW51eCBzdGRpbnQuaCwgdGhlIElTTyBDOTkgc3RhbmRhcmQg
c3BlY2lmaWVzIHRoYXQgaW4gQysrIGltcGxlbWVudGF0aW9ucworICogbWFjcm9zIGxpa2UgSU5U
MzJfTUlOIGFuZCBVSU5UUFRSX01BWCBzaG91bGQgb25seSBiZSBkZWZpbmVkIGlmIGV4cGxpY2l0
bHkgcmVxdWVzdGVkLgorICogV2UgbmVlZCB0byBkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUyBi
ZWZvcmUgaW5jbHVkaW5nIHN0ZGludC5oIGluIEMrKyBjb2RlCisgKiB0aGF0IHVzZXMgc3VjaCBs
aW1pdCBtYWNyb3MuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBfX1NURENfTElNSVRfTUFD
Uk9TCisjZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKKyNlbmRpZgorCisvKiBOVUxMLCBzaXpl
X3QsIHdjaGFyX3QgKi8KKyNpbmNsdWRlIDxzdGRkZWYuaD4KIAorLyoKKyAqIElmIGFsbCBjb21w
aWxlcnMgcHJvdmlkZWQgYWxsIG9mIHRoZSBDOTkgaGVhZGVycyBhbmQgdHlwZXMsCisgKiB3ZSB3
b3VsZCBqdXN0IHVuY29uZGl0aW9uYWxseSAjaW5jbHVkZSA8c3RkaW50Lmg+IGhlcmUKKyAqIGFu
ZCBub3QgbmVlZCBhbnkgb2YgdGhlIHN0dWZmIGFmdGVyIGluY2x1ZGluZyBwbGF0Zm9ybS5oLgor
ICovCisKKy8qIEZpbmQgb3V0IGlmIHdlIGhhdmUgc3RkaW50LmggZXRjLiAqLwogI2luY2x1ZGUg
InVuaWNvZGUvcGxhdGZvcm0uaCIKIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogR2VuZXJp
YyBkYXRhIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0vKiBJZiB5b3VyIHBsYXRm
b3JtIGRvZXMgbm90IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIsIHlvdSBtYXkKLSAgIG5l
ZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgYmVsb3cuICovCi0jaWYgVV9IQVZFX0lOVFRZUEVTX0gK
Ky8qIElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIs
IHlvdSBtYXkKKyAgIG5lZWQgdG8gZWRpdCB0aGUgdHlwZWRlZnMgaW4gdGhlICNlbHNlIHNlY3Rp
b24gYmVsb3cuCisgICBVc2UgI2lmLi4uI2Vsc2UuLi4jZW5kaWYgd2l0aCBwcmVkZWZpbmVkIGNv
bXBpbGVyIG1hY3JvcyBpZiBwb3NzaWJsZS4gKi8KKyNpZiBVX0hBVkVfU1RESU5UX0gKKworLyoK
KyAqIFdlIG1vc3RseSBuZWVkIDxzdGRpbnQuaD4gKHdoaWNoIGRlZmluZXMgdGhlIHN0YW5kYXJk
IGludGVnZXIgdHlwZXMpIGJ1dCBub3QgPGludHR5cGVzLmg+LgorICogPGludHR5cGVzLmg+IGlu
Y2x1ZGVzIDxzdGRpbnQuaD4gYW5kIGFkZHMgdGhlIHByaW50Zi9zY2FuZiBoZWxwZXJzIFBSSWQz
MiwgU0NOeDE2IGV0Yy4KKyAqIHdoaWNoIHdlIGFsbW9zdCBuZXZlciB1c2UsIHBsdXMgc3R1ZmYg
bGlrZSBpbWF4YWJzKCkgd2hpY2ggd2UgbmV2ZXIgdXNlLgorICovCisjaW5jbHVkZSA8c3RkaW50
Lmg+CiAKLS8qIGF1dG9jb25mIDIuMTMgc29tZXRpbWVzIGNhbid0IHByb3Blcmx5IGZpbmQgdGhl
IGRhdGEgdHlwZXMgaW4gPGludHR5cGVzLmg+ICovCi0vKiBvcy8zOTAgbmVlZHMgPGludHR5cGVz
Lmg+LCBidXQgaXQgZG9lc24ndCBoYXZlIGludDhfdCwgYW5kIGl0IHNvbWV0aW1lcyAqLwotLyog
ZG9lc24ndCBoYXZlIHVpbnQ4X3QgZGVwZW5kaW5nIG9uIHRoZSBPUyB2ZXJzaW9uLiAqLwotLyog
U28gd2UgaGF2ZSB0aGlzIHdvcmsgYXJvdW5kLiAqLwotI2lmZGVmIE9TMzkwCisjaWYgVV9QTEFU
Rk9STSA9PSBVX1BGX09TMzkwCiAvKiBUaGUgZmVhdHVyZXMgaGVhZGVyIGlzIG5lZWRlZCB0byBn
ZXQgKHUpaW50NjRfdCBzb21ldGltZXMuICovCiAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSNpZiAh
IFVfSEFWRV9JTlQ4X1QKLXR5cGVkZWYgc2lnbmVkIGNoYXIgaW50OF90OwotI2VuZGlmCisvKiB6
L09TIGhhcyA8c3RkaW50Lmg+LCBidXQgc29tZSB2ZXJzaW9ucyBhcmUgbWlzc2luZyB1aW50OF90
IChBUEFSIFBLNjIyNDgpLiAqLwogI2lmICFkZWZpbmVkKF9fdWludDhfdCkKICNkZWZpbmUgX191
aW50OF90IDEKIHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90OwogI2VuZGlmCi0jZW5kaWYg
LyogT1MzOTAgKi8KKyNlbmRpZiAvKiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAgKi8KKworI2Vs
aWYgVV9IQVZFX0lOVFRZUEVTX0gKIAotI2luY2x1ZGUgPGludHR5cGVzLmg+CisjICAgaW5jbHVk
ZSA8aW50dHlwZXMuaD4KIAotI2Vsc2UgLyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNlbHNlIC8q
IG5laXRoZXIgVV9IQVZFX1NURElOVF9IIG5vciBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjaWYg
ISBVX0hBVkVfSU5UOF9UCiB0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsKQEAgLTc3LDE2ICsx
MDYsMjEgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CiAjZW5kaWYKIAogI2lmICEg
VV9IQVZFX0lOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVkZWYgc2lnbmVkIF9faW50
NjQgaW50NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludDY0X3Q7
Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBlICovCisjZW5kaWYKICNlbmRp
ZgogCiAjaWYgISBVX0hBVkVfVUlOVDY0X1QKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHR5cGVkZWYg
dW5zaWduZWQgX19pbnQ2NCB1aW50NjRfdDsKKyNlbHNlCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgdWludDY0X3Q7Ci0vKiBlbHNlIHdlIG1heSBub3QgaGF2ZSBhIDY0LWJpdCB0eXBl
ICovCisjZW5kaWYKICNlbmRpZgogCi0jZW5kaWYgLyogVV9IQVZFX0lOVFRZUEVTX0ggKi8KKyNl
bmRpZiAvKiBVX0hBVkVfU1RESU5UX0ggLyBVX0hBVkVfSU5UVFlQRVNfSCAqLwogCiAjZW5kaWYg
LyogX1BUWVBFU19IICovCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2Rl
L3B1dGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9wdXRpbC5oCmluZGV4IDcxZDVk
MjY0MzA1MjliNjBiN2VhNGM0ZDgzMGRiYzg2MTc1Mjk0NjUuLjZmYzdlOWNkNWE2MmE1NTk0NmFl
NmQ3Nzg3YmYyNWQyMzYxMTBhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmlj
b2RlL3B1dGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcHV0aWwuaApAQCAt
MSw3ICsxLDcgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQg
KEMpIDE5OTctMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHly
aWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKQEAgLTMwLDEyICszMCw2IEBACiAgICogXGJyaWVmIEMgQVBJOiBQbGF0
Zm9ybSBVdGlsaXRpZXMKICAgKi8KIAotLyoqIERlZmluZSB0aGlzIHRvIDEgaWYgeW91ciBwbGF0
Zm9ybSBzdXBwb3J0cyBJRUVFIDc1NCBmbG9hdGluZyBwb2ludCwKLSAgIHRvIDAgaWYgaXQgZG9l
cyBub3QuICovCi0jaWZuZGVmIElFRUVfNzU0Ci0jICAgZGVmaW5lIElFRUVfNzU0IDEKLSNlbmRp
ZgotCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFBsYXRmb3JtIHV0aWxpdGllcyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSovCkBAIC05Myw0MyArODcsMjAgQEAgVV9TVEFCTEUgY29uc3QgY2hhciog
VV9FWFBPUlQyIHVfZ2V0RGF0YURpcmVjdG9yeSh2b2lkKTsKICAqLwogVV9TVEFCTEUgdm9pZCBV
X0VYUE9SVDIgdV9zZXREYXRhRGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpcmVjdG9yeSk7CiAKLSNp
ZiAhVV9DSEFSU0VUX0lTX1VURjgKLS8qKgotICogUGxlYXNlIHVzZSB1Y252X2dldERlZmF1bHRO
YW1lKCkgaW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3IgdGhpcyBw
bGF0Zm9ybSBhbmQgbG9jYWxlLgotICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUo
KSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCi0gKiBwbGF0Zm9ybSBkb2N1bWVu
dGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCi0gKiBA
cmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIAotICogQGludGVy
bmFsCi0gKi8KLVVfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dldERlZmF1
bHRDb2RlcGFnZSh2b2lkKTsKLSNlbmRpZgotCi0vKioKLSAqIFBsZWFzZSB1c2UgdWxvY19nZXRE
ZWZhdWx0KCkgaW5zdGVhZC4KLSAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5n
IGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCi0gKiAgICAgemVybyBpZiBvbmUgY2Fubm90IGJl
IGZvdW5kLiAKLSAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxlKCkgb24gVW5peCBw
bGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQotICogcGxhdGZvcm0gZG9jdW1lbnRhdGlvbiBvbiBz
ZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgotICogQHJldHVybiB0aGUg
ZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCi0gKiBAaW50ZXJuYWwKLSAqLwotVV9JTlRFUk5BTCBj
b25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlEKHZvaWQpOwotCiAv
KioKICAqIEB7CiAgKiBGaWxlc3lzdGVtIGZpbGUgYW5kIHBhdGggc2VwYXJhdG9yIGNoYXJhY3Rl
cnMuCiAgKiBFeGFtcGxlOiAnLycgYW5kICc6JyBvbiBVbml4LCAnXFwnIGFuZCAnOycgb24gV2lu
ZG93cy4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCi0jaWZkZWYgWFBfTUFDCisjaWYgVV9QTEFU
Rk9STSA9PSBVX1BGX0NMQVNTSUNfTUFDT1MKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9DSEFSICc6
JwogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NFUF9DSEFSICc6JwogIyAgIGRlZmluZSBVX1BBVEhf
U0VQX0NIQVIgJzsnCiAjICAgZGVmaW5lIFVfRklMRV9TRVBfU1RSSU5HICI6IgogIyAgIGRlZmlu
ZSBVX0ZJTEVfQUxUX1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5lIFVfUEFUSF9TRVBfU1RSSU5H
ICI7IgotI2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChPUzIpCisjZWxpZiBVX1BMQVRG
T1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKICMgICBkZWZpbmUgVV9GSUxFX1NFUF9DSEFSICdcXCcK
ICMgICBkZWZpbmUgVV9GSUxFX0FMVF9TRVBfQ0hBUiAnLycKICMgICBkZWZpbmUgVV9QQVRIX1NF
UF9DSEFSICc7JwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvcmVwLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaAppbmRleCAzZmFiNmZhMTI3MmUwZjYw
YTQxNzM5YzgzMWIzZjA2Zjk3YzZhMGUwLi40YzdlYWUxNDAxZGNkNmM5NTQyMTU3ZGJmYTBmMmZl
M2VhOGRjNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9yZXAuaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyogQ29weXJpZ2h0IChDKSAx
OTk5LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5k
CiAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KQEAgLTIwNSw3ICsyMDUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4KICAgICAgKiBAc3RhYmxlIElD
VSAyLjQKICAgICAgKi8KLSAgICBSZXBsYWNlYWJsZSgpOworICAgIGlubGluZSBSZXBsYWNlYWJs
ZSgpOwogCiAgICAgLyoKICAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yIG5vdCBkZWNsYXJlZC4g
VGhlIGNvbXBpbGVyIHdpbGwgcHJvdmlkZSBvbmUKQEAgLTIzNyw2ICsyMzcsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBVQ2hhcjMyIGdldENoYXIzMkF0KGludDMyX3Qgb2Zmc2V0KSBjb25z
dCA9IDA7CiB9OwogCitpbmxpbmUgUmVwbGFjZWFibGU6OlJlcGxhY2VhYmxlKCkge30KKwogaW5s
aW5lIGludDMyX3QKIFJlcGxhY2VhYmxlOjpsZW5ndGgoKSBjb25zdCB7CiAgICAgcmV0dXJuIGdl
dExlbmd0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RkX3N0
cmluZy5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RkX3N0cmluZy5oCmluZGV4IGRk
NDNiNzQ1YTAwYzUzNDVhZTk4MTEyNmZiMjkyMzY4ZWU3MmJlMzUuLjY3YjFkNmM1YWFkMTBhMGI2
MjgzN2MyNTI1NDc3NjM1YjZiMDFmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3N0ZF9zdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9zdGRf
c3RyaW5nLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI1LDU0ICsyNSwxMCBAQAogCiAjaW5j
bHVkZSAidW5pY29kZS91dHlwZXMuaCIKIAotLyoqCi0gKiBcZGVmIFVfSEFWRV9TVERfU1RSSU5H
Ci0gKiBEZWZpbmUgd2hldGhlciB0aGUgc3RhbmRhcmQgQysrIChTVEwpICZsdDtzdHJpbmcmZ3Q7
IGhlYWRlciBpcyBhdmFpbGFibGUuCi0gKiBAaW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0hBVkVf
U1REX1NUUklORwotI2RlZmluZSBVX0hBVkVfU1REX1NUUklORyAxCi0jZW5kaWYKLQogI2lmIFVf
SEFWRV9TVERfU1RSSU5HCiAKICNpbmNsdWRlIDxzdHJpbmc+CiAKLS8qKgotICogXGRlZiBVX1NU
RF9OUwotICogRGVmaW5lIHRoZSBuYW1lc3BhY2UgdG8gdXNlIGZvciBzdGFuZGFyZCBDKysgKFNU
TCkgY2xhc3Nlcy4KLSAqIEVpdGhlciBzdGQgb3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQuMgot
ICovCi0KLS8qKgotICogXGRlZiBVX1NURF9OU1EKLSAqIERlZmluZSB0aGUgbmFtZXNwYWNlIHF1
YWxpZmllciB0byB1c2UgZm9yIHN0YW5kYXJkIEMrKyAoU1RMKSBjbGFzc2VzLgotICogRWl0aGVy
IHN0ZDo6IG9yIGVtcHR5LgotICogRm9yIGV4YW1wbGUsCi0gKiAgIFVfU1REX05TUSBzdHJpbmcg
U3RyaW5nRnJvbVVuaWNvZGVTdHJpbmcoY29uc3QgVW5pY29kZVN0cmluZyAmdW5pc3RyKTsKLSAq
IEBkcmFmdCBJQ1UgNC4yCi0gKi8KLQotLyoqCi0gKiBcZGVmIFVfU1REX05TX1VTRQotICogVGhp
cyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQot
ICogc3RhbmRhcmQgKFNUTCkgbmFtZXNwYWNlLgotICogRWl0aGVyICJ1c2luZyBuYW1lc3BhY2Ug
c3RkOyIgb3IgZW1wdHkuCi0gKiBAZHJhZnQgSUNVIDQuMgotICovCi0jaWZuZGVmIFVfU1REX05T
UQotIyAgIGlmIFVfSEFWRV9OQU1FU1BBQ0UKLSMgICAgICAgZGVmaW5lIFVfU1REX05TIHN0ZAot
IyAgICAgICBkZWZpbmUgVV9TVERfTlNRIFVfU1REX05TOjoKLSMgICAgICAgZGVmaW5lIFVfU1RE
X05TX1VTRSB1c2luZyBuYW1lc3BhY2UgVV9TVERfTlM7Ci0jICAgZWxzZQotIyAgICAgICBkZWZp
bmUgVV9TVERfTlMKLSMgICAgICAgZGVmaW5lIFVfU1REX05TUQotIyAgICAgICBkZWZpbmUgVV9T
VERfTlNfVVNFCi0jICAgZW5kaWYKLSNlbmRpZgotCiAjZW5kaWYgIC8vIFVfSEFWRV9TVERfU1RS
SU5HCiAKICNlbmRpZiAgLy8gX19TVERfU1RSSU5HX0hfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaWN1L3VuaWNvZGUvc3RyZW51bS5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
c3RyZW51bS5oCmluZGV4IGNlNDIxOTVhNGYyY2IyMmMyZDM0NGNiOWY3YmRmODY3YTU3MDQzZmEu
LjNkYmUyMWM2YjJkZGRmYjg2OTM4N2Q0OGVmZDYyNDNkYjM5MTViMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3N0cmVudW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
Y3UvdW5pY29kZS9zdHJlbnVtLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA3LCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOCw2ICsxMTgs
NyBAQCBwdWJsaWM6CiAgICAgICoKICAgICAgKiBTdGFydGluZyB3aXRoIElDVSAyLjgsIHRoZSBk
ZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIHNuZXh0KCkKICAgICAgKiBhbmQgaGFuZGxlcyB0
aGUgY29udmVyc2lvbi4KKyAgICAgKiBFaXRoZXIgbmV4dCgpIG9yIHNuZXh0KCkgbXVzdCBiZSBp
bXBsZW1lbnRlZCBkaWZmZXJlbnRseSBieSBhIHN1YmNsYXNzLgogICAgICAqCiAgICAgICogQHBh
cmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZS4KICAgICAgKiBAcGFyYW0gcmVzdWx0TGVuZ3RoIGEg
cG9pbnRlciB0byByZWNlaXZlIHRoZSBsZW5ndGgsIGNhbiBiZSBOVUxMLgpAQCAtMTYzLDEyICsx
NjQsMTYgQEAgcHVibGljOgogICAgICAqIDxwPklmIHRoZSBpdGVyYXRvciBpcyBvdXQgb2Ygc3lu
YyB3aXRoIGl0cyBzZXJ2aWNlLCBzdGF0dXMgaXMgc2V0CiAgICAgICogdG8gVV9FTlVNX09VVF9P
Rl9TWU5DX0VSUk9SIGFuZCBOVUxMIGlzIHJldHVybmVkLjwvcD4KICAgICAgKgorICAgICAqIFN0
YXJ0aW5nIHdpdGggSUNVIDIuOCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgbmV4
dCgpCisgICAgICogYW5kIGhhbmRsZXMgdGhlIGNvbnZlcnNpb24uCisgICAgICogRWl0aGVyIG5l
eHQoKSBvciBzbmV4dCgpIG11c3QgYmUgaW1wbGVtZW50ZWQgZGlmZmVyZW50bHkgYnkgYSBzdWJj
bGFzcy4KKyAgICAgKgogICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUuCiAgICAg
ICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHN0cmluZywgb3IgTlVMTC4KICAgICAgKgogICAg
ICAqIEBzdGFibGUgSUNVIDIuNCAKICAgICAgKi8KLSAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVT
dHJpbmcqIHNuZXh0KFVFcnJvckNvZGUmIHN0YXR1cykgPSAwOworICAgIHZpcnR1YWwgY29uc3Qg
VW5pY29kZVN0cmluZyogc25leHQoVUVycm9yQ29kZSYgc3RhdHVzKTsKIAogICAgIC8qKgogICAg
ICAqIDxwPlJlc2V0cyB0aGUgaXRlcmF0b3IuICBUaGlzIHJlLWVzdGFibGlzaGVzIHN5bmMgd2l0
aCB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3N0cmluZ3BpZWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS9zdHJpbmdwaWVjZS5oCmluZGV4IDc5ZDVh
MDUwZWM3NDc1ZTliZGRmY2M1YTBhOTUyYzk2ZjIzZTI4YmMuLmIyOTU3MWQ0YWRiYmRkOWQ2ZDgz
MmFhZWIwZjk3NjhiMjQxNjFhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmlj
b2RlL3N0cmluZ3BpZWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvc3RyaW5n
cGllY2UuaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworLy8gQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKIC8vIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAvLwogLy8gQ29weXJpZ2h0IDIwMDEgYW5kIG9ud2FyZHMgR29v
Z2xlIEluYy4KQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ1BpZWNl
IDogcHVibGljIFVNZW1vcnkgewogICAgKiBDb25zdHJ1Y3RzIGZyb20gYSBzdGQ6OnN0cmluZy4K
ICAgICogQHN0YWJsZSBJQ1UgNC4yCiAgICAqLwotICBTdHJpbmdQaWVjZShjb25zdCBVX1NURF9O
U1Egc3RyaW5nJiBzdHIpCisgIFN0cmluZ1BpZWNlKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIpCiAg
ICAgOiBwdHJfKHN0ci5kYXRhKCkpLCBsZW5ndGhfKHN0YXRpY19jYXN0PGludDMyX3Q+KHN0ci5z
aXplKCkpKSB7IH0KICNlbmRpZgogICAvKioKQEAgLTEzNiwxNiArMTM2LDE2IEBAIGNsYXNzIFVf
Q09NTU9OX0FQSSBTdHJpbmdQaWVjZSA6IHB1YmxpYyBVTWVtb3J5IHsKIAogICAvKioKICAgICog
UmVzZXQgdGhlIHN0cmluZ3BpZWNlIHRvIHJlZmVyIHRvIG5ldyBkYXRhLgotICAgKiBAcGFyYW0g
ZGF0YSBwb2ludGVyIHRoZSBuZXcgc3RyaW5nIGRhdGEuICBOZWVkIG5vdCBiZSBudWwgdGVybWlu
YXRlZC4KKyAgICogQHBhcmFtIHhkYXRhIHBvaW50ZXIgdGhlIG5ldyBzdHJpbmcgZGF0YS4gIE5l
ZWQgbm90IGJlIG51bCB0ZXJtaW5hdGVkLgogICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggb2Yg
dGhlIG5ldyBkYXRhCi0gICAqIEBpbnRlcm5hbAorICAgKiBAc3RhYmxlIElDVSA0LjgKICAgICov
Ci0gIHZvaWQgc2V0KGNvbnN0IGNoYXIqIGRhdGEsIGludDMyX3QgbGVuKSB7IHB0cl8gPSBkYXRh
OyBsZW5ndGhfID0gbGVuOyB9CisgIHZvaWQgc2V0KGNvbnN0IGNoYXIqIHhkYXRhLCBpbnQzMl90
IGxlbikgeyBwdHJfID0geGRhdGE7IGxlbmd0aF8gPSBsZW47IH0KIAogICAvKioKICAgICogUmVz
ZXQgdGhlIHN0cmluZ3BpZWNlIHRvIHJlZmVyIHRvIG5ldyBkYXRhLgogICAgKiBAcGFyYW0gc3Ry
IGEgcG9pbnRlciB0byBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4gCi0gICAqIEBpbnRlcm5hbAor
ICAgKiBAc3RhYmxlIElDVSA0LjgKICAgICovCiAgIHZvaWQgc2V0KGNvbnN0IGNoYXIqIHN0cik7
CiAKQEAgLTE4Myw3ICsxODMsNyBAQCBjbGFzcyBVX0NPTU1PTl9BUEkgU3RyaW5nUGllY2UgOiBw
dWJsaWMgVU1lbW9yeSB7CiAgICAqIE1heGltdW0gaW50ZWdlciwgdXNlZCBhcyBhIGRlZmF1bHQg
dmFsdWUgZm9yIHN1YnN0cmluZyBtZXRob2RzLgogICAgKiBAc3RhYmxlIElDVSA0LjIKICAgICov
Ci0gIHN0YXRpYyBjb25zdCBpbnQzMl90IG5wb3MgPSAweDdmZmZmZmZmOworICBzdGF0aWMgY29u
c3QgaW50MzJfdCBucG9zOyAvLyA9IDB4N2ZmZmZmZmY7CiAKICAgLyoqCiAgICAqIFJldHVybnMg
YSBzdWJzdHJpbmcgb2YgdGhpcyBTdHJpbmdQaWVjZS4KQEAgLTIwMyw3ICsyMDMsNyBAQCBjbGFz
cyBVX0NPTU1PTl9BUEkgU3RyaW5nUGllY2UgOiBwdWJsaWMgVU1lbW9yeSB7CiAgKiBAcGFyYW0g
eCBUaGUgZmlyc3QgU3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEBwYXJhbSB5IFRoZSBzZWNv
bmQgU3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc3RyaW5n
IGRhdGEgaXMgZXF1YWwKLSAqIEBpbnRlcm5hbAorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8KIFVf
RVhQT1JUIFVCb29sIFVfRVhQT1JUMiAKIG9wZXJhdG9yPT0oY29uc3QgU3RyaW5nUGllY2UmIHgs
IGNvbnN0IFN0cmluZ1BpZWNlJiB5KTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBvcGVyYXRvcj09KGNv
bnN0IFN0cmluZ1BpZWNlJiB4LCBjb25zdCBTdHJpbmdQaWVjZSYgeSk7CiAgKiBAcGFyYW0geCBU
aGUgZmlyc3QgU3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEBwYXJhbSB5IFRoZSBzZWNvbmQg
U3RyaW5nUGllY2UgdG8gY29tcGFyZS4KICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgc3RyaW5nIGRh
dGEgaXMgbm90IGVxdWFsCi0gKiBAaW50ZXJuYWwKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCiBp
bmxpbmUgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHJpbmdQaWVjZSYgeCwgY29uc3QgU3RyaW5n
UGllY2UmIHkpIHsKICAgcmV0dXJuICEoeCA9PSB5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ljdS91bmljb2RlL3VicmsuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vicmsu
aAppbmRleCBmODMwNGE2NjI4ZGZkYjUxMmViOTIwZWQzOTJkNDQyYzI0Yjk5ODdhLi5lOWMwZWY2
MjdiNjcyNzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pY3UvdW5pY29kZS91YnJrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
dWJyay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiBDb3B5
cmlnaHQgKEMpIDE5OTYtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMywgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgUmln
aHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqLwpAQCAtMjQzLDEwICsyNDMs
MTIgQEAgdWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAgICpydWxlcywKIC8qKgogICogVGhy
ZWFkIHNhZmUgY2xvbmluZyBvcGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBj
bG9uZWQKLSAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhl
IG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICogQHBh
cmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUy
LCB1c2UgTlVMTC48L2VtPjxicj4KKyAqICB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5l
dyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgogICogIElmIGJ1
ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgot
ICogIENsaWVudHMgY2FuIHVzZSB0aGUgVV9CUktfU0FGRUNMT05FX0JVRkZFUlNJWkUuIFRoaXMg
d2lsbCBwcm9iYWJseSBiZSBlbm91Z2ggdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb25zLgotICog
QHBhcmFtIHBCdWZmZXJTaXplIHBvaW50ZXIgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisg
KiAgQ2xpZW50cyBjYW4gdXNlIHRoZSBVX0JSS19TQUZFQ0xPTkVfQlVGRkVSU0laRS4KKyAqIEBw
YXJhbSBwQnVmZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1
MiwgdXNlIE5VTEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2Nh
dGVkIHNwYWNlLgogICogIElmICpwQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6ZSBm
b3IgdXNlIGluIGNsb25pbmcgd2lsbAogICogIGJlIHJldHVybmVkICgncHJlLWZsaWdodGluZycp
CiAgKiAgSWYgKnBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2Fm
ZSBjbG9uZSwKQEAgLTI2MywxMSArMjY1LDE1IEBAIHVicmtfc2FmZUNsb25lKAogICAgICAgICAg
IGludDMyX3QgKnBCdWZmZXJTaXplLAogICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAK
KyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKIC8qKgogICAqIEEgcmVjb21tZW5kZWQg
c2l6ZSAoaW4gYnl0ZXMpIGZvciB0aGUgbWVtb3J5IGJ1ZmZlciB0byBiZSBwYXNzZWQgdG8gdWJy
a19zYXZlQ2xvbmUoKS4KLSAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKiBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIERvIG5vdCByZWx5IG9uIHVicmtfc2FmZUNsb25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92
aWRlZCBidWZmZXIuCiAgICovCi0jZGVmaW5lIFVfQlJLX1NBRkVDTE9ORV9CVUZGRVJTSVpFIDUx
MgorI2RlZmluZSBVX0JSS19TQUZFQ0xPTkVfQlVGRkVSU0laRSAxCisKKyNlbmRpZiAvKiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAqIENsb3NlIGEgVUJyZWFrSXRlcmF0b3IuCkBA
IC0zMTMsNyArMzE5LDEzIEBAIHVicmtfc2V0VGV4dChVQnJlYWtJdGVyYXRvciogYmksCiAKIAog
LyoqCi0gKiBTZXRzIGFuIGV4aXN0aW5nIGl0ZXJhdG9yIHRvIHBvaW50IHRvIGEgbmV3IHBpZWNl
IG9mIHRleHQKKyAqIFNldHMgYW4gZXhpc3RpbmcgaXRlcmF0b3IgdG8gcG9pbnQgdG8gYSBuZXcg
cGllY2Ugb2YgdGV4dC4KKyAqCisgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJy
ZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAqIG5hdGl2ZSBpbmRpY2VzIGZyb20gdGhlIFVU
ZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICogZW5jb2RlZCB0ZXh0LCB0
aGUgYnJlYWsgcG9zaXRpb25zIHJldHVybmVkIGJ5IFxyZWYgdWJya19uZXh0LCBccmVmIHVicmtf
cHJldmlvdXMsIGV0Yy4KKyAqIHdpbGwgYmUgVVRGLTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYt
MTYgcG9zaXRpb25zLgorICoKICAqIEBwYXJhbSBiaSBUaGUgaXRlcmF0b3IgdG8gdXNlCiAgKiBA
cGFyYW0gdGV4dCBUaGUgdGV4dCB0byBiZSBzZXQuCiAgKiAgICAgICAgICAgICBUaGlzIGZ1bmN0
aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1l
YW5zCkBAIC0zNDIsNyArMzU0LDcgQEAgVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVicmtf
Y3VycmVudChjb25zdCBVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWluZSB0
aGUgdGV4dCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgdGV4dCBib3VuZGFyeS4KKyAq
IEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJl
bnQgYm91bmRhcnkuCiAgKgogICogQHBhcmFtIGJpIFRoZSBicmVhayBpdGVyYXRvciB0byB1c2Uu
CiAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFy
eSwgb3IgVUJSS19ET05FCkBAIC0zNTQsNyArMzY2LDcgQEAgVV9TVEFCTEUgaW50MzJfdCBVX0VY
UE9SVDIKIHVicmtfbmV4dChVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWlu
ZSB0aGUgdGV4dCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQgdGV4dCBib3VuZGFyeS4K
KyAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNlZGluZyB0
aGUgY3VycmVudCBib3VuZGFyeS4KICAqCiAgKiBAcGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9y
IHRvIHVzZS4KICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJlY2VkaW5n
IHRleHQgYm91bmRhcnksIG9yIFVCUktfRE9ORQpAQCAtMzY2LDcgKzM3OCw3IEBAIFVfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyCiB1YnJrX3ByZXZpb3VzKFVCcmVha0l0ZXJhdG9yICpiaSk7CiAK
IC8qKgotICogRGV0ZXJtaW5lIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRo
ZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRo
ZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQu
CiAgKiBUaGlzIGlzIG5vdCBhbHdheXMgdGhlIHNhbWUgYXMgaW5kZXggMCBvZiB0aGUgdGV4dC4K
ICAqIEBwYXJhbSBiaSBUaGUgYnJlYWsgaXRlcmF0b3IgdG8gdXNlLgogICogQHJldHVybiBUaGUg
Y2hhcmFjdGVyIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcg
c2Nhbm5lZC4KQEAgLTM3Nyw4ICszODksNyBAQCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgog
dWJya19maXJzdChVQnJlYWtJdGVyYXRvciAqYmkpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUg
aW5kZXggaW1tZWRpYXRlbHkgPEVNPmJleW9uZDwvRU0+IHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0
aGUgdGV4dCBiZWluZwotICogc2Nhbm5lZC4KKyAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24g
dG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IDxFTT5iZXlvbmQ8L0VNPiB0aGUgbGFzdCBjaGFyYWN0
ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KICAqIFRoaXMgaXMgbm90IHRoZSBzYW1lIGFz
IHRoZSBsYXN0IGNoYXJhY3Rlci4KICAqIEBwYXJhbSBiaSBUaGUgYnJlYWsgaXRlcmF0b3IgdG8g
dXNlLgogICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBpbW1lZGlhdGVseSA8RU0+YmV5
b25kPC9FTT4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZQpAQCAtMzkwLDggKzQwMSw4IEBAIFVf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1YnJrX2xhc3QoVUJyZWFrSXRlcmF0b3IgKmJpKTsK
IAogLyoqCi0gKiBEZXRlcm1pbmUgdGhlIHRleHQgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBzcGVj
aWZpZWQgb2Zmc2V0LgotICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRo
YW4gb2Zmc2V0LCBvciBVQlJLX0RPTkUuCisgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRv
IHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgKiBU
aGUgbmV3IHBvc2l0aW9uIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gb2Zmc2V0LCBvciBVQlJLX0RP
TkUuCiAgKiBAcGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9yIHRvIHVzZS4KICAqIEBwYXJhbSBv
ZmZzZXQgVGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KICAqIEByZXR1cm4gVGhlIHRleHQg
Ym91bmRhcnkgcHJlY2VkaW5nIG9mZnNldCwgb3IgVUJSS19ET05FLgpAQCAtNDAzLDcgKzQxNCw3
IEBAIHVicmtfcHJlY2VkaW5nKFVCcmVha0l0ZXJhdG9yICpiaSwKICAgICAgICAgICAgaW50MzJf
dCBvZmZzZXQpOwogCiAvKioKLSAqIERldGVybWluZSB0aGUgdGV4dCBib3VuZGFyeSBmb2xsb3dp
bmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUg
Zmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgogICogVGhlIHZh
bHVlIHJldHVybmVkIGlzIGFsd2F5cyBncmVhdGVyIHRoYW4gb2Zmc2V0LCBvciBVQlJLX0RPTkUu
CiAgKiBAcGFyYW0gYmkgVGhlIGJyZWFrIGl0ZXJhdG9yIHRvIHVzZS4KICAqIEBwYXJhbSBvZmZz
ZXQgVGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KQEAgLTQ5NSw2ICs1MDYsMzUgQEAgdWJy
a19nZXRSdWxlU3RhdHVzVmVjKFVCcmVha0l0ZXJhdG9yICpiaSwgaW50MzJfdCAqZmlsbEluVmVj
LCBpbnQzMl90IGNhcGFjaXR5LAogVV9TVEFCTEUgY29uc3QgY2hhciogVV9FWFBPUlQyCiB1YnJr
X2dldExvY2FsZUJ5VHlwZShjb25zdCBVQnJlYWtJdGVyYXRvciAqYmksIFVMb2NEYXRhTG9jYWxl
VHlwZSB0eXBlLCBVRXJyb3JDb2RlKiBzdGF0dXMpOwogCisvKioKKyAgKiAgU2V0IHRoZSBzdWJq
ZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGlu
ZworICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIHN0YXRlLgor
ICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1l
IGNvbnRlbnQuCisgICoKKyAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGlu
IGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICogIHN0cmluZ3MgdGhh
dCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9y
IG5vdGlmeWluZworICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwg
YW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICogIHN0cmluZyBpbiBp
dHMgbmV3IHBvc2l0aW9uLgorICAqCisgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3Ig
bmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgKiAgb2YgYSBzdHJpbmcgYmVpbmcg
cHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0
ZXh0CisgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0
aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0
aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICoKKyAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rp
b24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQKKyAgKiAgICAgICAg
ICAgIHN5c3RlbS1sZXZlbCBjb2RlLiAgIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2Fy
YmFnZSBjb2xsZWN0aW9uCisgICogICAgICAgICAgICB0aGF0IG1vdmVzIHRoZSB0ZXh0IGluIG1l
bW9yeS4KKyAgKgorICAqIEBwYXJhbSBiaSAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvci4KKyAg
KiBAcGFyYW0gdGV4dCAgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICogQHBh
cmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24u
CisgICoKKyAgKiBAc3RhYmxlIElDVSA0OQorICAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIK
K3VicmtfcmVmcmVzaFVUZXh0KFVCcmVha0l0ZXJhdG9yICpiaSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgVVRleHQgICAgICAgICAgKnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgICAgICpzdGF0dXMpOwogCiAjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y2hh
ci5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNoYXIuaAppbmRleCA5M2FhNjYzMjA2
YjJiNGM0ODIwYjgyY2ZjNjZjODRhMmQwMGFlOWIyLi4xYTViNzFiNDYzZTQ4MzZlZTUxMzUyYmFh
YzZiNGU0YzcyNjNmMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91
Y2hhci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VjaGFyLmgKQEAgLTEsNiAr
MSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM5LDcg
KzM5LDcgQEAgVV9DREVDTF9CRUdJTgogICogQHNlZSB1X2dldFVuaWNvZGVWZXJzaW9uCiAgKiBA
c3RhYmxlIElDVSAyLjAKICAqLwotI2RlZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4wIgorI2Rl
ZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4zIgogCiAvKioKICAqIFxmaWxlCkBAIC0xMzksMTkg
KzEzOSw2IEBAIFVfQ0RFQ0xfQkVHSU4KICAqLwogI2RlZmluZSBVX01BU0soeCkgKCh1aW50MzJf
dCkxPDwoeCkpCiAKLS8qCi0gKiAhISBOb3RlOiBTZXZlcmFsIGNvbW1lbnRzIGluIHRoaXMgZmls
ZSBhcmUgbWFjaGluZS1yZWFkIGJ5IHRoZQotICogZ2VucG5hbWUgdG9vbC4gIFRoZXNlIGNvbW1l
bnRzIGRlc2NyaWJlIHRoZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuCi0gKiBpY3UgZW51bSBjb25z
dGFudHMgYW5kIFVDRCBlbnRpdGllcy4gIERvIG5vdCBkZWxldGUgdGhlbS4gIFVwZGF0ZQotICog
dGhlc2UgY29tbWVudHMgYXMgbmVlZGVkLgotICoKLSAqIEFueSBjb21tZW50IG9mIHRoZSBmb3Jt
ICIvICpbbmFtZV0qIC8iIChzcGFjZXMgYWRkZWQpIGlzIHN1Y2gKLSAqIGEgY29tbWVudC4KLSAq
Ci0gKiBUaGUgVV9KR18qIGFuZCBVX0dDXypfTUFTSyBjb25zdGFudHMgYXJlIG1hdGNoZWQgYnkg
dGhlaXIgc3ltYm9saWMKLSAqIG5hbWUsIHdoaWNoIG11c3QgbWF0Y2ggUHJvcGVydHlWYWx1ZUFs
aWFzZXMudHh0LgotICovCi0KIC8qKgogICogU2VsZWN0aW9uIGNvbnN0YW50cyBmb3IgVW5pY29k
ZSBwcm9wZXJ0aWVzLgogICogVGhlc2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBs
aWtlIHVfaGFzQmluYXJ5UHJvcGVydHkgdG8gc2VsZWN0CkBAIC0xNzIsOSArMTU5LDExIEBAIFVf
Q0RFQ0xfQkVHSU4KICAqIEBzdGFibGUgSUNVIDIuMQogICovCiB0eXBlZGVmIGVudW0gVVByb3Bl
cnR5IHsKLSAgICAvKiAgU2VlIG5vdGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQmluYXJ5
IHByb3BlcnR5IERhc2giLAotICAgICAgICAiRW51bWVyYXRlZCBwcm9wZXJ0eSBTY3JpcHQiLCAi
RG91YmxlIHByb3BlcnR5IE51bWVyaWNfVmFsdWUiLAotICAgICAgICBhbmQgIlN0cmluZyBwcm9w
ZXJ0eSBBZ2UiIGFyZSByZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAgICogTm90ZTog
VVByb3BlcnR5IGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAq
IEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVQ0hBUl88VW5pY29kZSBwcm9wZXJ0
eSBuYW1lPj08aW50ZWdlcj4sCisgICAgICovCiAKICAgICAvKiAgTm90ZTogUGxhY2UgVUNIQVJf
QUxQSEFCRVRJQyBiZWZvcmUgVUNIQVJfQklOQVJZX1NUQVJUIHNvIHRoYXQKICAgICBkZWJ1Z2dl
cnMgZGlzcGxheSBVQ0hBUl9BTFBIQUJFVElDIGFzIHRoZSBzeW1ib2xpYyBuYW1lIGZvciAwLApA
QCAtNDkxLDggKzQ4MCwxMyBAQCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAgICAgKGh0
dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKICAgICAgICAgUmV0dXJucyBVV29y
ZEJyZWFrVmFsdWVzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgVUNIQVJfV09SRF9C
UkVBSz0weDEwMTQsCisgICAgLyoqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9QYWlyZWRfQnJh
Y2tldF9UeXBlIChuZXcgaW4gVW5pY29kZSA2LjMpLgorICAgICAgICBVc2VkIGluIFVBWCAjOTog
VW5pY29kZSBCaWRpcmVjdGlvbmFsIEFsZ29yaXRobQorICAgICAgICAoaHR0cDovL3d3dy51bmlj
b2RlLm9yZy9yZXBvcnRzL3RyOS8pCisgICAgICAgIFJldHVybnMgVUJpZGlQYWlyZWRCcmFja2V0
VHlwZSB2YWx1ZXMuIEBzdGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJB
Q0tFVF9UWVBFPTB4MTAxNSwKICAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFu
dCBmb3IgZW51bWVyYXRlZC9pbnRlZ2VyIFVuaWNvZGUgcHJvcGVydGllcy4gQHN0YWJsZSBJQ1Ug
Mi4yICovCi0gICAgVUNIQVJfSU5UX0xJTUlUPTB4MTAxNSwKKyAgICBVQ0hBUl9JTlRfTElNSVQ9
MHgxMDE2LAogCiAgICAgLyoqIEJpdG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNr
LgogICAgICAgICBUaGlzIGlzIHRoZSBHZW5lcmFsX0NhdGVnb3J5IHByb3BlcnR5IHJldHVybmVk
IGFzIGEgYml0IG1hc2suCkBAIC01MjcsOSArNTIxLDExIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVy
dHkgewogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgogICAgICAgICBDb3Jy
ZXNwb25kcyB0byB1X3N0ckZvbGRDYXNlIGluIHVzdHJpbmcuaC4gQHN0YWJsZSBJQ1UgMi40ICov
CiAgICAgVUNIQVJfQ0FTRV9GT0xESU5HPTB4NDAwMiwKLSAgICAvKiogU3RyaW5nIHByb3BlcnR5
IElTT19Db21tZW50LgotICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldElTT0NvbW1lbnQuIEBz
dGFibGUgSUNVIDIuNCAqLworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKyAgICAvKiog
RGVwcmVjYXRlZCBzdHJpbmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICAgIENvcnJlc3Bv
bmRzIHRvIHVfZ2V0SVNPQ29tbWVudC4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJf
SVNPX0NPTU1FTlQ9MHg0MDAzLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8K
ICAgICAvKiogU3RyaW5nIHByb3BlcnR5IExvd2VyY2FzZV9NYXBwaW5nLgogICAgICAgICBDb3Jy
ZXNwb25kcyB0byB1X3N0clRvTG93ZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8K
ICAgICBVQ0hBUl9MT1dFUkNBU0VfTUFQUElORz0weDQwMDQsCkBAIC01NTEsMjkgKzU0NywzMyBA
QCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFRpdGxl
Y2FzZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVGl0bGUgaW4gdXN0
cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9USVRMRUNBU0VfTUFQUElORz0w
eDQwMEEsCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQogICAgIC8qKiBTdHJpbmcgcHJv
cGVydHkgVW5pY29kZV8xX05hbWUuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfY2hhck5hbWUu
IEBzdGFibGUgSUNVIDIuNCAqLworICAgICAgICBUaGlzIHByb3BlcnR5IGlzIG9mIGxpdHRsZSBw
cmFjdGljYWwgdmFsdWUuCisgICAgICAgIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMg
cmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgQ29ycmVz
cG9uZHMgdG8gdV9jaGFyTmFtZShVX1VOSUNPREVfMTBfQ0hBUl9OQU1FKS4gQGRlcHJlY2F0ZWQg
SUNVIDQ5ICovCiAgICAgVUNIQVJfVU5JQ09ERV8xX05BTUU9MHg0MDBCLAorI2VuZGlmICAvKiBV
X0hJREVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFVwcGVyY2Fz
ZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVXBwZXIgaW4gdXN0cmlu
Zy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9VUFBFUkNBU0VfTUFQUElORz0weDQw
MEMsCisgICAgLyoqIFN0cmluZyBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0IChuZXcgaW4g
VW5pY29kZSA2LjMpLgorICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldEJpZGlQYWlyZWRCcmFj
a2V0LiBAc3RhYmxlIElDVSA1MiAqLworICAgIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVQ9MHg0
MDBELAogICAgIC8qKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcg
VW5pY29kZSBwcm9wZXJ0aWVzLiBAc3RhYmxlIElDVSAyLjQgKi8KLSAgICBVQ0hBUl9TVFJJTkdf
TElNSVQ9MHg0MDBELAorICAgIFVDSEFSX1NUUklOR19MSU1JVD0weDQwMEUsCiAKLSAgICAvKiog
UHJvdmlzaW9uYWwgcHJvcGVydHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYu
MCkuCi0gICAgICAgIEFzIGEgcHJvdmlzaW9uYWwgcHJvcGVydHksIGl0IG1heSBiZSBtb2RpZmll
ZCBvciByZW1vdmVkCi0gICAgICAgIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBT
dGFuZGFyZCwgYW5kIHRodXMgaW4gSUNVLgorICAgIC8qKiBNaXNjZWxsYW5lb3VzIHByb3BlcnR5
IFNjcmlwdF9FeHRlbnNpb25zIChuZXcgaW4gVW5pY29kZSA2LjApLgogICAgICAgICBTb21lIGNo
YXJhY3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAgICAgICAg
Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3Jn
L3JlcG9ydHMvdHIyNC8uCiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVzY3JpcHRfaGFzU2NyaXB0
IGFuZCB1c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lvbnMgaW4gdXNjcmlwdC5oLgotICAgICAgICBA
ZHJhZnQgSUNVIDQuNiAqLworICAgICAgICBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9T
Q1JJUFRfRVhURU5TSU9OUz0weDcwMDAsCi0gICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmlj
b2RlIHByb3BlcnRpZXMgd2l0aCB1bnVzdWFsIHZhbHVlIHR5cGVzLiBAZHJhZnQgSUNVIDQuNiAq
LworICAgIC8qKiBGaXJzdCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51
c3VhbCB2YWx1ZSB0eXBlcy4gQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUNIQVJfT1RIRVJfUFJP
UEVSVFlfU1RBUlQ9VUNIQVJfU0NSSVBUX0VYVEVOU0lPTlMsCiAgICAgLyoqIE9uZSBtb3JlIHRo
YW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIFVuaWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwg
dmFsdWUgdHlwZXMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYgKi8KKyAgICAgKiBAc3RhYmxlIElD
VSA0LjYgKi8KICAgICBVQ0hBUl9PVEhFUl9QUk9QRVJUWV9MSU1JVD0weDcwMDEsCi0KICAgICAv
KiogUmVwcmVzZW50cyBhIG5vbmV4aXN0ZW50IG9yIGludmFsaWQgcHJvcGVydHkgb3IgcHJvcGVy
dHkgdmFsdWUuIEBzdGFibGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX0lOVkFMSURfQ09ERSA9IC0x
CiB9IFVQcm9wZXJ0eTsKQEAgLTU4NSw3ICs1ODUsMTIgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0
eSB7CiAgKi8KIHR5cGVkZWYgZW51bSBVQ2hhckNhdGVnb3J5CiB7Ci0gICAgLyoqIFNlZSBub3Rl
ICEhLiAgQ29tbWVudHMgb2YgdGhlIGZvcm0gIkNuIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8K
KyAgICAvKgorICAgICAqIE5vdGU6IFVDaGFyQ2F0ZWdvcnkgY29uc3RhbnRzIGFuZCB0aGVpciBB
UEkgY29tbWVudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRj
aGVzIHBhaXJzIG9mIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAyLWxldHRl
ciBHZW5lcmFsX0NhdGVnb3J5IHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxb
QS1aX10rPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOb24tY2F0ZWdvcnkgZm9y
IHVuYXNzaWduZWQgYW5kIG5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludHMuIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVfVU5BU1NJR05FRCAgICAgICAgICAgICAgPSAwLApAQCAtNzcwLDcgKzc3NSwx
MiBAQCB0eXBlZGVmIGVudW0gVUNoYXJDYXRlZ29yeQogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8K
IHR5cGVkZWYgZW51bSBVQ2hhckRpcmVjdGlvbiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29t
bWVudHMgb2YgdGhlIGZvcm0gIkVOIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgor
ICAgICAqIE5vdGU6IFVDaGFyRGlyZWN0aW9uIGNvbnN0YW50cyBhbmQgdGhlaXIgQVBJIGNvbW1l
bnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBwYWly
cyBvZiBsaW5lcyBsaWtlCisgICAgICogICAgIC8gKiogPFVuaWNvZGUgMS4uMy1sZXR0ZXIgQmlk
aV9DbGFzcyB2YWx1ZT4gY29tbWVudC4uLiAqIC8KKyAgICAgKiAgICAgVV88W0EtWl9dKz4gPSA8
aW50ZWdlcj4sCisgICAgICovCiAKICAgICAvKiogTCBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBV
X0xFRlRfVE9fUklHSFQgICAgICAgICAgICAgICA9IDAsCkBAIC04MTAsMjEgKzgyMCw1NyBAQCB0
eXBlZGVmIGVudW0gVUNoYXJEaXJlY3Rpb24gewogICAgIFVfRElSX05PTl9TUEFDSU5HX01BUksg
ICAgICAgID0gMTcsCiAgICAgLyoqIEJOIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQk9VTkRB
UllfTkVVVFJBTCAgICAgICAgICAgID0gMTgsCisgICAgLyoqIEZTSSBAc3RhYmxlIElDVSA1MiAq
LworICAgIFVfRklSU1RfU1RST05HX0lTT0xBVEUgICAgICAgID0gMTksCisgICAgLyoqIExSSSBA
c3RhYmxlIElDVSA1MiAqLworICAgIFVfTEVGVF9UT19SSUdIVF9JU09MQVRFICAgICAgID0gMjAs
CisgICAgLyoqIFJMSSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUklHSFRfVE9fTEVGVF9JU09M
QVRFICAgICAgID0gMjEsCisgICAgLyoqIFBESSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUE9Q
X0RJUkVDVElPTkFMX0lTT0xBVEUgICAgID0gMjIsCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAq
LwogICAgIFVfQ0hBUl9ESVJFQ1RJT05fQ09VTlQKIH0gVUNoYXJEaXJlY3Rpb247CiAKIC8qKgor
ICogQmlkaSBQYWlyZWQgQnJhY2tldCBUeXBlIGNvbnN0YW50cy4KKyAqCisgKiBAc2VlIFVDSEFS
X0JJRElfUEFJUkVEX0JSQUNLRVRfVFlQRQorICogQHN0YWJsZSBJQ1UgNTIKKyAqLwordHlwZWRl
ZiBlbnVtIFVCaWRpUGFpcmVkQnJhY2tldFR5cGUgeworICAgIC8qCisgICAgICogTm90ZTogVUJp
ZGlQYWlyZWRCcmFja2V0VHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5w
eS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9CUFRfPFVuaWNv
ZGUgQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICAv
KiogTm90IGEgcGFpcmVkIGJyYWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9CUFRfTk9O
RSwKKyAgICAvKiogT3BlbiBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBV
X0JQVF9PUEVOLAorICAgIC8qKiBDbG9zZSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIg
Ki8KKyAgICBVX0JQVF9DTE9TRSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQ
VF9DT1VOVCAvKiAzICovCit9IFVCaWRpUGFpcmVkQnJhY2tldFR5cGU7CisKKy8qKgogICogQ29u
c3RhbnRzIGZvciBVbmljb2RlIGJsb2Nrcywgc2VlIHRoZSBVbmljb2RlIERhdGEgZmlsZSBCbG9j
a3MudHh0CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogZW51bSBVQmxvY2tDb2RlIHsKKyAgICAv
KgorICAgICAqIE5vdGU6IFVCbG9ja0NvZGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFy
c2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVCTE9D
S188VW5pY29kZSBCbG9jayB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAg
IC8qKiBOZXcgTm9fQmxvY2sgdmFsdWUgaW4gVW5pY29kZSA0LiBAc3RhYmxlIElDVSAyLjYgKi8K
ICAgICBVQkxPQ0tfTk9fQkxPQ0sgPSAwLCAvKltub25lXSovIC8qIFNwZWNpYWwgcmFuZ2UgaW5k
aWNhdGluZyBOb19CbG9jayAqLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVC
TE9DS19CQVNJQ19MQVRJTiA9IDEsIC8qWzAwMDBdKi8gLypTZWUgbm90ZSAhISovCisgICAgVUJM
T0NLX0JBU0lDX0xBVElOID0gMSwgLypbMDAwMF0qLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVCTE9DS19MQVRJTl8xX1NVUFBMRU1FTlQ9MiwgLypbMDA4MF0qLwpAQCAtMTA2
MSw3ICsxMTA3LDcgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAgICBVQkxPQ0tfTE9XX1NVUlJPR0FU
RVMgPTc3LCAvKltEQzAwXSovCiAKICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklW
QVRFX1VTRV9BUkVBLgorICAgICAqIFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVfVVNFLgogICAgICAq
IFVudGlsIFVuaWNvZGUgMy4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQ
cml2YXRlIFVzZSIsCiAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0
aGlzIGJsb2NrLgogICAgICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUg
Qk1QIFBVQSB0byAiUHJpdmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDY5LDkgKzExMTUsOSBAQCBl
bnVtIFVCbG9ja0NvZGUgewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICov
Ci0gICAgVUJMT0NLX1BSSVZBVEVfVVNFID0gNzgsCisgICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FS
RUEgPTc4LCAvKltFMDAwXSovCiAgICAgLyoqCi0gICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFU
RV9VU0UuCisgICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQS4KICAgICAgKiBV
bnRpbCBVbmljb2RlIDMuMS4xLCB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJp
dmF0ZSBVc2UiLAogICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhp
cyBibG9jay4KICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJN
UCBQVUEgdG8gIlByaXZhdGUgVXNlIEFyZWEiIGFuZApAQCAtMTA3OSw3ICsxMTI1LDcgQEAgZW51
bSBVQmxvY2tDb2RlIHsKICAgICAgKgogICAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgICAqLwot
ICAgIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBID1VQkxPQ0tfUFJJVkFURV9VU0UsIC8qW0UwMDBd
Ki8KKyAgICBVQkxPQ0tfUFJJVkFURV9VU0UgPSBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSwKIAog
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlf
SURFT0dSQVBIUyA9NzksIC8qW0Y5MDBdKi8KQEAgLTExMTEsMzMgKzExNTcsMzMgQEAgZW51bSBV
QmxvY2tDb2RlIHsKICAgICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4xICovCiAKICAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCAgLCAvKlsx
MDMwMF0qLworICAgIFVCTE9DS19PTERfSVRBTElDID0gODgsIC8qWzEwMzAwXSovCiAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19HT1RISUMgPSA4OSAsIC8qWzEwMzMwXSov
CisgICAgVUJMT0NLX0dPVEhJQyA9IDg5LCAvKlsxMDMzMF0qLwogICAgIC8qKiBAc3RhYmxlIElD
VSAyLjAgKi8KLSAgICBVQkxPQ0tfREVTRVJFVCA9IDkwICwgLypbMTA0MDBdKi8KKyAgICBVQkxP
Q0tfREVTRVJFVCA9IDkwLCAvKlsxMDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8K
LSAgICBVQkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxICwgLypbMUQwMDBdKi8K
KyAgICBVQkxPQ0tfQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxLCAvKlsxRDAwMF0qLwog
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTVVTSUNBTF9TWU1CT0xTID0g
OTIgLCAvKlsxRDEwMF0qLworICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiwgLypbMUQx
MDBdKi8KICAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX01BVEhFTUFUSUNB
TF9BTFBIQU5VTUVSSUNfU1lNQk9MUyA9IDkzICAsIC8qWzFENDAwXSovCisgICAgVUJMT0NLX01B
VEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyA9IDkzLCAvKlsxRDQwMF0qLwogICAgIC8q
KiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19F
WFRFTlNJT05fQiAgPSA5NCAsIC8qWzIwMDAwXSovCisgICAgVUJMT0NLX0NKS19VTklGSUVEX0lE
RU9HUkFQSFNfRVhURU5TSU9OX0IgID0gOTQsIC8qWzIwMDAwXSovCiAgICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwotICAgIFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBM
RU1FTlQgPSA5NSAsIC8qWzJGODAwXSovCisgICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lE
RU9HUkFQSFNfU1VQUExFTUVOVCA9IDk1LCAvKlsyRjgwMF0qLwogICAgIC8qKiBAc3RhYmxlIElD
VSAyLjAgKi8KICAgICBVQkxPQ0tfVEFHUyA9IDk2LCAvKltFMDAwMF0qLwogCiAgICAgLyogTmV3
IGJsb2NrcyBpbiBVbmljb2RlIDMuMiAqLwogCisgICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8K
KyAgICBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVCA9IDk3LCAvKlswNTAwXSovCiAgICAgLyoq
CiAgICAgICogVW5pY29kZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFy
eSIgYmxvY2sgdG8gIkN5cmlsbGljIFN1cHBsZW1lbnQiLgogICAgICAqIEBzdGFibGUgSUNVIDIu
MgogICAgICAqLwotICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZID0gOTcsIAotICAg
IC8qKiBAc3RhYmxlIElDVSAzLjAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQg
PSBVQkxPQ0tfQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSwgLypbMDUwMF0qLworICAgIFVCTE9DS19D
WVJJTExJQ19TVVBQTEVNRU5UQVJZID0gVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQsIAogICAg
IC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICBVQkxPQ0tfVEFHQUxPRyA9IDk4LCAvKlsxNzAw
XSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwpAQCAtMTM4MSw4ICsxNDI3LDMzIEBAIGVu
dW0gVUJsb2NrQ29kZSB7CiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVCTE9DS19D
SktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9EID0gMjA5LCAvKlsyQjc0MF0qLwogCi0g
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19DT1VOVCA9IDIxMCwKKyAgICAv
KiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgNi4xICovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkg
Ki8KKyAgICBVQkxPQ0tfQVJBQklDX0VYVEVOREVEX0EgPSAyMTAsIC8qWzA4QTBdKi8KKyAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfQVJBQklDX01BVEhFTUFUSUNBTF9BTFBI
QUJFVElDX1NZTUJPTFMgPSAyMTEsIC8qWzFFRTAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5
ICovCisgICAgVUJMT0NLX0NIQUtNQSA9IDIxMiwgLypbMTExMDBdKi8KKyAgICAvKiogQHN0YWJs
ZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVFVEVJX01BWUVLX0VYVEVOU0lPTlMgPSAyMTMsIC8q
W0FBRTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNf
Q1VSU0lWRSA9IDIxNCwgLypbMTA5QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICBVQkxPQ0tfTUVST0lUSUNfSElFUk9HTFlQSFMgPSAyMTUsIC8qWzEwOTgwXSovCisgICAgLyoq
IEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX01JQU8gPSAyMTYsIC8qWzE2RjAwXSovCisg
ICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NIQVJBREEgPSAyMTcsIC8qWzEx
MTgwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NPUkFfU09NUEVO
RyA9IDIxOCwgLypbMTEwRDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxP
Q0tfU1VOREFORVNFX1NVUFBMRU1FTlQgPSAyMTksIC8qWzFDQzBdKi8KKyAgICAvKiogQHN0YWJs
ZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfVEFLUkkgPSAyMjAsIC8qWzExNjgwXSovCisKKyAgICAv
KiogQHN0YWJsZSBJQ1UgMi4wICovCisgICAgVUJMT0NLX0NPVU5UID0gMjIxLAogCiAgICAgLyoq
IEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9DS19JTlZBTElEX0NPREU9LTEKQEAgLTEzOTks
NyArMTQ3MCwxMyBAQCB0eXBlZGVmIGVudW0gVUJsb2NrQ29kZSBVQmxvY2tDb2RlOwogICogQHN0
YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewotICAgIFVf
RUFfTkVVVFJBTCwgICAvKltOXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90
ZTogVUVhc3RBc2lhbldpZHRoIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5
LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0VBXzxVbmljb2Rl
IEVhc3RfQXNpYW5fV2lkdGggdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfRUFfTkVVVFJB
TCwgICAvKltOXSovCiAgICAgVV9FQV9BTUJJR1VPVVMsIC8qW0FdKi8KICAgICBVX0VBX0hBTEZX
SURUSCwgLypbSF0qLwogICAgIFVfRUFfRlVMTFdJRFRILCAvKltGXSovCkBAIC0xNDA3LDEwICsx
NDg0LDYgQEAgdHlwZWRlZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgICAgVV9FQV9XSURFLCAg
ICAgIC8qW1ddKi8KICAgICBVX0VBX0NPVU5UCiB9IFVFYXN0QXNpYW5XaWR0aDsKLS8qCi0gKiBJ
bXBsZW1lbnRhdGlvbiBub3RlOgotICogS2VlcCBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnQgdmFs
dWVzIGluIHN5bmMgd2l0aCBuYW1lcyBsaXN0IGluIGdlbnByb3BzL3Byb3BzMi5jLgotICovCiAK
IC8qKgogICogU2VsZWN0b3IgY29uc3RhbnRzIGZvciB1X2NoYXJOYW1lKCkuCkBAIC0xNDI0LDEw
ICsxNDk3LDIxIEBAIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewogICogQHN0YWJsZSBJ
Q1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSBVQ2hhck5hbWVDaG9pY2UgeworICAgIC8qKiBVbmlj
b2RlIGNoYXJhY3RlciBuYW1lIChOYW1lIHByb3BlcnR5KS4gQHN0YWJsZSBJQ1UgMi4wICovCiAg
ICAgVV9VTklDT0RFX0NIQVJfTkFNRSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAor
ICAgIC8qKgorICAgICAqIFRoZSBVbmljb2RlXzFfTmFtZSBwcm9wZXJ0eSB2YWx1ZSB3aGljaCBp
cyBvZiBsaXR0bGUgcHJhY3RpY2FsIHZhbHVlLgorICAgICAqIEJlZ2lubmluZyB3aXRoIElDVSA0
OSwgSUNVIEFQSXMgcmV0dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBuYW1lIGNob2ljZS4K
KyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNDkKKyAgICAgKi8KICAgICBVX1VOSUNPREVfMTBfQ0hB
Ul9OQU1FLAotICAgIFVfRVhURU5ERURfQ0hBUl9OQU1FLAotICAgIFVfQ0hBUl9OQU1FX0FMSUFT
LCAgICAgICAgICAvKio8IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3Rh
YmxlIElDVSA0LjQgKi8KKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisgICAg
LyoqIFN0YW5kYXJkIG9yIHN5bnRoZXRpYyBjaGFyYWN0ZXIgbmFtZS4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgVV9FWFRFTkRFRF9DSEFSX05BTUUgPSBVX1VOSUNPREVfQ0hBUl9OQU1FKzIsCisg
ICAgLyoqIENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0
LjQgKi8KKyAgICBVX0NIQVJfTkFNRV9BTElBUywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICov
CiAgICAgVV9DSEFSX05BTUVfQ0hPSUNFX0NPVU5UCiB9IFVDaGFyTmFtZUNob2ljZTsKIApAQCAt
MTQ1Nyw3ICsxNTQxLDEzIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHlOYW1lQ2hvaWNlIHsKICAq
IEBzdGFibGUgSUNVIDIuMgogICovCiB0eXBlZGVmIGVudW0gVURlY29tcG9zaXRpb25UeXBlIHsK
LSAgICBVX0RUX05PTkUsICAgICAgICAgICAgICAvKltub25lXSovIC8qU2VlIG5vdGUgISEqLwor
ICAgIC8qCisgICAgICogTm90ZTogVURlY29tcG9zaXRpb25UeXBlIGNvbnN0YW50cyBhcmUgcGFy
c2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAg
ICAqICAgICBVX0RUXzxVbmljb2RlIERlY29tcG9zaXRpb25fVHlwZSB2YWx1ZSBuYW1lPgorICAg
ICAqLworCisgICAgVV9EVF9OT05FLCAgICAgICAgICAgICAgLypbbm9uZV0qLwogICAgIFVfRFRf
Q0FOT05JQ0FMLCAgICAgICAgIC8qW2Nhbl0qLwogICAgIFVfRFRfQ09NUEFULCAgICAgICAgICAg
IC8qW2NvbV0qLwogICAgIFVfRFRfQ0lSQ0xFLCAgICAgICAgICAgIC8qW2VuY10qLwpAQCAtMTQ4
NSw3ICsxNTc1LDEzIEBAIHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewogICogQHN0
YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVSm9pbmluZ1R5cGUgewotICAgIFVfSlRf
Tk9OX0pPSU5JTkcsICAgICAgIC8qW1VdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAg
KiBOb3RlOiBVSm9pbmluZ1R5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2Qu
cHkuCisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSlRfPFVuaWNv
ZGUgSm9pbmluZ19UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0pUX05PTl9KT0lO
SU5HLCAgICAgICAvKltVXSovCiAgICAgVV9KVF9KT0lOX0NBVVNJTkcsICAgICAgLypbQ10qLwog
ICAgIFVfSlRfRFVBTF9KT0lOSU5HLCAgICAgIC8qW0RdKi8KICAgICBVX0pUX0xFRlRfSk9JTklO
RywgICAgICAvKltMXSovCkBAIC0xNTAxLDYgKzE1OTcsMTIgQEAgdHlwZWRlZiBlbnVtIFVKb2lu
aW5nVHlwZSB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5n
R3JvdXAgeworICAgIC8qCisgICAgICogTm90ZTogVUpvaW5pbmdHcm91cCBjb25zdGFudHMgYXJl
IHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UK
KyAgICAgKiAgICAgVV9KR188VW5pY29kZSBKb2luaW5nX0dyb3VwIHZhbHVlIG5hbWU+CisgICAg
ICovCisKICAgICBVX0pHX05PX0pPSU5JTkdfR1JPVVAsCiAgICAgVV9KR19BSU4sCiAgICAgVV9K
R19BTEFQSCwKQEAgLTE1NTksNiArMTY2MSw3IEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3Vw
IHsKICAgICBVX0pHX0JVUlVTSEFTS0lfWUVIX0JBUlJFRSwgLyoqPCBAc3RhYmxlIElDVSA0LjAg
Ki8KICAgICBVX0pHX0ZBUlNJX1lFSCwgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVX0pH
X05ZQSwgICAgICAgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0pHX1JPSElOR1lBX1lF
SCwgIC8qKjwgQHN0YWJsZSBJQ1UgNDkgKi8KICAgICBVX0pHX0NPVU5UCiB9IFVKb2luaW5nR3Jv
dXA7CiAKQEAgLTE1NjksNyArMTY3MiwxMyBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91cCB7
CiAgKiBAc3RhYmxlIElDVSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJC
cmVhayB7Ci0gICAgVV9HQ0JfT1RIRVIgPSAwLCAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5v
dGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVUdyYXBoZW1lQ2x1c3RlckJyZWFrIGNvbnN0
YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGlu
ZXMgbGlrZQorICAgICAqICAgICBVX0dDQl88VW5pY29kZSBHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
IHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAg
LypbWFhdKi8KICAgICBVX0dDQl9DT05UUk9MID0gMSwgICAgICAgICAgLypbQ05dKi8KICAgICBV
X0dDQl9DUiA9IDIsICAgICAgICAgICAgICAgLypbQ1JdKi8KICAgICBVX0dDQl9FWFRFTkQgPSAz
LCAgICAgICAgICAgLypbRVhdKi8KQEAgLTE1ODEsNyArMTY5MCw4IEBAIHR5cGVkZWYgZW51bSBV
R3JhcGhlbWVDbHVzdGVyQnJlYWsgewogICAgIFVfR0NCX1YgPSA5LCAgICAgICAgICAgICAgICAv
KltWXSovCiAgICAgVV9HQ0JfU1BBQ0lOR19NQVJLID0gMTAsICAgIC8qW1NNXSovIC8qIGZyb20g
aGVyZSBvbjogbmV3IGluIFVuaWNvZGUgNS4xL0lDVSA0LjAgKi8KICAgICBVX0dDQl9QUkVQRU5E
ID0gMTEsICAgICAgICAgLypbUFBdKi8KLSAgICBVX0dDQl9DT1VOVCA9IDEyCisgICAgVV9HQ0Jf
UkVHSU9OQUxfSU5ESUNBVE9SID0gMTIsICAvKltSSV0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjIv
SUNVIDUwICovCisgICAgVV9HQ0JfQ09VTlQgPSAxMwogfSBVR3JhcGhlbWVDbHVzdGVyQnJlYWs7
CiAKIC8qKgpAQCAtMTU5Miw3ICsxNzAyLDEzIEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVz
dGVyQnJlYWsgewogICogQHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVV29yZEJy
ZWFrVmFsdWVzIHsKLSAgICBVX1dCX09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8gLypT
ZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVV29yZEJyZWFrVmFsdWVzIGNvbnN0
YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGlu
ZXMgbGlrZQorICAgICAqICAgICBVX1dCXzxVbmljb2RlIFdvcmRfQnJlYWsgdmFsdWUgbmFtZT4K
KyAgICAgKi8KKworICAgIFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAg
IFVfV0JfQUxFVFRFUiA9IDEsICAgICAgICAgICAvKltMRV0qLwogICAgIFVfV0JfRk9STUFUID0g
MiwgICAgICAgICAgICAvKltGT10qLwogICAgIFVfV0JfS0FUQUtBTkEgPSAzLCAgICAgICAgICAv
KltLQV0qLwpAQCAtMTYwNSw3ICsxNzIxLDExIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFs
dWVzIHsKICAgICBVX1dCX0xGID0gMTAsICAgICAgICAgICAgICAgLypbTEZdKi8KICAgICBVX1dC
X01JRE5VTUxFVCA9MTEsICAgICAgICAgLypbTUJdKi8KICAgICBVX1dCX05FV0xJTkUgPTEyLCAg
ICAgICAgICAgLypbTkxdKi8KLSAgICBVX1dCX0NPVU5UID0gMTMKKyAgICBVX1dCX1JFR0lPTkFM
X0lORElDQVRPUiA9IDEzLCAgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1UgNTAg
Ki8KKyAgICBVX1dCX0hFQlJFV19MRVRURVIgPSAxNCwgICAgLypbSExdKi8gLyogZnJvbSBoZXJl
IG9uOiBuZXcgaW4gVW5pY29kZSA2LjMvSUNVIDUyICovCisgICAgVV9XQl9TSU5HTEVfUVVPVEUg
PSAxNSwgICAgIC8qW1NRXSovCisgICAgVV9XQl9ET1VCTEVfUVVPVEUgPSAxNiwgICAgIC8qW0RR
XSovCisgICAgVV9XQl9DT1VOVCA9IDE3CiB9IFVXb3JkQnJlYWtWYWx1ZXM7CiAKIC8qKgpAQCAt
MTYxNSw3ICsxNzM1LDEzIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAqIEBz
dGFibGUgSUNVIDMuNAogICovCiB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewotICAgIFVf
U0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAv
KgorICAgICAqIE5vdGU6IFVTZW50ZW5jZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHBy
ZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBV
X1NCXzxVbmljb2RlIFNlbnRlbmNlX0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBV
X1NCX09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8KICAgICBVX1NCX0FURVJNID0gMSwg
ICAgICAgICAgICAgLypbQVRdKi8KICAgICBVX1NCX0NMT1NFID0gMiwgICAgICAgICAgICAgLypb
Q0xdKi8KICAgICBVX1NCX0ZPUk1BVCA9IDMsICAgICAgICAgICAgLypbRk9dKi8KQEAgLTE2NDAs
NyArMTc2NiwxMyBAQCB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewogICogQHN0YWJsZSBJ
Q1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVTGluZUJyZWFrIHsKLSAgICBVX0xCX1VOS05PV04g
PSAwLCAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBO
b3RlOiBVTGluZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5Lgor
ICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0xCXzxVbmljb2RlIExp
bmVfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfTEJfVU5LTk9XTiA9IDAsICAg
ICAgICAgICAvKltYWF0qLwogICAgIFVfTEJfQU1CSUdVT1VTID0gMSwgICAgICAgICAvKltBSV0q
LwogICAgIFVfTEJfQUxQSEFCRVRJQyA9IDIsICAgICAgICAvKltBTF0qLwogICAgIFVfTEJfQlJF
QUtfQk9USCA9IDMsICAgICAgICAvKltCMl0qLwpAQCAtMTY1NSw5ICsxNzg3LDkgQEAgdHlwZWRl
ZiBlbnVtIFVMaW5lQnJlYWsgewogICAgIFVfTEJfR0xVRSA9IDEyLCAgICAgICAgICAgICAgLypb
R0xdKi8KICAgICBVX0xCX0hZUEhFTiA9IDEzLCAgICAgICAgICAgIC8qW0hZXSovCiAgICAgVV9M
Ql9JREVPR1JBUEhJQyA9IDE0LCAgICAgICAvKltJRF0qLwotICAgIFVfTEJfSU5TRVBFUkFCTEUg
PSAxNSwKICAgICAvKiogUmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIg
aW4gVW5pY29kZSA0LjAuMS9JQ1UgMy4wIEBzdGFibGUgSUNVIDMuMCAqLwotICAgIFVfTEJfSU5T
RVBBUkFCTEU9VV9MQl9JTlNFUEVSQUJMRSwvKltJTl0qLworICAgIFVfTEJfSU5TRVBBUkFCTEUg
PSAxNSwgICAgICAgLypbSU5dKi8KKyAgICBVX0xCX0lOU0VQRVJBQkxFID0gVV9MQl9JTlNFUEFS
QUJMRSwKICAgICBVX0xCX0lORklYX05VTUVSSUMgPSAxNiwgICAgIC8qW0lTXSovCiAgICAgVV9M
Ql9MSU5FX0ZFRUQgPSAxNywgICAgICAgICAvKltMRl0qLwogICAgIFVfTEJfTk9OU1RBUlRFUiA9
IDE4LCAgICAgICAgLypbTlNdKi8KQEAgLTE2NzksNyArMTgxMSwxMCBAQCB0eXBlZGVmIGVudW0g
VUxpbmVCcmVhayB7CiAgICAgVV9MQl9KVCA9IDM0LCAgICAgICAgICAgICAgICAvKltKVF0qLwog
ICAgIFVfTEJfSlYgPSAzNSwgICAgICAgICAgICAgICAgLypbSlZdKi8KICAgICBVX0xCX0NMT1NF
X1BBUkVOVEhFU0lTID0gMzYsIC8qW0NQXSovIC8qIG5ldyBpbiBVbmljb2RlIDUuMi9JQ1UgNC40
ICovCi0gICAgVV9MQl9DT1VOVCA9IDM3CisgICAgVV9MQl9DT05ESVRJT05BTF9KQVBBTkVTRV9T
VEFSVEVSID0gMzcsLypbQ0pdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAg
IFVfTEJfSEVCUkVXX0xFVFRFUiA9IDM4LCAgICAgLypbSExdKi8gLyogbmV3IGluIFVuaWNvZGUg
Ni4xL0lDVSA0OSAqLworICAgIFVfTEJfUkVHSU9OQUxfSU5ESUNBVE9SID0gMzksLypbUkldKi8g
LyogbmV3IGluIFVuaWNvZGUgNi4yL0lDVSA1MCAqLworICAgIFVfTEJfQ09VTlQgPSA0MAogfSBV
TGluZUJyZWFrOwogCiAvKioKQEAgLTE2ODksNyArMTgyNCwxMyBAQCB0eXBlZGVmIGVudW0gVUxp
bmVCcmVhayB7CiAgKiBAc3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1lcmlj
VHlwZSB7Ci0gICAgVV9OVF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLyAvKlNlZSBub3Rl
ICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVOdW1lcmljVHlwZSBjb25zdGFudHMgYXJlIHBh
cnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAg
ICAgKiAgICAgVV9OVF88VW5pY29kZSBOdW1lcmljX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8K
KworICAgIFVfTlRfTk9ORSwgICAgICAgICAgICAgIC8qW05vbmVdKi8KICAgICBVX05UX0RFQ0lN
QUwsICAgICAgICAgICAvKltkZV0qLwogICAgIFVfTlRfRElHSVQsICAgICAgICAgICAgIC8qW2Rp
XSovCiAgICAgVV9OVF9OVU1FUklDLCAgICAgICAgICAgLypbbnVdKi8KQEAgLTE3MDMsNyArMTg0
NCwxMyBAQCB0eXBlZGVmIGVudW0gVU51bWVyaWNUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuNgog
ICovCiB0eXBlZGVmIGVudW0gVUhhbmd1bFN5bGxhYmxlVHlwZSB7Ci0gICAgVV9IU1RfTk9UX0FQ
UExJQ0FCTEUsICAgLypbTkFdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVSGFuZ3VsU3lsbGFibGVUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNk
LnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0hTVF88VW5p
Y29kZSBIYW5ndWxfU3lsbGFibGVfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9I
U1RfTk9UX0FQUExJQ0FCTEUsICAgLypbTkFdKi8KICAgICBVX0hTVF9MRUFESU5HX0pBTU8sICAg
ICAvKltMXSovCiAgICAgVV9IU1RfVk9XRUxfSkFNTywgICAgICAgLypbVl0qLwogICAgIFVfSFNU
X1RSQUlMSU5HX0pBTU8sICAgIC8qW1RdKi8KQEAgLTE5MDYsNiArMjA1Myw4IEBAIHVfZ2V0SW50
UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkgd2hpY2gpOwogICoKICAqIEZvciBjaGFyYWN0ZXJz
IHdpdGhvdXQgYW55IG51bWVyaWMgdmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRh
YmFzZSwKICAqIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gVV9OT19OVU1FUklDX1ZBTFVFLgor
ICogTm90ZTogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgVW5pY29kZSBTdGFuZGFyZCB3aGlj
aCBzcGVjaWZpZXMgTmFOIGFzIHRoZSBkZWZhdWx0IHZhbHVlLgorICogKE5hTiBpcyBub3QgYXZh
aWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuKQogICoKICAqIFNpbWlsYXIgdG8gamF2YS5sYW5nLkNo
YXJhY3Rlci5nZXROdW1lcmljVmFsdWUoKSwgYnV0IHVfZ2V0TnVtZXJpY1ZhbHVlKCkKICAqIGFs
c28gc3VwcG9ydHMgbmVnYXRpdmUgdmFsdWVzLCBsYXJnZSB2YWx1ZXMsIGFuZCBmcmFjdGlvbnMs
CkBAIC0yMzc5LDcgKzI1MjgsNyBAQCB1X2lzTWlycm9yZWQoVUNoYXIzMiBjKTsKICAqIGFzIHRo
ZSBtaXJyb3ItaW1hZ2Ugb2YgdGhlIGRlZmF1bHQgZ2x5cGggb2YgdGhlIHNwZWNpZmllZAogICog
Y2hhcmFjdGVyLiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9t
CiAgKiBjb2RlcGFnZXMgd2l0aCB2aXN1YWwgb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91
dCBnbHlwaAotICogc2VsZWNldGlvbiBjYXBhYmlsaXRpZXMuCisgKiBzZWxlY3Rpb24gY2FwYWJp
bGl0aWVzLgogICoKICAqIEBwYXJhbSBjIHRoZSBjb2RlIHBvaW50IHRvIGJlIG1hcHBlZAogICog
QHJldHVybiBhbm90aGVyIFVuaWNvZGUgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1p
cnJvci1pbWFnZQpAQCAtMjM5NCw2ICsyNTQzLDI1IEBAIFVfU1RBQkxFIFVDaGFyMzIgVV9FWFBP
UlQyCiB1X2NoYXJNaXJyb3IoVUNoYXIzMiBjKTsKIAogLyoqCisgKiBNYXBzIHRoZSBzcGVjaWZp
ZWQgY2hhcmFjdGVyIHRvIGl0cyBwYWlyZWQgYnJhY2tldCBjaGFyYWN0ZXIuCisgKiBGb3IgQmlk
aV9QYWlyZWRfQnJhY2tldF9UeXBlIT1Ob25lLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHVfY2hhck1p
cnJvcigpLgorICogT3RoZXJ3aXNlIGMgaXRzZWxmIGlzIHJldHVybmVkLgorICogU2VlIGh0dHA6
Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjkvCisgKgorICogQHBhcmFtIGMgdGhlIGNvZGUg
cG9pbnQgdG8gYmUgbWFwcGVkCisgKiBAcmV0dXJuIHRoZSBwYWlyZWQgYnJhY2tldCBjb2RlIHBv
aW50LAorICogICAgICAgICBvciBjIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcK
KyAqICAgICAgICAgKEJpZGlfUGFpcmVkX0JyYWNrZXRfVHlwZT1Ob25lKQorICoKKyAqIEBzZWUg
VUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVAorICogQHNlZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFD
S0VUX1RZUEUKKyAqIEBzZWUgdV9jaGFyTWlycm9yCisgKiBAc3RhYmxlIElDVSA1MgorICovCitV
X1NUQUJMRSBVQ2hhcjMyIFVfRVhQT1JUMgordV9nZXRCaWRpUGFpcmVkQnJhY2tldChVQ2hhcjMy
IGMpOworCisvKioKICAqIFJldHVybnMgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgdmFsdWUgZm9yIHRo
ZSBjb2RlIHBvaW50LgogICoKICAqIFNhbWUgYXMgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBl
KCkuCkBAIC0yNTUzLDEzICsyNzIxLDExIEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2RlLCBVQ2hh
ck5hbWVDaG9pY2UgbmFtZUNob2ljZSwKICAgICAgICAgICAgY2hhciAqYnVmZmVyLCBpbnQzMl90
IGJ1ZmZlckxlbmd0aCwKICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKKyNp
Zm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAogLyoqCi0gKiBHZXQgdGhlIElTTyAxMDY0NiBj
b21tZW50IGZvciBhIGNoYXJhY3Rlci4KLSAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBp
bmZvcm1hdGl2ZSBmaWVsZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKLSAqIERhdGFiYXNlIChV
bmljb2RlRGF0YS50eHQgZmllbGQgMTEpIGFuZCBpcyBmcm9tIHRoZSBJU08gMTA2NDYgbmFtZXMg
bGlzdC4KLSAqCi0gKiBOb3RlOiBVbmljb2RlIDUuMiByZW1vdmVzIGFsbCBJU08gY29tbWVudCBk
YXRhLCByZXN1bHRpbmcgaW4gZW1wdHkgc3RyaW5ncwotICogcmV0dXJuZWQgZm9yIGFsbCBjaGFy
YWN0ZXJzLgorICogUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgKiBVc2VkIHRvIHJldHVybiB0
aGUgSVNPIDEwNjQ2IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICogVGhlIFVuaWNvZGUgSVNP
X0NvbW1lbnQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIHZhbHVlcy4KICAqCiAg
KiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIChjb2RlIHBvaW50KSBmb3Igd2hpY2ggdG8gZ2V0IHRo
ZSBJU08gY29tbWVudC4KICAqICAgICAgICAgICAgIEl0IG11c3QgYmUgPGNvZGU+MDw9Yzw9MHgx
MGZmZmY8L2NvZGU+LgpAQCAtMjU3MCwxOCArMjczNiwxNSBAQCB1X2NoYXJOYW1lKFVDaGFyMzIg
Y29kZSwgVUNoYXJOYW1lQ2hvaWNlIG5hbWVDaG9pY2UsCiAgKiBAcGFyYW0gcEVycm9yQ29kZSBQ
b2ludGVyIHRvIGEgVUVycm9yQ29kZSB2YXJpYWJsZTsKICAqICAgICAgICBjaGVjayBmb3IgPGNv
ZGU+VV9TVUNDRVNTKCk8L2NvZGU+IGFmdGVyIDxjb2RlPnVfZ2V0SVNPQ29tbWVudCgpPC9jb2Rl
PgogICogICAgICAgIHJldHVybnMuCi0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGNvbW1l
bnQsIG9yIDAgaWYgdGhlcmUgaXMgbm8gY29tbWVudCBmb3IgdGhpcyBjaGFyYWN0ZXIuCi0gKiAg
ICAgICAgIElmIHRoZSBkZXN0Q2FwYWNpdHkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBs
ZW5ndGgsIHRoZW4gdGhlIGJ1ZmZlcgotICogICAgICAgICBjb250YWlucyB0aGUgdHJ1bmNhdGVk
IG5hbWUgYW5kIHRoZSByZXR1cm5lZCBsZW5ndGggaW5kaWNhdGVzIHRoZSBmdWxsCi0gKiAgICAg
ICAgIGxlbmd0aCBvZiB0aGUgbmFtZS4KLSAqICAgICAgICAgVGhlIGxlbmd0aCBkb2VzIG5vdCBp
bmNsdWRlIHRoZSB6ZXJvLXRlcm1pbmF0aW9uLgorICogQHJldHVybiAwCiAgKgotICogQHN0YWJs
ZSBJQ1UgMi4yCisgKiBAZGVwcmVjYXRlZCBJQ1UgNDkKICAqLwogVV9TVEFCTEUgaW50MzJfdCBV
X0VYUE9SVDIKIHVfZ2V0SVNPQ29tbWVudChVQ2hhcjMyIGMsCiAgICAgICAgICAgICAgICAgY2hh
ciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAv
KioKICAqIEZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0
cyBjb2RlIHBvaW50IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNv
ZGUvdWNudi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNudi5oCmluZGV4IDk4ZGE4
ZmY2OTQ3YTMzMzAxYjc5YTk5MWU0YWY0Mjc3MDE1M2JhYzkuLmM1ZmMyZGM3ODU2YTE2ZTIxZmQz
MDc5MTdiNzM4MDI3ZjU2NjA1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmlj
b2RlL3VjbnYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y252LmgKQEAgLTEs
NiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICB1Y252
Lmg6CkBAIC04OCw0NiArODgsODIgQEAgVV9DREVDTF9CRUdJTgogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KIHR5cGVkZWYgZW51bSB7CisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVD
TlZfVU5TVVBQT1JURURfQ09OVkVSVEVSID0gLTEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAq
LwogICAgIFVDTlZfU0JDUyA9IDAsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVD
TlZfREJDUyA9IDEsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTUJDUyA9
IDIsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTEFUSU5fMSA9IDMsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGOCA9IDQsCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGMTZfQmlnRW5kaWFuID0gNSwKKyAgICAvKiog
QHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9VVEYxNl9MaXR0bGVFbmRpYW4gPSA2LAorICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1VURjMyX0JpZ0VuZGlhbiA9IDcsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfVVRGMzJfTGl0dGxlRW5kaWFuID0g
OCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9FQkNESUNfU1RBVEVGVUwg
PSA5LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0lTT18yMDIyID0gMTAs
CiAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU18xID0gMTEsCisg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMiwgCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1CQ1NfMywKKyAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCiAgICAgVUNOVl9MTUJDU180LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0xNQkNTXzUsCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfTE1C
Q1NfNiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVUNOVl9MTUJDU184LAorICAg
IC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzExLAorICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTXzE2LAorICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KICAgICBVQ05WX0xNQkNTXzE3LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAg
ICBVQ05WX0xNQkNTXzE4LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xN
QkNTXzE5LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0xNQkNTX0xBU1Qg
PSBVQ05WX0xNQkNTXzE5LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX0ha
LAorICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVQ05WX1NDU1UsCisgICAgLyoqIEBz
dGFibGUgSUNVIDIuMCAqLwogICAgIFVDTlZfSVNDSUksCisgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVDTlZfVVNfQVNDSUksCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAg
IFVDTlZfVVRGNywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9CT0NVMSwK
KyAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9VVEYxNiwKKyAgICAvKiogQHN0
YWJsZSBJQ1UgMi4yICovCiAgICAgVUNOVl9VVEYzMiwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4y
ICovCiAgICAgVUNOVl9DRVNVOCwKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNO
Vl9JTUFQX01BSUxCT1gsCisgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgIFVDTlZfQ09N
UE9VTkRfVEVYVCwKIAogICAgIC8qIE51bWJlciBvZiBjb252ZXJ0ZXIgdHlwZXMgZm9yIHdoaWNo
IHdlIGhhdmUgY29udmVyc2lvbiByb3V0aW5lcy4gKi8KICAgICBVQ05WX05VTUJFUl9PRl9TVVBQ
T1JURURfQ09OVkVSVEVSX1RZUEVTCi0KIH0gVUNvbnZlcnRlclR5cGU7CiAKIC8qKgpAQCAtMzA1
LDYgKzM0MSw4IEBAIHVjbnZfY29tcGFyZU5hbWVzKGNvbnN0IGNoYXIgKm5hbWUxLCBjb25zdCBj
aGFyICpuYW1lMik7CiAgKiBvdGhlciB0aGFuIGl0cyBhbiBhbGlhcyBzdGFydGluZyB3aXRoIHRo
ZSBsZXR0ZXJzICJjcCIuIFBsZWFzZSBkbyBub3QKICAqIGFzc29jaWF0ZSBhbnkgbWVhbmluZyB0
byB0aGVzZSBhbGlhc2VzLjwvcD4KICAqCisgKiBcc25pcHBldCBzYW1wbGVzL3VjbnYvY29udnNh
bXAuY3BwIHVjbnZfb3BlbgorICoKICAqIEBwYXJhbSBjb252ZXJ0ZXJOYW1lIE5hbWUgb2YgdGhl
IGNvZGVkIGNoYXJhY3RlciBzZXQgdGFibGUuCiAgKiAgICAgICAgICBUaGlzIG1heSBoYXZlIG9w
dGlvbnMgYXBwZW5kZWQgdG8gdGhlIHN0cmluZy4KICAqICAgICAgICAgIElBTkEgYWxpYXMgY2hh
cmFjdGVyIHNldCBuYW1lcywgSUJNIENDU0lEcyBzdGFydGluZyB3aXRoICJpYm0tIiwKQEAgLTQ4
MywxMCArNTIxLDEyIEBAIHVjbnZfb3BlblBhY2thZ2UoY29uc3QgY2hhciAqcGFja2FnZU5hbWUs
IGNvbnN0IGNoYXIgKmNvbnZlcnRlck5hbWUsIFVFcnJvckNvZGUKICAqIGFkanVzdGVkIHBvaW50
ZXIgYW5kIHVzZSBhbiBhY2NvcmRpbmdseSBzbWFsbGVyIGJ1ZmZlciBzaXplLgogICoKICAqIEBw
YXJhbSBjbnYgY29udmVydGVyIHRvIGJlIGNsb25lZAotICogQHBhcmFtIHN0YWNrQnVmZmVyIHVz
ZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkg
d2lsbCBiZSBhbGxvY2F0ZWQuIAorICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVk
IGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4KKyAqICB1c2Vy
IGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdp
bGwgYmUgYWxsb2NhdGVkLiAKICAqICBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3
IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KICAqICBDbGllbnRzIGNhbiB1c2UgdGhlIFVfQ05W
X1NBRkVDTE9ORV9CVUZGRVJTSVpFLiBUaGlzIHdpbGwgcHJvYmFibHkgYmUgZW5vdWdoIHRvIGF2
b2lkIG1lbW9yeSBhbGxvY2F0aW9ucy4KLSAqIEBwYXJhbSBwQnVmZmVyU2l6ZSBwb2ludGVyIHRv
IHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLiBwQnVmZmVyU2l6ZSBtdXN0IG5vdCBiZSBOVUxMLgor
ICogQHBhcmFtIHBCdWZmZXJTaXplIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2Yg
SUNVIDUyLCB1c2UgTlVMTCBvciAxLjwvZW0+PGJyPgorICogIHBvaW50ZXIgdG8gc2l6ZSBvZiBh
bGxvY2F0ZWQgc3BhY2UuCiAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhl
IG9wZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCiAgKiAgQW4g
aW5mb3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5H
LAogICogIGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUgbmVjZXNzYXJ5LgpAQCAtNTAy
LDE0ICs1NDIsMTggQEAgdWNudl9zYWZlQ2xvbmUoY29uc3QgVUNvbnZlcnRlciAqY252LAogICAg
ICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAqcEJ1ZmZlclNpemUsIAogICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAgICAgICAqc3RhdHVzKTsKIAorI2lmbmRlZiBVX0hJREVfREVQUkVDQVRF
RF9BUEkKKwogLyoqCiAgKiBcZGVmIFVfQ05WX1NBRkVDTE9ORV9CVUZGRVJTSVpFCiAgKiBEZWZp
bml0aW9uIG9mIGEgYnVmZmVyIHNpemUgdGhhdCBpcyBkZXNpZ25lZCB0byBiZSBsYXJnZSBlbm91
Z2ggZm9yCiAgKiBjb252ZXJ0ZXJzIHRvIGJlIGNsb25lZCB3aXRoIHVjbnZfc2FmZUNsb25lKCku
Ci0gKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBkZXByZWNhdGVkIElDVSA1Mi4gRG8gbm90IHJlbHkg
b24gdWNudl9zYWZlQ2xvbmUoKSBjbG9uaW5nIGludG8gYW55IHByb3ZpZGVkIGJ1ZmZlci4KICAq
LwogI2RlZmluZSBVX0NOVl9TQUZFQ0xPTkVfQlVGRkVSU0laRSAgMTAyNAogCisjZW5kaWYgLyog
VV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKIC8qKgogICogRGVsZXRlcyB0aGUgdW5pY29kZSBj
b252ZXJ0ZXIgYW5kIHJlbGVhc2VzIHJlc291cmNlcyBhc3NvY2lhdGVkCiAgKiB3aXRoIGp1c3Qg
dGhpcyBpbnN0YW5jZS4KQEAgLTE4MjEsNiArMTg2NSw3IEBAIHVjbnZfZ2V0Q2Fub25pY2FsTmFt
ZShjb25zdCBjaGFyICphbGlhcywgY29uc3QgY2hhciAqc3RhbmRhcmQsIFVFcnJvckNvZGUgKnBF
cnJvCiBVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCiB1Y252X2dldERlZmF1bHROYW1l
KHZvaWQpOwogCisjaWZuZGVmIFVfSElERV9TWVNURU1fQVBJCiAvKioKICAqIFRoaXMgZnVuY3Rp
b24gaXMgbm90IHRocmVhZCBzYWZlLiBETyBOT1QgY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gQU5Z
IElDVQogICogZnVuY3Rpb24gaXMgYmVpbmcgdXNlZCBmcm9tIG1vcmUgdGhhbiBvbmUgdGhyZWFk
ISBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlCkBAIC0xODM5LDYgKzE4ODQsNyBAQCB1Y252X2dldERl
ZmF1bHROYW1lKHZvaWQpOwogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgogdWNudl9zZXRE
ZWZhdWx0TmFtZShjb25zdCBjaGFyICpuYW1lKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9B
UEkgKi8KIAogLyoqCiAgKiBGaXhlcyB0aGUgYmFja3NsYXNoIGNoYXJhY3RlciBtaXNtYXBwaW5n
LiAgRm9yIGV4YW1wbGUsIGluIFNKSVMsIHRoZSBiYWNrc2xhc2ggCkBAIC0xOTE4LDM0ICsxOTY0
LDcgQEAgdWNudl91c2VzRmFsbGJhY2soY29uc3QgVUNvbnZlcnRlciAqY252KTsKICAqIGluc3Rl
YWQgb2YgdGhlIGlucHV0IHNpZ25hdHVyZSBieXRlcy4KICAqIDxwPgogICogVXNhZ2U6Ci0gKiBA
Y29kZSAgICAgCi0gKiAgICAgIFVFcnJvckNvZGUgZXJyID0gVV9aRVJPX0VSUk9SOwotICogICAg
ICBjaGFyIGlucHV0W10gPSB7ICdceEVGJywnXHhCQicsICdceEJGJywnXHg0MScsJ1x4NDInLCdc
eDQzJyB9OwotICogICAgICBpbnQzMl90IHNpZ25hdHVyZUxlbmd0aCA9IDA7Ci0gKiAgICAgIGNo
YXIgKmVuY29kaW5nID0gdWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKGlucHV0LHNpemVvZihp
bnB1dCksJnNpZ25hdHVyZUxlbmd0aCwmZXJyKTsKLSAqICAgICAgVUNvbnZlcnRlciAqY29udiA9
IE5VTEw7Ci0gKiAgICAgIFVDaGFyIG91dHB1dFsxMDBdOwotICogICAgICBVQ2hhciAqdGFyZ2V0
ID0gb3V0cHV0LCAqb3V0OwotICogICAgICBjaGFyICpzb3VyY2UgPSBpbnB1dDsKLSAqICAgICAg
aWYoZW5jb2RpbmchPU5VTEwgJiYgVV9TVUNDRVNTKGVycikpewotICogICAgICAgICAgLy8gc2hv
dWxkIHNpZ25hdHVyZSBiZSBkaXNjYXJkZWQgPwotICogICAgICAgICAgY29udiA9IHVjbnZfb3Bl
bihlbmNvZGluZywgJmVycik7Ci0gKiAgICAgICAgICAvLyBkbyB0aGUgY29udmVyc2lvbgotICog
ICAgICAgICAgdWNudl90b1VuaWNvZGUoY29udiwKLSAqICAgICAgICAgICAgICAgICAgICAgICAg
IHRhcmdldCwgb3V0cHV0ICsgc2l6ZW9mKG91dHB1dCkvVV9TSVpFT0ZfVUNIQVIsCi0gKiAgICAg
ICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIGlucHV0ICsgc2l6ZW9mKGlucHV0KSwKLSAqICAg
ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIFRSVUUsICZlcnIpOwotICogICAgICAgICAgb3V0
ID0gb3V0cHV0OwotICogICAgICAgICAgaWYgKGRpc2NhcmRTaWduYXR1cmUpewotICogICAgICAg
ICAgICAgICsrb3V0OyAvLyBpZ25vcmUgaW5pdGlhbCBVK0ZFRkYKLSAqICAgICAgICAgIH0KLSAq
ICAgICAgICAgIHdoaWxlKG91dCAhPSB0YXJnZXQpIHsKLSAqICAgICAgICAgICAgICBwcmludGYo
IiUwNHggIiwgKm91dCsrKTsKLSAqICAgICAgICAgIH0KLSAqICAgICAgICAgIHB1dHMoIiIpOwot
ICogICAgICB9Ci0gKiAgICAgCi0gKiBAZW5kY29kZQorICogXHNuaXBwZXQgc2FtcGxlcy91Y252
L2NvbnZzYW1wLmNwcCB1Y252X2RldGVjdFVuaWNvZGVTaWduYXR1cmUKICAqCiAgKiBAcGFyYW0g
c291cmNlICAgICAgICAgICAgVGhlIHNvdXJjZSBzdHJpbmcgaW4gd2hpY2ggdGhlIHNpZ25hdHVy
ZSBzaG91bGQgYmUgZGV0ZWN0ZWQuCiAgKiBAcGFyYW0gc291cmNlTGVuZ3RoICAgICAgTGVuZ3Ro
IG9mIHRoZSBpbnB1dCBzdHJpbmcsIG9yIC0xIGlmIHRlcm1pbmF0ZWQgd2l0aCBhIE5VTCBieXRl
LgpAQCAtMTk5MSw2ICsyMDEwLDI0IEBAIHVjbnZfZnJvbVVDb3VudFBlbmRpbmcoY29uc3QgVUNv
bnZlcnRlciogY252LCBVRXJyb3JDb2RlKiBzdGF0dXMpOwogVV9TVEFCTEUgaW50MzJfdCBVX0VY
UE9SVDIKIHVjbnZfdG9VQ291bnRQZW5kaW5nKGNvbnN0IFVDb252ZXJ0ZXIqIGNudiwgVUVycm9y
Q29kZSogc3RhdHVzKTsKIAorLyoqCisgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjaGFy
c2V0IG9mIHRoZSBjb252ZXJ0ZXIgaGFzIGEgZml4ZWQgbnVtYmVyIG9mIGJ5dGVzCisgKiBwZXIg
Y2hhcnNldCBjaGFyYWN0ZXIuCisgKiBBbiBleGFtcGxlIG9mIHRoaXMgYXJlIGNvbnZlcnRlcnMg
dGhhdCBhcmUgb2YgdGhlIHR5cGUgVUNOVl9TQkNTIG9yIFVDTlZfREJDUy4KKyAqIEFub3RoZXIg
ZXhhbXBsZSBpcyBVVEYtMzIgd2hpY2ggaXMgYWx3YXlzIDQgYnl0ZXMgcGVyIGNoYXJhY3Rlci4K
KyAqIEEgVW5pY29kZSBjb2RlIHBvaW50IG1heSBiZSByZXByZXNlbnRlZCBieSBtb3JlIHRoYW4g
b25lIFVURi04IG9yIFVURi0xNiBjb2RlIHVuaXQKKyAqIGJ1dCBhIFVURi0zMiBjb252ZXJ0ZXIg
ZW5jb2RlcyBlYWNoIGNvZGUgcG9pbnQgd2l0aCA0IGJ5dGVzLgorICogTm90ZTogVGhpcyBtZXRo
b2QgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNo
YXJzZXQgaGFzIGEKKyAqIGZpeGVkIHJhdGlvIG9mIGJ5dGVzIHRvIFVuaWNvZGUgY29kZXMgPGk+
dW5pdHM8L2k+IGZvciBhbnkgcGFydGljdWxhciBVbmljb2RlIGVuY29kaW5nIGZvcm0uCisgKiBG
QUxTRSBpcyByZXR1cm5lZCB3aXRoIHRoZSBVRXJyb3JDb2RlIGlmIGVycm9yIG9jY3VycyBvciBj
bnYgaXMgTlVMTC4KKyAqIEBwYXJhbSBjbnYgICAgICAgVGhlIGNvbnZlcnRlciB0byBiZSB0ZXN0
ZWQKKyAqIEBwYXJhbSBzdGF0dXMgICAgSUNVIGVycm9yIGNvZGUgaW4vb3V0IHBhcmFtdGVyCisg
KiBAcmV0dXJuIFRSVUUgaWYgdGhlIGNvbnZlcnRlciBpcyBmaXhlZC13aWR0aAorICogQHN0YWJs
ZSBJQ1UgNC44CisgKi8KK1VfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgordWNudl9pc0ZpeGVkV2lk
dGgoVUNvbnZlcnRlciAqY252LCBVRXJyb3JDb2RlICpzdGF0dXMpOworCiAjZW5kaWYKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y29sLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y29sLmgKaW5kZXggNGE0Y2Q2MDZlOGE3NzNkYmIxZTg3
ZGVlNGMxMDljZGFkNTExZTZkNy4uNWE0NTliNTJhZjRhOWZkNzY4NDAwNWM3ODlhYzM1NDNlOTI4
ZDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNvbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjb2wuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCi0qIENvcHlyaWdodCAoYykgMTk5Ni0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisqIENvcHly
aWdodCAoYykgMTk5Ni0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCiAqLwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgInVuaWNvZGUvcGFyc2Vl
cnIuaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vsb2MuaCIKICNpbmNsdWRlICJ1bmljb2RlL3VzZXQu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzY3JpcHQuaCIKIAogLyoqCiAgKiBcZmlsZQpAQCAtNjMs
MTIgKzY0LDEyIEBAIHR5cGVkZWYgc3RydWN0IFVDb2xsYXRvciBVQ29sbGF0b3I7CiAKIC8qKgog
ICogVUNPTF9MRVNTIGlzIHJldHVybmVkIGlmIHNvdXJjZSBzdHJpbmcgaXMgY29tcGFyZWQgdG8g
YmUgbGVzcyB0aGFuIHRhcmdldAotICogc3RyaW5nIGluIHRoZSB1X3N0cmNvbGwoKSBtZXRob2Qu
CisgKiBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29sbCgpIG1ldGhvZC4KICAqIFVDT0xfRVFVQUwg
aXMgcmV0dXJuZWQgaWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBlcXVhbCB0byB0
YXJnZXQKLSAqIHN0cmluZyBpbiB0aGUgdV9zdHJjb2xsKCkgbWV0aG9kLgorICogc3RyaW5nIGlu
IHRoZSB1Y29sX3N0cmNvbGwoKSBtZXRob2QuCiAgKiBVQ09MX0dSRUFURVIgaXMgcmV0dXJuZWQg
aWYgc291cmNlIHN0cmluZyBpcyBjb21wYXJlZCB0byBiZSBncmVhdGVyIHRoYW4KLSAqIHRhcmdl
dCBzdHJpbmcgaW4gdGhlIHVfc3RyY29sbCgpIG1ldGhvZC4KLSAqIEBzZWUgdV9zdHJjb2xsKCkK
KyAqIHRhcmdldCBzdHJpbmcgaW4gdGhlIHVjb2xfc3RyY29sbCgpIG1ldGhvZC4KKyAqIEBzZWUg
dWNvbF9zdHJjb2xsKCkKICAqIDxwPgogICogUG9zc2libGUgdmFsdWVzIGZvciBhIGNvbXBhcmlz
b24gcmVzdWx0IAogICogQHN0YWJsZSBJQ1UgMi4wCkBAIC0xMzIsMTggKzEzMyw3NiBAQCB0eXBl
ZGVmIGVudW0gewogCiB9IFVDb2xBdHRyaWJ1dGVWYWx1ZTsKIAotLyoqIEVudW0gY29udGFpbmlu
ZyB0aGUgY29kZXMgZm9yIHJlb3JkZXJpbmcgc2VnbWVudHMgb2YgdGhlIGNvbGxhdGlvbiB0YWJs
ZSB0aGF0IGFyZSBub3Qgc2NyaXB0Ci0gKiAgY29kZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMg
YXJlIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgc2NyaXB0IGNvZGVzLgotICog
IEBpbnRlcm5hbAorLyoqCisgKiBFbnVtIGNvbnRhaW5pbmcgdGhlIGNvZGVzIGZvciByZW9yZGVy
aW5nIHNlZ21lbnRzIG9mIHRoZSBjb2xsYXRpb24gdGFibGUgdGhhdCBhcmUgbm90IHNjcmlwdAor
ICogY29kZXMuIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIHRvIGJlIHVzZWQgaW4gY29uanVu
Y3Rpb24gd2l0aCB0aGUgc2NyaXB0IGNvZGVzLgorICogQHNlZSB1Y29sX2dldFJlb3JkZXJDb2Rl
cworICogQHNlZSB1Y29sX3NldFJlb3JkZXJDb2RlcworICogQHNlZSB1Y29sX2dldEVxdWl2YWxl
bnRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAog
ICovCi10eXBlZGVmIGVudW0gewotICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFICAgICAgICAg
ID0gMHgxMDAwLAotICAgIFVDT0xfUkVPUkRFUl9DT0RFX0ZJUlNUICAgICAgICAgID0gVUNPTF9S
RU9SREVSX0NPREVfU1BBQ0UsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfUFVOQ1RVQVRJT04gICAg
PSAweDEwMDEsCi0gICAgVUNPTF9SRU9SREVSX0NPREVfU1lNQk9MICAgICAgICAgPSAweDEwMDIs
Ci0gICAgVUNPTF9SRU9SREVSX0NPREVfQ1VSUkVOQ1kgICAgICAgPSAweDEwMDMsCi0gICAgVUNP
TF9SRU9SREVSX0NPREVfRElHSVQgICAgICAgICAgPSAweDEwMDQsCi0gICAgVUNPTF9SRU9SREVS
X0NPREVfTElNSVQgICAgICAgICAgPSAweDEwMDUKKyB0eXBlZGVmIGVudW0geworICAgLyoqCisg
ICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQgaXMgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBkZWZhdWx0CisgICAgKiByZW9yZGVyaW5nIGNvZGVzIGZvciBhIGxvY2FsZS4KKyAgICAqIEBz
dGFibGUgSUNVIDQuOAorICAgICovICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfREVGQVVMVCAg
ICAgICA9IC0xLAorICAgLyoqCisgICAgKiBBIHNwZWNpYWwgcmVvcmRlcmluZyBjb2RlIHRoYXQg
aXMgdXNlZCB0byBzcGVjaWZ5IG5vIHJlb3JkZXJpbmcgY29kZXMuCisgICAgKiBAc3RhYmxlIElD
VSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX05PTkUgICAgICAgICAgPSBV
U0NSSVBUX1VOS05PV04sCisgICAvKioKKyAgICAqIEEgc3BlY2lhbCByZW9yZGVyaW5nIGNvZGUg
dGhhdCBpcyB1c2VkIHRvIHNwZWNpZnkgYWxsIG90aGVyIGNvZGVzIHVzZWQgZm9yCisgICAgKiBy
ZW9yZGVyaW5nIGV4Y2VwdCBmb3IgdGhlIGNvZGVzIGxpc2VkIGFzIFVDb2xSZW9yZGVyQ29kZSB2
YWx1ZXMgYW5kIHRob3NlCisgICAgKiBsaXN0ZWQgZXhwbGljaXRseSBpbiBhIHJlb3JkZXJpbmcu
CisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RF
X09USEVSUyAgICAgICAgPSBVU0NSSVBUX1VOS05PV04sCisgICAvKioKKyAgICAqIENoYXJhY3Rl
cnMgd2l0aCB0aGUgc3BhY2UgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8g
dGhlIHJ1bGUgdmFsdWUgInNwYWNlIi4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAg
IAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NQQUNFICAgICAgICAgPSAweDEwMDAsCisgICAvKioK
KyAgICAqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgZW51bWVyYXRpb24gb2YgcmVvcmRlcmluZyBn
cm91cHMuIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBpbgorICAgICogcmFuZ2UgY2hlY2tpbmcg
YW5kIGVudW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNvZGVzLgorICAgICogQHN0YWJsZSBJQ1Ug
NC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVSX0NPREVfRklSU1QgICAgICAgICA9IFVD
T0xfUkVPUkRFUl9DT0RFX1NQQUNFLAorICAgLyoqCisgICAgKiBDaGFyYWN0ZXJzIHdpdGggdGhl
IHB1bmN0dWF0aW9uIHByb3BlcnR5LgorICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBy
dWxlIHZhbHVlICJwdW5jdCIuCisgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAqLyAgICAKKyAg
ICBVQ09MX1JFT1JERVJfQ09ERV9QVU5DVFVBVElPTiAgID0gMHgxMDAxLAorICAgLyoqCisgICAg
KiBDaGFyYWN0ZXJzIHdpdGggdGhlIHN5bWJvbCBwcm9wZXJ0eS4KKyAgICAqIFRoaXMgaXMgZXF1
aXZhbGVudCB0byB0aGUgcnVsZSB2YWx1ZSAic3ltYm9sIi4KKyAgICAqIEBzdGFibGUgSUNVIDQu
OAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RFX1NZTUJPTCAgICAgICAgPSAweDEw
MDIsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0aGUgY3VycmVuY3kgcHJvcGVydHku
CisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUgdmFsdWUgImN1cnJlbmN5Ii4K
KyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVDT0xfUkVPUkRFUl9DT0RF
X0NVUlJFTkNZICAgICAgPSAweDEwMDMsCisgICAvKioKKyAgICAqIENoYXJhY3RlcnMgd2l0aCB0
aGUgZGlnaXQgcHJvcGVydHkuCisgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIHJ1bGUg
dmFsdWUgImRpZ2l0Ii4KKyAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICovICAgIAorICAgIFVD
T0xfUkVPUkRFUl9DT0RFX0RJR0lUICAgICAgICAgPSAweDEwMDQsCisgICAvKioKKyAgICAqIFRo
ZSBsaW1pdCBvZiB0aGUgcmVvcmRlciBjb2Rlcy4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIGlu
IHJhbmdlIGNoZWNraW5nIAorICAgICogYW5kIGVudW1lcmF0aW9uIG9mIHRoZSByZW9yZGVyIGNv
ZGVzLgorICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgKi8gICAgCisgICAgVUNPTF9SRU9SREVS
X0NPREVfTElNSVQgICAgICAgICA9IDB4MTAwNQogfSBVQ29sUmVvcmRlckNvZGU7CiAKIC8qKgpA
QCAtMTc5LDEwICsyMzgsMTIgQEAgdHlwZWRlZiBVQ29sQXR0cmlidXRlVmFsdWUgVUNvbGxhdGlv
blN0cmVuZ3RoOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAg
IC8qKiBBdHRyaWJ1dGUgZm9yIGRpcmVjdGlvbiBvZiBzZWNvbmRhcnkgd2VpZ2h0cyAtIHVzZWQg
aW4gRnJlbmNoLgorICAgICAvKiogQXR0cmlidXRlIGZvciBkaXJlY3Rpb24gb2Ygc2Vjb25kYXJ5
IHdlaWdodHMgLSB1c2VkIGluIENhbmFkaWFuIEZyZW5jaC4KICAgICAgICogQWNjZXB0YWJsZSB2
YWx1ZXMgYXJlIFVDT0xfT04sIHdoaWNoIHJlc3VsdHMgaW4gc2Vjb25kYXJ5IHdlaWdodHMKICAg
ICAgICogYmVpbmcgY29uc2lkZXJlZCBiYWNrd2FyZHMgYW5kIFVDT0xfT0ZGIHdoaWNoIHRyZWF0
cyBzZWNvbmRhcnkKLSAgICAgICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuKi8K
KyAgICAgICogd2VpZ2h0cyBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuCisgICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9GUkVOQ0hfQ09MTEFUSU9OLCAKICAgICAg
LyoqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMuCiAgICAgICAqIEFj
Y2VwdGFibGUgdmFsdWVzIGFyZSBVQ09MX05PTl9JR05PUkFCTEUgKGRlZmF1bHQpCkBAIC0xOTEs
MTQgKzI1MiwxOCBAQCB0eXBlZGVmIGVudW0gewogICAgICAgKiBhbmQgVUNPTF9TSElGVEVEIHdo
aWNoIGNhdXNlcyBjb2RlcG9pbnRzIHdpdGggcHJpbWFyeSAKICAgICAgICogd2VpZ2h0cyB0aGF0
IGFyZSBlcXVhbCBvciBiZWxvdyB0aGUgdmFyaWFibGUgdG9wIHZhbHVlCiAgICAgICAqIHRvIGJl
IGlnbm9yZWQgb24gcHJpbWFyeSBsZXZlbCBhbmQgbW92ZWQgdG8gdGhlIHF1YXRlcm5hcnkgCi0g
ICAgICAqIGxldmVsLiovCisgICAgICAqIGxldmVsLgorICAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgICovCiAgICAgIFVDT0xfQUxURVJOQVRFX0hBTkRMSU5HLCAKICAgICAgLyoqIENvbnRy
b2xzIHRoZSBvcmRlcmluZyBvZiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLgogICAgICAg
KiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgVUNPTF9PRkYgKGRlZmF1bHQpLCB3aGljaCBvcmRlcnMK
ICAgICAgICogdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycyBpbiBhY2NvcmRhbmNlIHRvIHRo
ZWlyIHRlcnRpYXJ5CiAgICAgICAqIHdlaWdodHMsIFVDT0xfVVBQRVJfRklSU1Qgd2hpY2ggZm9y
Y2VzIHVwcGVyIGNhc2UgbGV0dGVycyB0byAKICAgICAgICogc29ydCBiZWZvcmUgbG93ZXIgY2Fz
ZSBsZXR0ZXJzLCBhbmQgVUNPTF9MT1dFUl9GSVJTVCB3aGljaCBkb2VzIAotICAgICAgKiB0aGUg
b3Bwb3NpdGUuICovCisgICAgICAqIHRoZSBvcHBvc2l0ZS4KKyAgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICAqLwogICAgICBVQ09MX0NBU0VfRklSU1QsIAogICAgICAvKiogQ29udHJvbHMg
d2hldGhlciBhbiBleHRyYSBjYXNlIGxldmVsIChwb3NpdGlvbmVkIGJlZm9yZSB0aGUgdGhpcmQK
ICAgICAgICogbGV2ZWwpIGlzIGdlbmVyYXRlZCBvciBub3QuIEFjY2VwdGFibGUgdmFsdWVzIGFy
ZSBVQ09MX09GRiAoZGVmYXVsdCksIApAQCAtMjA2LDcgKzI3MSw5IEBAIHR5cGVkZWYgZW51bSB7
CiAgICAgICAqIGxldmVsIHRvIGJlIGdlbmVyYXRlZC4gQ29udGVudHMgb2YgdGhlIGNhc2UgbGV2
ZWwgYXJlIGFmZmVjdGVkIGJ5CiAgICAgICAqIHRoZSB2YWx1ZSBvZiBVQ09MX0NBU0VfRklSU1Qg
YXR0cmlidXRlLiBBIHNpbXBsZSB3YXkgdG8gaWdub3JlIAogICAgICAgKiBhY2NlbnQgZGlmZmVy
ZW5jZXMgaW4gYSBzdHJpbmcgaXMgdG8gc2V0IHRoZSBzdHJlbmd0aCB0byBVQ09MX1BSSU1BUlkK
LSAgICAgICogYW5kIGVuYWJsZSBjYXNlIGxldmVsLiAqLworICAgICAgKiBhbmQgZW5hYmxlIGNh
c2UgbGV2ZWwuCisgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgKi8KICAgICAgVUNPTF9D
QVNFX0xFVkVMLAogICAgICAvKiogQ29udHJvbHMgd2hldGhlciB0aGUgbm9ybWFsaXphdGlvbiBj
aGVjayBhbmQgbmVjZXNzYXJ5IG5vcm1hbGl6YXRpb25zCiAgICAgICAqIGFyZSBwZXJmb3JtZWQu
IFdoZW4gc2V0IHRvIFVDT0xfT0ZGIChkZWZhdWx0KSBubyBub3JtYWxpemF0aW9uIGNoZWNrCkBA
IC0yMTQsOSArMjgxLDEzIEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICAqIGlucHV0IGRhdGEgaXMg
aW4gc28tY2FsbGVkIEZDRCBmb3JtIChzZWUgdXNlcnMgbWFudWFsIGZvciBtb3JlIGluZm8pLgog
ICAgICAgKiBXaGVuIHNldCB0byBVQ09MX09OLCBhbiBpbmNyZW1lbnRhbCBjaGVjayBpcyBwZXJm
b3JtZWQgdG8gc2VlIHdoZXRoZXIKICAgICAgICogdGhlIGlucHV0IGRhdGEgaXMgaW4gdGhlIEZD
RCBmb3JtLiBJZiB0aGUgZGF0YSBpcyBub3QgaW4gdGhlIEZDRCBmb3JtLAotICAgICAgKiBpbmNy
ZW1lbnRhbCBORkQgbm9ybWFsaXphdGlvbiBpcyBwZXJmb3JtZWQuICovCisgICAgICAqIGluY3Jl
bWVudGFsIE5GRCBub3JtYWxpemF0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX05PUk1BTElaQVRJT05fTU9ERSwgCi0gICAgIC8q
KiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUgYXR0cmlidXRlICovCisgICAg
IC8qKiBBbiBhbGlhcyBmb3IgVUNPTF9OT1JNQUxJWkFUSU9OX01PREUgYXR0cmlidXRlLgorICAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfREVDT01QT1NJVElPTl9N
T0RFID0gVUNPTF9OT1JNQUxJWkFUSU9OX01PREUsCiAgICAgIC8qKiBUaGUgc3RyZW5ndGggYXR0
cmlidXRlLiBDYW4gYmUgZWl0aGVyIFVDT0xfUFJJTUFSWSwgVUNPTF9TRUNPTkRBUlksCiAgICAg
ICAqIFVDT0xfVEVSVElBUlksIFVDT0xfUVVBVEVSTkFSWSBvciBVQ09MX0lERU5USUNBTC4gVGhl
IHVzdWFsIHN0cmVuZ3RoCkBAIC0yMjcsMjAgKzI5OCwzNyBAQCB0eXBlZGVmIGVudW0gewogICAg
ICAgKiBVQ09MX0hJUkFHQU5BX1FVQVRFUk5BUlkgbW9kZSB0byBvbi4gT3RoZXJ3aXNlLCBxdWF0
ZXJuYXJ5IGxldmVsCiAgICAgICAqIGlzIGFmZmVjdGVkIG9ubHkgYnkgdGhlIG51bWJlciBvZiBu
b24gaWdub3JhYmxlIGNvZGUgcG9pbnRzIGluCiAgICAgICAqIHRoZSBzdHJpbmcuIElkZW50aWNh
bCBzdHJlbmd0aCBpcyByYXJlbHkgdXNlZnVsLCBhcyBpdCBhbW91bnRzIAotICAgICAgKiB0byBj
b2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3RyaW5nLiAqLworICAgICAgKiB0byBj
b2RlcG9pbnRzIG9mIHRoZSBORkQgZm9ybSBvZiB0aGUgc3RyaW5nLgorICAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgICovCiAgICAgIFVDT0xfU1RSRU5HVEgsICAKKyNpZm5kZWYgVV9ISURF
X0RFUFJFQ0FURURfQVBJCiAgICAgIC8qKiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhdHRyaWJ1dGUg
cG9zaXRpb25zIEhpcmFnYW5hIGJlZm9yZSBhbGwgIAogICAgICAgKiBub24taWdub3JhYmxlcyBv
biBxdWF0ZXJuYXJ5IGxldmVsIFRoaXMgaXMgYSBzbmVha3kgd2F5IHRvIHByb2R1Y2UgSklTCi0g
ICAgICAqIHNvcnQgb3JkZXIgKi8KLSAgICAgVUNPTF9ISVJBR0FOQV9RVUFURVJOQVJZX01PREUs
CisgICAgICAqIHNvcnQgb3JkZXIuCisgICAgICAqCisgICAgICAqIFRoaXMgYXR0cmlidXRlIGlz
IGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCBvZiB0aGUgQ0xEUiBKYXBhbmVzZSB0YWlsb3Jpbmcu
CisgICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBjaGFuZ2UgdG8gdXNlIGEgZGlmZmVy
ZW50IG1lY2hhbmlzbQorICAgICAgKiB0byBhY2hpZXZlIHRoZSBzYW1lIEphcGFuZXNlIHNvcnQg
b3JkZXIuCisgICAgICAqIFNpbmNlIElDVSA1MCwgdGhpcyBhdHRyaWJ1dGUgaXMgbm90IHNldHRh
YmxlIGFueSBtb3JlIHZpYSBBUEkgZnVuY3Rpb25zLgorICAgICAgKiBAZGVwcmVjYXRlZCBJQ1Ug
NTAgSW1wbGVtZW50YXRpb24gZGV0YWlsLCBjYW5ub3QgYmUgc2V0IHZpYSBBUEksIG1pZ2h0IGJl
IHJlbW92ZWQgZnJvbSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICovCisgICAgIFVDT0xfSElSQUdB
TkFfUVVBVEVSTkFSWV9NT0RFID0gVUNPTF9TVFJFTkdUSCArIDEsCisjZW5kaWYgIC8qIFVfSElE
RV9ERVBSRUNBVEVEX0FQSSAqLwogICAgICAvKiogV2hlbiB0dXJuZWQgb24sIHRoaXMgYXR0cmli
dXRlIGdlbmVyYXRlcyBhIGNvbGxhdGlvbiBrZXkKICAgICAgICogZm9yIHRoZSBudW1lcmljIHZh
bHVlIG9mIHN1YnN0cmluZ3Mgb2YgZGlnaXRzLgogICAgICAgKiBUaGlzIGlzIGEgd2F5IHRvIGdl
dCAnMTAwJyB0byBzb3J0IEFGVEVSICcyJy4gTm90ZSB0aGF0IHRoZSBsb25nZXN0CiAgICAgICAq
IGRpZ2l0IHN1YnN0cmluZyB0aGF0IGNhbiBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbGxhdGlv
biBlbGVtZW50IGlzCiAgICAgICAqIDI1NCBkaWdpdHMgKG5vdCBjb3VudGluZyBsZWFkaW5nIHpl
cm9zKS4gSWYgYSBkaWdpdCBzdWJzdHJpbmcgaXMKICAgICAgICogbG9uZ2VyIHRoYW4gdGhhdCwg
dGhlIGRpZ2l0cyBiZXlvbmQgdGhlIGxpbWl0IHdpbGwgYmUgdHJlYXRlZCBhcyBhCi0gICAgICAq
IHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xs
YXRpb24gZWxlbWVudC4gKi8KLSAgICAgVUNPTF9OVU1FUklDX0NPTExBVElPTiwgCisgICAgICAq
IHNlcGFyYXRlIGRpZ2l0IHN1YnN0cmluZyBhc3NvY2lhdGVkIHdpdGggYSBzZXBhcmF0ZSBjb2xs
YXRpb24gZWxlbWVudC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAqLworICAgICBV
Q09MX05VTUVSSUNfQ09MTEFUSU9OID0gVUNPTF9TVFJFTkdUSCArIDIsIAorICAgICAvKioKKyAg
ICAgICogVGhlIG51bWJlciBvZiBVQ29sQXR0cmlidXRlIGNvbnN0YW50cy4KKyAgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICAqLwogICAgICBVQ09MX0FUVFJJQlVURV9DT1VOVAogfSBVQ29s
QXR0cmlidXRlOwogCkBAIC0yNDgsOSArMzM2LDE5IEBAIHR5cGVkZWYgZW51bSB7CiAgKiAgQHN0
YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gIC8qKiBSZXRyaWV2ZSB0YWlsb3Jp
bmcgb25seSAqLworICAvKioKKyAgICogUmV0cmlldmVzIHRoZSB0YWlsb3JpbmcgcnVsZXMgb25s
eS4KKyAgICogU2FtZSBhcyBjYWxsaW5nIHRoZSB2ZXJzaW9uIG9mIGdldFJ1bGVzKCkgd2l0aG91
dCBVQ29sUnVsZU9wdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwogICBVQ09MX1RB
SUxPUklOR19PTkxZLCAKLSAgLyoqIFJldHJpZXZlIFVDQSBydWxlcyBhbmQgdGFpbG9yaW5nICov
CisgIC8qKgorICAgKiBSZXRyaWV2ZXMgdGhlICJVQ0EgcnVsZXMiIGNvbmNhdGVuYXRlZCB3aXRo
IHRoZSB0YWlsb3JpbmcgcnVsZXMuCisgICAqIFRoZSAiVUNBIHJ1bGVzIiBhcmUgYW4gPGk+YXBw
cm94aW1hdGlvbjwvaT4gb2YgdGhlIHJvb3QgY29sbGF0b3IncyBzb3J0IG9yZGVyLgorICAgKiBU
aGV5IGFyZSBhbG1vc3QgbmV2ZXIgdXNlZCBvciB1c2VmdWwgYXQgcnVudGltZSBhbmQgY2FuIGJl
IHJlbW92ZWQgZnJvbSB0aGUgZGF0YS4KKyAgICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXBy
b2plY3Qub3JnL2NvbGxhdGlvbi9jdXN0b21pemF0aW9uI1RPQy1CdWlsZGluZy1vbi1FeGlzdGlu
Zy1Mb2NhbGVzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KICAgVUNPTF9GVUxMX1JVTEVT
IAogfSBVQ29sUnVsZU9wdGlvbiA7CiAKQEAgLTM0Nyw2ICs0NDUsNyBAQCB1Y29sX29wZW5Gcm9t
U2hvcnRTdHJpbmcoIGNvbnN0IGNoYXIgKmRlZmluaXRpb24sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVQYXJzZUVycm9yICpwYXJzZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpzdGF0dXMpOwogCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQog
LyoqCiAgKiBHZXQgYSBzZXQgY29udGFpbmluZyB0aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkg
dGhlIGNvbGxhdG9yLiBUaGUgc2V0IGluY2x1ZGVzCiAgKiBib3RoIHRoZSBVQ0EgY29udHJhY3Rp
b25zIGFuZCB0aGUgY29udHJhY3Rpb25zIGRlZmluZWQgYnkgdGhlIGNvbGxhdG9yLiBUaGlzIHNl
dApAQCAtMzY0LDYgKzQ2Myw3IEBAIFVfREVQUkVDQVRFRCBpbnQzMl90IFVfRVhQT1JUMgogdWNv
bF9nZXRDb250cmFjdGlvbnMoIGNvbnN0IFVDb2xsYXRvciAqY29sbCwKICAgICAgICAgICAgICAg
ICAgIFVTZXQgKmNvbnRzLAogICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsK
KyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCiAKIC8qKgogICogR2V0IGEgc2V0
IGNvbnRhaW5pbmcgdGhlIGV4cGFuc2lvbnMgZGVmaW5lZCBieSB0aGUgY29sbGF0b3IuIFRoZSBz
ZXQgaW5jbHVkZXMKQEAgLTQzNSw2ICs1MzUsMzMgQEAgdWNvbF9zdHJjb2xsKCAgICBjb25zdCAg
ICBVQ29sbGF0b3IgICAgKmNvbGwsCiAgICAgICAgIGNvbnN0ICAgIFVDaGFyICAgICAgICAqdGFy
Z2V0LAogICAgICAgICBpbnQzMl90ICAgICAgICAgICAgdGFyZ2V0TGVuZ3RoKTsKIAorLyoqIAor
KiBDb21wYXJlIHR3byBzdHJpbmdzIGluIFVURi04LiAKKyogVGhlIHN0cmluZ3Mgd2lsbCBiZSBj
b21wYXJlZCB1c2luZyB0aGUgb3B0aW9ucyBhbHJlYWR5IHNwZWNpZmllZC4gCisqIE5vdGU6IFdo
ZW4gaW5wdXQgc3RyaW5nIGNvbnRhaW5zIG1hbGZvcm1lZCBhIFVURi04IGJ5dGUgc2VxdWVuY2Us
IAorKiB0aGlzIGZ1bmN0aW9uIHRyZWF0cyB0aGVzZSBieXRlcyBhcyBSRVBMQUNFTUVOVCBDSEFS
QUNURVIgKFUrRkZGRCkuCisqIEBwYXJhbSBjb2xsIFRoZSBVQ29sbGF0b3IgY29udGFpbmluZyB0
aGUgY29tcGFyaXNvbiBydWxlcy4gCisqIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBVVEYtOCBz
dHJpbmcuIAorKiBAcGFyYW0gc291cmNlTGVuZ3RoIFRoZSBsZW5ndGggb2Ygc291cmNlLCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuIAorKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgVVRGLTgg
c3RyaW5nLiAKKyogQHBhcmFtIHRhcmdldExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRhcmdldCwgb3Ig
LTEgaWYgbnVsbC10ZXJtaW5hdGVkLiAKKyogQHBhcmFtIHN0YXR1cyBBIHBvaW50ZXIgdG8gYW4g
VUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMgCisqIEByZXR1cm4gVGhlIHJlc3VsdCBv
ZiBjb21wYXJpbmcgdGhlIHN0cmluZ3M7IG9uZSBvZiBVQ09MX0VRVUFMLCAKKyogVUNPTF9HUkVB
VEVSLCBVQ09MX0xFU1MgCisqIEBzZWUgdWNvbF9ncmVhdGVyIAorKiBAc2VlIHVjb2xfZ3JlYXRl
ck9yRXF1YWwgCisqIEBzZWUgdWNvbF9lcXVhbCAKKyogQHN0YWJsZSBJQ1UgNTAgCisqLyAKK1Vf
U1RBQkxFIFVDb2xsYXRpb25SZXN1bHQgVV9FWFBPUlQyCit1Y29sX3N0cmNvbGxVVEY4KAorICAg
ICAgICBjb25zdCBVQ29sbGF0b3IgKmNvbGwsCisgICAgICAgIGNvbnN0IGNoYXIgICAgICAqc291
cmNlLAorICAgICAgICBpbnQzMl90ICAgICAgICAgc291cmNlTGVuZ3RoLAorICAgICAgICBjb25z
dCBjaGFyICAgICAgKnRhcmdldCwKKyAgICAgICAgaW50MzJfdCAgICAgICAgIHRhcmdldExlbmd0
aCwKKyAgICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOworCiAvKioKICAqIERldGVybWlu
ZSBpZiBvbmUgc3RyaW5nIGlzIGdyZWF0ZXIgdGhhbiBhbm90aGVyLgogICogVGhpcyBmdW5jdGlv
biBpcyBlcXVpdmFsZW50IHRvIHtAbGluayAjdWNvbF9zdHJjb2xsIH0gPT0gVUNPTF9HUkVBVEVS
CkBAIC01MzYsMzcgKzY2Myw5MCBAQCB1Y29sX3NldFN0cmVuZ3RoKFVDb2xsYXRvciAqY29sbCwK
ICAgICAgICAgICAgICAgICAgVUNvbGxhdGlvblN0cmVuZ3RoIHN0cmVuZ3RoKTsKIAogLyoqCi0g
KiBHZXQgdGhlIGN1cnJlbnQgcmVvcmRlcmluZyBvZiBzY3JpcHRzIChpZiBvbmUgaGFzIGJlZW4g
c2V0KS4KKyAqIFJldHJpZXZlcyB0aGUgcmVvcmRlcmluZyBjb2RlcyBmb3IgdGhpcyBjb2xsYXRv
ci4KKyAqIFRoZXNlIHJlb3JkZXJpbmcgY29kZXMgYXJlIGEgY29tYmluYXRpb24gb2YgVVNjcmlw
dCBjb2RlcyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuCiAgKiBAcGFyYW0gY29sbCBUaGUg
VUNvbGxhdG9yIHRvIHF1ZXJ5LgogICogQHBhcmFtIGRlc3QgVGhlIGFycmF5IHRvIGZpbGwgd2l0
aCB0aGUgc2NyaXB0IG9yZGVyaW5nLgotICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgbGVuZ3Ro
IG9mIGRlc3QuIElmIGl0IGlzIDAsIHRoZW4gZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0
aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgotICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24g
Y2FsbC4KLSAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgb2YgdGhlIHNjcmlwdCBv
cmRlcmluZy4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIGxlbmd0aCBvZiBkZXN0LiBJZiBp
dCBpcyAwLCB0aGVuIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiAKKyAqIHdpbGwg
b25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhvdXQgd3JpdGluZyBhbnkg
b2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgorICogQHBhcmFtIHBFcnJvckNv
ZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2gg
bXVzdCBub3QgaW5kaWNhdGUgYSAKKyAqIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJlb3JkZXJpbmcgY29kZXMgd3JpdHRlbiB0byB0
aGUgZGVzdCBhcnJheS4KICAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29kZXMKLSAqIEBpbnRlcm5h
bCAKKyAqIEBzZWUgdWNvbF9nZXRFcXVpdmFsZW50UmVvcmRlckNvZGVzCisgKiBAc2VlIFVTY3Jp
cHRDb2RlCisgKiBAc2VlIFVDb2xSZW9yZGVyQ29kZQorICogQHN0YWJsZSBJQ1UgNC44CiAgKi8K
LVVfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JU
MiAKIHVjb2xfZ2V0UmVvcmRlckNvZGVzKGNvbnN0IFVDb2xsYXRvciogY29sbCwKICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCogZGVzdCwKICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBk
ZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OwotCi0vKioKLSAqIFNldCB0aGUgb3JkZXJpbmcgb2Ygc2NyaXB0cyBmb3IgdGhpcyBjb2xsYXRv
ci4KKy8qKiAKKyAqIFNldHMgdGhlIHJlb3JkZXJpbmcgY29kZXMgZm9yIHRoaXMgY29sbGF0b3Iu
CisgKiBDb2xsYXRpb24gcmVvcmRlcmluZyBhbGxvd3Mgc2NyaXB0cyBhbmQgc29tZSBvdGhlciBk
ZWZpbmVkIGJsb2NrcyBvZiBjaGFyYWN0ZXJzIAorICogdG8gYmUgbW92ZWQgcmVsYXRpdmUgdG8g
ZWFjaCBvdGhlciBhcyBhIGJsb2NrLiBUaGlzIHJlb3JkZXJpbmcgaXMgZG9uZSBvbiB0b3Agb2Yg
CisgKiB0aGUgRFVDRVQvQ0xEUiBzdGFuZGFyZCBjb2xsYXRpb24gb3JkZXIuIFJlb3JkZXJpbmcg
Y2FuIHNwZWNpZnkgZ3JvdXBzIHRvIGJlIHBsYWNlZCAKKyAqIGF0IHRoZSBzdGFydCBhbmQvb3Ig
dGhlIGVuZCBvZiB0aGUgY29sbGF0aW9uIG9yZGVyLiBUaGVzZSBncm91cHMgYXJlIHNwZWNpZmll
ZCB1c2luZworICogVVNjcmlwdCBjb2RlcyBhbmQgVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuCisg
KiA8cD5CeSBkZWZhdWx0LCByZW9yZGVyaW5nIGNvZGVzIHNwZWNpZmllZCBmb3IgdGhlIHN0YXJ0
IG9mIHRoZSBvcmRlciBhcmUgcGxhY2VkIGluIHRoZSAKKyAqIG9yZGVyIGdpdmVuIGFmdGVyIGEg
Z3JvdXAgb2YgInNwZWNpYWwiIG5vbi1zY3JpcHQgYmxvY2tzLiBUaGVzZSBzcGVjaWFsIGdyb3Vw
cyBvZiBjaGFyYWN0ZXJzIAorICogYXJlIHNwYWNlLCBwdW5jdHVhdGlvbiwgc3ltYm9sLCBjdXJy
ZW5jeSwgYW5kIGRpZ2l0LiBUaGVzZSBzcGVjaWFsIGdyb3VwcyBhcmUgcmVwcmVzZW50ZWQgd2l0
aAorICogVUNvbFJlb3JkZXJDb2RlIGVudHJpZXMuIFNjcmlwdCBncm91cHMgY2FuIGJlIGludGVy
bWluZ2xlZCB3aXRoIAorICogdGhlc2Ugc3BlY2lhbCBub24tc2NyaXB0IGJsb2NrcyBpZiB0aG9z
ZSBzcGVjaWFsIGJsb2NrcyBhcmUgZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gdGhlIHJlb3JkZXJp
bmcuCisgKiA8cD5UaGUgc3BlY2lhbCBjb2RlIE9USEVSUyBzdGFuZHMgZm9yIGFueSBzY3JpcHQg
dGhhdCBpcyBub3QgZXhwbGljaXRseSAKKyAqIG1lbnRpb25lZCBpbiB0aGUgbGlzdCBvZiByZW9y
ZGVyaW5nIGNvZGVzIGdpdmVuLiBBbnl0aGluZyB0aGF0IGlzIGFmdGVyIE9USEVSUworICogd2ls
bCBnbyBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHJlb3JkZXJpbmcgaW4gdGhlIG9yZGVyIGdpdmVu
LgorICogPHA+VGhlIHNwZWNpYWwgcmVvcmRlciBjb2RlIERFRkFVTFQgd2lsbCByZXNldCB0aGUg
cmVvcmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvcgorICogdG8gdGhlIGRlZmF1bHQgZm9yIHRoaXMg
Y29sbGF0b3IuIFRoZSBkZWZhdWx0IHJlb3JkZXJpbmcgbWF5IGJlIHRoZSBEVUNFVC9DTERSIG9y
ZGVyIG9yIG1heSBiZSBhIHJlb3JkZXJpbmcgdGhhdAorICogd2FzIHNwZWNpZmllZCB3aGVuIHRo
aXMgY29sbGF0b3Igd2FzIGNyZWF0ZWQgZnJvbSByZXNvdXJjZSBkYXRhIG9yIGZyb20gcnVsZXMu
IFRoZSAKKyAqIERFRkFVTFQgY29kZSA8Yj5tdXN0PC9iPiBiZSB0aGUgc29sZSBjb2RlIHN1cHBs
aWVkIHdoZW4gaXQgdXNlZC4gSWYgbm90CisgKiB0aGF0IHdpbGwgcmVzdWx0IGluIGFuIFVfSUxM
RUdBTF9BUkdVTUVOVF9FUlJPUiBiZWluZyBzZXQuCisgKiA8cD5UaGUgc3BlY2lhbCByZW9yZGVy
IGNvZGUgTk9ORSB3aWxsIHJlbW92ZSBhbnkgcmVvcmRlcmluZyBmb3IgdGhpcyBjb2xsYXRvci4K
KyAqIFRoZSByZXN1bHQgb2Ygc2V0dGluZyBubyByZW9yZGVyaW5nIHdpbGwgYmUgdG8gaGF2ZSB0
aGUgRFVDRVQvQ0xEUiBvcmRlcmluZyB1c2VkLiBUaGUgCisgKiBOT05FIGNvZGUgPGI+bXVzdDwv
Yj4gYmUgdGhlIHNvbGUgY29kZSBzdXBwbGllZCB3aGVuIGl0IHVzZWQuCiAgKiBAcGFyYW0gY29s
bCBUaGUgVUNvbGxhdG9yIHRvIHNldC4KLSAqIEBwYXJhbSByZW9yZGVyQ29kZXMgQW4gYXJyYXkg
b2Ygc2NyaXB0IGNvZGVzIGluIHRoZSBuZXcgb3JkZXIuCisgKiBAcGFyYW0gcmVvcmRlckNvZGVz
IEFuIGFycmF5IG9mIHNjcmlwdCBjb2RlcyBpbiB0aGUgbmV3IG9yZGVyLiBUaGlzIGNhbiBiZSBO
VUxMIGlmIHRoZSAKKyAqIGxlbmd0aCBpcyBhbHNvIHNldCB0byAwLiBBbiBlbXB0eSBhcnJheSB3
aWxsIGNsZWFyIGFueSByZW9yZGVyaW5nIGNvZGVzIG9uIHRoZSBjb2xsYXRvci4KICAqIEBwYXJh
bSByZW9yZGVyQ29kZXNMZW5ndGggVGhlIGxlbmd0aCBvZiByZW9yZGVyQ29kZXMuCi0gKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLCB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlv
biBjYWxsLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8g
YW4gZXJyb3IgY29kZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYQorICogZmFpbHVy
ZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCiAgKiBAc2VlIHVjb2xfZ2V0UmVvcmRlckNvZGVz
Ci0gKiBAaW50ZXJuYWwgCi0gKi8KLVVfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgCisgKiBAc2Vl
IHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcworICogQHNlZSBVU2NyaXB0Q29kZQorICog
QHNlZSBVQ29sUmVvcmRlckNvZGUKKyAqIEBzdGFibGUgSUNVIDQuOAorICovIAorVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIgCiB1Y29sX3NldFJlb3JkZXJDb2RlcyhVQ29sbGF0b3IqIGNvbGwsCiAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QqIHJlb3JkZXJDb2RlcywKICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCByZW9yZGVyQ29kZXNMZW5ndGgsCiAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwogCiAvKioKKyAqIFJldHJpZXZlcyB0aGUgcmVv
cmRlciBjb2RlcyB0aGF0IGFyZSBncm91cGVkIHdpdGggdGhlIGdpdmVuIHJlb3JkZXIgY29kZS4g
U29tZSByZW9yZGVyCisgKiBjb2RlcyB3aWxsIGJlIGdyb3VwZWQgYW5kIG11c3QgcmVvcmRlciB0
b2dldGhlci4KKyAqIEBwYXJhbSByZW9yZGVyQ29kZSBUaGUgcmVvcmRlciBjb2RlIHRvIGRldGVy
bWluZSBlcXVpdmFsZW5jZSBmb3IuCisgKiBAcGFyYW0gZGVzdCBUaGUgYXJyYXkgdG8gZmlsbCB3
aXRoIHRoZSBzY3JpcHQgb3JkZXJpbmcuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBsZW5n
dGggb2YgZGVzdC4gSWYgaXQgaXMgMCwgdGhlbiBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVu
Y3Rpb24KKyAqIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHdpdGhv
dXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcgKHByZS1mbGlnaHRpbmcpLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgCisgKiBhIGZhaWx1cmUgYmVmb3JlIHRo
ZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJlb3JkZXJpbmcgY29k
ZXMgd3JpdHRlbiB0byB0aGUgZGVzdCBhcnJheS4KKyAqIEBzZWUgdWNvbF9zZXRSZW9yZGVyQ29k
ZXMKKyAqIEBzZWUgdWNvbF9nZXRSZW9yZGVyQ29kZXMKKyAqIEBzZWUgVVNjcmlwdENvZGUKKyAq
IEBzZWUgVUNvbFJlb3JkZXJDb2RlCisgKiBAc3RhYmxlIElDVSA0LjgKKyAqLworVV9TVEFCTEUg
aW50MzJfdCBVX0VYUE9SVDIgCit1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMoaW50MzJf
dCByZW9yZGVyQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50MzJfdCogZGVzdCwKKyAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKICAqIEdldCB0aGUgZGlzcGxheSBuYW1l
IGZvciBhIFVDb2xsYXRvci4KICAqIFRoZSBkaXNwbGF5IG5hbWUgaXMgc3VpdGFibGUgZm9yIHBy
ZXNlbnRhdGlvbiB0byBhIHVzZXIuCiAgKiBAcGFyYW0gb2JqTG9jIFRoZSBsb2NhbGUgb2YgdGhl
IGNvbGxhdG9yIGluIHF1ZXN0aW9uLgpAQCAtNzA1LDExICs4ODUsMTEgQEAgdWNvbF9nZXRGdW5j
dGlvbmFsRXF1aXZhbGVudChjaGFyKiByZXN1bHQsIGludDMyX3QgcmVzdWx0Q2FwYWNpdHksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29sKiBpc0F2YWlsYWJsZSwgVUVycm9yQ29k
ZSogc3RhdHVzKTsKIAogLyoqCi0gKiBHZXQgdGhlIGNvbGxhdGlvbiBydWxlcyBmcm9tIGEgVUNv
bGxhdG9yLgorICogR2V0IHRoZSBjb2xsYXRpb24gdGFpbG9yaW5nIHJ1bGVzIGZyb20gYSBVQ29s
bGF0b3IuCiAgKiBUaGUgcnVsZXMgd2lsbCBmb2xsb3cgdGhlIHJ1bGUgc3ludGF4LgogICogQHBh
cmFtIGNvbGwgVGhlIFVDb2xsYXRvciB0byBxdWVyeS4KICAqIEBwYXJhbSBsZW5ndGggCi0gKiBA
cmV0dXJuIFRoZSBjb2xsYXRpb24gcnVsZXMuCisgKiBAcmV0dXJuIFRoZSBjb2xsYXRpb24gdGFp
bG9yaW5nIHJ1bGVzLgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIFVfU1RBQkxFIGNvbnN0IFVD
aGFyKiBVX0VYUE9SVDIgCkBAIC04MDIsMTAgKzk4MiwxMCBAQCB1Y29sX2dldFNvcnRLZXkoY29u
c3QgICAgVUNvbGxhdG9yICAgICpjb2xsLAogICogIHRvIHByZXNlcnZlIHN0YXRlIGFycmF5IGJl
dHdlZW4gY2FsbHMgYW5kIHRvIHByb3ZpZGUKICAqICB0aGUgc2FtZSB0eXBlIG9mIFVDaGFySXRl
cmF0b3Igc2V0IHdpdGggdGhlIHNhbWUgc3RyaW5nLgogICogIFRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgcHJvdmlkZWQgbXVzdCBiZSBiaWcgZW5vdWdoIHRvIHN0b3JlCi0gKiAgdGhlIG51bWJlciBv
ZiByZXF1ZXN0ZWQgYnl0ZXMuIEdlbmVyYXRlZCBzb3J0a2V5IGlzIG5vdCAKLSAqICBjb21wYXRp
YmxlIHdpdGggc29ydGtleXMgZ2VuZXJhdGVkIHVzaW5nIHVjb2xfZ2V0U29ydEtleQotICogIEFQ
SSwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IGNvbXByZXNzaW9uLiBJZiB1bmNvbXByZXNzZWQKLSAq
ICBzb3J0a2V5cyBhcmUgcmVxdWlyZWQsIHRoaXMgQVBJIGNhbiBiZSB1c2VkLgorICogIHRoZSBu
dW1iZXIgb2YgcmVxdWVzdGVkIGJ5dGVzLgorICoKKyAqICBUaGUgZ2VuZXJhdGVkIHNvcnQga2V5
IG1heSBvciBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aAorICogIHNvcnQga2V5cyBnZW5lcmF0
ZWQgdXNpbmcgdWNvbF9nZXRTb3J0S2V5KCkuCiAgKiAgQHBhcmFtIGNvbGwgVGhlIFVDb2xsYXRv
ciBjb250YWluaW5nIHRoZSBjb2xsYXRpb24gcnVsZXMuCiAgKiAgQHBhcmFtIGl0ZXIgVUNoYXJJ
dGVyYXRvciBjb250YWluaW5nIHRoZSBzdHJpbmcgd2UgbmVlZCAKICAqICAgICAgICAgICAgICB0
aGUgc29ydCBrZXkgdG8gYmUgY2FsY3VsYXRlZCBmb3IuCkBAIC05MDksMjYgKzEwODksNDAgQEAg
dWNvbF9nZXRWZXJzaW9uKGNvbnN0IFVDb2xsYXRvciogY29sbCwgVVZlcnNpb25JbmZvIGluZm8p
OwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVjb2xfZ2V0VUNBVmVyc2lvbihjb25zdCBVQ29s
bGF0b3IqIGNvbGwsIFVWZXJzaW9uSW5mbyBpbmZvKTsKIAotLyoqIAotICogTWVyZ2UgdHdvIHNv
cnQga2V5cy4gVGhlIGxldmVscyBhcmUgbWVyZ2VkIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBj
b3VudGVycGFydHMKKy8qKgorICogTWVyZ2VzIHR3byBzb3J0IGtleXMuIFRoZSBsZXZlbHMgYXJl
IG1lcmdlZCB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgY291bnRlcnBhcnRzCiAgKiAocHJpbWFy
aWVzIHdpdGggcHJpbWFyaWVzLCBzZWNvbmRhcmllcyB3aXRoIHNlY29uZGFyaWVzIGV0Yy4pLiBC
ZXR3ZWVuIHRoZSB2YWx1ZXMKICAqIGZyb20gdGhlIHNhbWUgbGV2ZWwgYSBzZXBhcmF0b3IgaXMg
aW5zZXJ0ZWQuCi0gKiBleGFtcGxlICh1bmNvbXByZXNzZWQpOiAKLSAqIDE5MUIxRCAwMSAwNTA1
MDUgMDEgOTEwNTA1IDAwIGFuZCAxRjIxMjMgMDEgMDUwNTA1IDAxIDkxMDUwNSAwMAorICoKKyAq
IFRoaXMgaXMgdXNlZnVsLCBmb3IgZXhhbXBsZSwgZm9yIGNvbWJpbmluZyBzb3J0IGtleXMgZnJv
bSBmaXJzdCBhbmQgbGFzdCBuYW1lcworICogdG8gc29ydCBzdWNoIHBhaXJzLgorICogSXQgaXMg
cG9zc2libGUgdG8gbWVyZ2UgbXVsdGlwbGUgc29ydCBrZXlzIGJ5IGNvbnNlY3V0aXZlbHkgbWVy
Z2luZworICogYW5vdGhlciBvbmUgd2l0aCB0aGUgaW50ZXJtZWRpYXRlIHJlc3VsdC4KKyAqCisg
KiBUaGUgbGVuZ3RoIG9mIHRoZSBtZXJnZSByZXN1bHQgaXMgdGhlIHN1bSBvZiB0aGUgbGVuZ3Ro
cyBvZiB0aGUgaW5wdXQgc29ydCBrZXlzLgorICoKKyAqIEV4YW1wbGUgKHVuY29tcHJlc3NlZCk6
CisgKiA8cHJlPjE5MUIxRCAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwCisgKiAxRjIxMjMgMDEgMDUw
NTA1IDAxIDkxMDUwNSAwMDwvcHJlPgogICogd2lsbCBiZSBtZXJnZWQgYXMgCi0gKiAxOTFCMUQg
MDIgMUYyMTIzMDEgMDUwNTA1IDAyIDA1MDUwNSAwMSA5MTA1MDUgMDIgOTEwNTA1IDAwCi0gKiBU
aGlzIGFsbG93cyBmb3IgY29uY2F0ZW5hdGluZyBvZiBmaXJzdCBhbmQgbGFzdCBuYW1lcyBmb3Ig
c29ydGluZywgYW1vbmcgb3RoZXIgdGhpbmdzLgotICogSWYgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciBpcyBub3QgYmlnIGVub3VnaCwgdGhlIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KLSAqIElmIGFu
eSBvZiBzb3VyY2UgbGVuZ3RocyBhcmUgemVybyBvciBhbnkgb2Ygc291cmNlIHBvaW50ZXJzIGFy
ZSBOVUxML3VuZGVmaW5lZCwgCi0gKiByZXN1bHQgaXMgb2Ygc2l6ZSB6ZXJvLgotICogQHBhcmFt
IHNyYzEgcG9pbnRlciB0byB0aGUgZmlyc3Qgc29ydGtleQotICogQHBhcmFtIHNyYzFMZW5ndGgg
bGVuZ3RoIG9mIHRoZSBmaXJzdCBzb3J0a2V5Ci0gKiBAcGFyYW0gc3JjMiBwb2ludGVyIHRvIHRo
ZSBzZWNvbmQgc29ydGtleQotICogQHBhcmFtIHNyYzJMZW5ndGggbGVuZ3RoIG9mIHRoZSBzZWNv
bmQgc29ydGtleQotICogQHBhcmFtIGRlc3QgYnVmZmVyIHRvIGhvbGQgdGhlIHJlc3VsdAotICog
QHBhcmFtIGRlc3RDYXBhY2l0eSBzaXplIG9mIHRoZSBidWZmZXIgZm9yIHRoZSByZXN1bHQKLSAq
IEByZXR1cm4gc2l6ZSBvZiB0aGUgcmVzdWx0LiBJZiB0aGUgYnVmZmVyIGlzIGJpZyBlbm91Z2gg
c2l6ZSBpcyBhbHdheXMKLSAqICAgICAgICAgc3JjMUxlbmd0aCtzcmMyTGVuZ3RoLTEKKyAqIDxw
cmU+MTkxQjFEIDAyIDFGMjEyMyAwMSAwNTA1MDUgMDIgMDUwNTA1IDAxIDkxMDUwNSAwMiA5MTA1
MDUgMDA8L3ByZT4KKyAqCisgKiBJZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIGlzIG5vdCBiaWcg
ZW5vdWdoLCB0aGVuIGl0cyBjb250ZW50cyBhcmUgdW5kZWZpbmVkLgorICogSWYgYW55IG9mIHNv
dXJjZSBsZW5ndGhzIGFyZSB6ZXJvIG9yIGFueSBvZiB0aGUgc291cmNlIHBvaW50ZXJzIGFyZSBO
VUxML3VuZGVmaW5lZCwKKyAqIHRoZSByZXN1bHQgaXMgb2Ygc2l6ZSB6ZXJvLgorICoKKyAqIEBw
YXJhbSBzcmMxIHRoZSBmaXJzdCBzb3J0IGtleQorICogQHBhcmFtIHNyYzFMZW5ndGggdGhlIGxl
bmd0aCBvZiB0aGUgZmlyc3Qgc29ydCBrZXksIGluY2x1ZGluZyB0aGUgemVybyBieXRlIGF0IHRo
ZSBlbmQ7CisgKiAgICAgICAgY2FuIGJlIC0xIGlmIHRoZSBmdW5jdGlvbiBpcyB0byBmaW5kIHRo
ZSBsZW5ndGgKKyAqIEBwYXJhbSBzcmMyIHRoZSBzZWNvbmQgc29ydCBrZXkKKyAqIEBwYXJhbSBz
cmMyTGVuZ3RoIHRoZSBsZW5ndGggb2YgdGhlIHNlY29uZCBzb3J0IGtleSwgaW5jbHVkaW5nIHRo
ZSB6ZXJvIGJ5dGUgYXQgdGhlIGVuZDsKKyAqICAgICAgICBjYW4gYmUgLTEgaWYgdGhlIGZ1bmN0
aW9uIGlzIHRvIGZpbmQgdGhlIGxlbmd0aAorICogQHBhcmFtIGRlc3QgdGhlIGJ1ZmZlciB3aGVy
ZSB0aGUgbWVyZ2VkIHNvcnQga2V5IGlzIHdyaXR0ZW4sCisgKiAgICAgICAgY2FuIGJlIE5VTEwg
aWYgZGVzdENhcGFjaXR5PT0wCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgaW4gdGhlIGRlc3QgYnVmZmVyCisgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIG1l
cmdlZCBzb3J0IGtleSwgc3JjMUxlbmd0aCtzcmMyTGVuZ3RoOworICogICAgICAgICBjYW4gYmUg
bGFyZ2VyIHRoYW4gZGVzdENhcGFjaXR5LCBvciAwIGlmIGFuIGVycm9yIG9jY3VycyAob25seSBm
b3IgaWxsZWdhbCBhcmd1bWVudHMpLAorICogICAgICAgICBpbiB3aGljaCBjYXNlcyB0aGUgY29u
dGVudHMgb2YgZGVzdCBpcyB1bmRlZmluZWQKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiBVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMiAKQEAgLTEwMTgsMTIgKzEyMTIsMTMgQEAgdWNvbF9yZXN0
b3JlVmFyaWFibGVUb3AoVUNvbGxhdG9yICpjb2xsLCBjb25zdCB1aW50MzJfdCB2YXJUb3AsIFVF
cnJvckNvZGUgKnN0YXQKIC8qKgogICogVGhyZWFkIHNhZmUgY2xvbmluZyBvcGVyYXRpb24uIFRo
ZSByZXN1bHQgaXMgYSBjbG9uZSBvZiBhIGdpdmVuIGNvbGxhdG9yLgogICogQHBhcmFtIGNvbGwg
Y29sbGF0b3IgdG8gYmUgY2xvbmVkCi0gKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0
ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIAorICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5E
ZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4K
KyAqIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiAKICAqIElmIE5VTEwg
bmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4gCiAgKiAgSWYgYnVmZmVyIGlzIG5vdCBsYXJn
ZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCi0gKiAgQ2xpZW50cyBjYW4g
dXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVSU0laRS4gCi0gKiAgVGhpcyB3aWxsIHByb2Jh
Ymx5IGJlIGVub3VnaCB0byBhdm9pZCBtZW1vcnkgYWxsb2NhdGlvbnMuCi0gKiBAcGFyYW0gcEJ1
ZmZlclNpemUgcG9pbnRlciB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4gCisgKiAgQ2xpZW50
cyBjYW4gdXNlIHRoZSBVX0NPTF9TQUZFQ0xPTkVfQlVGRkVSU0laRS4KKyAqIEBwYXJhbSBwQnVm
ZmVyU2l6ZSA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5V
TEwgb3IgMS48L2VtPjxicj4KKyAqICBwb2ludGVyIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNl
LiAKICAqICBJZiAqcEJ1ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBp
biBjbG9uaW5nIHdpbGwgCiAgKiAgYmUgcmV0dXJuZWQgKCdwcmUtZmxpZ2h0aW5nJykKICAqICBJ
ZiAqcEJ1ZmZlclNpemUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25l
LCAKQEAgLTEwNDMsMjUgKzEyMzgsMzQgQEAgdWNvbF9zYWZlQ2xvbmUoY29uc3QgVUNvbGxhdG9y
ICpjb2xsLAogICAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICpwQnVmZmVyU2l6ZSwKICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAotLyoqIGRlZmF1bHQgbWVt
b3J5IHNpemUgZm9yIHRoZSBuZXcgY2xvbmUuIEl0IG5lZWRzIHRvIGJlIHRoaXMgbGFyZ2UgZm9y
IG9zLzQwMCBsYXJnZSBwb2ludGVycyAKLSAqIEBzdGFibGUgSUNVIDIuMAorI2lmbmRlZiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkKKworLyoqIGRlZmF1bHQgbWVtb3J5IHNpemUgZm9yIHRoZSBuZXcg
Y2xvbmUuCisgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIERvIG5vdCByZWx5IG9uIHVjb2xfc2FmZUNs
b25lKCkgY2xvbmluZyBpbnRvIGFueSBwcm92aWRlZCBidWZmZXIuCiAgKi8KLSNkZWZpbmUgVV9D
T0xfU0FGRUNMT05FX0JVRkZFUlNJWkUgNTEyCisjZGVmaW5lIFVfQ09MX1NBRkVDTE9ORV9CVUZG
RVJTSVpFIDEKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAq
IFJldHVybnMgY3VycmVudCBydWxlcy4gRGVsdGEgZGVmaW5lcyB3aGV0aGVyIGZ1bGwgcnVsZXMg
YXJlIHJldHVybmVkIG9yIGp1c3QgdGhlIHRhaWxvcmluZy4gCiAgKiBSZXR1cm5zIG51bWJlciBv
ZiBVQ2hhcnMgbmVlZGVkIHRvIHN0b3JlIHJ1bGVzLiBJZiBidWZmZXIgaXMgTlVMTCBvciBidWZm
ZXJMZW4gaXMgbm90IGVub3VnaCAKICAqIHRvIHN0b3JlIHJ1bGVzLCB3aWxsIHN0b3JlIHVwIHRv
IGF2YWlsYWJsZSBzcGFjZS4KKyAqCisgKiB1Y29sX2dldFJ1bGVzKCkgc2hvdWxkIG5vcm1hbGx5
IGJlIHVzZWQgaW5zdGVhZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9y
Zy9jb2xsYXRpb24vY3VzdG9taXphdGlvbiNUT0MtQnVpbGRpbmctb24tRXhpc3RpbmctTG9jYWxl
cwogICogQHBhcmFtIGNvbGwgY29sbGF0b3IgdG8gZ2V0IHRoZSBydWxlcyBmcm9tCiAgKiBAcGFy
YW0gZGVsdGEgb25lIG9mIFVDT0xfVEFJTE9SSU5HX09OTFksIFVDT0xfRlVMTF9SVUxFUy4gCiAg
KiBAcGFyYW0gYnVmZmVyIGJ1ZmZlciB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBOVUxMLCB5
b3UnbGwgZ2V0IG5vIHJ1bGVzLgotICogQHBhcmFtIGJ1ZmZlckxlbiBsZW5naHQgb2YgYnVmZmVy
IHRvIHN0b3JlIHJ1bGVzIGluLiBJZiBsZXNzIHRoZW4gbmVlZGVkIHlvdSdsbCBnZXQgb25seSB0
aGUgcGFydCB0aGF0IGZpdHMgaW4uCisgKiBAcGFyYW0gYnVmZmVyTGVuIGxlbmd0aCBvZiBidWZm
ZXIgdG8gc3RvcmUgcnVsZXMgaW4uIElmIGxlc3MgdGhhbiBuZWVkZWQgeW91J2xsIGdldCBvbmx5
IHRoZSBwYXJ0IHRoYXQgZml0cyBpbi4KICAqIEByZXR1cm4gY3VycmVudCBydWxlcwogICogQHN0
YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFVDT0xfRlVMTF9SVUxFUwogICovCiBVX1NUQUJMRSBpbnQz
Ml90IFVfRVhQT1JUMiAKIHVjb2xfZ2V0UnVsZXNFeChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVD
b2xSdWxlT3B0aW9uIGRlbHRhLCBVQ2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckxlbik7CiAK
KyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCiAvKioKICAqIGdldHMgdGhlIGxvY2FsZSBu
YW1lIG9mIHRoZSBjb2xsYXRvci4gSWYgdGhlIGNvbGxhdG9yCiAgKiBpcyBpbnN0YW50aWF0ZWQg
ZnJvbSB0aGUgcnVsZXMsIHRoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zCkBAIC0xMDc4LDcgKzEy
ODIsNyBAQCB1Y29sX2dldFJ1bGVzRXgoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVQ29sUnVsZU9w
dGlvbiBkZWx0YSwgVUNoYXIgKmJ1ZmZlciwgaW50MwogICovCiBVX0RFUFJFQ0FURUQgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgogdWNvbF9nZXRMb2NhbGUoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBV
TG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKLQorI2VuZGlmICAv
KiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KIAogLyoqCiAgKiBnZXRzIHRoZSBsb2NhbGUgbmFt
ZSBvZiB0aGUgY29sbGF0b3IuIElmIHRoZSBjb2xsYXRvcgpAQCAtMTExMCw2ICsxMzE0LDcgQEAg
dWNvbF9nZXRMb2NhbGVCeVR5cGUoY29uc3QgVUNvbGxhdG9yICpjb2xsLCBVTG9jRGF0YUxvY2Fs
ZVR5cGUgdHlwZSwgVUVycm9yQ29kZQogVV9TVEFCTEUgVVNldCAqIFVfRVhQT1JUMgogdWNvbF9n
ZXRUYWlsb3JlZFNldChjb25zdCBVQ29sbGF0b3IgKmNvbGwsIFVFcnJvckNvZGUgKnN0YXR1cyk7
CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBVbml2ZXJzYWwgYXR0cmli
dXRlIGdldHRlciB0aGF0IHJldHVybnMgVUNPTF9ERUZBVUxUIGlmIHRoZSB2YWx1ZSBpcyBkZWZh
dWx0CiAgKiBAcGFyYW0gY29sbCBjb2xsYXRvciB3aGljaCBhdHRyaWJ1dGVzIGFyZSB0byBiZSBj
aGFuZ2VkCkBAIC0xMTgyLDYgKzEzODcsNyBAQCB1Y29sX3ByZXBhcmVTaG9ydFN0cmluZ09wZW4o
IGNvbnN0IGNoYXIgKmRlZmluaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29s
IGZvcmNlRGVmYXVsdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICpw
YXJzZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMp
OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKiBDcmVhdGVzIGEgYmlu
YXJ5IGltYWdlIG9mIGEgY29sbGF0b3IuIFRoaXMgYmluYXJ5IGltYWdlIGNhbiBiZSBzdG9yZWQg
YW5kIAogICogIGxhdGVyIHVzZWQgdG8gaW5zdGFudGlhdGUgYSBjb2xsYXRvciB1c2luZyB1Y29s
X29wZW5CaW5hcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y29s
ZWl0ci5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNvbGVpdHIuaAppbmRleCA0MTlj
YjlmN2RlNjY5MzcxMWRiYzA5MTg1ZWU2MmQ4NmI5Yzk0MzAxLi5jZjczMGY5NWI1MWIxNjg0ZDJh
NDllNTYzNjgzOTZjODYzOTcxZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5p
Y29kZS91Y29sZWl0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjb2xlaXRy
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHly
aWdodCAoQykgMjAwMS0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29weXJpZ2h0IChDKSAyMDAxLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
ICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKICoKQEAgLTI3LDEzICsyNywxNSBAQAogICovCiAjZGVmaW5lIFVD
T0xfTlVMTE9SREVSICAgICAgICAoKGludDMyX3QpMHhGRkZGRkZGRikKIAotLyoqICAKKyNpZm5k
ZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCiAgKiBUaGlzIGluZGljYXRlcyBhbiBlcnJvciBo
YXMgb2NjdXJlZCBkdXJpbmcgcHJvY2Vzc2luZyBvciB0aGVyZSBhcmUgbm8gbW9yZSBDRXMgCiAg
KiB0byBiZSByZXR1cm5lZC4KICAqCiAgKiBAaW50ZXJuYWwKICAqLwogI2RlZmluZSBVQ09MX1BS
T0NFU1NFRF9OVUxMT1JERVIgICAgICAgICgoaW50NjRfdClVX0lOVDY0X01BWCkKKyNlbmRpZiAg
LyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAjaW5jbHVkZSAidW5pY29kZS91Y29sLmgiCiAK
QEAgLTE1Myw2ICsxNTUsNyBAQCB1Y29sX2Nsb3NlRWxlbWVudHMoVUNvbGxhdGlvbkVsZW1lbnRz
ICplbGVtcyk7CiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiAKIHVjb2xfcmVzZXQoVUNvbGxhdGlv
bkVsZW1lbnRzICplbGVtcyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAg
KiBTZXQgdGhlIGNvbGxhdGlvbiBlbGVtZW50cyB0byB1c2UgaW1wbGljaXQgb3JkZXJpbmcgZm9y
IEhhbgogICogZXZlbiBpZiB0aGV5J3ZlIGJlZW4gdGFpbG9yZWQuIFRoaXMgd2lsbCBhbHNvIGZv
cmNlIEhhbmd1bApAQCAtMTY2LDYgKzE2OSw3IEBAIHVjb2xfcmVzZXQoVUNvbGxhdGlvbkVsZW1l
bnRzICplbGVtcyk7CiAgKi8KIFVfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIKIHVjb2xfZm9yY2VI
YW5JbXBsaWNpdChVQ29sbGF0aW9uRWxlbWVudHMgKmVsZW1zLCBVRXJyb3JDb2RlICpzdGF0dXMp
OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogR2V0IHRoZSBv
cmRlcmluZyBwcmlvcml0eSBvZiB0aGUgbmV4dCBjb2xsYXRpb24gZWxlbWVudCBpbiB0aGUgdGV4
dC4KQEAgLTE5OCw2ICsyMDIsNyBAQCB1Y29sX25leHQoVUNvbGxhdGlvbkVsZW1lbnRzICplbGVt
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKIFVfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyIAogdWNv
bF9wcmV2aW91cyhVQ29sbGF0aW9uRWxlbWVudHMgKmVsZW1zLCBVRXJyb3JDb2RlICpzdGF0dXMp
OwogCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgogICogR2V0IHRoZSBwcm9jZXNz
ZWQgb3JkZXJpbmcgcHJpb3JpdHkgb2YgdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhl
IHRleHQuCiAgKiBBIHNpbmdsZSBjaGFyYWN0ZXIgbWF5IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBj
b2xsYXRpb24gZWxlbWVudC4KQEAgLTIzNiw2ICsyNDEsNyBAQCB1Y29sX25leHRQcm9jZXNzZWQo
VUNvbGxhdGlvbkVsZW1lbnRzICplbGVtcywgaW50MzJfdCAqaXhMb3csIGludDMyX3QgKml4SGln
aCwgVQogICovCiBVX0lOVEVSTkFMIGludDY0X3QgVV9FWFBPUlQyCiB1Y29sX3ByZXZpb3VzUHJv
Y2Vzc2VkKFVDb2xsYXRpb25FbGVtZW50cyAqZWxlbXMsIGludDMyX3QgKml4TG93LCBpbnQzMl90
ICppeEhpZ2gsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5B
TF9BUEkgKi8KIAogLyoqCiAgKiBHZXQgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNp
b24gc2VxdWVuY2VzIHRoYXQgZW5kIHdpdGggdGhlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvdWNvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWNv
bmZpZy5oCmluZGV4IDdkMmQyNmU5NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJm
YThlNzdiMGYxYTM1MjIwNzZmYzBhNjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjb25maWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91Y29uZmlnLmgKQEAgLTEsNiArMSw2IEBACiAvKiAgCiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0q
ICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogKiAgIGZpbGUgbmFtZTogIHVjb25maWcuaApAQCAtMTgsOSArMTgs
MTcgQEAKIAogLyohCiAgKiBcZmlsZQotICogXGJyaWVmIFN3aXRjaGVzIGZvciBleGNsdWRpbmcg
cGFydHMgb2YgSUNVIGxpYnJhcnkgY29kZSBtb2R1bGVzLgorICogXGJyaWVmIFVzZXItY29uZmln
dXJhYmxlIHNldHRpbmdzCiAgKgotICogQWxsb3dzIHRvIGJ1aWxkIHBhcnRpYWwsIHNtYWxsZXIg
bGlicmFyaWVzIGZvciBzcGVjaWFsIHB1cnBvc2VzLgorICogTWlzY2VsbGFuZW91cyBzd2l0Y2hl
czoKKyAqCisgKiBBIG51bWJlciBvZiBtYWNyb3MgYWZmZWN0IGEgdmFyaWV0eSBvZiBtaW5vciBh
c3BlY3RzIG9mIElDVS4KKyAqIE1vc3Qgb2YgdGhlbSB1c2VkIHRvIGJlIGRlZmluZWQgZWxzZXdo
ZXJlIChlLmcuLCBpbiB1dHlwZXMuaCBvciBwbGF0Zm9ybS5oKQorICogYW5kIG1vdmVkIGhlcmUg
dG8gbWFrZSB0aGVtIGVhc2llciB0byBmaW5kLgorICoKKyAqIFN3aXRjaGVzIGZvciBleGNsdWRp
bmcgcGFydHMgb2YgSUNVIGxpYnJhcnkgY29kZSBtb2R1bGVzOgorICoKKyAqIENoYW5naW5nIHRo
ZXNlIG1hY3JvcyBhbGxvd3MgYnVpbGRpbmcgcGFydGlhbCwgc21hbGxlciBsaWJyYXJpZXMgZm9y
IHNwZWNpYWwgcHVycG9zZXMuCiAgKiBCeSBkZWZhdWx0LCBhbGwgbW9kdWxlcyBhcmUgYnVpbHQu
CiAgKiBUaGUgc3dpdGNoZXMgYXJlIGZhaXJseSBjb2Fyc2UsIGNvbnRyb2xsaW5nIGxhcmdlIG1v
ZHVsZXMuCiAgKiBCYXNpYyBzZXJ2aWNlcyBjYW5ub3QgYmUgdHVybmVkIG9mZi4KQEAgLTM4LDE1
ICs0NiwxNTMgQEAKIC8qKgogICogSWYgdGhpcyBzd2l0Y2ggaXMgZGVmaW5lZCwgSUNVIHdpbGwg
YXR0ZW1wdCB0byBsb2FkIGEgaGVhZGVyIGZpbGUgbmFtZWQgInVjb25maWdfbG9jYWwuaCIKICAq
IHByaW9yIHRvIGRldGVybWluaW5nIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHVjb25maWcgdmFyaWFi
bGVzLgotICogCisgKgogICogQGludGVybmFsIElDVSA0LjAKLSAqIAogICovCiAjaWYgZGVmaW5l
ZChVQ09ORklHX1VTRV9MT0NBTCkKICNpbmNsdWRlICJ1Y29uZmlnX2xvY2FsLmgiCiAjZW5kaWYK
IAogLyoqCisgKiBcZGVmIFVfREVCVUcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRl
IGRlYnVnZ2luZyBjb2RlLgorICogQXV0b21hdGljYWxseSBzZXQgb24gV2luZG93cywgYnV0IG1v
c3QgY29tcGlsZXJzIGRvIG5vdCBoYXZlCisgKiByZWxhdGVkIHByZWRlZmluZWQgbWFjcm9zLgor
ICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0RFQlVHCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfREVCVUcpCisgICAgLyoKKyAgICAgKiBfREVC
VUcgaXMgZGVmaW5lZCBieSBWaXN1YWwgU3R1ZGlvIGRlYnVnIGNvbXBpbGF0aW9uLgorICAgICAq
IERvICpub3QqIHRlc3QgZm9yIGl0cyBOREVCVUcgbWFjcm86IEl0IGlzIGFuIG9ydGhvZ29uYWwg
bWFjcm8KKyAgICAgKiB3aGljaCBkaXNhYmxlcyBhc3NlcnQoKS4KKyAgICAgKi8KKyMgICBkZWZp
bmUgVV9ERUJVRyAxCisjIGVsc2UKKyMgICBkZWZpbmUgVV9ERUJVRyAwCisjZW5kaWYKKworLyoq
CisgKiBEZXRlcm1pbmVzIHdoZXRlciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmll
cy4gCisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAorI2Rl
ZmluZSBVQ0xOX05PX0FVVE9fQ0xFQU5VUCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRElT
QUJMRV9SRU5BTUlORworICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcg
b3Igbm90LgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCisj
ZGVmaW5lIFVfRElTQUJMRV9SRU5BTUlORyAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfTk9f
REVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdXR5cGVz
LmggaW5jbHVkZXMgdXRmLmgsIHV0ZjguaCwgdXRmMTYuaCBhbmQgdXRmX29sZC5oLgorICogdXR5
cGVzLmggaW5jbHVkZXMgdGhvc2UgaGVhZGVycyBpZiB0aGlzIG1hY3JvIGlzIGRlZmluZWQgdG8g
MC4KKyAqIE90aGVyd2lzZSwgZWFjaCB0aG9zZSBoZWFkZXJzIG11c3QgYmUgaW5jbHVkZWQgZXhw
bGljaXRseSB3aGVuIHVzaW5nIG9uZSBvZiB0aGVpciBtYWNyb3MuCisgKiBEZWZhdWx0cyB0byAw
IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBleGNlcHQgaW5zaWRlIElDVS4KKyAqIEBzdGFi
bGUgSUNVIDQ5CisgKi8KKyNpZmRlZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUwor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9DT01C
SU5FRF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikg
fHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IFwKKyAgICAgIGRlZmluZWQoVV9J
T19JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwg
ZGVmaW5lZChVX0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVf
VE9PTFVUSUxfSU1QTEVNRU5UQVRJT04pCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURF
X1VURl9IRUFERVJTIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VU
Rl9IRUFERVJTIDAKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9PVkVSUklERV9DWFhfQUxMT0NB
VElPTgorICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLgor
ICogSUNVIGlzIG5vcm1hbGx5IGJ1aWx0IHN1Y2ggdGhhdCBhbGwgb2YgaXRzIEMrKyBjbGFzc2Vz
LCB2aWEgdGhlaXIgVU1lbW9yeSBiYXNlLAorICogb3ZlcnJpZGUgb3BlcmF0b3JzIG5ldyBhbmQg
ZGVsZXRlIHRvIHVzZSBpdHMgaW50ZXJuYWwsIGN1c3RvbWl6YWJsZSwKKyAqIG5vbi1leGNlcHRp
b24tdGhyb3dpbmcgbWVtb3J5IGFsbG9jYXRpb24gZnVuY3Rpb25zLiAoRGVmYXVsdCB2YWx1ZSAx
IGZvciB0aGlzIG1hY3JvLikKKyAqCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdo
ZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBpdHMgbGlicmFyaWVzIHVzZSBtdWx0aXBsZSBoZWFwcy4K
KyAqIEZvciBleGFtcGxlLCBvbiBXaW5kb3dzLCB0aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBi
ZSB1c2VkIGJ5CisgKiBhcHBsaWNhdGlvbnMgdGhhdCBzdGF0aWNhbGx5IGxpbmsgdGhlIEMgUnVu
dGltZSBsaWJyYXJ5LgorICoKKyAqIEBzdGFibGUgSUNVIDIuMgorICovCisjaWZuZGVmIFVfT1ZF
UlJJREVfQ1hYX0FMTE9DQVRJT04KKyNkZWZpbmUgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAx
CisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRU5BQkxFX1RSQUNJTkcKKyAqIERldGVybWluZXMg
d2hldGhlciB0byBlbmFibGUgdHJhY2luZy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVf
RU5BQkxFX1RSQUNJTkcKKyNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAwCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVfRU5BQkxFX0RZTE9BRAorICogV2hldGhlciB0byBlbmFibGUgRHluYW1pYyBs
b2FkaW5nIGluIElDVS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX0RZTE9B
RAorI2RlZmluZSBVX0VOQUJMRV9EWUxPQUQgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0NI
RUNLX0RZTE9BRAorICogV2hldGhlciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBj
YXBhYmlsaXR5LgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9DSEVDS19EWUxPQUQKKyNk
ZWZpbmUgVV9DSEVDS19EWUxPQUQgMQorI2VuZGlmCisKKworLyoqCisgKiBcZGVmIFVfREVGQVVM
VF9TSE9XX0RSQUZUCisgKiBEbyB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBB
UElzIGJ5IGRlZmF1bHQ/CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0RFRkFVTFRfU0hP
V19EUkFGVAorI2RlZmluZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAxCisjZW5kaWYKKworLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0qLworLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5hbWluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0qLworCisvKioKKyAqIFxkZWYgVV9IQVZFX0xJQl9TVUZGSVgKKyAqIDEgaWYgYSBjdXN0
b20gbGlicmFyeSBzdWZmaXggaXMgc2V0LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hB
VkVfTElCX1NVRkZJWAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlm
IGRlZmluZWQoVV9MSUJfU1VGRklYX0NfTkFNRSkKKyMgICBkZWZpbmUgVV9IQVZFX0xJQl9TVUZG
SVggMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORwor
ICogRGVmaW5lcyB0aGUgbGlicmFyeSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0aCBDIHN5bnRheC4K
KyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAg
ICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfTElCX1NV
RkZJWF9DX05BTUUpCisjICAgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HICNVX0xJ
Ql9TVUZGSVhfQ19OQU1FCisjZWxzZQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NU
UklORyAiIgorI2VuZGlmCisKKy8qIGNvbW1vbi9pMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgogICogXGRl
ZiBVQ09ORklHX09OTFlfQ09MTEFUSU9OCiAgKiBUaGlzIHN3aXRjaCB0dXJucyBvZmYgbW9kdWxl
cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciBjb2xsYXRpb24uCiAgKgpAQCAtMTQ2LDYgKzI5Miw5
IEBACiAjICAgZGVmaW5lIFVDT05GSUdfTk9fTk9STUFMSVpBVElPTiAwCiAjZWxpZiBVQ09ORklH
X05PX05PUk1BTElaQVRJT04KICAgICAvKiBjb21tb24gbGlicmFyeSAqLworICAgIC8qIElDVSA1
MCBDSksgZGljdGlvbmFyeSBCcmVha0l0ZXJhdG9yIHVzZXMgbm9ybWFsaXphdGlvbiAqLworIyAg
IGRlZmluZSBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAxCisgICAgLyogSUROQSAoVVRTICM0
NikgaXMgaW1wbGVtZW50ZWQgdmlhIG5vcm1hbGl6YXRpb24gKi8KICMgICBkZWZpbmUgVUNPTkZJ
R19OT19JRE5BIDEKIAogICAgIC8qIGkxOG4gbGlicmFyeSAqLwpAQCAtMTc2LDYgKzMyNSwxNyBA
QAogIyAgIGRlZmluZSBVQ09ORklHX05PX0lETkEgMAogI2VuZGlmCiAKKy8qKgorICogXGRlZiBV
Q09ORklHX01TR1BBVF9ERUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorICogRGV0ZXJtaW5lcyB0aGUg
ZGVmYXVsdCBVTWVzc2FnZVBhdHRlcm5BcG9zdHJvcGhlTW9kZS4KKyAqIFNlZSB0aGUgZG9jdW1l
bnRhdGlvbiBmb3IgdGhhdCBlbnVtLgorICoKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCisjaWZu
ZGVmIFVDT05GSUdfTVNHUEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFCisjICAgZGVmaW5lIFVD
T05GSUdfTVNHUEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFIFVNU0dQQVRfQVBPU19ET1VCTEVf
T1BUSU9OQUwKKyNlbmRpZgorCiAvKiBpMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTIy
OCw0ICszODgsMjUgQEAKICMgICBkZWZpbmUgVUNPTkZJR19OT19TRVJWSUNFIDEKICNlbmRpZgog
CisvKioKKyAqIFxkZWYgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQKKyAqIFRoaXMgc3dpdGNo
IHR1cm5zIG9uIHRoZSAicGFyc2UgYWxsIGlucHV0IiBhdHRyaWJ1dGUuIEJpbmFyeSBpbmNvbXBh
dGlibGUuCisgKgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19IQVZFX1BBUlNF
QUxMSU5QVVQKKyMgICBkZWZpbmUgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQgMQorI2VuZGlm
CisKKworLyoqCisgKiBcZGVmIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorICogVGhpcyBz
d2l0Y2ggdHVybnMgb24gb3RoZXIgZm9ybWF0dGluZyBmYXN0cGF0aHMuIEJpbmFyeSBpbmNvbXBh
dGlibGUgaW4gb2JqZWN0IERlY2ltYWxGb3JtYXQgYW5kIERlY2ltYWxGb3JtYXRTeW1ib2xzCisg
KgorICogQGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5
CisjICAgZGVmaW5lIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OSAxCisjZW5kaWYKKwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91Y3NkZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5oCmluZGV4IGRjNDkyZWUyMjllMDE4M2E2
MzVkOWI5MzY0N2FmOTFiN2E5YjJmZTUuLmQzYTI5N2JlMWUxZWRhMTM5MmE3NzcwMDBhNTk5YzE1
ZGJjNGQwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vjc2RldC5oCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCi0gKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEwLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICAgZmlsZSBu
YW1lOiAgdWNzZGV0LmgKQEAgLTMyMSwxMiArMzIxLDIxIEBAIHVjc2RldF9nZXRVQ2hhcnMoY29u
c3QgVUNoYXJzZXRNYXRjaCAqdWNzbSwKICAgKiAgVGhlIHJldHVybmVkIFVFbnVtZXJhdGlvbiBw
cm92aWRlcyBhY2Nlc3MgdG8gdGhlIG5hbWVzIG9mCiAgICogIHRoZSBjaGFyc2V0cy4KICAgKgor
ICAqICA8cD4KICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBDaGFyc2V0IGRldGVjdG9yIHRoYXQgaXMg
cGFzc2VkIGluIGRvZXMgbm90CiAgICogIGFmZmVjdCB0aGUgcmVzdWx0IG9mIHRoaXMgZnVuY3Rp
b24sIGJ1dCByZXF1aXJpbmcgYSB2YWxpZCwgb3BlbgogICAqICBjaGFyc2V0IGRldGVjdG9yIGFz
IGEgcGFyYW1ldGVyIGluc3VyZXMgdGhhdCB0aGUgY2hhcnNldCBkZXRlY3Rpb24KICAgKiAgc2Vy
dmljZSBoYXMgYmVlbiBzYWZlbHkgaW5pdGlhbGl6ZWQgYW5kIHRoYXQgdGhlIHJlcXVpcmVkIGRl
dGVjdGlvbgogICAqICBkYXRhIGlzIGF2YWlsYWJsZS4KICAgKgorICAqICA8cD4KKyAgKiAgPGI+
Tm90ZTo8L2I+IE11bHRpcGxlIGRpZmZlcmVudCBjaGFyc2V0IGVuY29kaW5ncyBpbiBhIHNhbWUg
ZmFtaWx5IG1heSB1c2UKKyAgKiAgYSBzaW5nbGUgc2hhcmVkIG5hbWUgaW4gdGhpcyBpbXBsZW1l
bnRhdGlvbi4gRm9yIGV4YW1wbGUsIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgKiAgYW4gYXJyYXkg
aW5jbHVkaW5nICJJU08tODg1OS0xIiAoSVNPIExhdGluIDEpLCBidXQgbm90IGluY2x1ZGluZyAi
d2luZG93cy0xMjUyIgorICAqICAoV2luZG93cyBMYXRpbiAxKS4gSG93ZXZlciwgYWN0dWFsIGRl
dGVjdGlvbiByZXN1bHQgY291bGQgYmUgIndpbmRvd3MtMTI1MiIKKyAgKiAgd2hlbiB0aGUgaW5w
dXQgZGF0YSBtYXRjaGVzIExhdGluIDEgY29kZSBwb2ludHMgd2l0aCBhbnkgcG9pbnRzIG9ubHkg
YXZhaWxhYmxlCisgICogIGluICJ3aW5kb3dzLTEyNTIiLgorICAqCiAgICogIEBwYXJhbSB1Y3Nk
IGEgQ2hhcnNldCBkZXRlY3Rvci4KICAgKiAgQHBhcmFtIHN0YXR1cyAgQW55IGVycm9yIGNvbmRp
dGlvbnMgYXJlIHJlcG9ydGVkIGJhY2sgaW4gdGhpcyB2YXJpYWJsZS4KICAgKiAgQHJldHVybiBh
biBpdGVyYXRvciBwcm92aWRpbmcgYWNjZXNzIHRvIHRoZSBkZXRlY3RhYmxlIGNoYXJzZXQgbmFt
ZXMuCkBAIC0zMzUsNyArMzQ0LDYgQEAgdWNzZGV0X2dldFVDaGFycyhjb25zdCBVQ2hhcnNldE1h
dGNoICp1Y3NtLAogVV9TVEFCTEUgIFVFbnVtZXJhdGlvbiAqIFVfRVhQT1JUMgogdWNzZGV0X2dl
dEFsbERldGVjdGFibGVDaGFyc2V0cyhjb25zdCBVQ2hhcnNldERldGVjdG9yICp1Y3NkLCAgVUVy
cm9yQ29kZSAqc3RhdHVzKTsKIAotCiAvKioKICAgKiAgVGVzdCB3aGV0aGVyIGlucHV0IGZpbHRl
cmluZyBpcyBlbmFibGVkIGZvciB0aGlzIGNoYXJzZXQgZGV0ZWN0b3IuCiAgICogIElucHV0IGZp
bHRlcmluZyByZW1vdmVzIHRleHQgdGhhdCBhcHBlYXJzIHRvIGJlIEhUTUwgb3IgeG1sCkBAIC0z
NDYsNiArMzU0LDcgQEAgdWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cyhjb25zdCBVQ2hh
cnNldERldGVjdG9yICp1Y3NkLCAgVUVycm9yQ29kZSAqc3RhdHUKICAgKiAgQHJldHVybiBUUlVF
IGlmIGZpbHRlcmluZyBpcyBlbmFibGVkLgogICAqICBAc3RhYmxlIElDVSAzLjYKICAgKi8KKwog
VV9TVEFCTEUgIFVCb29sIFVfRVhQT1JUMgogdWNzZGV0X2lzSW5wdXRGaWx0ZXJFbmFibGVkKGNv
bnN0IFVDaGFyc2V0RGV0ZWN0b3IgKnVjc2QpOwogCkBAIC0zNjQsNiArMzczLDQwIEBAIHVjc2Rl
dF9pc0lucHV0RmlsdGVyRW5hYmxlZChjb25zdCBVQ2hhcnNldERldGVjdG9yICp1Y3NkKTsKIFVf
U1RBQkxFICBVQm9vbCBVX0VYUE9SVDIKIHVjc2RldF9lbmFibGVJbnB1dEZpbHRlcihVQ2hhcnNl
dERldGVjdG9yICp1Y3NkLCBVQm9vbCBmaWx0ZXIpOwogCisjaWZuZGVmIFVfSElERV9JTlRFUk5B
TF9BUEkKKy8qKgorICAqICBHZXQgYW4gaXRlcmF0b3Igb3ZlciB0aGUgc2V0IG9mIGRldGVjdGFi
bGUgY2hhcnNldHMgLQorICAqICBvdmVyIHRoZSBjaGFyc2V0cyB0aGF0IGFyZSBlbmFibGVkIGJ5
IHRoZSBzcGVjaWZpZWQgY2hhcnNldCBkZXRlY3Rvci4KKyAgKgorICAqICBUaGUgcmV0dXJuZWQg
VUVudW1lcmF0aW9uIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgbmFtZXMgb2YKKyAgKiAgdGhlIGNo
YXJzZXRzLgorICAqCisgICogIEBwYXJhbSB1Y3NkIGEgQ2hhcnNldCBkZXRlY3Rvci4KKyAgKiAg
QHBhcmFtIHN0YXR1cyAgQW55IGVycm9yIGNvbmRpdGlvbnMgYXJlIHJlcG9ydGVkIGJhY2sgaW4g
dGhpcyB2YXJpYWJsZS4KKyAgKiAgQHJldHVybiBhbiBpdGVyYXRvciBwcm92aWRpbmcgYWNjZXNz
IHRvIHRoZSBkZXRlY3RhYmxlIGNoYXJzZXQgbmFtZXMgYnkKKyAgKiAgdGhlIHNwZWNpZmllZCBj
aGFyc2V0IGRldGVjdG9yLgorICAqICBAaW50ZXJuYWwKKyAgKi8KK1VfSU5URVJOQUwgVUVudW1l
cmF0aW9uICogVV9FWFBPUlQyCit1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzKGNvbnN0IFVD
aGFyc2V0RGV0ZWN0b3IgKnVjc2QsICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAgKiBF
bmFibGUgb3IgZGlzYWJsZSBpbmRpdmlkdWFsIGNoYXJzZXQgZW5jb2RpbmcuCisgICogQSBuYW1l
IG9mIGNoYXJzZXQgZW5jb2RpbmcgbXVzdCBiZSBpbmNsdWRlZCBpbiB0aGUgbmFtZXMgcmV0dXJu
ZWQgYnkKKyAgKiB7QGxpbmsgI2dldEFsbERldGVjdGFibGVDaGFyc2V0cygpfS4KKyAgKgorICAq
IEBwYXJhbSB1Y3NkIGEgQ2hhcnNldCBkZXRlY3Rvci4KKyAgKiBAcGFyYW0gZW5jb2RpbmcgZW5j
b2RpbmcgdGhlIG5hbWUgb2YgY2hhcnNldCBlbmNvZGluZy4KKyAgKiBAcGFyYW0gZW5hYmxlZCA8
Y29kZT5UUlVFPC9jb2RlPiB0byBlbmFibGUsIG9yIDxjb2RlPkZBTFNFPC9jb2RlPiB0byBkaXNh
YmxlIHRoZQorICAqICAgY2hhcnNldCBlbmNvZGluZy4KKyAgKiBAcGFyYW0gc3RhdHVzIHJlY2Vp
dmVzIHRoZSByZXR1cm4gc3RhdHVzLiBXaGVuIHRoZSBuYW1lIG9mIGNoYXJzZXQgZW5jb2RpbmcK
KyAgKiAgIGlzIG5vdCBzdXBwb3J0ZWQsIFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUiBpcyBzZXQu
CisgICogQGludGVybmFsCisgICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyCit1Y3NkZXRf
c2V0RGV0ZWN0YWJsZUNoYXJzZXQoVUNoYXJzZXREZXRlY3RvciAqdWNzZCwgY29uc3QgY2hhciAq
ZW5jb2RpbmcsIFVCb29sIGVuYWJsZWQsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisjZW5kaWYgIC8q
IFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKwogI2VuZGlmCiAjZW5kaWYgICAvKiBfX1VDU0RFVF9I
ICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VlbnVtLmggYi9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91ZW51bS5oCmluZGV4IDBlN2Q5MGNjNWNhMGI5YzA2
MDhkZjhiODlmZDA3NjhkMTlmNWM2ODguLjU0MDhlYzVhNjYwNWI3NTQwODU4YjRlZjY3ZTk5OWZl
MjJjNTEyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VlbnVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWVudW0uaApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIw
MTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIw
MDItMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgpAQCAtMTY0LDExICsxNjQsNDMgQEAgdWVudW1fcmVzZXQoVUVudW1lcmF0aW9uKiBlbiwg
VUVycm9yQ29kZSogc3RhdHVzKTsKICAqIEBwYXJhbSBhZG9wdGVkIHRoZSBDKysgU3RyaW5nRW51
bWVyYXRpb24gdG8gYmUgd3JhcHBlZCBpbiBhIFVFbnVtZXJhdGlvbi4KICAqIEBwYXJhbSBlYyB0
aGUgZXJyb3IgY29kZS4KICAqIEByZXR1cm4gYSBVRW51bWVyYXRpb24gd3JhcHBpbmcgdGhlIGFk
b3B0ZWQgU3RyaW5nRW51bWVyYXRpb24uCi0gKiBAZHJhZnQgSUNVIDQuMgorICogQHN0YWJsZSBJ
Q1UgNC4yCiAgKi8KLVVfQ0FQSSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgotdWVudW1fb3BlbkZy
b21TdHJpbmdFbnVtZXJhdGlvbihVX05BTUVTUEFDRV9RVUFMSUZJRVIgU3RyaW5nRW51bWVyYXRp
b24qIGFkb3B0ZWQsIFVFcnJvckNvZGUqIGVjKTsKK1VfU1RBQkxFIFVFbnVtZXJhdGlvbiogVV9F
WFBPUlQyCit1ZW51bV9vcGVuRnJvbVN0cmluZ0VudW1lcmF0aW9uKGljdTo6U3RyaW5nRW51bWVy
YXRpb24qIGFkb3B0ZWQsIFVFcnJvckNvZGUqIGVjKTsKIAogI2VuZGlmCiAKKy8qKgorICogR2l2
ZW4gYW4gYXJyYXkgb2YgY29uc3QgVUNoYXIqIHN0cmluZ3MsIHJldHVybiBhIFVFbnVtZXJhdGlv
bi4gIFN0cmluZyBwb2ludGVycyBmcm9tIDAuLmNvdW50LTEgbXVzdCBub3QgYmUgbnVsbC4KKyAq
IERvIG5vdCBmcmVlIG9yIG1vZGlmeSBlaXRoZXIgdGhlIHN0cmluZyBhcnJheSBvciB0aGUgY2hh
cmFjdGVycyBpdCBwb2ludHMgdG8gdW50aWwgdGhpcyBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVk
IHdpdGggdWVudW1fY2xvc2UuCisgKiBcc25pcHBldCB0ZXN0L2NpbnRsdHN0L3VlbnVtdHN0LmMg
dWVudW1fb3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uCisgKiBAcGFyYW0gc3RyaW5ncyBhcnJh
eSBvZiBjb25zdCBVQ2hhciogc3RyaW5ncyAoZWFjaCBudWxsIHRlcm1pbmF0ZWQpLiBBbGwgc3Rv
cmFnZSBpcyBvd25lZCBieSB0aGUgY2FsbGVyLgorICogQHBhcmFtIGNvdW50IGxlbmd0aCBvZiB0
aGUgYXJyYXkKKyAqIEBwYXJhbSBlYyBlcnJvciBjb2RlCisgKiBAcmV0dXJuIHRoZSBuZXcgVUVu
dW1lcmF0aW9uIG9iamVjdC4gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHVlbnVt
X2Nsb3NlIHRvIGZyZWUgbWVtb3J5LgorICogQHNlZSB1ZW51bV9jbG9zZQorICogQHN0YWJsZSBJ
Q1UgNTAKKyAqLworVV9TVEFCTEUgVUVudW1lcmF0aW9uKiBVX0VYUE9SVDIKK3VlbnVtX29wZW5V
Q2hhclN0cmluZ3NFbnVtZXJhdGlvbihjb25zdCBVQ2hhciogY29uc3Qgc3RyaW5nc1tdLCBpbnQz
Ml90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSog
ZWMpOworCisvKiBOb3RlOiAgbmV4dCBmdW5jdGlvbiBpcyBub3QgaGlkZGVuIGFzIGRyYWZ0LCBh
cyBpdCBpcyB1c2VkIGludGVybmFsbHkgKGl0IHdhcyBmb3JtZXJseSBhbiBpbnRlcm5hbCBmdW5j
dGlvbikuICovCisKKy8qKgorICogR2l2ZW4gYW4gYXJyYXkgb2YgY29uc3QgY2hhciogc3RyaW5n
cyAoaW52YXJpYW50IGNoYXJzIG9ubHkpLCByZXR1cm4gYSBVRW51bWVyYXRpb24uICBTdHJpbmcg
cG9pbnRlcnMgZnJvbSAwLi5jb3VudC0xIG11c3Qgbm90IGJlIG51bGwuCisgKiBEbyBub3QgZnJl
ZSBvciBtb2RpZnkgZWl0aGVyIHRoZSBzdHJpbmcgYXJyYXkgb3IgdGhlIGNoYXJhY3RlcnMgaXQg
cG9pbnRzIHRvIHVudGlsIHRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlc3Ryb3llZCB3aXRoIHVlbnVt
X2Nsb3NlLgorICogXHNuaXBwZXQgdGVzdC9jaW50bHRzdC91ZW51bXRzdC5jIHVlbnVtX29wZW5D
aGFyU3RyaW5nc0VudW1lcmF0aW9uCisgKiBAcGFyYW0gc3RyaW5ncyBhcnJheSBvZiBjaGFyKiBz
dHJpbmdzIChlYWNoIG51bGwgdGVybWluYXRlZCkuICBBbGwgc3RvcmFnZSBpcyBvd25lZCBieSB0
aGUgY2FsbGVyLgorICogQHBhcmFtIGNvdW50IGxlbmd0aCBvZiB0aGUgYXJyYXkKKyAqIEBwYXJh
bSBlYyBlcnJvciBjb2RlCisgKiBAcmV0dXJuIHRoZSBuZXcgVUVudW1lcmF0aW9uIG9iamVjdC4g
Q2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHVlbnVtX2Nsb3NlIHRvIGZyZWUgbWVt
b3J5CisgKiBAc2VlIHVlbnVtX2Nsb3NlCisgKiBAc3RhYmxlIElDVSA1MAorICovCitVX1NUQUJM
RSBVRW51bWVyYXRpb24qIFVfRVhQT1JUMgordWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRp
b24oY29uc3QgY2hhciogY29uc3Qgc3RyaW5nc1tdLCBpbnQzMl90IGNvdW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogZWMpOworCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VpZG5hLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91aWRuYS5oCmluZGV4IDA0YjQzOWQ5NzBmNDU4MjRhYjlmZThjN2VmNDc3
MTA2MzM0ZWFkMWQuLjJlZmIxMzBmOTRlNDM5OGE5ZTVhYzI2YTdhZGM3MTM1MzMyMjdkMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VpZG5hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaWN1L3VuaWNvZGUvdWlkbmEuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogICoKLSAqICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTAsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
QEAgLTQyLDEyICs0MiwxNCBAQAogZW51bSB7CiAgICAgLyoqCiAgICAgICogRGVmYXVsdCBvcHRp
b25zIHZhbHVlOiBOb25lIG9mIHRoZSBvdGhlciBvcHRpb25zIGFyZSBzZXQuCisgICAgICogRm9y
IHVzZSBpbiBzdGF0aWMgd29ya2VyIGFuZCBmYWN0b3J5IG1ldGhvZHMuCiAgICAgICogQHN0YWJs
ZSBJQ1UgMi42CiAgICAgICovCiAgICAgVUlETkFfREVGQVVMVD0wLAogICAgIC8qKgogICAgICAq
IE9wdGlvbiB0byBhbGxvdyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIGRvbWFpbiBuYW1lcyBh
bmQgbGFiZWxzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIFVUUzQ2IGlt
cGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9y
eSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIFVUUzQ2
IGltcGxlbWVudGF0aW9uLgogICAgICAqIChVVFMgIzQ2IGRpc2FsbG93cyB1bmFzc2lnbmVkIGNv
ZGUgcG9pbnRzLikKICAgICAgKiBAc3RhYmxlIElDVSAyLjYKICAgICAgKi8KQEAgLTU2LDQ3ICs1
OCw2MiBAQCBlbnVtIHsKICAgICAgKiBPcHRpb24gdG8gY2hlY2sgd2hldGhlciB0aGUgaW5wdXQg
Y29uZm9ybXMgdG8gdGhlIFNURDMgQVNDSUkgcnVsZXMsCiAgICAgICogZm9yIGV4YW1wbGUgdGhl
IHJlc3RyaWN0aW9uIG9mIGxhYmVscyB0byBMREggY2hhcmFjdGVycwogICAgICAqIChBU0NJSSBM
ZXR0ZXJzLCBEaWdpdHMgYW5kIEh5cGhlbi1NaW51cykuCisgICAgICogRm9yIHVzZSBpbiBzdGF0
aWMgd29ya2VyIGFuZCBmYWN0b3J5IG1ldGhvZHMuCiAgICAgICogQHN0YWJsZSBJQ1UgMi42CiAg
ICAgICovCiAgICAgVUlETkFfVVNFX1NURDNfUlVMRVM9MiwKICAgICAvKioKICAgICAgKiBJRE5B
IG9wdGlvbiB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9ybXMgdG8gdGhlIEJp
RGkgcnVsZXMuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSUROQTIwMDMg
aW1wbGVtZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29ya2VyIGFuZCBmYWN0
b3J5IG1ldGhvZHMuCisgICAgICogPHA+VGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSURO
QTIwMDMgaW1wbGVtZW50YXRpb24uCiAgICAgICogKElETkEyMDAzIGFsd2F5cyBwZXJmb3JtcyBh
IEJpRGkgY2hlY2suKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1Ug
NC42CiAgICAgICovCiAgICAgVUlETkFfQ0hFQ0tfQklEST00LAogICAgIC8qKgogICAgICAqIElE
TkEgb3B0aW9uIHRvIGNoZWNrIGZvciB3aGV0aGVyIHRoZSBpbnB1dCBjb25mb3JtcyB0byB0aGUg
Q09OVEVYVEogcnVsZXMuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0aGUgSURO
QTIwMDMgaW1wbGVtZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMgd29ya2VyIGFu
ZCBmYWN0b3J5IG1ldGhvZHMuCisgICAgICogPHA+VGhpcyBvcHRpb24gaXMgaWdub3JlZCBieSB0
aGUgSUROQTIwMDMgaW1wbGVtZW50YXRpb24uCiAgICAgICogKFRoZSBDT05URVhUSiBjaGVjayBp
cyBuZXcgaW4gSUROQTIwMDguKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJs
ZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfQ0hFQ0tfQ09OVEVYVEo9OCwKICAgICAvKioK
ICAgICAgKiBJRE5BIG9wdGlvbiBmb3Igbm9udHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcgaW4gVG9B
U0NJSSgpLgotICAgICAqIEJ5IGRlZmF1bHQsIFRvQVNDSUkoKSB1c2VzIHRyYW5zaXRpb25hbCBw
cm9jZXNzaW5nLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElETkEyMDAz
IGltcGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFj
dG9yeSBtZXRob2RzLgorICAgICAqIDxwPkJ5IGRlZmF1bHQsIFRvQVNDSUkoKSB1c2VzIHRyYW5z
aXRpb25hbCBwcm9jZXNzaW5nLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkg
dGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGlzIGlzIG9ubHkgcmVsZXZh
bnQgZm9yIGNvbXBhdGliaWxpdHkgb2YgbmV3ZXIgSUROQSBpbXBsZW1lbnRhdGlvbnMgd2l0aCBJ
RE5BMjAwMy4pCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYK
ICAgICAgKi8KICAgICBVSUROQV9OT05UUkFOU0lUSU9OQUxfVE9fQVNDSUk9MHgxMCwKICAgICAv
KioKICAgICAgKiBJRE5BIG9wdGlvbiBmb3Igbm9udHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcgaW4g
VG9Vbmljb2RlKCkuCi0gICAgICogQnkgZGVmYXVsdCwgVG9Vbmljb2RlKCkgdXNlcyB0cmFuc2l0
aW9uYWwgcHJvY2Vzc2luZy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBJ
RE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIg
YW5kIGZhY3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5CeSBkZWZhdWx0LCBUb1VuaWNvZGUoKSB1
c2VzIHRyYW5zaXRpb25hbCBwcm9jZXNzaW5nLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGln
bm9yZWQgYnkgdGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGlzIGlzIG9u
bHkgcmVsZXZhbnQgZm9yIGNvbXBhdGliaWxpdHkgb2YgbmV3ZXIgSUROQSBpbXBsZW1lbnRhdGlv
bnMgd2l0aCBJRE5BMjAwMy4pCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxl
IElDVSA0LjYKICAgICAgKi8KLSAgICBVSUROQV9OT05UUkFOU0lUSU9OQUxfVE9fVU5JQ09ERT0w
eDIwCisgICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX1VOSUNPREU9MHgyMCwKKyAgICAvKioK
KyAgICAgKiBJRE5BIG9wdGlvbiB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9y
bXMgdG8gdGhlIENPTlRFWFRPIHJ1bGVzLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtl
ciBhbmQgZmFjdG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQg
YnkgdGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgorICAgICAqIChUaGUgQ09OVEVYVE8gY2hl
Y2sgaXMgbmV3IGluIElETkEyMDA4LikKKyAgICAgKiA8cD5UaGlzIGlzIGZvciB1c2UgYnkgcmVn
aXN0cmllcyBmb3IgSUROQTIwMDggY29uZm9ybWFuY2UuCisgICAgICogVVRTICM0NiBkb2VzIG5v
dCByZXF1aXJlIHRoZSBDT05URVhUTyBjaGVjay4KKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAg
ICAqLworICAgIFVJRE5BX0NIRUNLX0NPTlRFWFRPPTB4NDAKIH07CiAKIC8qKgogICogT3BhcXVl
IEMgc2VydmljZSBvYmplY3QgdHlwZSBmb3IgdGhlIG5ldyBJRE5BIEFQSS4KLSAqIEBkcmFmdCBJ
Q1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwogc3RydWN0IFVJRE5BOwotdHlwZWRlZiBz
dHJ1Y3QgVUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVJRE5BLiBAZHJh
ZnQgSUNVIDQuNiAqLwordHlwZWRlZiBzdHJ1Y3QgVUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRl
ZiBmb3Igc3RydWN0IFVJRE5BLiBAc3RhYmxlIElDVSA0LjYgKi8KIAogLyoqCiAgKiBSZXR1cm5z
IGEgVUlETkEgaW5zdGFuY2Ugd2hpY2ggaW1wbGVtZW50cyBVVFMgIzQ2LgpAQCAtMTEzLDE3ICsx
MzAsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgVUlETkEgVUlETkE7ICAvKio8IEMgdHlwZWRlZiBmb3Ig
c3RydWN0IFVJRE5BLiBAZHJhZnQgSUNVIDQuNiAqLwogICogICAgICAgICAgICAgICAgICBpbW1l
ZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAogICog
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBk
ZXRhaWxzLikKICAqIEByZXR1cm4gdGhlIFVUUyAjNDYgVUlETkEgaW5zdGFuY2UsIGlmIHN1Y2Nl
c3NmdWwKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFG
VCBVSUROQSAqIFVfRVhQT1JUMgorVV9TVEFCTEUgVUlETkEgKiBVX0VYUE9SVDIKIHVpZG5hX29w
ZW5VVFM0Nih1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoq
CiAgKiBDbG9zZXMgYSBVSUROQSBpbnN0YW5jZS4KICAqIEBwYXJhbSBpZG5hIFVJRE5BIGluc3Rh
bmNlIHRvIGJlIGNsb3NlZAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgog
ICovCi1VX0RSQUZUIHZvaWQgVV9FWFBPUlQyCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgogdWlk
bmFfY2xvc2UoVUlETkEgKmlkbmEpOwogCiAjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKQEAgLTEz
Nyw3ICsxNTQsNyBAQCBVX05BTUVTUEFDRV9CRUdJTgogICoKICAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQogICogQHNlZSBMb2NhbFBvaW50ZXIKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxl
IElDVSA0LjYKICAqLwogVV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUlETkFQb2lu
dGVyLCBVSUROQSwgdWlkbmFfY2xvc2UpOwogCkBAIC0xNTMsMzIgKzE3MCwzMSBAQCBVX05BTUVT
UEFDRV9FTkQKICAqIGludDMyX3QgbGVuZ3RoID0gdWlkbmFfbmFtZVRvQVNDSUkoLi4uLCAmaW5m
bywgJmVycm9yQ29kZSk7CiAgKiBpZihVX1NVQ0NFU1MoZXJyb3JDb2RlKSAmJiBpbmZvLmVycm9y
cyE9MCkgeyAuLi4gfQogICogXGVuZGNvZGUKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxl
IElDVSA0LjYKICAqLwotc3RydWN0IFVJRE5BSW5mbyB7Ci0gICAgLyoqIHNpemVvZihVSUROQUlu
Zm8pIEBkcmFmdCBJQ1UgNC42ICovCit0eXBlZGVmIHN0cnVjdCBVSUROQUluZm8geworICAgIC8q
KiBzaXplb2YoVUlETkFJbmZvKSBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBpbnQxNl90IHNpemU7
CiAgICAgLyoqCiAgICAgICogU2V0IHRvIFRSVUUgaWYgdHJhbnNpdGlvbmFsIGFuZCBub250cmFu
c2l0aW9uYWwgcHJvY2Vzc2luZyBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLgogICAgICAqIEZv
ciBkZXRhaWxzIHNlZSBDKysgSUROQUluZm86OmlzVHJhbnNpdGlvbmFsRGlmZmVyZW50KCkuCi0g
ICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAg
ICBVQm9vbCBpc1RyYW5zaXRpb25hbERpZmZlcmVudDsKICAgICBVQm9vbCByZXNlcnZlZEIzOyAg
LyoqPCBSZXNlcnZlZCBmaWVsZCwgZG8gbm90IHVzZS4gQGludGVybmFsICovCiAgICAgLyoqCiAg
ICAgICogQml0IHNldCBpbmRpY2F0aW5nIElETkEgcHJvY2Vzc2luZyBlcnJvcnMuIDAgaWYgbm8g
ZXJyb3JzLgogICAgICAqIFNlZSBVSUROQV9FUlJPUl8uLi4gY29uc3RhbnRzLgotICAgICAqIEBk
cmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgdWludDMy
X3QgZXJyb3JzOwogICAgIGludDMyX3QgcmVzZXJ2ZWRJMjsgIC8qKjwgUmVzZXJ2ZWQgZmllbGQs
IGRvIG5vdCB1c2UuIEBpbnRlcm5hbCAqLwogICAgIGludDMyX3QgcmVzZXJ2ZWRJMzsgIC8qKjwg
UmVzZXJ2ZWQgZmllbGQsIGRvIG5vdCB1c2UuIEBpbnRlcm5hbCAqLwotfTsKLXR5cGVkZWYgc3Ry
dWN0IFVJRE5BSW5mbyBVSUROQUluZm87Cit9IFVJRE5BSW5mbzsKIAogLyoqCiAgKiBTdGF0aWMg
aW5pdGlhbGl6ZXIgZm9yIGEgVUlETkFJbmZvIHN0cnVjdC4KLSAqIEBkcmFmdCBJQ1UgNC42Cisg
KiBAc3RhYmxlIElDVSA0LjYKICAqLwogI2RlZmluZSBVSUROQV9JTkZPX0lOSVRJQUxJWkVSIHsg
XAogICAgIChpbnQxNl90KXNpemVvZihVSUROQUluZm8pLCBcCkBAIC0yMDYsOSArMjIyLDkgQEAg
dHlwZWRlZiBzdHJ1Y3QgVUlETkFJbmZvIFVJRE5BSW5mbzsKICAqICAgICAgICAgICAgICAgICAg
aW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgK
ICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBm
b3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBk
cmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVf
RVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX2xhYmVsVG9BU0NJSShj
b25zdCBVSUROQSAqaWRuYSwKICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbGFiZWws
IGludDMyX3QgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90
IGNhcGFjaXR5LApAQCAtMjMzLDkgKzI0OSw5IEBAIHVpZG5hX2xhYmVsVG9BU0NJSShjb25zdCBV
SUROQSAqaWRuYSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBV
X0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJu
IGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxl
IElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJf
dCBVX0VYUE9SVDIKIHVpZG5hX2xhYmVsVG9Vbmljb2RlKGNvbnN0IFVJRE5BICppZG5hLAogICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxhYmVsLCBpbnQzMl90IGxlbmd0aCwKICAg
ICAgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LApAQCAtMjYy
LDkgKzI3OCw5IEBAIHVpZG5hX2xhYmVsVG9Vbmljb2RlKGNvbnN0IFVJRE5BICppZG5hLAogICog
ICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91
dHB1dCBvciB1c2Ugd2l0aAogICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4g
KFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRpb24gc3Ry
aW5nIGxlbmd0aAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1V
X0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWlk
bmFfbmFtZVRvQVNDSUkoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICBjb25z
dCBVQ2hhciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICBVQ2hhciAq
ZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTI4OSw5ICszMDUsOSBAQCB1aWRuYV9uYW1lVG9B
U0NJSShjb25zdCBVSUROQSAqaWRuYSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHku
IENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4p
CiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42
CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX25hbWVUb1VuaWNvZGUoY29uc3QgVUlETkEg
KmlkbmEsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpuYW1lLCBpbnQzMl90IGxl
bmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHks
CkBAIC0zMTQsOSArMzMwLDkgQEAgdWlkbmFfbmFtZVRvVW5pY29kZShjb25zdCBVSUROQSAqaWRu
YSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUo
KSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hh
aW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0
aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYK
ICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKIHVpZG5hX2xhYmVsVG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbGFiZWwsIGludDMyX3QgbGVuZ3RoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTMzNyw5
ICszNTMsOSBAQCB1aWRuYV9sYWJlbFRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAq
ICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBv
dXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcu
IChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0
cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwot
VV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVp
ZG5hX2xhYmVsVG9Vbmljb2RlVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpsYWJlbCwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTM2MCw5ICsz
NzYsOSBAQCB1aWRuYV9sYWJlbFRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiAgKiAg
ICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0
cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAo
U2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJp
bmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVf
RFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRu
YV9uYW1lVG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpuYW1lLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwKQEAgLTM4Myw5ICszOTksOSBAQCB1
aWRuYV9uYW1lVG9BU0NJSV9VVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICogICAgICAgICAgICAg
ICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ug
d2l0aAogICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1
aWRlIGZvciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRpb24gc3RyaW5nIGxlbmd0aAot
ICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1VX0RSQUZUIGludDMy
X3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdWlkbmFfbmFtZVRvVW5p
Y29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpuYW1lLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zOTksNTggKzQxNSw1OCBAQCB1aWRuYV9u
YW1lVG9Vbmljb2RlVVRGOChjb25zdCBVSUROQSAqaWRuYSwKIGVudW0gewogICAgIC8qKgogICAg
ICAqIEEgbm9uLWZpbmFsIGRvbWFpbiBuYW1lIGxhYmVsIChvciB0aGUgd2hvbGUgZG9tYWluIG5h
bWUpIGlzIGVtcHR5LgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1Ug
NC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfRU1QVFlfTEFCRUw9MSwKICAgICAvKioKICAg
ICAgKiBBIGRvbWFpbiBuYW1lIGxhYmVsIGlzIGxvbmdlciB0aGFuIDYzIGJ5dGVzLgogICAgICAq
IChTZWUgU1REMTMvUkZDMTAzNCAzLjEuIE5hbWUgc3BhY2Ugc3BlY2lmaWNhdGlvbnMgYW5kIHRl
cm1pbm9sb2d5LikKICAgICAgKiBUaGlzIGlzIG9ubHkgY2hlY2tlZCBpbiBUb0FTQ0lJIG9wZXJh
dGlvbnMsIGFuZCBvbmx5IGlmIHRoZSBvdXRwdXQgbGFiZWwgaXMgYWxsLUFTQ0lJLgotICAgICAq
IEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlE
TkFfRVJST1JfTEFCRUxfVE9PX0xPTkc9MiwKICAgICAvKioKICAgICAgKiBBIGRvbWFpbiBuYW1l
IGlzIGxvbmdlciB0aGFuIDI1NSBieXRlcyBpbiBpdHMgc3RvcmFnZSBmb3JtLgogICAgICAqIChT
ZWUgU1REMTMvUkZDMTAzNCAzLjEuIE5hbWUgc3BhY2Ugc3BlY2lmaWNhdGlvbnMgYW5kIHRlcm1p
bm9sb2d5LikKICAgICAgKiBUaGlzIGlzIG9ubHkgY2hlY2tlZCBpbiBUb0FTQ0lJIG9wZXJhdGlv
bnMsIGFuZCBvbmx5IGlmIHRoZSBvdXRwdXQgZG9tYWluIG5hbWUgaXMgYWxsLUFTQ0lJLgotICAg
ICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAg
VUlETkFfRVJST1JfRE9NQUlOX05BTUVfVE9PX0xPTkc9NCwKICAgICAvKioKICAgICAgKiBBIGxh
YmVsIHN0YXJ0cyB3aXRoIGEgaHlwaGVuLW1pbnVzICgnLScpLgotICAgICAqIEBkcmFmdCBJQ1Ug
NC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfTEVB
RElOR19IWVBIRU49OCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIGVuZHMgd2l0aCBhIGh5cGhl
bi1taW51cyAoJy0nKS4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNV
IDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX1RSQUlMSU5HX0hZUEhFTj0weDEwLAogICAg
IC8qKgogICAgICAqIEEgbGFiZWwgY29udGFpbnMgaHlwaGVuLW1pbnVzICgnLScpIGluIHRoZSB0
aGlyZCBhbmQgZm91cnRoIHBvc2l0aW9ucy4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAq
IEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX0hZUEhFTl8zXzQ9MHgy
MCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIHN0YXJ0cyB3aXRoIGEgY29tYmluaW5nIG1hcmsu
Ci0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8K
ICAgICBVSUROQV9FUlJPUl9MRUFESU5HX0NPTUJJTklOR19NQVJLPTB4NDAsCiAgICAgLyoqCiAg
ICAgICogQSBsYWJlbCBvciBkb21haW4gbmFtZSBjb250YWlucyBkaXNhbGxvd2VkIGNoYXJhY3Rl
cnMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAg
Ki8KICAgICBVSUROQV9FUlJPUl9ESVNBTExPV0VEPTB4ODAsCiAgICAgLyoqCiAgICAgICogQSBs
YWJlbCBzdGFydHMgd2l0aCAieG4tLSIgYnV0IGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgUHVueWNv
ZGUuCiAgICAgICogVGhhdCBpcywgYW4geG4tLSBsYWJlbCBmYWlsZWQgUHVueWNvZGUgZGVjb2Rp
bmcuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAg
Ki8KICAgICBVSUROQV9FUlJPUl9QVU5ZQ09ERT0weDEwMCwKICAgICAvKioKICAgICAgKiBBIGxh
YmVsIGNvbnRhaW5zIGEgZG90PWZ1bGwgc3RvcC4KICAgICAgKiBUaGlzIGNhbiBvY2N1ciBpbiBh
biBpbnB1dCBzdHJpbmcgZm9yIGEgc2luZ2xlLWxhYmVsIGZ1bmN0aW9uLgotICAgICAqIEBkcmFm
dCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJS
T1JfTEFCRUxfSEFTX0RPVD0weDIwMCwKICAgICAvKioKQEAgLTQ1OSwxOSArNDc1LDMyIEBAIGVu
dW0gewogICAgICAqIHN0cmluZyBoYWQgc2V2ZXJlIHZhbGlkYXRpb24gZXJyb3JzLiBGb3IgZXhh
bXBsZSwKICAgICAgKiBpdCBtaWdodCBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFs
bG93ZWQgaW4gQUNFIGxhYmVscywKICAgICAgKiBvciBpdCBtaWdodCBub3QgYmUgbm9ybWFsaXpl
ZC4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAq
LwogICAgIFVJRE5BX0VSUk9SX0lOVkFMSURfQUNFX0xBQkVMPTB4NDAwLAogICAgIC8qKgogICAg
ICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBCaURpIHJlcXVpcmVtZW50cyAoZm9y
IHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycykuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAg
KiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9CSURJPTB4ODAwLAog
ICAgIC8qKgogICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBDT05URVhUSiBy
ZXF1aXJlbWVudHMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0
LjYKKyAgICAgKi8KKyAgICBVSUROQV9FUlJPUl9DT05URVhUSj0weDEwMDAsCisgICAgLyoqCisg
ICAgICogQSBsYWJlbCBkb2VzIG5vdCBtZWV0IHRoZSBJRE5BIENPTlRFWFRPIHJlcXVpcmVtZW50
cyBmb3IgcHVuY3R1YXRpb24gY2hhcmFjdGVycy4KKyAgICAgKiBTb21lIHB1bmN0dWF0aW9uIGNo
YXJhY3RlcnMgIldvdWxkIG90aGVyd2lzZSBoYXZlIGJlZW4gRElTQUxMT1dFRCIKKyAgICAgKiBi
dXQgYXJlIGFsbG93ZWQgaW4gY2VydGFpbiBjb250ZXh0cy4gKFJGQyA1ODkyKQorICAgICAqIEBz
dGFibGUgSUNVIDQ5CisgICAgICovCisgICAgVUlETkFfRVJST1JfQ09OVEVYVE9fUFVOQ1RVQVRJ
T049MHgyMDAwLAorICAgIC8qKgorICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSURO
QSBDT05URVhUTyByZXF1aXJlbWVudHMgZm9yIGRpZ2l0cy4KKyAgICAgKiBBcmFiaWMtSW5kaWMg
RGlnaXRzIChVKzA2NngpIG11c3Qgbm90IGJlIG1peGVkIHdpdGggRXh0ZW5kZWQgQXJhYmljLUlu
ZGljIERpZ2l0cyAoVSswNkZ4KS4KKyAgICAgKiBAc3RhYmxlIElDVSA0OQogICAgICAqLwotICAg
IFVJRE5BX0VSUk9SX0NPTlRFWFRKPTB4MTAwMAorICAgIFVJRE5BX0VSUk9SX0NPTlRFWFRPX0RJ
R0lUUz0weDQwMDAKIH07CiAKIC8qIElETkEyMDAzIEFQSSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91aXRlci5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3Vu
aWNvZGUvdWl0ZXIuaAppbmRleCBiNDY5ZTI0ZTYxNjUzZDdlNmQwYmU4YzhmYTY3ZmYyNjUxYjUx
ZmEzLi4wY2RiOGZmYmU1YzgxNTRhYzlkOTA4ZjYwNWIwZWIxNmVhNWJiMTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91aXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ljdS91bmljb2RlL3VpdGVyLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LDIwMDkgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDExIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTY3Myw3ICs2
NzMsNyBAQCB1aXRlcl9zZXRVVEY4KFVDaGFySXRlcmF0b3IgKml0ZXIsIGNvbnN0IGNoYXIgKnMs
IGludDMyX3QgbGVuZ3RoKTsKICAqIEBzdGFibGUgSUNVIDIuMQogICovCiBVX1NUQUJMRSB2b2lk
IFVfRVhQT1JUMgotdWl0ZXJfc2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRvciAqaXRl
ciwgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIENoYXJhY3Rlckl0ZXJhdG9yICpjaGFySXRlcik7Cit1
aXRlcl9zZXRDaGFyYWN0ZXJJdGVyYXRvcihVQ2hhckl0ZXJhdG9yICppdGVyLCBpY3U6OkNoYXJh
Y3Rlckl0ZXJhdG9yICpjaGFySXRlcik7CiAKIC8qKgogICogU2V0IHVwIGEgVUNoYXJJdGVyYXRv
ciB0byBpdGVyYXRlIG92ZXIgYSBDKysgUmVwbGFjZWFibGUuCkBAIC02OTgsNyArNjk4LDcgQEAg
dWl0ZXJfc2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRvciAqaXRlciwgVV9OQU1FU1BB
Q0VfUVVBTElGSUVSIENoYXJhY3RlckkKICAqIEBzdGFibGUgSUNVIDIuMQogICovCiBVX1NUQUJM
RSB2b2lkIFVfRVhQT1JUMgotdWl0ZXJfc2V0UmVwbGFjZWFibGUoVUNoYXJJdGVyYXRvciAqaXRl
ciwgY29uc3QgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFJlcGxhY2VhYmxlICpyZXApOwordWl0ZXJf
c2V0UmVwbGFjZWFibGUoVUNoYXJJdGVyYXRvciAqaXRlciwgY29uc3QgaWN1OjpSZXBsYWNlYWJs
ZSAqcmVwKTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmlj
b2RlL3Vsb2MuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vsb2MuaAppbmRleCA5NTc1
OGMzYTM0YzBmZWY2MGYxNGI0YzU2ZjFkMjVlYTRjYWY5ODA3Li4yOGFiOTAyYjUyMjI5M2IzMzIw
ZTllOWQwN2VhZGYxMzkxNjU4YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5p
Y29kZS91bG9jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdWxvYy5oCkBAIC0x
LDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAx
MCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5
Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0y
ODksNyArMjg5LDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJ0AnIHNlcGFy
YXRpbmcga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIHN0cmluZy4KICAgKiBAc2VlIFVMT0NfS0VZ
V09SRF9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQuNgorICAqIEBzdGFibGUgSUNVIDQuNgog
ICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfU0VQQVJBVE9SX1VOSUNPREUgMHg0MAogCkBAIC0z
MDIsNyArMzAyLDcgQEAKIC8qKgogICAqIFVuaWNvZGUgY29kZSBwb2ludCBmb3IgJz0nIGZvciBh
c3NpZ25pbmcgdmFsdWUgdG8gYSBrZXl3b3JkLgogICAqIEBzZWUgVUxPQ19LRVlXT1JEX0FTU0lH
TgotICAqIEBkcmFmdCBJQ1UgNC42IAorICAqIEBzdGFibGUgSUNVIDQuNiAKICAgKi8KICNkZWZp
bmUgVUxPQ19LRVlXT1JEX0FTU0lHTl9VTklDT0RFIDB4M0QKIApAQCAtMzE1LDcgKzMxNSw3IEBA
CiAvKioKICAgKiBVbmljb2RlIGNvZGUgcG9pbnQgZm9yICc7JyBzZXBhcmF0aW5nIGtleXdvcmRz
CiAgICogQHNlZSBVTE9DX0tFWVdPUkRfSVRFTV9TRVBBUkFUT1IKLSAgKiBAZHJhZnQgSUNVIDQu
NgorICAqIEBzdGFibGUgSUNVIDQuNgogICAqLwogI2RlZmluZSBVTE9DX0tFWVdPUkRfSVRFTV9T
RVBBUkFUT1JfVU5JQ09ERSAweDNCCiAKQEAgLTM1Myw3ICszNTMsNyBAQCB0eXBlZGVmIGVudW0g
ewogICBVTE9DX0RBVEFfTE9DQUxFX1RZUEVfTElNSVQgPSAzCiB9IFVMb2NEYXRhTG9jYWxlVHlw
ZSA7CiAKLQorI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQogLyoqCiAgKiBHZXRzIElDVSdzIGRl
ZmF1bHQgbG9jYWxlLiAgCiAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIGlzIGEgc25hcHNob3QgaW4g
dGltZSwgYW5kIHdpbGwgcmVtYWluIHZhbGlkCkBAIC0zODgsNiArMzg4LDcgQEAgdWxvY19nZXRE
ZWZhdWx0KHZvaWQpOwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKIHVsb2Nfc2V0RGVmYXVsdChj
b25zdCBjaGFyKiBsb2NhbGVJRCwKICAgICAgICAgVUVycm9yQ29kZSogICAgICAgc3RhdHVzKTsK
KyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KIAogLyoqCiAgKiBHZXRzIHRoZSBsYW5n
dWFnZSBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KQEAgLTc1Miw3ICs3NTMsOSBAQCBV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiB1bG9jX2NvdW50QXZhaWxhYmxlKHZvaWQpOwogCiAv
KioKICAqCi0gKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRl
ZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgKiBHZXRzIGEgbGlzdCBvZiBh
bGwgYXZhaWxhYmxlIDItbGV0dGVyIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOSwK
KyAqIHBsdXMgYWRkaXRpb25hbCAzLWxldHRlciBjb2RlcyBkZXRlcm1pbmVkIHRvIGJlIHVzZWZ1
bCBmb3IgbG9jYWxlIGdlbmVyYXRpb24gYXMKKyAqIGRlZmluZWQgYnkgVW5pY29kZSBDTERSLiBU
aGlzIGlzIGEgcG9pbnRlcgogICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9m
IGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCiAgKiBieSBJQ1UtLSBkbyBu
b3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5
IGlzCiAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCkBAIC03OTcsMTIgKzgwMCwx
NSBAQCB1bG9jX2dldFBhcmVudChjb25zdCBjaGFyKiAgICBsb2NhbGVJRCwKIAogCiAvKioKLSAq
IEdldHMgdGhlIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgKiBHZXRzIHRo
ZSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBsaWtlIHVsb2NfZ2V0TmFtZSgp
LAorICogYnV0IHdpdGhvdXQga2V5d29yZHMuCisgKgogICogTm90ZTogVGhpcyBoYXMgdGhlIGVm
ZmVjdCBvZiAnY2Fub25pY2FsaXppbmcnIHRoZSBzdHJpbmcgdG8KICAqIGEgY2VydGFpbiBleHRl
bnQuIFVwcGVyIGFuZCBsb3dlciBjYXNlIGFyZSBzZXQgYXMgbmVlZGVkLAogICogYW5kIGlmIHRo
ZSBjb21wb25lbnRzIHdlcmUgaW4gJ1BPU0lYJyBmb3JtYXQgdGhleSBhcmUgY2hhbmdlZCB0bwog
ICogSUNVIGZvcm1hdC4gIEl0IGRvZXMgTk9UIG1hcCBhbGlhc2VkIG5hbWVzIGluIGFueSB3YXku
CiAgKiBTZWUgdGhlIHRvcCBvZiB0aGlzIGhlYWRlciBmaWxlLgorICoKICAqIFRoaXMgQVBJIHN0
cmlwcyBvZmYgdGhlIGtleXdvcmQgcGFydCwgc28gImRlX0RFXEBjb2xsYXRpb249cGhvbmVib29r
IiAKICAqIHdpbGwgYmVjb21lICJkZV9ERSIuIAogICogVGhpcyBBUEkgc3VwcG9ydHMgcHJlZmxp
Z2h0aW5nLgpAQCAtODUzLDEzICs4NTksMTYgQEAgdWxvY19nZXRLZXl3b3JkVmFsdWUoY29uc3Qg
Y2hhciogbG9jYWxlSUQsCiAKIAogLyoqCi0gKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZp
ZWQga2V5d29yZC4KKyAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmll
ZCBrZXl3b3JkLgorICoKKyAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSB1bG9jX2dl
dEJhc2VOYW1lKCkuCisgKgogICogTk9URTogVW5saWtlIGFsbW9zdCBldmVyeSBvdGhlciBJQ1Ug
ZnVuY3Rpb24gd2hpY2ggdGFrZXMgYQogICogYnVmZmVyLCB0aGlzIGZ1bmN0aW9uIHdpbGwgTk9U
IHRydW5jYXRlIHRoZSBvdXRwdXQgdGV4dC4gSWYgYQogICogQlVGRkVSX09WRVJGTE9XX0VSUk9S
IGlzIHJlY2VpdmVkLCBpdCBtZWFucyB0aGF0IHRoZSBvcmlnaW5hbAogICogYnVmZmVyIGlzIHVu
dG91Y2hlZC4gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgaW5jb3JyZWN0IG9yIHBvc3NpYmx5CiAg
KiBldmVuIG1hbGZvcm1lZCBsb2NhbGVzIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGFuZCB1c2VkLgot
ICogCisgKgogICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUg
c2V0LiBDYXNlIGluc2Vuc2l0aXZlLgogICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1ZSBvZiB0
aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCiAgKiAgTlVMTCwgd2lsbCByZXN1
bHQgaW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYgCkBA
IC0xMDY1LDcgKzEwNzQsNyBAQCB1bG9jX21pbmltaXplU3VidGFncyhjb25zdCBjaGFyKiAgICBs
b2NhbGVJRCwKICAgICAgICAgIGludDMyX3QgbWluaW1pemVkTG9jYWxlSURDYXBhY2l0eSwKICAg
ICAgICAgIFVFcnJvckNvZGUqIGVycik7CiAKLS8qKiAKKy8qKgogICogUmV0dXJucyBhIGxvY2Fs
ZSBJRCBmb3IgdGhlIHNwZWNpZmllZCBCQ1A0NyBsYW5ndWFnZSB0YWcgc3RyaW5nLgogICogSWYg
dGhlIHNwZWNpZmllZCBsYW5ndWFnZSB0YWcgY29udGFpbnMgYW55IGlsbC1mb3JtZWQgc3VidGFn
cywKICAqIHRoZSBmaXJzdCBzdWNoIHN1YnRhZyBhbmQgYWxsIGZvbGxvd2luZyBzdWJ0YWdzIGFy
ZSBpZ25vcmVkLgpAQCAtMTA4MSwyMSArMTA5MCwyMSBAQCB1bG9jX21pbmltaXplU3VidGFncyhj
b25zdCBjaGFyKiAgICBsb2NhbGVJRCwKICAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIG91dHB1dCBi
dWZmZXIgcmVjZWl2aW5nIGEgbG9jYWxlIElEIGZvciB0aGUKICAqICAgICAgICAgICAgICAgICAg
c3BlY2lmaWVkIEJDUDQ3IGxhbmd1YWdlIHRhZy4KICAqIEBwYXJhbSBsb2NhbGVJRENhcGFjaXR5
ICB0aGUgc2l6ZSBvZiB0aGUgbG9jYWxlIElEIG91dHB1dCBidWZmZXIuCi0gKiBAcGFyYW0gcGFy
c2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY3Nlc3NmdWxseSBwYXJzZWQgbGVuZ3RoCisgKiBA
cGFyYW0gcGFyc2VkTGVuZ3RoICBpZiBub3QgTlVMTCwgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBsZW5n
dGgKICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgaW5wdXQgbGFuZ3VhZ2UgdGFnIGlz
IHNldC4KICAqIEBwYXJhbSBlcnIgICAgICAgZXJyb3IgaW5mb3JtYXRpb24gaWYgcmVjZWl2aW5n
IHRoZSBsb2NhbGQgSUQKICAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgogICogQHJldHVybiAg
ICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBsb2NhbGUgSUQuCi0gKiBAZHJhZnQgSUNVIDQuMgor
ICogQHN0YWJsZSBJQ1UgNC4yCiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RB
QkxFIGludDMyX3QgVV9FWFBPUlQyCiB1bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxh
bmd0YWcsCiAgICAgICAgICAgICAgICAgICAgIGNoYXIqIGxvY2FsZUlELAogICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IGxvY2FsZUlEQ2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgIGlu
dDMyX3QqIHBhcnNlZExlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSogZXJy
KTsKIAotLyoqIAorLyoqCiAgKiBSZXR1cm5zIGEgd2VsbC1mb3JtZWQgbGFuZ3VhZ2UgdGFnIGZv
ciB0aGlzIGxvY2FsZSBJRC4gCiAgKiA8cD4gCiAgKiA8Yj5Ob3RlPC9iPjogV2hlbiA8Y29kZT5z
dHJpY3Q8L2NvZGU+IGlzIEZBTFNFLCBhbnkgbG9jYWxlCkBAIC0xMTA0LDcgKzExMTMsNyBAQCB1
bG9jX2Zvckxhbmd1YWdlVGFnKGNvbnN0IGNoYXIqIGxhbmd0YWcsCiAgKiBUUlVFLCB0aGlzIGZ1
bmN0aW9uIHNldHMgVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SIHRvIHRoZQogICogPGNvZGU+ZXJy
PC9jb2RlPiBpZiBhbnkgbG9jYWxlIGZpZWxkcyBkbyBub3Qgc2F0aXNmeSB0aGUKICAqIEJDUDQ3
IHN5bnRheCByZXF1aXJlbWVudC4KLSAqIEBwYXJhbSBsb2NhbGVJRCAgdGhlIGlucHV0IGxjb2Fs
ZSBJRAorICogQHBhcmFtIGxvY2FsZUlEICB0aGUgaW5wdXQgbG9jYWxlIElECiAgKiBAcGFyYW0g
bGFuZ3RhZyAgIHRoZSBvdXRwdXQgYnVmZmVyIHJlY2VpdmluZyBCQ1A0NyBsYW5ndWFnZQogICog
ICAgICAgICAgICAgICAgICB0YWcgZm9yIHRoZSBsb2NhbGUgSUQuCiAgKiBAcGFyYW0gbGFuZ3Rh
Z0NhcGFjaXR5ICAgdGhlIHNpemUgb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZwpAQCAtMTExNCw5
ICsxMTIzLDkgQEAgdWxvY19mb3JMYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBsYW5ndGFnLAogICog
QHBhcmFtIGVyciAgICAgICBlcnJvciBpbmZvcm1hdGlvbiBpZiByZWNlaXZpbmcgdGhlIGxhbmd1
YWdlCiAgKiAgICAgICAgICAgICAgICAgIHRhZyBmYWlsZWQuCiAgKiBAcmV0dXJuICAgICAgICAg
IFRoZSBsZW5ndGggb2YgdGhlIEJDUDQ3IGxhbmd1YWdlIHRhZy4KLSAqIEBkcmFmdCBJQ1UgNC4y
CisgKiBAc3RhYmxlIElDVSA0LjIKICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVsb2NfdG9MYW5ndWFnZVRhZyhjb25zdCBjaGFyKiBs
b2NhbGVJRCwKICAgICAgICAgICAgICAgICAgICBjaGFyKiBsYW5ndGFnLAogICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgbGFuZ3RhZ0NhcGFjaXR5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3Vt
YWNoaW5lLmgKaW5kZXggYWJiZGNiNzlmMTY1YTM2OWFjNzhkZWUxNzM0ODA0MmJjNjFjMmE5Ni4u
ZDExMDJmNDkzNjUyN2M5MmIxM2JjYWY4NGM4YWVkY2E2ZTdmZjc1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW1hY2hpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
Y3UvdW5pY29kZS91bWFjaGluZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtNDEsMTYgKzQxLDcg
QEAKIC8qIHdoaWNoIGFyZSBjb250YWluZWQgaW4gdGhlIHBsYXRmb3JtLXNwZWNpZmljIGZpbGUg
cGxhdGZvcm0uaCAgICAgICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNpZiBk
ZWZpbmVkKFVfUEFMTU9TKQotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHBhbG1vcy5oIgotI2VsaWYg
IWRlZmluZWQoX19NSU5HVzMyX18pICYmIChkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4z
MikgfHwgZGVmaW5lZChXSU42NCkgfHwgZGVmaW5lZChfV0lONjQpKQotI2lmZGVmIENZR1dJTk1T
VkMKLSMgICBpbmNsdWRlICJ1bmljb2RlL3BsYXRmb3JtLmgiCi0jZW5kaWYKLSMgICBpbmNsdWRl
ICJ1bmljb2RlL3B3aW4zMi5oIgotI2Vsc2UKLSMgICBpbmNsdWRlICJ1bmljb2RlL3B0eXBlcy5o
IiAvKiBwbGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBlcy5oICovCi0jZW5kaWYKKyNpbmNs
dWRlICJ1bmljb2RlL3B0eXBlcy5oIiAvKiBwbGF0Zm9ybS5oIGlzIGluY2x1ZGVkIGluIHB0eXBl
cy5oICovCiAKIC8qCiAgKiBBTlNJIEMgaGVhZGVyczoKQEAgLTU5LDE5ICs1MCw2IEBACiAjaW5j
bHVkZSA8c3RkZGVmLmg+CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogWFBfQ1BMVVNQTFVT
IGlzIGEgY3Jvc3MtcGxhdGZvcm0gc3ltYm9sIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIHdoZW4g
ICAgICovCi0vKiB1c2luZyBDKysuICBJdCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBjb21w
aWxpbmcgdW5kZXIgQy4gICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCi0j
aWZkZWYgX19jcGx1c3BsdXMKLSMgICBpZm5kZWYgWFBfQ1BMVVNQTFVTCi0jICAgICAgIGRlZmlu
ZSBYUF9DUExVU1BMVVMKLSMgICBlbmRpZgotI2Vsc2UKLSMgICB1bmRlZiBYUF9DUExVU1BMVVMK
LSNlbmRpZgotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIEZvciBDIHdyYXBwZXJzLCB3ZSB1
c2UgdGhlIHN5bWJvbCBVX1NUQUJMRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
CiAvKiBUaGlzIHdvcmtzIHByb3Blcmx5IGlmIHRoZSBpbmNsdWRlciBpcyBDIG9yIEMrKy4gICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIEZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgICBVX1NU
QUJMRSByZXR1cm4tdHlwZSBVX0VYUE9SVDIgZnVuY3Rpb24tbmFtZSgpLi4uICovCkBAIC05NSw3
ICs3Myw3IEBACiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCi0jaWZkZWYgWFBfQ1BMVVNQTFVT
CisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBkZWZpbmUgVV9DRlVOQyBleHRlcm4gIkMiCiAjICAg
ZGVmaW5lIFVfQ0RFQ0xfQkVHSU4gZXh0ZXJuICJDIiB7CiAjICAgZGVmaW5lIFVfQ0RFQ0xfRU5E
ICAgfQpAQCAtMTA1LDIzICs4MywyNiBAQAogIyAgIGRlZmluZSBVX0NERUNMX0VORAogI2VuZGlm
CiAKKyNpZm5kZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogLyoqCiAgKiBcZGVmIFVfQVRUUklC
VVRFX0RFUFJFQ0FURUQKICAqICBUaGlzIGlzIHVzZWQgZm9yIEdDQyBzcGVjaWZpYyBhdHRyaWJ1
dGVzCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNf
XyA+IDMgfHwgKF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMikpCisjaWYgVV9H
Q0NfTUFKT1JfTUlOT1IgPj0gMzAyCiAjICAgIGRlZmluZSBVX0FUVFJJQlVURV9ERVBSRUNBVEVE
IF9fYXR0cmlidXRlX18gKChkZXByZWNhdGVkKSkKIC8qKgogICogXGRlZiBVX0FUVFJJQlVURV9E
RVBSRUNBVEVECiAgKiBUaGlzIGlzIHVzZWQgZm9yIFZpc3VhbCBDKysgc3BlY2lmaWMgYXR0cmli
dXRlcyAKICAqIEBpbnRlcm5hbAogICovCi0jZWxpZiBkZWZpbmVkKFVfV0lORE9XUykgJiYgZGVm
aW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApCisjZWxpZiBkZWZpbmVkKF9NU0Nf
VkVSKSAmJiAoX01TQ19WRVIgPj0gMTQwMCkKICMgICAgZGVmaW5lIFVfQVRUUklCVVRFX0RFUFJF
Q0FURUQgX19kZWNsc3BlYyhkZXByZWNhdGVkKQogI2Vsc2UKICMgICAgZGVmaW5lIFVfQVRUUklC
VVRFX0RFUFJFQ0FURUQKICNlbmRpZgorI2VuZGlmCisKIC8qKiBUaGlzIGlzIHVzZWQgdG8gZGVj
bGFyZSBhIGZ1bmN0aW9uIGFzIGEgcHVibGljIElDVSBDIEFQSSBAc3RhYmxlIElDVSAyLjAqLwog
I2RlZmluZSBVX0NBUEkgVV9DRlVOQyBVX0VYUE9SVAogLyoqIFRoaXMgaXMgdXNlZCB0byBkZWNs
YXJlIGEgZnVuY3Rpb24gYXMgYSBzdGFibGUgcHVibGljIElDVSBDIEFQSSovCkBAIC0yMzQsMjcg
KzIxNSw2IEBAIHR5cGVkZWYgaW50OF90IFVCb29sOwogCiAvKiB3Y2hhcl90LXJlbGF0ZWQgZGVm
aW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K
IAotLyoqCi0gKiBcZGVmIFVfSEFWRV9XQ0hBUl9ICi0gKiBJbmRpY2F0ZXMgd2hldGhlciA8d2No
YXIuaD4gaXMgYXZhaWxhYmxlICgxKSBvciBub3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0Lgot
ICoKLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jaWZuZGVmIFVfSEFWRV9XQ0hBUl9ICi0jICAg
ZGVmaW5lIFVfSEFWRV9XQ0hBUl9IIDEKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9TSVpFT0Zf
V0NIQVJfVAotICogVV9TSVpFT0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpICgwIG1lYW5zIGl0
IGlzIG5vdCBkZWZpbmVkIG9yIGF1dG9jb25mIGNvdWxkIG5vdCBzZXQgaXQpCi0gKgotICogQHN0
YWJsZSBJQ1UgMi4wCi0gKi8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0wCi0jICAgdW5kZWYgVV9T
SVpFT0ZfV0NIQVJfVAotIyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDQKLSNlbmRpZgotCiAv
KgogICogXGRlZiBVX1dDSEFSX0lTX1VURjE2CiAgKiBEZWZpbmVkIGlmIHdjaGFyX3QgdXNlcyBV
VEYtMTYuCkBAIC0yNzUsMTQgKzIzNSwxNiBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICMgICAg
ICAgICAgIGRlZmluZSAgVV9XQ0hBUl9JU19VVEYzMgogIyAgICAgICBlbmRpZgogIyAgIGVsaWYg
ZGVmaW5lZCBfX1VDUzJfXwotIyAgICAgICBpZiAoX19PUzM5MF9fIHx8IF9fT1M0MDBfXykgJiYg
KFVfU0laRU9GX1dDSEFSX1Q9PTIpCisjICAgICAgIGlmIChVX1BGX09TMzkwIDw9IFVfUExBVEZP
Uk0gJiYgVV9QTEFURk9STSA8PSBVX1BGX09TNDAwKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikK
ICMgICAgICAgICAgIGRlZmluZSBVX1dDSEFSX0lTX1VURjE2CiAjICAgICAgIGVuZGlmCi0jICAg
ZWxpZiBkZWZpbmVkIF9fVUNTNF9fCisjICAgZWxpZiBkZWZpbmVkKF9fVUNTNF9fKSB8fCAoVV9Q
TEFURk9STSA9PSBVX1BGX09TNDAwICYmIGRlZmluZWQoX19VVEYzMl9fKSkKICMgICAgICAgaWYg
KFVfU0laRU9GX1dDSEFSX1Q9PTQpCiAjICAgICAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYz
MgogIyAgICAgICBlbmRpZgotIyAgIGVsaWYgZGVmaW5lZChVX1dJTkRPV1MpCisjICAgZWxpZiBV
X1BMQVRGT1JNX0lTX0RBUldJTl9CQVNFRCB8fCAoVV9TSVpFT0ZfV0NIQVJfVD09NCAmJiBVX1BM
QVRGT1JNX0lTX0xJTlVYX0JBU0VEKQorIyAgICAgICBkZWZpbmUgVV9XQ0hBUl9JU19VVEYzMgor
IyAgIGVsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCiAjICAgICAgIGRlZmluZSBVX1dDSEFS
X0lTX1VURjE2CiAjICAgZW5kaWYKICNlbmRpZgpAQCAtMjk0LDI0ICsyNTYsMjQgQEAgdHlwZWRl
ZiBpbnQ4X3QgVUJvb2w7CiAKIC8qKgogICogXHZhciBVQ2hhcgotICogRGVmaW5lIFVDaGFyIHRv
IGJlIHdjaGFyX3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVkIHRvIGJl
IHVuc2lnbmVkLgotICogSWYgd2NoYXJfdCBpcyBub3QgMTYgYml0cyB3aWRlLCB0aGVuIGRlZmlu
ZSBVQ2hhciB0byBiZSB1aW50MTZfdCBvciBjaGFyMTZfdCBiZWNhdXNlIEdDQyA+PTQuNAotICog
Y2FuIGhhbmRsZSBVVEYxNiBzdHJpbmcgbGl0ZXJhbHMuCisgKiBEZWZpbmUgVUNoYXIgdG8gYmUg
VUNIQVJfVFlQRSwgaWYgdGhhdCBpcyAjZGVmaW5lZCAoZm9yIGV4YW1wbGUsIHRvIGNoYXIxNl90
KSwKKyAqIG9yIHdjaGFyX3QgaWYgdGhhdCBpcyAxNiBiaXRzIHdpZGU7IGFsd2F5cyBhc3N1bWVk
IHRvIGJlIHVuc2lnbmVkLgorICogSWYgbmVpdGhlciBpcyBhdmFpbGFibGUsIHRoZW4gZGVmaW5l
IFVDaGFyIHRvIGJlIHVpbnQxNl90LgorICoKICAqIFRoaXMgbWFrZXMgdGhlIGRlZmluaXRpb24g
b2YgVUNoYXIgcGxhdGZvcm0tZGVwZW5kZW50CiAgKiBidXQgYWxsb3dzIGRpcmVjdCBzdHJpbmcg
dHlwZSBjb21wYXRpYmlsaXR5IHdpdGggcGxhdGZvcm1zIHdpdGgKICAqIDE2LWJpdCB3Y2hhcl90
IHR5cGVzLgogICoKLSAqIEBkcmFmdCBJQ1UgNC40CisgKiBAc3RhYmxlIElDVSA0LjQKICAqLwot
Ci0vKiBEZWZpbmUgVUNoYXIgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHdjaGFyX3QgaWYgcG9zc2li
bGUuICovCi0jaWYgVV9TSVpFT0ZfV0NIQVJfVD09MgorI2lmIGRlZmluZWQoVUNIQVJfVFlQRSkK
KyAgICB0eXBlZGVmIFVDSEFSX1RZUEUgVUNoYXI7CisvKiBOb3QgI2VsaWYgVV9IQVZFX0NIQVIx
Nl9UIC0tIGJlY2F1c2UgdGhhdCBpcyB0eXBlLWluY29tcGF0aWJsZSB3aXRoIHByZS1DKysxMSBj
YWxsZXJzCisgICAgdHlwZWRlZiBjaGFyMTZfdCBVQ2hhcjsgICovCisjZWxpZiBVX1NJWkVPRl9X
Q0hBUl9UPT0yCiAgICAgdHlwZWRlZiB3Y2hhcl90IFVDaGFyOwotI2VsaWYgVV9HTlVDX1VURjE2
X1NUUklORwotI2lmIGRlZmluZWQgX0dDQ18KLSAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBj
aGFyMTZfdDsKLSNlbmRpZgotICAgIHR5cGVkZWYgY2hhcjE2X3QgVUNoYXI7CisjZWxpZiBkZWZp
bmVkKF9fQ0hBUjE2X1RZUEVfXykKKyAgICB0eXBlZGVmIF9fQ0hBUjE2X1RZUEVfXyBVQ2hhcjsK
ICNlbHNlCiAgICAgdHlwZWRlZiB1aW50MTZfdCBVQ2hhcjsKICNlbmRpZgpAQCAtMzM1LDM5ICsy
OTcsMjUgQEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAgKi8KIHR5cGVkZWYgaW50MzJfdCBVQ2hh
cjMyOwogCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qIFVfSU5MSU5FIGFuZCBVX0FMSUdOX0NP
REUgICBTZXQgZGVmYXVsdCB2YWx1ZXMgaWYgdGhlc2UgYXJlIG5vdCBhbHJlYWR5ICAqLwotLyog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQuICBEZWZpbml0aW9ucyBub3JtYWxs
eSBhcmUgaW4gICAgICAgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZv
cm0uaCBvciB0aGUgY29ycmVzcG9uZGluZyBmaWxlIGZvciAgICAgKi8KLS8qICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGUgT1MgaW4gdXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0KLSNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQotCiAvKioKLSAqIFxkZWYgVV9BTElHTl9DT0RFCi0gKiBUaGlzIGlzIHVzZWQgdG8gYWxp
Z24gY29kZSBmcmFnbWVudHMgdG8gYSBzcGVjaWZpYyBieXRlIGJvdW5kYXJ5LgotICogVGhpcyBp
cyB1c2VmdWwgZm9yIGdldHRpbmcgY29uc2lzdGVudCBwZXJmb3JtYW5jZSB0ZXN0IHJlc3VsdHMu
Ci0gKiBAaW50ZXJuYWwKLSAqLwotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSMgICBkZWZpbmUgVV9B
TElHTl9DT0RFKG4pCi0jZW5kaWYKLQotI2VuZGlmIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
LQotLyoqCi0gKiBcZGVmIFVfSU5MSU5FCi0gKiBUaGlzIGlzIHVzZWQgdG8gcmVxdWVzdCBpbmxp
bmluZyBvZiBhIGZ1bmN0aW9uLCBvbiBwbGF0Zm9ybXMgYW5kIGxhbmd1YWdlcyB3aGljaCBzdXBw
b3J0IGl0LgorICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZv
ciBBUElzIHRoYXQKKyAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hh
cjMyKS4KKyAqIEl0IGlzIG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAw
Li4weDEwZmZmZi4KKyAqIAorICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFs
dWUgaW4gYSBuZXcgQVBJCisgKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgor
ICoKKyAqIElDVSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNl
cnZpY2Utc3BlY2lmaWMgImRvbmUiCisgKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCisgKiBUaG9z
ZSBtYXkgbmVlZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KKyAqIGFjdHVhbCBVK2ZmZmYgdGV4
dCBjb250ZW50cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCisgKiBDaGFyYWN0ZXJJdGVyYXRv
cjo6aGFzTmV4dCgpIG9yIFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgorICoKKyAqIEByZXR1cm4g
LTEKKyAqIEBzZWUgVUNoYXIzMgorICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSAKLSNpZm5kZWYg
VV9JTkxJTkUKLSMgICBpZmRlZiBYUF9DUExVU1BMVVMKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5F
IGlubGluZQotIyAgIGVsc2UKLSMgICAgICAgZGVmaW5lIFVfSU5MSU5FCi0jICAgZW5kaWYKLSNl
bmRpZgorI2RlZmluZSBVX1NFTlRJTkVMICgtMSkKIAogI2luY2x1ZGUgInVuaWNvZGUvdXJlbmFt
ZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91bmlzdHIuaCBi
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0ci5oCmluZGV4IDI0ZDAzNTFmYjU0NDRj
YTc1MTY0ZWM4NWYzODJhZmUxNGQ4MzY5MTkuLmM2ZThiNDQ2NmFkMTNhMjM5ZTc2Mjc3N2FjZGEx
Y2ZlMzY3YjI2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VuaXN0ci5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAidW5pY29kZS9zdGRfc3RyaW5nLmgiCiAjaW5jbHVkZSAidW5pY29k
ZS9zdHJpbmdwaWVjZS5oIgogI2luY2x1ZGUgInVuaWNvZGUvYnl0ZXN0cmVhbS5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdWNhc2VtYXAuaCIKIAogc3RydWN0IFVDb252ZXJ0ZXI7ICAgICAgICAgIC8v
IHVuaWNvZGUvdWNudi5oCiBjbGFzcyAgU3RyaW5nVGhyZWFkVGVzdDsKQEAgLTUzLDExICs1NCwz
MSBAQCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdV9zdHJsZW4oY29uc3QgVUNoYXIgKnMp
OwogI2VuZGlmCiAKKy8qKgorICogXGRlZiBVX1NUUklOR19DQVNFX01BUFBFUl9ERUZJTkVECisg
KiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX1NUUklOR19DQVNFX01BUFBFUl9ERUZJTkVECisj
ZGVmaW5lIFVfU1RSSU5HX0NBU0VfTUFQUEVSX0RFRklORUQKKworLyoqCisgKiBJbnRlcm5hbCBz
dHJpbmcgY2FzZSBtYXBwaW5nIGZ1bmN0aW9uIHR5cGUuCisgKiBAaW50ZXJuYWwKKyAqLwordHlw
ZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VTdHJpbmdDYXNlTWFwcGVyKGNvbnN0IFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNp
dHksCisgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0
aCwKKyAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYK
KwogVV9OQU1FU1BBQ0VfQkVHSU4KIAorY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVu
aWNvZGUvYnJraXRlci5oCiBjbGFzcyBMb2NhbGU7ICAgICAgICAgICAgICAgLy8gdW5pY29kZS9s
b2NpZC5oCiBjbGFzcyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKLWNsYXNzIEJyZWFrSXRlcmF0
b3I7ICAgICAgICAvLyB1bmljb2RlL2Jya2l0ZXIuaAorY2xhc3MgVW5pY29kZVN0cmluZ0FwcGVu
ZGFibGU7ICAvLyB1bmljb2RlL2FwcGVuZGFibGUuaAogCiAvKiBUaGUgPGlvc3RyZWFtPiBpbmNs
dWRlIGhhcyBiZWVuIG1vdmVkIHRvIHVuaWNvZGUvdXN0cmVhbS5oICovCiAKQEAgLTcxLDcgKzky
LDcgQEAgY2xhc3MgQnJlYWtJdGVyYXRvcjsgICAgICAgIC8vIHVuaWNvZGUvYnJraXRlci5oCiAg
KgogICogQHN0YWJsZSBJQ1UgMy4yCiAgKi8KLSNkZWZpbmUgVVNfSU5WIFVfTkFNRVNQQUNFX1FV
QUxJRklFUiBVbmljb2RlU3RyaW5nOjprSW52YXJpYW50CisjZGVmaW5lIFVTX0lOViBpY3U6OlVu
aWNvZGVTdHJpbmc6OmtJbnZhcmlhbnQKIAogLyoqCiAgKiBVbmljb2RlIFN0cmluZyBsaXRlcmFs
cyBpbiBDKysuCkBAIC05MSwxMyArMTEyLDEzIEBAIGNsYXNzIEJyZWFrSXRlcmF0b3I7ICAgICAg
ICAvLyB1bmljb2RlL2Jya2l0ZXIuaAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZiBkZWZp
bmVkKFVfREVDTEFSRV9VVEYxNikKLSMgICBkZWZpbmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5n
dGgpIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hh
ciAqKVVfREVDTEFSRV9VVEYxNihjcyksIF9sZW5ndGgpCisjICAgZGVmaW5lIFVOSUNPREVfU1RS
SU5HKGNzLCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoVFJVRSwgKGNvbnN0IFVDaGFyICop
VV9ERUNMQVJFX1VURjE2KGNzKSwgX2xlbmd0aCkKICNlbGlmIFVfU0laRU9GX1dDSEFSX1Q9PVVf
U0laRU9GX1VDSEFSICYmIChVX0NIQVJTRVRfRkFNSUxZPT1VX0FTQ0lJX0ZBTUlMWSB8fCAoVV9T
SVpFT0ZfVUNIQVIgPT0gMiAmJiBkZWZpbmVkKFVfV0NIQVJfSVNfVVRGMTYpKSkKLSMgICBkZWZp
bmUgVU5JQ09ERV9TVFJJTkcoY3MsIF9sZW5ndGgpIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmlj
b2RlU3RyaW5nKFRSVUUsIChjb25zdCBVQ2hhciAqKUwgIyMgY3MsIF9sZW5ndGgpCisjICAgZGVm
aW5lIFVOSUNPREVfU1RSSU5HKGNzLCBfbGVuZ3RoKSBpY3U6OlVuaWNvZGVTdHJpbmcoVFJVRSwg
KGNvbnN0IFVDaGFyICopTCAjIyBjcywgX2xlbmd0aCkKICNlbGlmIFVfU0laRU9GX1VDSEFSPT0x
ICYmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0jICAgZGVmaW5lIFVOSUNPREVf
U1RSSU5HKGNzLCBfbGVuZ3RoKSBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyhU
UlVFLCAoY29uc3QgVUNoYXIgKiljcywgX2xlbmd0aCkKKyMgICBkZWZpbmUgVU5JQ09ERV9TVFJJ
TkcoY3MsIF9sZW5ndGgpIGljdTo6VW5pY29kZVN0cmluZyhUUlVFLCAoY29uc3QgVUNoYXIgKilj
cywgX2xlbmd0aCkKICNlbHNlCi0jICAgZGVmaW5lIFVOSUNPREVfU1RSSU5HKGNzLCBfbGVuZ3Ro
KSBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyhjcywgX2xlbmd0aCwgVVNfSU5W
KQorIyAgIGRlZmluZSBVTklDT0RFX1NUUklORyhjcywgX2xlbmd0aCkgaWN1OjpVbmljb2RlU3Ry
aW5nKGNzLCBfbGVuZ3RoLCBVU19JTlYpCiAjZW5kaWYKIAogLyoqCkBAIC0xMTYsNiArMTM3LDQz
IEBAIGNsYXNzIEJyZWFrSXRlcmF0b3I7ICAgICAgICAvLyB1bmljb2RlL2Jya2l0ZXIuaAogI2Rl
ZmluZSBVTklDT0RFX1NUUklOR19TSU1QTEUoY3MpIFVOSUNPREVfU1RSSU5HKGNzLCAtMSkKIAog
LyoqCisgKiBcZGVmIFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQKKyAqIFRoaXMgY2FuIGJlIGRl
ZmluZWQgdG8gYmUgZW1wdHkgb3IgImV4cGxpY2l0Ii4KKyAqIElmIGV4cGxpY2l0LCB0aGVuIHRo
ZSBVbmljb2RlU3RyaW5nKFVDaGFyKSBhbmQgVW5pY29kZVN0cmluZyhVQ2hhcjMyKQorICogY29u
c3RydWN0b3JzIGFyZSBtYXJrZWQgYXMgZXhwbGljaXQsIHByZXZlbnRpbmcgdGhlaXIgaW5hZHZl
cnRlbnQgdXNlLgorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworI2lmbmRlZiBVTklTVFJfRlJPTV9D
SEFSX0VYUExJQ0lUCisjIGlmIGRlZmluZWQoVV9DT01CSU5FRF9JTVBMRU1FTlRBVElPTikgfHwg
ZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1QTEVN
RU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElPTikKKyAgICAvLyBBdXRvLSJl
eHBsaWNpdCIgaW4gSUNVIGxpYnJhcnkgY29kZS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fQ0hB
Ul9FWFBMSUNJVCBleHBsaWNpdAorIyBlbHNlCisgICAgLy8gRW1wdHkgYnkgZGVmYXVsdCBmb3Ig
c291cmNlIGNvZGUgY29tcGF0aWJpbGl0eS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fQ0hBUl9F
WFBMSUNJVAorIyBlbmRpZgorI2VuZGlmCisKKy8qKgorICogXGRlZiBVTklTVFJfRlJPTV9TVFJJ
TkdfRVhQTElDSVQKKyAqIFRoaXMgY2FuIGJlIGRlZmluZWQgdG8gYmUgZW1wdHkgb3IgImV4cGxp
Y2l0Ii4KKyAqIElmIGV4cGxpY2l0LCB0aGVuIHRoZSBVbmljb2RlU3RyaW5nKGNvbnN0IGNoYXIg
KikgYW5kIFVuaWNvZGVTdHJpbmcoY29uc3QgVUNoYXIgKikKKyAqIGNvbnN0cnVjdG9ycyBhcmUg
bWFya2VkIGFzIGV4cGxpY2l0LCBwcmV2ZW50aW5nIHRoZWlyIGluYWR2ZXJ0ZW50IHVzZS4KKyAq
CisgKiBJbiBwYXJ0aWN1bGFyLCB0aGlzIGhlbHBzIHByZXZlbnQgYWNjaWRlbnRhbGx5IGRlcGVu
ZGluZyBvbiBJQ1UgY29udmVyc2lvbiBjb2RlCisgKiBieSBwYXNzaW5nIGEgc3RyaW5nIGxpdGVy
YWwgaW50byBhbiBBUEkgd2l0aCBhIGNvbnN0IFVuaWNvZGVTdHJpbmcgJiBwYXJhbWV0ZXIuCisg
KiBAc3RhYmxlIElDVSA0OQorICovCisjaWZuZGVmIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJ
VAorIyBpZiBkZWZpbmVkKFVfQ09NQklORURfSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9D
T01NT05fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8
fCBkZWZpbmVkKFVfSU9fSU1QTEVNRU5UQVRJT04pCisgICAgLy8gQXV0by0iZXhwbGljaXQiIGlu
IElDVSBsaWJyYXJ5IGNvZGUuCisjICAgZGVmaW5lIFVOSVNUUl9GUk9NX1NUUklOR19FWFBMSUNJ
VCBleHBsaWNpdAorIyBlbHNlCisgICAgLy8gRW1wdHkgYnkgZGVmYXVsdCBmb3Igc291cmNlIGNv
ZGUgY29tcGF0aWJpbGl0eS4KKyMgICBkZWZpbmUgVU5JU1RSX0ZST01fU1RSSU5HX0VYUExJQ0lU
CisjIGVuZGlmCisjZW5kaWYKKworLyoqCiAgKiBVbmljb2RlU3RyaW5nIGlzIGEgc3RyaW5nIGNs
YXNzIHRoYXQgc3RvcmVzIFVuaWNvZGUgY2hhcmFjdGVycyBkaXJlY3RseSBhbmQgcHJvdmlkZXMK
ICAqIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBhcyB0aGUgSmF2YSBTdHJpbmcgYW5kIFN0cmluZ0J1
ZmZlciBjbGFzc2VzLgogICogSXQgaXMgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
YWJzdHJhY3QgY2xhc3MgUmVwbGFjZWFibGUgKGZvciB0cmFuc2xpdGVyYXRpb24pLgpAQCAtMjgw
LDcgKzMzOCw4IEBAIHB1YmxpYzoKICAgLyoqCiAgICAqIENvbXBhcmUgdGhlIGNoYXJhY3RlcnMg
Yml0d2lzZSBpbiB0aGUgcmFuZ2UKICAgICogWzxUVD5zdGFydDwvVFQ+LCA8VFQ+c3RhcnQgKyBs
ZW5ndGg8L1RUPikgd2l0aCB0aGUgY2hhcmFjdGVycwotICAgKiBpbiA8VFQ+dGV4dDwvVFQ+Cisg
ICAqIGluIHRoZSA8Yj5lbnRpcmUgc3RyaW5nPC9iPiA8VFQ+dGV4dDwvVFQ+LgorICAgKiAoVGhl
IHBhcmFtZXRlcnMgInN0YXJ0IiBhbmQgImxlbmd0aCIgYXJlIG5vdCBhcHBsaWVkIHRvIHRoZSBv
dGhlciB0ZXh0ICJ0ZXh0Ii4pCiAgICAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNo
IHRoZSBjb21wYXJlIG9wZXJhdGlvbiBiZWdpbnMKICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbnVt
YmVyIG9mIGNoYXJhY3RlcnMgb2YgdGV4dCB0byBjb21wYXJlLgogICAgKiBAcGFyYW0gdGV4dCB0
aGUgb3RoZXIgdGV4dCB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoaXMgc3RyaW5nLgpAQCAtMTI0
Miw3ICsxMzAxLDcgQEAgcHVibGljOgogICAgKiAgICAgICAgIG9yIDB4ZmZmZiBpZiB0aGUgb2Zm
c2V0IGlzIG5vdCB2YWxpZCBmb3IgdGhpcyBzdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAg
ICAqLwotICBpbmxpbmUgVUNoYXIzMiBjaGFyMzJBdChpbnQzMl90IG9mZnNldCkgY29uc3Q7Cisg
IFVDaGFyMzIgY2hhcjMyQXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OwogCiAgIC8qKgogICAgKiBB
ZGp1c3QgYSByYW5kb20tYWNjZXNzIG9mZnNldCBzbyB0aGF0CkBAIC0xMjU5LDcgKzEzMTgsNyBA
QCBwdWJsaWM6CiAgICAqIEBzZWUgVTE2X1NFVF9DUF9TVEFSVAogICAgKiBAc3RhYmxlIElDVSAy
LjAKICAgICovCi0gIGlubGluZSBpbnQzMl90IGdldENoYXIzMlN0YXJ0KGludDMyX3Qgb2Zmc2V0
KSBjb25zdDsKKyAgaW50MzJfdCBnZXRDaGFyMzJTdGFydChpbnQzMl90IG9mZnNldCkgY29uc3Q7
CiAKICAgLyoqCiAgICAqIEFkanVzdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zmc2V0IHNvIHRoYXQKQEAg
LTEyNzcsNyArMTMzNiw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBVMTZfU0VUX0NQX0xJTUlUCiAg
ICAqIEBzdGFibGUgSUNVIDIuMAogICAgKi8KLSAgaW5saW5lIGludDMyX3QgZ2V0Q2hhcjMyTGlt
aXQoaW50MzJfdCBvZmZzZXQpIGNvbnN0OworICBpbnQzMl90IGdldENoYXIzMkxpbWl0KGludDMy
X3Qgb2Zmc2V0KSBjb25zdDsKIAogICAvKioKICAgICogTW92ZSB0aGUgY29kZSB1bml0IGluZGV4
IGFsb25nIHRoZSBzdHJpbmcgYnkgZGVsdGEgY29kZSBwb2ludHMuCkBAIC0xNzM1LDcgKzE3OTQs
NyBAQCBwdWJsaWM6CiAgICAqIEZvciBhIGJvZ3VzIHN0cmluZywgZ2V0QnVmZmVyKCkgYW5kIGdl
dFRlcm1pbmF0ZWRCdWZmZXIoKSByZXR1cm4gTlVMTCwgYW5kCiAgICAqIGxlbmd0aCgpIHJldHVy
bnMgMC4KICAgICoKLSAgICogQHJldHVybiBUUlVFIGlmIHRoZSBzdHJpbmcgaXMgdmFsaWQsIEZB
TFNFIG90aGVyd2lzZQorICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHN0cmluZyBpcyBib2d1cy9p
bnZhbGlkLCBGQUxTRSBvdGhlcndpc2UKICAgICogQHNlZSBzZXRUb0JvZ3VzKCkKICAgICogQHN0
YWJsZSBJQ1UgMi4wCiAgICAqLwpAQCAtMTc2MiwxNiArMTgyMSwxOCBAQCBwdWJsaWM6CiAgICAq
IFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBVbmljb2RlU3RyaW5nCiAgICAqIHdpdGgg
dGhlIGNoYXJhY3RlcnMgZnJvbSA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KICAgICoKLSAgICogVGhp
cyBmdW5jdGlvbiB3b3JrcyB0aGUgc2FtZSBmb3IgYWxsIHN0cmluZ3MgZXhjZXB0IGZvciBvbmVz
IHRoYXQKLSAgICogYXJlIHJlYWRvbmx5IGFsaWFzZXMuCisgICAqIFRoaXMgZnVuY3Rpb24gd29y
a3MgdGhlIHNhbWUgYXMgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IKKyAgICogZm9yIGFsbCBzdHJp
bmdzIGV4Y2VwdCBmb3Igb25lcyB0aGF0IGFyZSByZWFkb25seSBhbGlhc2VzLgorICAgKgogICAg
KiBTdGFydGluZyB3aXRoIElDVSAyLjQsIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGFuZCB0aGUg
Y29weSBjb25zdHJ1Y3RvcgogICAgKiBhbGxvY2F0ZSBhIG5ldyBidWZmZXIgYW5kIGNvcHkgdGhl
IGJ1ZmZlciBjb250ZW50cyBldmVuIGZvciByZWFkb25seSBhbGlhc2VzLgogICAgKiBUaGlzIGZ1
bmN0aW9uIGltcGxlbWVudHMgdGhlIG9sZCwgbW9yZSBlZmZpY2llbnQgYnV0IGxlc3Mgc2FmZSBi
ZWhhdmlvcgogICAgKiBvZiBtYWtpbmcgdGhpcyBzdHJpbmcgYWxzbyBhIHJlYWRvbmx5IGFsaWFz
IHRvIHRoZSBzYW1lIGJ1ZmZlci4KKyAgICoKICAgICogVGhlIGZhc3RDb3B5RnJvbSBmdW5jdGlv
biBtdXN0IGJlIHVzZWQgb25seSBpZiBpdCBpcyBrbm93biB0aGF0IHRoZSBsaWZldGltZSBvZgot
ICAgKiB0aGlzIFVuaWNvZGVTdHJpbmcgaXMgYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgbGlmZXRp
bWUgb2YgdGhlIGFsaWFzZWQgYnVmZmVyCisgICAqIHRoaXMgVW5pY29kZVN0cmluZyBkb2VzIG5v
dCBleGNlZWQgdGhlIGxpZmV0aW1lIG9mIHRoZSBhbGlhc2VkIGJ1ZmZlcgogICAgKiBpbmNsdWRp
bmcgaXRzIGNvbnRlbnRzLCBmb3IgZXhhbXBsZSBmb3Igc3RyaW5ncyBmcm9tIHJlc291cmNlIGJ1
bmRsZXMKLSAgICogb3IgYWxpYXNlcyB0byBzdHJpbmcgY29udGVudHMuCisgICAqIG9yIGFsaWFz
ZXMgdG8gc3RyaW5nIGNvbnN0YW50cy4KICAgICoKICAgICogQHBhcmFtIHNyYyBUaGUgdGV4dCBj
b250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UuCiAgICAqIEByZXR1cm4gYSByZWZl
cmVuY2UgdG8gdGhpcwpAQCAtMTg3Nyw3ICsxOTM4LDEwIEBAIHB1YmxpYzoKICAgICogV2hlbiB0
aGUgc3RyaW5nIGlzIG1vZGlmaWVkLCB0aGVuIHRoZSBidWZmZXIgaXMgZmlyc3QgY29waWVkIGlu
dG8KICAgICogbmV3bHkgYWxsb2NhdGVkIG1lbW9yeS4KICAgICogVGhlIGFsaWFzZWQgYnVmZmVy
IGlzIG5ldmVyIG1vZGlmaWVkLgotICAgKiBJbiBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIgVW5p
Y29kZVN0cmluZywgdGhlIHRleHQgd2lsbCBiZSBhbGlhc2VkIGFnYWluLAorICAgKgorICAgKiBJ
biBhbiBhc3NpZ25tZW50IHRvIGFub3RoZXIgVW5pY29kZVN0cmluZywgd2hlbiB1c2luZyB0aGUg
Y29weSBjb25zdHJ1Y3RvcgorICAgKiBvciB0aGUgYXNzaWdubWVudCBvcGVyYXRvciwgdGhlIHRl
eHQgd2lsbCBiZSBjb3BpZWQuCisgICAqIFdoZW4gdXNpbmcgZmFzdENvcHlGcm9tKCksIHRoZSB0
ZXh0IHdpbGwgYmUgYWxpYXNlZCBhZ2FpbiwKICAgICogc28gdGhhdCBib3RoIHN0cmluZ3MgdGhl
biBhbGlhcyB0aGUgc2FtZSByZWFkb25seS10ZXh0LgogICAgKgogICAgKiBAcGFyYW0gaXNUZXJt
aW5hdGVkIHNwZWNpZmllcyBpZiA8Y29kZT50ZXh0PC9jb2RlPiBpcyA8Y29kZT5OVUw8L2NvZGU+
LXRlcm1pbmF0ZWQuCkBAIC0xOTkxLDggKzIwNTUsNyBAQCBwdWJsaWM6CiAKICAgLyoqCiAgICAq
IEFwcGVuZCBvcGVyYXRvci4gQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9U
VD4gdG8gdGhlCi0gICAqIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGF0IG9mZnNldCA8VFQ+c3RhcnQ8
L1RUPi4gPFRUPnNyY1RleHQ8L1RUPiBpcwotICAgKiBub3QgbW9kaWZpZWQuCisgICAqIFVuaWNv
ZGVTdHJpbmcgb2JqZWN0LiA8VFQ+c3JjVGV4dDwvVFQ+IGlzIG5vdCBtb2RpZmllZC4KICAgICog
QHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCiAgICAqIEBy
ZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxlIElDVSAyLjAKQEAgLTIwMTgs
OCArMjA4MSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGludDMyX3Qgc3JjTGVuZ3RoKTsKIAog
ICAvKioKLSAgICogQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNUZXh0PC9UVD4gdG8g
dGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGF0Ci0gICAqIG9mZnNldCA8VFQ+c3RhcnQ8L1RUPi4g
PFRUPnNyY1RleHQ8L1RUPiBpcyBub3QgbW9kaWZpZWQuCisgICAqIEFwcGVuZCB0aGUgY2hhcmFj
dGVycyBpbiA8VFQ+c3JjVGV4dDwvVFQ+IHRvIHRoZSBVbmljb2RlU3RyaW5nIG9iamVjdC4KKyAg
ICogPFRUPnNyY1RleHQ8L1RUPiBpcyBub3QgbW9kaWZpZWQuCiAgICAqIEBwYXJhbSBzcmNUZXh0
IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycwogICAgKiBAcmV0dXJuIGEgcmVmZXJl
bmNlIHRvIHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCkBAIC0yMDM1LDcgKzIwOTgsNyBAQCBw
dWJsaWM6CiAgICAqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPFRUPnNyY0NoYXJz
PC9UVD4gd2hlcmUgbmV3IGNoYXJhY3RlcnMKICAgICogd2lsbCBiZSBvYnRhaW5lZAogICAgKiBA
cGFyYW0gc3JjTGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiA8VFQ+c3JjQ2hhcnM8
L1RUPiBpbgotICAgKiB0aGUgYXBwZW5kIHN0cmluZworICAgKiAgICAgICAgICAgICAgICAgIHRo
ZSBhcHBlbmQgc3RyaW5nOyBjYW4gYmUgLTEgaWYgPFRUPnNyY0NoYXJzPC9UVD4gaXMgTlVMLXRl
cm1pbmF0ZWQKICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzCiAgICAqIEBzdGFibGUg
SUNVIDIuMAogICAgKi8KQEAgLTIwNDcsNyArMjExMCw4IEBAIHB1YmxpYzoKICAgICogQXBwZW5k
IHRoZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+IHRvIHRoZSBVbmljb2RlU3RyaW5n
IG9iamVjdAogICAgKiBhdCBvZmZzZXQgPFRUPnN0YXJ0PC9UVD4uIDxUVD5zcmNDaGFyczwvVFQ+
IGlzIG5vdCBtb2RpZmllZC4KICAgICogQHBhcmFtIHNyY0NoYXJzIHRoZSBzb3VyY2UgZm9yIHRo
ZSBuZXcgY2hhcmFjdGVycwotICAgKiBAcGFyYW0gc3JjTGVuZ3RoIHRoZSBudW1iZXIgb2YgVW5p
Y29kZSBjaGFyYWN0ZXJzIGluIDxUVD5zcmNDaGFyczwvVFQ+CisgICAqIEBwYXJhbSBzcmNMZW5n
dGggdGhlIG51bWJlciBvZiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gPFRUPnNyY0NoYXJzPC9UVD47
CisgICAqICAgICAgICAgICAgICAgICAgY2FuIGJlIC0xIGlmIDxUVD5zcmNDaGFyczwvVFQ+IGlz
IE5VTC10ZXJtaW5hdGVkCiAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBA
c3RhYmxlIElDVSAyLjAKICAgICovCkBAIC0yMDY4LDcgKzIxMzIsNyBAQCBwdWJsaWM6CiAgICAq
IEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcwogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICov
Ci0gIGlubGluZSBVbmljb2RlU3RyaW5nJiBhcHBlbmQoVUNoYXIzMiBzcmNDaGFyKTsKKyAgVW5p
Y29kZVN0cmluZyYgYXBwZW5kKFVDaGFyMzIgc3JjQ2hhcik7CiAKIAogICAvKiBJbnNlcnQgb3Bl
cmF0aW9ucyAqLwpAQCAtMjI2Myw5ICsyMzI3LDcgQEAgcHVibGljOgogICAgKiBAcmV0dXJuIGEg
cmVmZXJlbmNlIHRvIHRoaXMKICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAqLwotICBpbmxpbmUg
VW5pY29kZVN0cmluZyYgcmVwbGFjZShpbnQzMl90IHN0YXJ0LAotICAgICAgICAgICAgIGludDMy
X3QgbGVuZ3RoLAotICAgICAgICAgICAgIFVDaGFyMzIgc3JjQ2hhcik7CisgIFVuaWNvZGVTdHJp
bmcmIHJlcGxhY2UoaW50MzJfdCBzdGFydCwgaW50MzJfdCBsZW5ndGgsIFVDaGFyMzIgc3JjQ2hh
cik7CiAKICAgLyoqCiAgICAqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8
VFQ+c3RhcnQ8L1RUPiwgPFRUPmxpbWl0PC9UVD4pCkBAIC0yNjMxLDEwICsyNjkzLDEyIEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgIC8qKgotICAgKiBDYXNlLWZvbGQgdGhlIGNoYXJhY3RlcnMgaW4g
dGhpcyBzdHJpbmcuCisgICAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gdGhpcyBzdHJp
bmcuCisgICAqCiAgICAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5v
dCBjb250ZXh0LXNlbnNpdGl2ZSwKICAgICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hl
dGhlciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCi0gICAqIGFu
ZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ0knIGluIENhc2VGb2xkaW5nLnR4dC4K
KyAgICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRp
bmcudHh0LgorICAgKgogICAgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0
aGFuIHRoZSBvcmlnaW5hbC4KICAgICoKICAgICogQHBhcmFtIG9wdGlvbnMgRWl0aGVyIFVfRk9M
RF9DQVNFX0RFRkFVTFQgb3IgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKQEAgLTI3Nzks
NyArMjg0Myw3IEBAIHB1YmxpYzoKICAgICogQHNlZSBnZXRCdWZmZXIoKQogICAgKiBAc3RhYmxl
IElDVSAyLjIKICAgICovCi0gIGlubGluZSBjb25zdCBVQ2hhciAqZ2V0VGVybWluYXRlZEJ1ZmZl
cigpOworICBjb25zdCBVQ2hhciAqZ2V0VGVybWluYXRlZEJ1ZmZlcigpOwogCiAgIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAvLyBDb25zdHJ1Y3RvcnMKQEAg
LTI3ODgsNyArMjg1Miw3IEBAIHB1YmxpYzoKICAgLyoqIENvbnN0cnVjdCBhbiBlbXB0eSBVbmlj
b2RlU3RyaW5nLgogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVuaWNvZGVTdHJpbmco
KTsKKyAgaW5saW5lIFVuaWNvZGVTdHJpbmcoKTsKIAogICAvKioKICAgICogQ29uc3RydWN0IGEg
VW5pY29kZVN0cmluZyB3aXRoIGNhcGFjaXR5IHRvIGhvbGQgPFRUPmNhcGFjaXR5PC9UVD4gVUNo
YXJzCkBAIC0yODA1LDI1ICsyODY5LDM3IEBAIHB1YmxpYzoKIAogICAvKioKICAgICogU2luZ2xl
IFVDaGFyIChjb2RlIHVuaXQpIGNvbnN0cnVjdG9yLgorICAgKgorICAgKiBJdCBpcyByZWNvbW1l
bmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAgKiA8Y29kZT4t
RFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBj
b21waWxlciBjb21tYW5kIGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNoIHRoZSBjaGFy
YWN0ZXIgdG8gcGxhY2UgaW4gdGhlIFVuaWNvZGVTdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4w
CiAgICAqLwotICBVbmljb2RlU3RyaW5nKFVDaGFyIGNoKTsKKyAgVU5JU1RSX0ZST01fQ0hBUl9F
WFBMSUNJVCBVbmljb2RlU3RyaW5nKFVDaGFyIGNoKTsKIAogICAvKioKICAgICogU2luZ2xlIFVD
aGFyMzIgKGNvZGUgcG9pbnQpIGNvbnN0cnVjdG9yLgorICAgKgorICAgKiBJdCBpcyByZWNvbW1l
bmRlZCB0byBtYXJrIHRoaXMgY29uc3RydWN0b3IgImV4cGxpY2l0IiBieQorICAgKiA8Y29kZT4t
RFVOSVNUUl9GUk9NX0NIQVJfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBj
b21waWxlciBjb21tYW5kIGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNoIHRoZSBjaGFy
YWN0ZXIgdG8gcGxhY2UgaW4gdGhlIFVuaWNvZGVTdHJpbmcKICAgICogQHN0YWJsZSBJQ1UgMi4w
CiAgICAqLwotICBVbmljb2RlU3RyaW5nKFVDaGFyMzIgY2gpOworICBVTklTVFJfRlJPTV9DSEFS
X0VYUExJQ0lUIFVuaWNvZGVTdHJpbmcoVUNoYXIzMiBjaCk7CiAKICAgLyoqCiAgICAqIFVDaGFy
KiBjb25zdHJ1Y3Rvci4KKyAgICoKKyAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gbWFyayB0aGlz
IGNvbnN0cnVjdG9yICJleHBsaWNpdCIgYnkKKyAgICogPGNvZGU+LURVTklTVFJfRlJPTV9TVFJJ
TkdfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxlciBjb21tYW5k
IGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIHRleHQgVGhlIGNoYXJhY3RlcnMgdG8gcGxh
Y2UgaW4gdGhlIFVuaWNvZGVTdHJpbmcuICA8VFQ+dGV4dDwvVFQ+CiAgICAqIG11c3QgYmUgTlVM
TCAoVSswMDAwKSB0ZXJtaW5hdGVkLgogICAgKiBAc3RhYmxlIElDVSAyLjAKICAgICovCi0gIFVu
aWNvZGVTdHJpbmcoY29uc3QgVUNoYXIgKnRleHQpOworICBVTklTVFJfRlJPTV9TVFJJTkdfRVhQ
TElDSVQgVW5pY29kZVN0cmluZyhjb25zdCBVQ2hhciAqdGV4dCk7CiAKICAgLyoqCiAgICAqIFVD
aGFyKiBjb25zdHJ1Y3Rvci4KQEAgLTI4NDMsNyArMjkxOSwxMCBAQCBwdWJsaWM6CiAgICAqIFdo
ZW4gdGhlIHN0cmluZyBpcyBtb2RpZmllZCwgdGhlbiB0aGUgYnVmZmVyIGlzIGZpcnN0IGNvcGll
ZCBpbnRvCiAgICAqIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuCiAgICAqIFRoZSBhbGlhc2VkIGJ1
ZmZlciBpcyBuZXZlciBtb2RpZmllZC4KLSAgICogSW4gYW4gYXNzaWdubWVudCB0byBhbm90aGVy
IFVuaWNvZGVTdHJpbmcsIHRoZSB0ZXh0IHdpbGwgYmUgYWxpYXNlZCBhZ2FpbiwKKyAgICoKKyAg
ICogSW4gYW4gYXNzaWdubWVudCB0byBhbm90aGVyIFVuaWNvZGVTdHJpbmcsIHdoZW4gdXNpbmcg
dGhlIGNvcHkgY29uc3RydWN0b3IKKyAgICogb3IgdGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IsIHRo
ZSB0ZXh0IHdpbGwgYmUgY29waWVkLgorICAgKiBXaGVuIHVzaW5nIGZhc3RDb3B5RnJvbSgpLCB0
aGUgdGV4dCB3aWxsIGJlIGFsaWFzZWQgYWdhaW4sCiAgICAqIHNvIHRoYXQgYm90aCBzdHJpbmdz
IHRoZW4gYWxpYXMgdGhlIHNhbWUgcmVhZG9ubHktdGV4dC4KICAgICoKICAgICogQHBhcmFtIGlz
VGVybWluYXRlZCBzcGVjaWZpZXMgaWYgPGNvZGU+dGV4dDwvY29kZT4gaXMgPGNvZGU+TlVMPC9j
b2RlPi10ZXJtaW5hdGVkLgpAQCAtMjg4MiwxNCArMjk2MSwyOSBAQCBwdWJsaWM6CiAKICAgLyoq
CiAgICAqIGNoYXIqIGNvbnN0cnVjdG9yLgorICAgKiBVc2VzIHRoZSBkZWZhdWx0IGNvbnZlcnRl
ciAoYW5kIHRodXMgZGVwZW5kcyBvbiB0aGUgSUNVIGNvbnZlcnNpb24gY29kZSkKKyAgICogdW5s
ZXNzIFVfQ0hBUlNFVF9JU19VVEY4IGlzIHNldCB0byAxLgorICAgKgorICAgKiBGb3IgQVNDSUkg
KHJlYWxseSAiaW52YXJpYW50IGNoYXJhY3RlciIpIHN0cmluZ3MgaXQgaXMgbW9yZSBlZmZpY2ll
bnQgdG8gdXNlCisgICAqIHRoZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgVVNfSU5WIChmb3Ig
aXRzIGVudW0gRUludmFyaWFudCkuCisgICAqIEZvciBBU0NJSSAoaW52YXJpYW50LWNoYXJhY3Rl
cikgc3RyaW5nIGxpdGVyYWxzLCBzZWUgVU5JQ09ERV9TVFJJTkcgYW5kCisgICAqIFVOSUNPREVf
U1RSSU5HX1NJTVBMRS4KKyAgICoKKyAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gbWFyayB0aGlz
IGNvbnN0cnVjdG9yICJleHBsaWNpdCIgYnkKKyAgICogPGNvZGU+LURVTklTVFJfRlJPTV9TVFJJ
TkdfRVhQTElDSVQ9ZXhwbGljaXQ8L2NvZGU+CisgICAqIG9uIHRoZSBjb21waWxlciBjb21tYW5k
IGxpbmUgb3Igc2ltaWxhci4KICAgICogQHBhcmFtIGNvZGVwYWdlRGF0YSBhbiBhcnJheSBvZiBi
eXRlcywgbnVsbC10ZXJtaW5hdGVkLAogICAgKiAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBw
bGF0Zm9ybSdzIGRlZmF1bHQgY29kZXBhZ2UuCiAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKiBA
c2VlIFVOSUNPREVfU1RSSU5HCisgICAqIEBzZWUgVU5JQ09ERV9TVFJJTkdfU0lNUExFCiAgICAq
LwotICBVbmljb2RlU3RyaW5nKGNvbnN0IGNoYXIgKmNvZGVwYWdlRGF0YSk7CisgIFVOSVNUUl9G
Uk9NX1NUUklOR19FWFBMSUNJVCBVbmljb2RlU3RyaW5nKGNvbnN0IGNoYXIgKmNvZGVwYWdlRGF0
YSk7CiAKICAgLyoqCiAgICAqIGNoYXIqIGNvbnN0cnVjdG9yLgorICAgKiBVc2VzIHRoZSBkZWZh
dWx0IGNvbnZlcnRlciAoYW5kIHRodXMgZGVwZW5kcyBvbiB0aGUgSUNVIGNvbnZlcnNpb24gY29k
ZSkKKyAgICogdW5sZXNzIFVfQ0hBUlNFVF9JU19VVEY4IGlzIHNldCB0byAxLgogICAgKiBAcGFy
YW0gY29kZXBhZ2VEYXRhIGFuIGFycmF5IG9mIGJ5dGVzIGluIHRoZSBwbGF0Zm9ybSdzIGRlZmF1
bHQgY29kZXBhZ2UuCiAgICAqIEBwYXJhbSBkYXRhTGVuZ3RoIFRoZSBudW1iZXIgb2YgYnl0ZXMg
aW4gPFRUPmNvZGVwYWdlRGF0YTwvVFQ+LgogICAgKiBAc3RhYmxlIElDVSAyLjAKQEAgLTMxMTEs
NyArMzIwNSw3IEBAIHB1YmxpYzoKICAgICogY2hhcmFjdGVyLiAgU2VlIHVuZXNjYXBlKCkgZm9y
IGEgbGlzdGluZyBvZiB0aGUgcmVjb2duaXplZCBlc2NhcGUKICAgICogc2VxdWVuY2VzLiAgVGhl
IGNoYXJhY3RlciBhdCBvZmZzZXQtMSBpcyBhc3N1bWVkICh3aXRob3V0CiAgICAqIGNoZWNraW5n
KSB0byBiZSBhIGJhY2tzbGFzaC4gIElmIHRoZSBlc2NhcGUgc2VxdWVuY2UgaXMKLSAgICogaWxs
LWZvcm1lZCwgb3IgdGhlIG9mZnNldCBpcyBvdXQgb2YgcmFuZ2UsIChVQ2hhcjMyKTB4RkZGRkZG
RkYgaXMKKyAgICogaWxsLWZvcm1lZCwgb3IgdGhlIG9mZnNldCBpcyBvdXQgb2YgcmFuZ2UsIFVf
U0VOVElORUw9LTEgaXMKICAgICogcmV0dXJuZWQuCiAgICAqCiAgICAqIEBwYXJhbSBvZmZzZXQg
YW4gaW5wdXQgb3V0cHV0IHBhcmFtZXRlci4gIE9uIGlucHV0LCBpdCBpcyB0aGUKQEAgLTMxMTks
NyArMzIxMyw3IEBAIHB1YmxpYzoKICAgICogYWZ0ZXIgdGhlIGluaXRpYWwgYmFja3NsYXNoLiAg
T24gb3V0cHV0LCBpdCBpcyBhZHZhbmNlZCBhZnRlciB0aGUKICAgICogbGFzdCBjaGFyYWN0ZXIg
cGFyc2VkLiAgT24gZXJyb3IsIGl0IGlzIG5vdCBhZHZhbmNlZCBhdCBhbGwuCiAgICAqIEByZXR1
cm4gdGhlIGNoYXJhY3RlciByZXByZXNlbnRlZCBieSB0aGUgZXNjYXBlIHNlcXVlbmNlIGF0Ci0g
ICAqIG9mZnNldCwgb3IgKFVDaGFyMzIpMHhGRkZGRkZGRiBvbiBlcnJvci4KKyAgICogb2Zmc2V0
LCBvciBVX1NFTlRJTkVMPS0xIG9uIGVycm9yLgogICAgKiBAc2VlIFVuaWNvZGVTdHJpbmcjdW5l
c2NhcGUoKQogICAgKiBAc2VlIHVfdW5lc2NhcGUoKQogICAgKiBAc2VlIHVfdW5lc2NhcGVBdCgp
CkBAIC0zMTc4LDYgKzMyNzIsMTEgQEAgcHJpdmF0ZToKICAgdG9VVEY4KGludDMyX3Qgc3RhcnQs
IGludDMyX3QgbGVuLAogICAgICAgICAgY2hhciAqdGFyZ2V0LCBpbnQzMl90IGNhcGFjaXR5KSBj
b25zdDsKIAorICAvKioKKyAgICogSW50ZXJuYWwgc3RyaW5nIGNvbnRlbnRzIGNvbXBhcmlzb24s
IGNhbGxlZCBieSBvcGVyYXRvcj09LgorICAgKiBSZXF1aXJlczogdGhpcyAmIHRleHQgbm90IGJv
Z3VzIGFuZCBoYXZlIHNhbWUgbGVuZ3Rocy4KKyAgICovCisgIFVCb29sIGRvRXF1YWxzKGNvbnN0
IFVuaWNvZGVTdHJpbmcgJnRleHQsIGludDMyX3QgbGVuKSBjb25zdDsKIAogICBpbmxpbmUgaW50
OF90CiAgIGRvQ29tcGFyZShpbnQzMl90IHN0YXJ0LApAQCAtMzM1NCwxMiArMzQ1MywxMyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKipwQnVmZmVyVG9E
ZWxldGUgPSAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIGZvcmNlQ2xvbmUg
PSBGQUxTRSk7CiAKLSAgLy8gY29tbW9uIGZ1bmN0aW9uIGZvciBjYXNlIG1hcHBpbmdzCisgIC8q
KgorICAgKiBDb21tb24gZnVuY3Rpb24gZm9yIFVuaWNvZGVTdHJpbmcgY2FzZSBtYXBwaW5ncy4K
KyAgICogVGhlIHN0cmluZ0Nhc2VNYXBwZXIgaGFzIHRoZSBzYW1lIHR5cGUgVVN0cmluZ0Nhc2VN
YXBwZXIKKyAgICogYXMgaW4gdXN0cl9pbXAuaCBmb3IgdXN0cmNhc2VfbWFwKCkuCisgICAqLwog
ICBVbmljb2RlU3RyaW5nICYKLSAgY2FzZU1hcChCcmVha0l0ZXJhdG9yICp0aXRsZUl0ZXIsCi0g
ICAgICAgICAgY29uc3QgY2hhciAqbG9jYWxlLAotICAgICAgICAgIHVpbnQzMl90IG9wdGlvbnMs
Ci0gICAgICAgICAgaW50MzJfdCB0b1doaWNoQ2FzZSk7CisgIGNhc2VNYXAoY29uc3QgVUNhc2VN
YXAgKmNzbSwgVVN0cmluZ0Nhc2VNYXBwZXIgKnN0cmluZ0Nhc2VNYXBwZXIpOwogCiAgIC8vIHJl
ZiBjb3VudGluZwogICB2b2lkIGFkZFJlZih2b2lkKTsKQEAgLTMzNjgsMTAgKzM0NjgsOSBAQCBw
cml2YXRlOgogCiAgIC8vIGNvbnN0YW50cwogICBlbnVtIHsKLSAgICAvLyBTZXQgdGhlIHN0YWNr
IGJ1ZmZlciBzaXplIHNvIHRoYXQgc2l6ZW9mKFVuaWNvZGVTdHJpbmcpIGlzIGEgbXVsdGlwbGUg
b2Ygc2l6ZW9mKHBvaW50ZXIpOgotICAgIC8vIDMyLWJpdCBwb2ludGVyczogNCsxKzErMTMqMiA9
IDMyIGJ5dGVzCi0gICAgLy8gNjQtYml0IHBvaW50ZXJzOiA4KzErMSsxNSoyID0gNDAgYnl0ZXMK
LSAgICBVU19TVEFDS0JVRl9TSVpFPSBzaXplb2Yodm9pZCAqKT09NCA/IDEzIDogMTUsIC8vIFNp
emUgb2Ygc3RhY2sgYnVmZmVyIGZvciBzbWFsbCBzdHJpbmdzCisgICAgLy8gU2V0IHRoZSBzdGFj
ayBidWZmZXIgc2l6ZSBzbyB0aGF0IHNpemVvZihVbmljb2RlU3RyaW5nKSBpcywKKyAgICAvLyBu
YXR1cmFsbHkgKHdpdGhvdXQgcGFkZGluZyksIGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKHBvaW50ZXIp
LgorICAgIFVTX1NUQUNLQlVGX1NJWkU9IHNpemVvZih2b2lkICopPT00ID8gMTMgOiAxNSwgLy8g
U2l6ZSBvZiBzdGFjayBidWZmZXIgZm9yIHNob3J0IHN0cmluZ3MKICAgICBrSW52YWxpZFVDaGFy
PTB4ZmZmZiwgLy8gaW52YWxpZCBVQ2hhciBpbmRleAogICAgIGtHcm93U2l6ZT0xMjgsIC8vIGdy
b3cgc2l6ZSBmb3IgdGhpcyBidWZmZXIKICAgICBrSW52YWxpZEhhc2hDb2RlPTAsIC8vIGludmFs
aWQgaGFzaCBjb2RlCkBAIC0zMzc5LDcgKzM0NzgsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gYml0
IGZsYWcgdmFsdWVzIGZvciBmRmxhZ3MKICAgICBrSXNCb2d1cz0xLCAgICAgICAgIC8vIHRoaXMg
c3RyaW5nIGlzIGJvZ3VzLCBpLmUuLCBub3QgdmFsaWQgb3IgTlVMTAotICAgIGtVc2luZ1N0YWNr
QnVmZmVyPTIsLy8gZkFycmF5PT1mU3RhY2tCdWZmZXIKKyAgICBrVXNpbmdTdGFja0J1ZmZlcj0y
LC8vIHVzaW5nIGZVbmlvbi5mU3RhY2tCdWZmZXIgaW5zdGVhZCBvZiBmVW5pb24uZkZpZWxkcwog
ICAgIGtSZWZDb3VudGVkPTQsICAgICAgLy8gdGhlcmUgaXMgYSByZWZDb3VudCBmaWVsZCBiZWZv
cmUgdGhlIGNoYXJhY3RlcnMgaW4gZkFycmF5CiAgICAga0J1ZmZlcklzUmVhZG9ubHk9OCwvLyBk
byBub3Qgd3JpdGUgdG8gdGhpcyBidWZmZXIKICAgICBrT3BlbkdldEJ1ZmZlcj0xNiwgIC8vIGdl
dEJ1ZmZlcihtaW5DYXBhY2l0eSkgd2FzIGNhbGxlZCAoaXMgIm9wZW4iKSwKQEAgLTMzOTMsNiAr
MzQ5Miw3IEBAIHByaXZhdGU6CiAgIH07CiAKICAgZnJpZW5kIGNsYXNzIFN0cmluZ1RocmVhZFRl
c3Q7CisgIGZyaWVuZCBjbGFzcyBVbmljb2RlU3RyaW5nQXBwZW5kYWJsZTsKIAogICB1bmlvbiBT
dGFja0J1ZmZlck9yRmllbGRzOyAgICAgICAgLy8gZm9yd2FyZCBkZWNsYXJhdGlvbiBuZWNlc3Nh
cnkgYmVmb3JlIGZyaWVuZCBkZWNsYXJhdGlvbgogICBmcmllbmQgdW5pb24gU3RhY2tCdWZmZXJP
ckZpZWxkczsgLy8gbWFrZSBVU19TVEFDS0JVRl9TSVpFIHZpc2libGUgaW5zaWRlIGZVbmlvbgpA
QCAtMzQwMywyNSArMzUwMyw0OCBAQCBwcml2YXRlOgogICAgKiBOb3RlIHRoYXQgVW5pY29kZVN0
cmluZyBoYXMgdmlydHVhbCBmdW5jdGlvbnMsCiAgICAqIHRoZXJlZm9yZSB0aGVyZSBpcyBhbiBp
bXBsaWNpdCB2dGFibGUgcG9pbnRlcgogICAgKiBhcyB0aGUgZmlyc3QgcmVhbCBmaWVsZC4KLSAg
ICogVGhlIGZpZWxkcyBzaG91bGQgYmUgYWxpZ25lZCBzdWNoIHRoYXQgbm8gcGFkZGluZyBpcwot
ICAgKiBuZWNlc3NhcnksIG1vc3RseSBieSBoYXZpbmcgbGFyZ2VyIHR5cGVzIGZpcnN0LgorICAg
KiBUaGUgZmllbGRzIHNob3VsZCBiZSBhbGlnbmVkIHN1Y2ggdGhhdCBubyBwYWRkaW5nIGlzIG5l
Y2Vzc2FyeS4KICAgICogT24gMzItYml0IG1hY2hpbmVzLCB0aGUgc2l6ZSBzaG91bGQgYmUgMzIg
Ynl0ZXMsCiAgICAqIG9uIDY0LWJpdCBtYWNoaW5lcyAoOC1ieXRlIHBvaW50ZXJzKSwgaXQgc2hv
dWxkIGJlIDQwIGJ5dGVzLgorICAgKgorICAgKiBXZSB1c2UgYSBoYWNrIHRvIGFjaGlldmUgdGhp
cy4KKyAgICoKKyAgICogV2l0aCBhdCBsZWFzdCBzb21lIGNvbXBpbGVycywgZWFjaCBvZiB0aGUg
Zm9sbG93aW5nIGlzIGZvcmNlZCB0bworICAgKiBhIG11bHRpcGxlIG9mIHNpemVvZihwb2ludGVy
KSBbdGhlIGxhcmdlc3QgZmllbGQgYmFzZSB1bml0IGhlcmUgaXMgYSBkYXRhIHBvaW50ZXJdLAor
ICAgKiByb3VuZGVkIHVwIHdpdGggYWRkaXRpb25hbCBwYWRkaW5nIGlmIHRoZSBmaWVsZHMgZG8g
bm90IGFscmVhZHkgZml0IHRoYXQgcmVxdWlyZW1lbnQ6CisgICAqIC0gc2l6ZW9mKGNsYXNzIFVu
aWNvZGVTdHJpbmcpCisgICAqIC0gb2Zmc2V0b2YoVW5pY29kZVN0cmluZywgZlVuaW9uKQorICAg
KiAtIHNpemVvZihmVW5pb24pCisgICAqIC0gc2l6ZW9mKGZGaWVsZHMpCisgICAqCisgICAqIElu
IG9yZGVyIHRvIGF2b2lkIHBhZGRpbmcsIHdlIG1ha2Ugc2l6ZW9mKGZTdGFja0J1ZmZlcik9MTYg
KD04IFVDaGFycykKKyAgICogd2hpY2ggaXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgc2l6ZW9mKGZG
aWVsZHMpIG9uIDMyLWJpdCBhbmQgNjQtYml0IG1hY2hpbmVzLgorICAgKiAoUGFkZGluZyBhdCB0
aGUgZW5kIG9mIGZGaWVsZHMgaXMgb2s6CisgICAqIEFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gcGFk
ZGluZyBhZnRlciBmU3RhY2tCdWZmZXIsIGl0IGlzIG5vdCB3YXN0ZWQgc3BhY2UuKQorICAgKgor
ICAgKiBXZSBmdXJ0aGVyIGFzc3VtZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdCByZW9yZGVy
IHRoZSBmaWVsZHMsCisgICAqIHNvIHRoYXQgZlJlc3RPZlN0YWNrQnVmZmVyICh3aGljaCBob2xk
cyBhIGZldyBtb3JlIFVDaGFycykgaW1tZWRpYXRlbHkgZm9sbG93cyBhZnRlciBmVW5pb24sCisg
ICAqIHdpdGggYXQgbW9zdCBzb21lIHBhZGRpbmcgKGJ1dCBubyBvdGhlciBmaWVsZCkgaW4gYmV0
d2Vlbi4KKyAgICogKFBhZGRpbmcgdGhlcmUgd291bGQgYmUgd2FzdGVkIHNwYWNlLCBidXQgZnVu
Y3Rpb25hbGx5IGhhcm1sZXNzLikKKyAgICoKKyAgICogV2UgdXNlIGEgZmV3IG1vcmUgc2l6ZW9m
KHBvaW50ZXIpJ3MgY2h1bmtzIG9mIHNwYWNlIHdpdGgKKyAgICogZlJlc3RPZlN0YWNrQnVmZmVy
LCBmU2hvcnRMZW5ndGggYW5kIGZGbGFncywKKyAgICogdG8gZ2V0IHVwIGV4YWN0bHkgdG8gdGhl
IGludGVuZGVkIHNpemVvZihVbmljb2RlU3RyaW5nKS4KICAgICovCiAgIC8vIChpbXBsaWNpdCkg
KnZ0YWJsZTsKLSAgaW50OF90ICAgIGZTaG9ydExlbmd0aDsgICAvLyAwLi4xMjc6IGxlbmd0aCAg
PDA6IHJlYWwgbGVuZ3RoIGlzIGluIGZVbmlvbi5mRmllbGRzLmZMZW5ndGgKLSAgdWludDhfdCAg
IGZGbGFnczsgICAgICAgICAvLyBiaXQgZmxhZ3M6IHNlZSBjb25zdGFudHMgYWJvdmUKICAgdW5p
b24gU3RhY2tCdWZmZXJPckZpZWxkcyB7CiAgICAgLy8gZlN0YWNrQnVmZmVyIGlzIHVzZWQgaWZm
IChmRmxhZ3Mma1VzaW5nU3RhY2tCdWZmZXIpCiAgICAgLy8gZWxzZSBmRmllbGRzIGlzIHVzZWQK
LSAgICBVQ2hhciAgICAgZlN0YWNrQnVmZmVyIFtVU19TVEFDS0JVRl9TSVpFXTsgLy8gYnVmZmVy
IGZvciBzbWFsbCBzdHJpbmdzCisgICAgVUNoYXIgZlN0YWNrQnVmZmVyWzhdOyAgLy8gYnVmZmVy
IGZvciBzaG9ydCBzdHJpbmdzLCB0b2dldGhlciB3aXRoIGZSZXN0T2ZTdGFja0J1ZmZlcgogICAg
IHN0cnVjdCB7Ci0gICAgICB1aW50MTZfdCAgZlBhZGRpbmc7ICAgLy8gYWxpZ24gdGhlIGZvbGxv
d2luZyBmaWVsZCBhdCA4QiAoMzJiIHBvaW50ZXJzKSBvciAxMkIgKDY0YikKLSAgICAgIGludDMy
X3QgICBmTGVuZ3RoOyAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBmQXJyYXkgaWYgPjEy
NzsgZWxzZSB1bmRlZmluZWQKLSAgICAgIFVDaGFyICAgICAqZkFycmF5OyAgICAvLyB0aGUgVW5p
Y29kZSBkYXRhIChhbGlnbmVkIGF0IDEyQiAoMzJiIHBvaW50ZXJzKSBvciAxNkIgKDY0YikpCi0g
ICAgICBpbnQzMl90ICAgZkNhcGFjaXR5OyAgLy8gc2l6ZW9mIGZBcnJheQorICAgICAgVUNoYXIg
ICAqZkFycmF5OyAgICAvLyB0aGUgVW5pY29kZSBkYXRhCisgICAgICBpbnQzMl90IGZDYXBhY2l0
eTsgIC8vIGNhcGFjaXR5IG9mIGZBcnJheSAoaW4gVUNoYXJzKQorICAgICAgaW50MzJfdCBmTGVu
Z3RoOyAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBmQXJyYXkgaWYgPjEyNzsgZWxzZSB1
bmRlZmluZWQKICAgICB9IGZGaWVsZHM7CiAgIH0gZlVuaW9uOworICBVQ2hhciBmUmVzdE9mU3Rh
Y2tCdWZmZXJbVVNfU1RBQ0tCVUZfU0laRS04XTsKKyAgaW50OF90IGZTaG9ydExlbmd0aDsgIC8v
IDAuLjEyNzogbGVuZ3RoICA8MDogcmVhbCBsZW5ndGggaXMgaW4gZlVuaW9uLmZGaWVsZHMuZkxl
bmd0aAorICB1aW50OF90IGZGbGFnczsgICAgICAgLy8gYml0IGZsYWdzOiBzZWUgY29uc3RhbnRz
IGFib3ZlCiB9OwogCiAvKioKQEAgLTM0ODEsNiArMzYwNCwxNiBAQCBVbmljb2RlU3RyaW5nOjpn
ZXRBcnJheVN0YXJ0KCkgY29uc3QKIHsgcmV0dXJuIChmRmxhZ3Mma1VzaW5nU3RhY2tCdWZmZXIp
ID8gZlVuaW9uLmZTdGFja0J1ZmZlciA6IGZVbmlvbi5mRmllbGRzLmZBcnJheTsgfQogCiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIERlZmF1bHQgY29uc3Ry
dWN0b3IKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitpbmxp
bmUKK1VuaWNvZGVTdHJpbmc6OlVuaWNvZGVTdHJpbmcoKQorICA6IGZTaG9ydExlbmd0aCgwKSwK
KyAgICBmRmxhZ3Moa1Nob3J0U3RyaW5nKQore30KKworLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAvLyBSZWFkLW9ubHkgaW1wbGVtZW50YXRpb24gbWV0aG9kcwog
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBpbmxpbmUgaW50MzJf
dApAQCAtMzU0NywxMCArMzY4MCw3IEBAIFVuaWNvZGVTdHJpbmc6Om9wZXJhdG9yPT0gKGNvbnN0
IFVuaWNvZGVTdHJpbmcmIHRleHQpIGNvbnN0CiAgICAgcmV0dXJuIHRleHQuaXNCb2d1cygpOwog
ICB9IGVsc2UgewogICAgIGludDMyX3QgbGVuID0gbGVuZ3RoKCksIHRleHRMZW5ndGggPSB0ZXh0
Lmxlbmd0aCgpOwotICAgIHJldHVybgotICAgICAgIXRleHQuaXNCb2d1cygpICYmCi0gICAgICBs
ZW4gPT0gdGV4dExlbmd0aCAmJgotICAgICAgZG9Db21wYXJlKDAsIGxlbiwgdGV4dCwgMCwgdGV4
dExlbmd0aCkgPT0gMDsKKyAgICByZXR1cm4gIXRleHQuaXNCb2d1cygpICYmIGxlbiA9PSB0ZXh0
TGVuZ3RoICYmIGRvRXF1YWxzKHRleHQsIGxlbik7CiAgIH0KIH0KIApAQCAtMzkzMiwxNSArNDA2
MiwyMCBAQCBVbmljb2RlU3RyaW5nOjpzdGFydHNXaXRoKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHNy
Y1RleHQsCiB7IHJldHVybiBkb0NvbXBhcmUoMCwgc3JjTGVuZ3RoLCBzcmNUZXh0LCBzcmNTdGFy
dCwgc3JjTGVuZ3RoKSA9PSAwOyB9CiAKIGlubGluZSBVQm9vbAotVW5pY29kZVN0cmluZzo6c3Rh
cnRzV2l0aChjb25zdCBVQ2hhciAqc3JjQ2hhcnMsCi0gICAgICAgICAgICAgIGludDMyX3Qgc3Jj
TGVuZ3RoKSBjb25zdAoteyByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xlbmd0aCwgc3JjQ2hhcnMs
IDAsIHNyY0xlbmd0aCkgPT0gMDsgfQorVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0aChjb25zdCBV
Q2hhciAqc3JjQ2hhcnMsIGludDMyX3Qgc3JjTGVuZ3RoKSBjb25zdCB7CisgIGlmKHNyY0xlbmd0
aCA8IDApIHsKKyAgICBzcmNMZW5ndGggPSB1X3N0cmxlbihzcmNDaGFycyk7CisgIH0KKyAgcmV0
dXJuIGRvQ29tcGFyZSgwLCBzcmNMZW5ndGgsIHNyY0NoYXJzLCAwLCBzcmNMZW5ndGgpID09IDA7
Cit9CiAKIGlubGluZSBVQm9vbAotVW5pY29kZVN0cmluZzo6c3RhcnRzV2l0aChjb25zdCBVQ2hh
ciAqc3JjQ2hhcnMsCi0gICAgICAgICAgICAgIGludDMyX3Qgc3JjU3RhcnQsCi0gICAgICAgICAg
ICAgIGludDMyX3Qgc3JjTGVuZ3RoKSBjb25zdAoteyByZXR1cm4gZG9Db21wYXJlKDAsIHNyY0xl
bmd0aCwgc3JjQ2hhcnMsIHNyY1N0YXJ0LCBzcmNMZW5ndGgpID09IDA7fQorVW5pY29kZVN0cmlu
Zzo6c3RhcnRzV2l0aChjb25zdCBVQ2hhciAqc3JjQ2hhcnMsIGludDMyX3Qgc3JjU3RhcnQsIGlu
dDMyX3Qgc3JjTGVuZ3RoKSBjb25zdCB7CisgIGlmKHNyY0xlbmd0aCA8IDApIHsKKyAgICBzcmNM
ZW5ndGggPSB1X3N0cmxlbihzcmNDaGFycyk7CisgIH0KKyAgcmV0dXJuIGRvQ29tcGFyZSgwLCBz
cmNMZW5ndGgsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGVuZ3RoKSA9PSAwOworfQogCiBpbmxp
bmUgVUJvb2wKIFVuaWNvZGVTdHJpbmc6OmVuZHNXaXRoKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRl
eHQpIGNvbnN0CkBAIC00MDE2LDE3ICs0MTUxLDYgQEAgVW5pY29kZVN0cmluZzo6cmVwbGFjZShp
bnQzMl90IHN0YXJ0LAogeyByZXR1cm4gZG9SZXBsYWNlKHN0YXJ0LCBfbGVuZ3RoLCAmc3JjQ2hh
ciwgMCwgMSk7IH0KIAogaW5saW5lIFVuaWNvZGVTdHJpbmcmCi1Vbmljb2RlU3RyaW5nOjpyZXBs
YWNlKGludDMyX3Qgc3RhcnQsCi0gICAgICAgICAgICAgICBpbnQzMl90IF9sZW5ndGgsCi0gICAg
ICAgICAgICAgICBVQ2hhcjMyIHNyY0NoYXIpIHsKLSAgVUNoYXIgYnVmZmVyW1UxNl9NQVhfTEVO
R1RIXTsKLSAgaW50MzJfdCBjb3VudCA9IDA7Ci0gIFVCb29sIGlzRXJyb3IgPSBGQUxTRTsKLSAg
VTE2X0FQUEVORChidWZmZXIsIGNvdW50LCBVMTZfTUFYX0xFTkdUSCwgc3JjQ2hhciwgaXNFcnJv
cik7Ci0gIHJldHVybiBkb1JlcGxhY2Uoc3RhcnQsIF9sZW5ndGgsIGJ1ZmZlciwgMCwgY291bnQp
OwotfQotCi1pbmxpbmUgVW5pY29kZVN0cmluZyYKIFVuaWNvZGVTdHJpbmc6OnJlcGxhY2VCZXR3
ZWVuKGludDMyX3Qgc3RhcnQsCiAgICAgICAgICAgICAgICAgICBpbnQzMl90IGxpbWl0LAogICAg
ICAgICAgICAgICAgICAgY29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCkKQEAgLTQwODYsOSAr
NDIxMCw5IEBAIFVuaWNvZGVTdHJpbmc6OmV4dHJhY3QoaW50MzJfdCBzdGFydCwKIAogewogICAv
LyBUaGlzIGRzdFNpemUgdmFsdWUgd2lsbCBiZSBjaGVja2VkIGV4cGxpY2l0bHkKLSAgLy8gUmVt
b3ZlZCAjaWYgZGVmaW5lZChfX0dOVUNfXykgcGVyIElDVSBkZWZlY3QgaHR0cDovL2J1Z3MuaWN1
LXByb2plY3Qub3JnL3RyYWMvdGlja2V0LzgxOTcKICAgcmV0dXJuIGV4dHJhY3Qoc3RhcnQsIF9s
ZW5ndGgsIGRzdCwgZHN0IT0wID8gMHhmZmZmZmZmZiA6IDAsIGNvZGVwYWdlKTsKIH0KKwogI2Vu
ZGlmCiAKIGlubGluZSB2b2lkCkBAIC00MTI0LDQzICs0MjQ4LDYgQEAgaW5saW5lIFVDaGFyCiBV
bmljb2RlU3RyaW5nOjpvcGVyYXRvcltdIChpbnQzMl90IG9mZnNldCkgY29uc3QKIHsgcmV0dXJu
IGRvQ2hhckF0KG9mZnNldCk7IH0KIAotaW5saW5lIFVDaGFyMzIKLVVuaWNvZGVTdHJpbmc6OmNo
YXIzMkF0KGludDMyX3Qgb2Zmc2V0KSBjb25zdAotewotICBpbnQzMl90IGxlbiA9IGxlbmd0aCgp
OwotICBpZigodWludDMyX3Qpb2Zmc2V0IDwgKHVpbnQzMl90KWxlbikgewotICAgIGNvbnN0IFVD
aGFyICphcnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAgICBVQ2hhcjMyIGM7Ci0gICAgVTE2X0dF
VChhcnJheSwgMCwgb2Zmc2V0LCBsZW4sIGMpOwotICAgIHJldHVybiBjOwotICB9IGVsc2Ugewot
ICAgIHJldHVybiBrSW52YWxpZFVDaGFyOwotICB9Ci19Ci0KLWlubGluZSBpbnQzMl90Ci1Vbmlj
b2RlU3RyaW5nOjpnZXRDaGFyMzJTdGFydChpbnQzMl90IG9mZnNldCkgY29uc3QgewotICBpZigo
dWludDMyX3Qpb2Zmc2V0IDwgKHVpbnQzMl90KWxlbmd0aCgpKSB7Ci0gICAgY29uc3QgVUNoYXIg
KmFycmF5ID0gZ2V0QXJyYXlTdGFydCgpOwotICAgIFUxNl9TRVRfQ1BfU1RBUlQoYXJyYXksIDAs
IG9mZnNldCk7Ci0gICAgcmV0dXJuIG9mZnNldDsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gMDsK
LSAgfQotfQotCi1pbmxpbmUgaW50MzJfdAotVW5pY29kZVN0cmluZzo6Z2V0Q2hhcjMyTGltaXQo
aW50MzJfdCBvZmZzZXQpIGNvbnN0IHsKLSAgaW50MzJfdCBsZW4gPSBsZW5ndGgoKTsKLSAgaWYo
KHVpbnQzMl90KW9mZnNldCA8ICh1aW50MzJfdClsZW4pIHsKLSAgICBjb25zdCBVQ2hhciAqYXJy
YXkgPSBnZXRBcnJheVN0YXJ0KCk7Ci0gICAgVTE2X1NFVF9DUF9MSU1JVChhcnJheSwgMCwgb2Zm
c2V0LCBsZW4pOwotICAgIHJldHVybiBvZmZzZXQ7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIGxl
bjsKLSAgfQotfQotCiBpbmxpbmUgVUJvb2wKIFVuaWNvZGVTdHJpbmc6OmlzRW1wdHkoKSBjb25z
dCB7CiAgIHJldHVybiBmU2hvcnRMZW5ndGggPT0gMDsKQEAgLTQxOTIsNDggKzQyNzksNiBAQCBV
bmljb2RlU3RyaW5nOjpzZXRBcnJheShVQ2hhciAqYXJyYXksIGludDMyX3QgbGVuLCBpbnQzMl90
IGNhcGFjaXR5KSB7CiAgIGZVbmlvbi5mRmllbGRzLmZDYXBhY2l0eSA9IGNhcGFjaXR5OwogfQog
Ci1pbmxpbmUgY29uc3QgVUNoYXIgKgotVW5pY29kZVN0cmluZzo6Z2V0VGVybWluYXRlZEJ1ZmZl
cigpIHsKLSAgaWYoIWlzV3JpdGFibGUoKSkgewotICAgIHJldHVybiAwOwotICB9IGVsc2Ugewot
ICAgIFVDaGFyICphcnJheSA9IGdldEFycmF5U3RhcnQoKTsKLSAgICBpbnQzMl90IGxlbiA9IGxl
bmd0aCgpOwotICAgIGlmKGxlbiA8IGdldENhcGFjaXR5KCkgJiYgKChmRmxhZ3Mma1JlZkNvdW50
ZWQpID09IDAgfHwgcmVmQ291bnQoKSA9PSAxKSkgewotICAgICAgLyoKLSAgICAgICAqIGtSZWZD
b3VudGVkOiBEbyBub3Qgd3JpdGUgdGhlIE5VTCBpZiB0aGUgYnVmZmVyIGlzIHNoYXJlZC4KLSAg
ICAgICAqIFRoYXQgaXMgbW9zdGx5IHNhZmUsIGV4Y2VwdCB3aGVuIHRoZSBsZW5ndGggb2Ygb25l
IGNvcHkgd2FzIG1vZGlmaWVkCi0gICAgICAgKiB3aXRob3V0IGNvcHktb24td3JpdGUsIGUuZy4s
IHZpYSB0cnVuY2F0ZShuZXdMZW5ndGgpIG9yIHJlbW92ZSh2b2lkKS4KLSAgICAgICAqIFRoZW4g
dGhlIE5VTCB3b3VsZCBiZSB3cml0dGVuIGludG8gdGhlIG1pZGRsZSBvZiBhbm90aGVyIGNvcHkn
cyBzdHJpbmcuCi0gICAgICAgKi8KLSAgICAgIGlmKCEoZkZsYWdzJmtCdWZmZXJJc1JlYWRvbmx5
KSkgewotICAgICAgICAvKgotICAgICAgICAgKiBXZSBtdXN0IG5vdCB3cml0ZSB0byBhIHJlYWRv
bmx5IGJ1ZmZlciwgYnV0IGl0IGlzIGtub3duIHRvIGJlCi0gICAgICAgICAqIE5VTC10ZXJtaW5h
dGVkIGlmIGxlbjxjYXBhY2l0eS4KLSAgICAgICAgICogQSBzaGFyZWQsIGFsbG9jYXRlZCBidWZm
ZXIgKHJlZkNvdW50KCk+MSkgbXVzdCBub3QgaGF2ZSBpdHMgY29udGVudHMKLSAgICAgICAgICog
bW9kaWZpZWQsIGJ1dCB0aGUgTlVMIGF0IFtsZW5dIGlzIGJleW9uZCB0aGUgc3RyaW5nIGNvbnRl
bnRzLAotICAgICAgICAgKiBhbmQgbXVsdGlwbGUgc3RyaW5nIG9iamVjdHMgYW5kIHRocmVhZHMg
d3JpdGluZyB0aGUgc2FtZSBOVUwgaW50byB0aGUKLSAgICAgICAgICogc2FtZSBsb2NhdGlvbiBp
cyBoYXJtbGVzcy4KLSAgICAgICAgICogSW4gYWxsIG90aGVyIGNhc2VzLCB0aGUgYnVmZmVyIGlz
IGZ1bGx5IHdyaXRhYmxlIGFuZCBpdCBpcyBhbnl3YXkgc2FmZQotICAgICAgICAgKiB0byB3cml0
ZSB0aGUgTlVMLgotICAgICAgICAgKgotICAgICAgICAgKiBOb3RlOiBBbiBlYXJsaWVyIHZlcnNp
b24gb2YgdGhpcyBjb2RlIHRlc3RlZCB3aGV0aGVyIHRoZXJlIGlzIGEgTlVMCi0gICAgICAgICAq
IGF0IFtsZW5dIGFscmVhZHksIGJ1dCwgd2hpbGUgc2FmZSwgaXQgZ2VuZXJhdGVkIGxvdHMgb2Yg
d2FybmluZ3MgZnJvbQotICAgICAgICAgKiB0b29scyBsaWtlIHZhbGdyaW5kIGFuZCBQdXJpZnku
Ci0gICAgICAgICAqLwotICAgICAgICBhcnJheVtsZW5dID0gMDsKLSAgICAgIH0KLSAgICAgIHJl
dHVybiBhcnJheTsKLSAgICB9IGVsc2UgaWYoY2xvbmVBcnJheUlmTmVlZGVkKGxlbisxKSkgewot
ICAgICAgYXJyYXkgPSBnZXRBcnJheVN0YXJ0KCk7Ci0gICAgICBhcnJheVtsZW5dID0gMDsKLSAg
ICAgIHJldHVybiBhcnJheTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
ICB9Ci19Ci0KIGlubGluZSBVbmljb2RlU3RyaW5nJgogVW5pY29kZVN0cmluZzo6b3BlcmF0b3I9
IChVQ2hhciBjaCkKIHsgcmV0dXJuIGRvUmVwbGFjZSgwLCBsZW5ndGgoKSwgJmNoLCAwLCAxKTsg
fQpAQCAtNDI2Myw4ICs0MzA4LDcgQEAgVW5pY29kZVN0cmluZzo6c2V0VG8oY29uc3QgVW5pY29k
ZVN0cmluZyYgc3JjVGV4dCwKIGlubGluZSBVbmljb2RlU3RyaW5nJgogVW5pY29kZVN0cmluZzo6
c2V0VG8oY29uc3QgVW5pY29kZVN0cmluZyYgc3JjVGV4dCkKIHsKLSAgdW5Cb2d1cygpOwotICBy
ZXR1cm4gZG9SZXBsYWNlKDAsIGxlbmd0aCgpLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgp
KTsKKyAgcmV0dXJuIGNvcHlGcm9tKHNyY1RleHQpOwogfQogCiBpbmxpbmUgVW5pY29kZVN0cmlu
ZyYKQEAgLTQzMTUsMTUgKzQzNTksNiBAQCBVbmljb2RlU3RyaW5nOjphcHBlbmQoVUNoYXIgc3Jj
Q2hhcikKIHsgcmV0dXJuIGRvUmVwbGFjZShsZW5ndGgoKSwgMCwgJnNyY0NoYXIsIDAsIDEpOyB9
CiAKIGlubGluZSBVbmljb2RlU3RyaW5nJgotVW5pY29kZVN0cmluZzo6YXBwZW5kKFVDaGFyMzIg
c3JjQ2hhcikgewotICBVQ2hhciBidWZmZXJbVTE2X01BWF9MRU5HVEhdOwotICBpbnQzMl90IF9s
ZW5ndGggPSAwOwotICBVQm9vbCBpc0Vycm9yID0gRkFMU0U7Ci0gIFUxNl9BUFBFTkQoYnVmZmVy
LCBfbGVuZ3RoLCBVMTZfTUFYX0xFTkdUSCwgc3JjQ2hhciwgaXNFcnJvcik7Ci0gIHJldHVybiBk
b1JlcGxhY2UobGVuZ3RoKCksIDAsIGJ1ZmZlciwgMCwgX2xlbmd0aCk7Ci19Ci0KLWlubGluZSBV
bmljb2RlU3RyaW5nJgogVW5pY29kZVN0cmluZzo6b3BlcmF0b3IrPSAoVUNoYXIgY2gpCiB7IHJl
dHVybiBkb1JlcGxhY2UobGVuZ3RoKCksIDAsICZjaCwgMCwgMSk7IH0KIApAQCAtNDM3Niw5ICs0
NDExLDcgQEAgaW5saW5lIFVuaWNvZGVTdHJpbmcmCiBVbmljb2RlU3RyaW5nOjpyZW1vdmUoKQog
ewogICAvLyByZW1vdmUoKSBvZiBhIGJvZ3VzIHN0cmluZyBtYWtlcyB0aGUgc3RyaW5nIGVtcHR5
IGFuZCBub24tYm9ndXMKLSAgLy8gd2UgYWxzbyB1bi1hbGlhcyBhIHJlYWQtb25seSBhbGlhcyB0
byBkZWFsIHdpdGggTlVMLXRlcm1pbmF0aW9uCi0gIC8vIGlzc3VlcyB3aXRoIGdldFRlcm1pbmF0
ZWRCdWZmZXIoKQotICBpZihmRmxhZ3MgJiAoa0lzQm9ndXN8a0J1ZmZlcklzUmVhZG9ubHkpKSB7
CisgIGlmKGlzQm9ndXMoKSkgewogICAgIHNldFRvRW1wdHkoKTsKICAgfSBlbHNlIHsKICAgICBm
U2hvcnRMZW5ndGggPSAwOwpAQCAtNDQxNyw5ICs0NDUwLDYgQEAgVW5pY29kZVN0cmluZzo6dHJ1
bmNhdGUoaW50MzJfdCB0YXJnZXRMZW5ndGgpCiAgICAgcmV0dXJuIEZBTFNFOwogICB9IGVsc2Ug
aWYoKHVpbnQzMl90KXRhcmdldExlbmd0aCA8ICh1aW50MzJfdClsZW5ndGgoKSkgewogICAgIHNl
dExlbmd0aCh0YXJnZXRMZW5ndGgpOwotICAgIGlmKGZGbGFncyZrQnVmZmVySXNSZWFkb25seSkg
ewotICAgICAgZlVuaW9uLmZGaWVsZHMuZkNhcGFjaXR5ID0gdGFyZ2V0TGVuZ3RoOyAgLy8gbm90
IE5VTC10ZXJtaW5hdGVkIGFueSBtb3JlCi0gICAgfQogICAgIHJldHVybiBUUlVFOwogICB9IGVs
c2UgewogICAgIHJldHVybiBGQUxTRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3Vub3JtMi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW5vcm0yLmgKaW5k
ZXggYTUyMmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5ZGI0YTJhMmYxYy4uNzE1MmZjMTA5NDY2
ZDA3YzUwYmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aWN1L3VuaWNvZGUvdW5vcm0yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdW5v
cm0yLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiAg
IENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
ICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOSw2ICsxMTksNzYgQEAgdHlwZWRlZiBz
dHJ1Y3QgVU5vcm1hbGl6ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1
Y3QgVU5vcm1hbGl6ZXIKICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFUSU9OCiAKIC8qKgorICog
UmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkMgbm9ybWFsaXph
dGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJf
Q09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0
b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFu
ZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAg
ICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0
dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVS
RSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBj
aGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJl
cXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAq
LworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZD
SW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogUmV0dXJucyBhIFVO
b3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFsaXphdGlvbi4KKyAqIFNh
bWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9STTJfREVDT01QT1NFLCBw
RXJyb3JDb2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNpbmdsZXRvbiBpbnN0YW5j
ZS4gRG8gbm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIFN0YW5kYXJkIElDVSBl
cnJvciBjb2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAgICAgICAgICAgICBwYXNz
IHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCisgKiAg
ICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0
cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAo
U2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0aGUgcmVxdWVzdGVkIE5v
cm1hbGl6ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJM
RSBjb25zdCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9nZXRORkRJbnN0YW5jZShV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIy
IGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5v
cm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBPU0UsIHBFcnJvckNvZGUp
LgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGluc3RhbmNlLiBEbyBub3Qg
ZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQgSUNVIGVycm9yIGNvZGUu
IEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VD
Q0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAg
ICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNl
IHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBH
dWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0ZWQgTm9ybWFsaXplcjIs
IGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVO
b3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0YW5jZShVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNl
IGZvciBVbmljb2RlIE5GS0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldElu
c3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBS
ZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUg
aXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlu
cHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkg
dGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBp
bW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAor
ICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZv
ciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3Vj
Y2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6
ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIgaW5zdGFuY2UgZm9yIFVu
aWNvZGUgTkZLQ19DYXNlZm9sZCBub3JtYWxpemF0aW9uLgorICogU2FtZSBhcyB1bm9ybTJfZ2V0
SW5zdGFuY2UoTlVMTCwgIm5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisg
KiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxl
dGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRz
IGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNT
KCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAg
ICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0
aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRl
IGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYg
c3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1h
bGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UoVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0
YW5jZSB3aGljaCB1c2VzIHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAgKiAocGFja2FnZU5hbWUv
bmFtZSBzaW1pbGFyIHRvIHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJlc19vcGVuKCkvUmVzb3Vy
Y2VCdW5kbGUpCiAgKiBhbmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21wb3NlcyB0ZXh0IGFjY29y
ZGluZyB0byB0aGUgc3BlY2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMwLDExIEBAIHVub3JtMl9h
cHBlbmQoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21wb3NpdGlvbiBtYXBwaW5n
IG9mIGMuIEVxdWl2YWxlbnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJpbmcoYykpCi0gKiBvbiBh
IFVOT1JNMl9ERUNPTVBPU0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBidXQgbXVjaCBmYXN0ZXIu
CisgKiBHZXRzIHRoZSBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4KKyAqIFJvdWdobHkgZXF1
aXZhbGVudCB0byBub3JtYWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2YgYworICogb24gYSBVTk9S
TTJfREVDT01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11Y2ggZmFzdGVyLCBhbmQg
ZXhjZXB0IHRoYXQgdGhpcyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIGFu
ZCBkb2VzIG5vdCB3cml0ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5vdCBoYXZlIGEgZGVjb21w
b3NpdGlvbiBtYXBwaW5nIGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgogICogVGhpcyBmdW5jdGlv
biBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgogICogQHBh
cmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFtIGMgY29kZSBwb2ludApA
QCAtMjczLDE0ICszNDYsNzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBVTm9ybWFsaXplcjIgKm5v
cm0yLAogICogICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxV
UkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiB0aGUg
bm9uLW5lZ2F0aXZlIGxlbmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwgaWYgdGhlcmUgaXMgb25l
OyBvdGhlcndpc2UgYSBuZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFi
bGUgSUNVIDQuNgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQz
Ml90IFVfRVhQT1JUMgogdW5vcm0yX2dldERlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIy
ICpub3JtMiwKICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29t
cG9zaXRpb24sIGludDMyX3QgY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSByYXcgZGVjb21wb3NpdGlv
biBtYXBwaW5nIG9mIGMuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB1bm9ybTJfZ2V0
RGVjb21wb3NpdGlvbigpIGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQorICogcmF3IGRlY29tcG9z
aXRpb24gbWFwcGluZyBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEudHh0IG9yCisgKiAoZm9y
IGN1c3RvbSBkYXRhKSBpbiB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNzZWQgYnkgdGhlIGdlbm5v
cm0yIHRvb2wuCisgKiBCeSBjb250cmFzdCwgdW5vcm0yX2dldERlY29tcG9zaXRpb24oKSByZXR1
cm5zIHRoZSBwcm9jZXNzZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBvc2VkIHZlcnNpb24gb2Yg
dGhpcyBtYXBwaW5nLgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5kYXJkIE5GS0MgTm9ybWFs
aXplcjIgaW5zdGFuY2UsCisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3NpdGlvbigpIHJldHVybnMg
dGhlIFVuaWNvZGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJvcGVydHkuCisgKgorICog
V2hlbiB1c2VkIG9uIGEgc3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGluc3RhbmNlLAorICogaXQg
cmV0dXJucyB0aGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYgdGhlIERlY29tcG9zaXRp
b25fVHlwZSAoZHQpIGlzIENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRoaXMgY2FzZSwgdGhlIHJl
c3VsdCBjb250YWlucyBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50cyAoPTEuLjQgVUNoYXJz
KS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9mIHRoZSBtb2RlIG9mIHRo
ZSBVTm9ybWFsaXplcjIuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3RhbmNlCisg
KiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3NpdGlvbiBTdHJpbmcgYnVm
ZmVyIHdoaWNoIHdpbGwgYmUgc2V0IHRvIGMncworICogICAgICAgICAgICAgICAgICAgICAgcmF3
IGRlY29tcG9zaXRpb24gbWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgorICogQHBhcmFtIGNhcGFj
aXR5IG51bWJlciBvZiBVQ2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBkZWNvbXBvc2l0aW9u
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0
IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRl
c3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAgICAgICAgICAgICAgIGlt
bWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisg
KiAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZv
ciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBsZW5ndGggb2YgYydzIHJh
dyBkZWNvbXBvc2l0aW9uLCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSBhIG5lZ2F0aXZlIHZh
bHVlCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgor
dW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIgKmRlY29tcG9zaXRpb24s
IGludDMyX3QgY2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lzZSBjb21wb3NpdGlvbiBv
ZiBhICYgYiBhbmQgcmV0dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJlIGlzIG9uZS4KKyAqCisg
KiBSZXR1cm5zIGEgY29tcG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlmIGMgaGFzIGEgdHdvLXdh
eSBtYXBwaW5nIHRvIGErYi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFsaXphdGlvbiwg
dGhpcyBtZWFucyB0aGF0CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIHRvIGEr
YgorICogYW5kIGMgZG9lcyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24g
cHJvcGVydHkuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9k
ZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0
YW5jZQorICogQHBhcmFtIGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVyKSBjb2RlIHBvaW50Lgor
ICogQHBhcmFtIGIgQW5vdGhlciBjb2RlIHBvaW50LgorICogQHJldHVybiBUaGUgbm9uLW5lZ2F0
aXZlIGNvbXBvc2l0ZSBjb2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIGEgbmVn
YXRpdmUgdmFsdWUuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBVQ2hhcjMyIFVf
RVhQT1JUMgordW5vcm0yX2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxpemVyMiAqbm9ybTIsIFVD
aGFyMzIgYSwgVUNoYXIzMiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mg
b2YgYy4KKyAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgMAorICogYnV0IGFs
bCBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmljb2RlIENhbm9uaWNhbF9D
b21iaW5pbmdfQ2xhc3MgdmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6ZXIyIGluc3Rh
bmNlCisgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMncyBjb21iaW5pbmcgY2xh
c3MKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4X3QgVV9FWFBPUlQyCit1
bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwgVUNoYXIz
MiBjKTsKKworLyoqCiAgKiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6ZWQuCiAgKiBJ
bnRlcm5hbGx5LCBpbiBjYXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygpIG1ldGhvZCB3b3VsZCBy
ZXR1cm4gIm1heWJlIgogICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUgZm9yIHRoZSB0d28gQ09N
UE9TRSBtb2RlcykgdGhpcyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3VvYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VvYmplY3QuaApp
bmRleCAyN2Q0Yzg0ZGE1YjY3OGUyZGY0OGFlNDNiNjgyYWI1NDkwOTI4MzUwLi41NGNlYWNlNjI2
ZDczNWNiYWM2ZDgzNWJmNmFiYTM0ODMzYTlmNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91b2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
dW9iamVjdC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTksNTAgKzE5LDExIEBACiAKICNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgogCi1VX05BTUVTUEFDRV9CRUdJTgotCiAvKioKICAqIFxm
aWxlCiAgKiBcYnJpZWYgQysrIEFQSTogQ29tbW9uIElDVSBiYXNlIGNsYXNzIFVPYmplY3QuCiAg
Ki8KIAotLyoqICBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIC0gRGVmaW5lIHRoaXMgdG8gb3Zl
cnJpZGUgb3BlcmF0b3IgbmV3IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVsZXRlIGluIFVNZW1vcnkuIEVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgSUNVLgotICoKLSAqICAg
ICAgICAgRW5hYmxpbmcgZm9yY2VzIGFsbCBhbGxvY2F0aW9uIG9mIElDVSBvYmplY3QgdHlwZXMg
dG8gdXNlIElDVSdzCi0gKiAgICAgICAgIG1lbW9yeSBhbGxvY2F0aW9uLiBPbiBXaW5kb3dzLCB0
aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5Ci0gKiAgICAgICAgIGFwcGxpY2F0
aW9ucyB0aGF0IHN0YXRpY2FsbHkgbGluayB0aGUgQyBSdW50aW1lIGxpYnJhcnksIG1lYW5pbmcg
dGhhdAotICogICAgICAgICB0aGUgYXBwIGFuZCBJQ1Ugd2lsbCBiZSB1c2luZyBkaWZmZXJlbnQg
aGVhcHMuCi0gKgotICogQHN0YWJsZSBJQ1UgMi4yCi0gKi8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2RlZmluZSBVX09W
RVJSSURFX0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotCi0vKiogCi0gKiBcZGVmIFVfSEFWRV9Q
TEFDRU1FTlRfTkVXCi0gKiAgRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBwbGFjZW1lbnQgbmV3
IGFuZAotICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpbiBVTWVtb3J5IGZvciBT
VEwuCi0gKgotICogQHN0YWJsZSBJQ1UgMi42Ci0gKi8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKLSNpZm5kZWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKLSNkZWZpbmUgVV9IQVZFX1BMQUNF
TUVOVF9ORVcgMQotI2VuZGlmCi0KLQotLyoqIAotICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJ
T05fTkVXIAotICogRGVmaW5lIHRoaXMgdG8gZGVmaW5lIHRoZSBNRkMgZGVidWcKLSAqIHZlcnNp
b24gb2YgdGhlIG9wZXJhdG9yIG5ldy4KLSAqCi0gKiBAc3RhYmxlIElDVSAzLjQKLSAqLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotI2lmbmRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05f
TkVXCi0jZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMAotI2VuZGlmCi0KIC8qKgog
ICogQHsKICAqIFxkZWYgVV9OT19USFJPVwpAQCAtNzUsMTQgKzM2LDYyIEBAIFVfTkFNRVNQQUNF
X0JFR0lOCiAgKiAgICAgICAgIGNvbnN0cnVjdG9yIGlzIHN0aWxsIGNhbGxlZCwgYW5kIGlmIHRo
ZSBjb25zdHJ1Y3RvciByZWZlcmVuY2VzIG1lbWJlciAKICAqICAgICAgICAgZGF0YSwgKHdoaWNo
IGl0IHR5cGljYWxseSBkb2VzKSwgdGhlIHJlc3VsdCBpcyBhIHNlZ21lbnRhdGlvbiB2aW9sYXRp
b24uCiAgKgotICogQGRyYWZ0IElDVSA0LjIKLSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAorICogQHN0YWJsZSBJQ1UgNC4yCisgKi8KICNpZm5kZWYgVV9OT19USFJPVwogI2RlZmlu
ZSBVX05PX1RIUk9XIHRocm93KCkKICNlbmRpZgogCiAvKiogQH0gKi8KIAorLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLworLyogVUNsYXNzSUQtYmFzZWQgUlRUSSAqLworLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLworCisvKioKKyAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xhc3NlcyB3aXRo
b3V0IHVzaW5nIHRoZSBjb21waWxlcidzIFJUVEkuCisgKiBUaGlzIHdhcyB1c2VkIGJlZm9yZSBD
KysgY29tcGlsZXJzIGNvbnNpc3RlbnRseSBzdXBwb3J0ZWQgUlRUSS4KKyAqIElDVSA0LjYgcmVx
dWlyZXMgY29tcGlsZXIgUlRUSSB0byBiZSB0dXJuZWQgb24uCisgKgorICogRWFjaCBjbGFzcyBo
aWVyYXJjaHkgd2hpY2ggbmVlZHMKKyAqIHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgp
IG9yIG9wZXJhdG9yPT0oKSBkZWZpbmVzIHR3byBtZXRob2RzLAorICogZGVzY3JpYmVkIGluIGRl
dGFpbCBiZWxvdy4gIFVDbGFzc0lEIHZhbHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKKyAqIG9w
ZXJhdG9yPT0oKS4gTm90aGluZyBlbHNlIHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KKyAqCisg
KiBccGFyCisgKiBJbiBjbGFzcyBoaWVyYXJjaGllcyB0aGF0IGltcGxlbWVudCAicG9vciBtYW4n
cyBSVFRJIiwKKyAqIGVhY2ggY29uY3JldGUgc3ViY2xhc3MgaW1wbGVtZW50cyBnZXREeW5hbWlj
Q2xhc3NJRCgpIGluIHRoZSBzYW1lIHdheToKKyAqCisgKiBcY29kZQorICogICAgICBjbGFzcyBE
ZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBn
ZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0CisgKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6
OmdldFN0YXRpY0NsYXNzSUQoKTsgfQorICogICAgICB9CisgKiBcZW5kY29kZQorICoKKyAqIEVh
Y2ggY29uY3JldGUgY2xhc3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwg
d2hpY2ggYWxsb3dzCisgKiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KKyAq
CisgKiBcY29kZQorICogICAgICBjbGFzcyBEZXJpdmVkIHsKKyAqICAgICAgcHVibGljOgorICog
ICAgICAgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7Cisg
KiAgICAgIHByaXZhdGU6CisgKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7CisgKiAg
ICAgIH0KKyAqCisgKiAgICAgIC8vIEluIERlcml2ZWQuY3BwOgorICogICAgICBVQ2xhc3NJRCBE
ZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkKKyAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQp
JkRlcml2ZWQ6OmZnQ2xhc3NJRDsgfQorICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9
IDA7IC8vIFZhbHVlIGlzIGlycmVsZXZhbnQKKyAqIFxlbmRjb2RlCisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLwordHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwog
LyoqCiAgKiBVTWVtb3J5IGlzIHRoZSBjb21tb24gSUNVIGJhc2UgY2xhc3MuCiAgKiBBbGwgb3Ro
ZXIgSUNVIEMrKyBjbGFzc2VzIGFyZSBkZXJpdmVkIGZyb20gVU1lbW9yeSAoc3RhcnRpbmcgd2l0
aCBJQ1UgMi40KS4KQEAgLTE5NiwxMCArMjA1LDcgQEAgcHVibGljOgogICogYW5kIGFsbCBvdGhl
ciBwdWJsaWMgSUNVIEMrKyBjbGFzc2VzCiAgKiBhcmUgZGVyaXZlZCBmcm9tIFVPYmplY3QgKHN0
YXJ0aW5nIHdpdGggSUNVIDIuMikuCiAgKgotICogVU9iamVjdCBjb250YWlucyBjb21tb24gdmly
dHVhbCBmdW5jdGlvbnMgbGlrZSBmb3IgSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBJdCBk
b2VzIG5vdCBjb250YWluIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9k
cwotICogbGlrZSBnZXREeW5hbWljQ2xhc3NJRCB0byBhbGxvdyBkZXJpdmVkIGNsYXNzZXMgc3Vj
aCBhcyBGb3JtYXQKLSAqIHRvIGRlY2xhcmUgdGhlc2UgYXMgcHVyZSB2aXJ0dWFsLgorICogVU9i
amVjdCBjb250YWlucyBjb21tb24gdmlydHVhbCBmdW5jdGlvbnMsIGluIHBhcnRpY3VsYXIgYSB2
aXJ0dWFsIGRlc3RydWN0b3IuCiAgKgogICogVGhlIGNsb25lKCkgZnVuY3Rpb24gaXMgbm90IGF2
YWlsYWJsZSBpbiBVT2JqZWN0IGJlY2F1c2UgaXQgaXMgbm90CiAgKiBpbXBsZW1lbnRlZCBieSBh
bGwgSUNVIGNsYXNzZXMuCkBAIC0yMjMsMjEgKzIyOSwyMyBAQCBwdWJsaWM6CiAKICAgICAvKioK
ICAgICAgKiBJQ1U0QyAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0
aGUgYWN0dWFsIElDVSBjbGFzcy4KKyAgICAgKiBUaGUgYmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlv
biByZXR1cm5zIGEgZHVtbXkgdmFsdWUuCisgICAgICoKKyAgICAgKiBVc2UgY29tcGlsZXIgUlRU
SSByYXRoZXIgdGhhbiBJQ1UncyAicG9vciBtYW4ncyBSVFRJIi4KKyAgICAgKiBTaW5jZSBJQ1Ug
NC42LCBuZXcgSUNVIEMrKyBjbGFzcyBoaWVyYXJjaGllcyBkbyBub3QgaW1wbGVtZW50ICJwb29y
IG1hbidzIFJUVEkiLgogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4yCiAgICAgICovCi0g
ICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoK
ICAgICAvLyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcHJvdGVjdGVkIHRvIHByZXZlbnQg
aW5zdGFudGlhdGlvbiBhbmQKICAgICAvLyBkaXJlY3QgdXNlIG9mIFVPYmplY3QgaXRzZWxmCiAK
ICAgICAvLyBkZWZhdWx0IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNl
IFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJRCkKICAgICAvLyBpbmxp
bmUgVU9iamVjdCgpIHt9CiAKICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCi0gICAgLy8gY29tbWVu
dGVkIG91dCBiZWNhdXNlIFVPYmplY3QgaXMgYWJzdHJhY3QgKHNlZSBnZXREeW5hbWljQ2xhc3NJ
RCkKICAgICAvLyBpbmxpbmUgVU9iamVjdChjb25zdCBVT2JqZWN0ICZvdGhlcikge30KIAogI2lm
IDAKQEAgLTI3MiwyMSArMjgwLDkgQEAgcHJvdGVjdGVkOgogICAgICAqIGhlcmUgd291bGQgYmUg
dG8gZGVjbGFyZSBhbmQgZW1wdHktaW1wbGVtZW50IGEgcHJvdGVjdGVkIG9yIHB1YmxpYyBvbmUu
CiAgICAgVU9iamVjdCAmVU9iamVjdDo6b3BlcmF0b3I9KGNvbnN0IFVPYmplY3QgJik7CiAgICAg
ICovCi0KLS8vIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBmb3IgUlRUSSB0aGF0IHN1cHBvcnQgc3Vi
dHlwaW5nLiBbYWxhbl0KLS8vIAotLy8gIHB1YmxpYzoKLS8vICAgICAvKioKLS8vICAgICAgKiBA
aW50ZXJuYWwKLS8vICAgICAgKi8KLS8vICAgICBzdGF0aWMgVUNsYXNzSUQgZ2V0U3RhdGljQ2xh
c3NJRCgpOwotLy8gCi0vLyAgICAgLyoqCi0vLyAgICAgICogQGludGVybmFsCi0vLyAgICAgICov
Ci0vLyAgICAgVUJvb2wgaW5zdGFuY2VPZihVQ2xhc3NJRCB0eXBlKSBjb25zdDsKIH07CiAKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCiAgKiBUaGlzIGlzIGEgc2ltcGxlIG1hY3Jv
IHRvIGFkZCBJQ1UgUlRUSSB0byBhbiBJQ1Ugb2JqZWN0IGltcGxlbWVudGF0aW9uLgogICogVGhp
cyBkb2VzIG5vdCBnbyBpbnRvIHRoZSBoZWFkZXIuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBp
biAqLmNwcCBmaWxlcy4KQEAgLTMxNywzNSArMzEzLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBy
ZXR1cm4gKFVDbGFzc0lEKSZjbGFzc0lEOyBcCiAgICAgfQogCi0vKioKLSAqIFRoaXMgaXMgYSBz
aW1wbGUgbWFjcm8gdG8gZXhwcmVzcyB0aGF0IGEgY2xhc3MgYW5kIGl0cyBzdWJjbGFzc2VzIGRv
IG5vdCBvZmZlcgotICogSUNVJ3MgInBvb3IgbWFuJ3MgUlRUSSIuCi0gKiBCZWdpbm5pbmcgd2l0
aCBJQ1UgNC42LCBJQ1UgcmVxdWlyZXMgQysrIGNvbXBpbGVyIFJUVEkuCi0gKiBUaGlzIGRvZXMg
bm90IGdvIGludG8gdGhlIGhlYWRlci4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGluICouY3Bw
IGZpbGVzLgotICogVXNlIHRoaXMgd2l0aCBhIHByaXZhdGUgZ2V0RHluYW1pY0NsYXNzSUQoKSBp
biBhbiBpbW1lZGlhdGUgc3ViY2xhc3Mgb2YgVU9iamVjdC4KLSAqCi0gKiBAcGFyYW0gbXlDbGFz
cyBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBuZWVkcyBSVFRJIGRlZmluZWQuCi0gKiBAaW50
ZXJuYWwKLSAqLwotI2RlZmluZSBVT0JKRUNUX0RFRklORV9OT19SVFRJX0lNUExFTUVOVEFUSU9O
KG15Q2xhc3MpIFwKLSAgICBVQ2xhc3NJRCBteUNsYXNzOjpnZXREeW5hbWljQ2xhc3NJRCgpIGNv
bnN0IHsgcmV0dXJuIE5VTEw7IH0KLQotLy8gLyoqCi0vLyAgKiBUaGlzIG1hY3JvIGFkZHMgSUNV
IFJUVEkgdG8gYW4gSUNVIGNvbmNyZXRlIGNsYXNzIGltcGxlbWVudGF0aW9uLgotLy8gICogVGhp
cyBtYWNybyBzaG91bGQgYmUgaW52b2tlZCBpbiAqLmNwcCBmaWxlcy4gIFRoZSBjb3JyZXNwb25k
aW5nCi0vLyAgKiBoZWFkZXIgc2hvdWxkIGRlY2xhcmUgZ2V0RHluYW1pY0NsYXNzSUQgYW5kIGdl
dFN0YXRpY0NsYXNzSUQuCi0vLyAgKgotLy8gICogQHBhcmFtIG15Q2xhc3MgVGhlIG5hbWUgb2Yg
dGhlIGNsYXNzIHRoYXQgbmVlZHMgUlRUSSBkZWZpbmVkLgotLy8gICogQHBhcmFtIG15UGFyZW50
IFRoZSBuYW1lIG9mIHRoZSBteUNsYXNzJ3MgcGFyZW50LgotLy8gICogQGludGVybmFsCi0vLyAg
Ki8KLS8qI2RlZmluZSBVT0JKRUNUX0RFRklORV9SVFRJX0lNUExFTUVOVEFUSU9OKG15Q2xhc3Ms
IG15UGFyZW50KSBcCi0gICAgVU9CSkVDVF9ERUZJTkVfQUJTVFJBQ1RfUlRUSV9JTVBMRU1FTlRB
VElPTihteUNsYXNzLCBteVBhcmVudCkgXAotICAgIFVDbGFzc0lEIG15Q2xhc3M6OmdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3QgeyBcCi0gICAgICAgIHJldHVybiBteUNsYXNzOjpnZXRTdGF0aWND
bGFzc0lEKCk7IFwKLSAgICB9Ci0qLwotCisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkg
Ki8KIAogVV9OQU1FU1BBQ0VfRU5ECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91
bmljb2RlL3VyZW5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VyZW5hbWUuaApp
bmRleCA0NjhiZGJkMGY0NjkyNGRjMmVlOTMzNzQwOGU4NjcyYTJlODY3YTQ5Li42YjFmNDkwOTg3
NTA2OWI0ZDlmZWVmZGQ3NDgzZjVhMDNmYzUwNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUv
dXJlbmFtZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSog
ICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC05LDcgKzksNyBAQAogKiAgIHRhYiBzaXpl
OiAgIDggKG5vdCB1c2VkKQogKiAgIGluZGVudGF0aW9uOjQKICoKLSogICBDcmVhdGVkIGJ5OiBQ
ZXJsIHNjcmlwdCB3cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5zdGVpbgorKiAgIENyZWF0ZWQgYnk6
IFBlcmwgc2NyaXB0IHRvb2xzL2dlbnJlbi5wbCB3cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5zdGVp
bgogKgogKiAgQ29udGFpbnMgZGF0YSBmb3IgcmVuYW1pbmcgSUNVIGV4cG9ydHMuCiAqICBHZXRz
IGluY2x1ZGVkIGJ5IHVtYWNoaW5lLmgKQEAgLTIxLDkgKzIxLDEzIEBACiAjaWZuZGVmIFVSRU5B
TUVfSAogI2RlZmluZSBVUkVOQU1FX0gKIAotLyogVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGlu
ZSB0byBkaXNhYmxlIHJlbmFtaW5nIG9uIHBsYXRmb3JtcwotICAgdGhhdCBkbyBub3QgdXNlIEF1
dG9jb25mLiAqLwotLyogI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMSAqLworLyogVV9ESVNB
QkxFX1JFTkFNSU5HIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBmb2xsb3dpbmcgd2F5czoKKyAqICAg
LSB3aGVuIHJ1bm5pbmcgY29uZmlndXJlLCBlLmcuCisgKiAgICAgICAgcnVuQ29uZmlndXJlSUNV
IExpbnV4IC0tZGlzYWJsZS1yZW5hbWluZworICogICAtIGJ5IGNoYW5naW5nIHRoZSBkZWZhdWx0
IHNldHRpbmcgb2YgVV9ESVNBQkxFX1JFTkFNSU5HIGluIHVjb25maWcuaAorICovCisKKyNpbmNs
dWRlICJ1bmljb2RlL3Vjb25maWcuaCIKIAogI2lmICFVX0RJU0FCTEVfUkVOQU1JTkcKIApAQCAt
MzEsNiArMzUsNyBAQAogICAgdGhlIHBsYXRmb3JtIGEgY2hhbmNlIHRvIGRlZmluZSBpdCBmaXJz
dC4KICAgIE5vcm1hbGx5IChpZiB1dHlwZXMuaCBvciB1bWFjaGluZS5oIHdhcyBpbmNsdWRlZCBm
aXJzdCkgdGhpcyB3aWxsIG5vdCBiZSBuZWNlc3NhcnkgYXMgaXQgd2lsbCBhbHJlYWR5IGJlIGRl
ZmluZWQuCiAgKi8KKwogI2lmbmRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICNpbmNsdWRl
ICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjZW5kaWYKQEAgLTQ4LDE0ICs1Myw5IEBACiAKIC8qIEMg
ZXhwb3J0cyByZW5hbWluZyBkYXRhICovCiAKLSNkZWZpbmUgREVDUE9XRVJTIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShERUNQT1dFUlMpCi0jZGVmaW5lIERFQ1NUSUNLWVRBQiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoREVDU1RJQ0tZVEFCKQotI2RlZmluZSBMTm5uIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShMTm5uKQogI2RlZmluZSBUX0NTdHJpbmdfaW50NjRUb1N0cmluZyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX2ludDY0VG9TdHJpbmcpCiAjZGVmaW5lIFRfQ1N0
cmluZ19pbnRlZ2VyVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19p
bnRlZ2VyVG9TdHJpbmcpCi0jZGVmaW5lIFRfQ1N0cmluZ19zdHJpY21wIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUX0NTdHJpbmdfc3RyaWNtcCkKICNkZWZpbmUgVF9DU3RyaW5nX3N0cmluZ1Rv
SW50ZWdlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdl
cikKLSNkZWZpbmUgVF9DU3RyaW5nX3N0cm5pY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
X0NTdHJpbmdfc3RybmljbXApCiAjZGVmaW5lIFRfQ1N0cmluZ190b0xvd2VyQ2FzZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3RvTG93ZXJDYXNlKQogI2RlZmluZSBUX0NTdHJp
bmdfdG9VcHBlckNhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ190b1VwcGVy
Q2FzZSkKICNkZWZpbmUgVUNOVl9GUk9NX1VfQ0FMTEJBQ0tfRVNDQVBFIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShVQ05WX0ZST01fVV9DQUxMQkFDS19FU0NBUEUpCkBAIC03NSw2ICs3NSw3IEBA
CiAjZGVmaW5lIF9BU0NJSURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9BU0NJSURhdGEp
CiAjZGVmaW5lIF9Cb2N1MURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9Cb2N1MURhdGEp
CiAjZGVmaW5lIF9DRVNVOERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9DRVNVOERhdGEp
CisjZGVmaW5lIF9Db21wb3VuZFRleHREYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfQ29t
cG91bmRUZXh0RGF0YSkKICNkZWZpbmUgX0haRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
X0haRGF0YSkKICNkZWZpbmUgX0lNQVBEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfSU1B
UERhdGEpCiAjZGVmaW5lIF9JU0NJSURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9JU0NJ
SURhdGEpCkBAIC0xMDIsMjEgKzEwMyw4IEBACiAjZGVmaW5lIF9VVEYzMkxFRGF0YSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoX1VURjMyTEVEYXRhKQogI2RlZmluZSBfVVRGN0RhdGEgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKF9VVEY3RGF0YSkKICNkZWZpbmUgX1VURjhEYXRhIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShfVVRGOERhdGEpCi0jZGVmaW5lIGJtc19jbG9zZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoYm1zX2Nsb3NlKQotI2RlZmluZSBibXNfZW1wdHkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKGJtc19lbXB0eSkKLSNkZWZpbmUgYm1zX2dldERhdGEgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKGJtc19nZXREYXRhKQotI2RlZmluZSBibXNfb3BlbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoYm1zX29wZW4pCi0jZGVmaW5lIGJtc19zZWFyY2ggVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKGJtc19zZWFyY2gpCi0jZGVmaW5lIGJtc19zZXRUYXJnZXRTdHJpbmcgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKGJtc19zZXRUYXJnZXRTdHJpbmcpCi0jZGVmaW5lIGJ1aWxkV1ND
b25mdXNhYmxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYnVpbGRXU0NvbmZ1c2FibGVE
YXRhKQogI2RlZmluZSBjbWVtb3J5X2NsZWFudXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGNt
ZW1vcnlfY2xlYW51cCkKICNkZWZpbmUgY21lbW9yeV9pblVzZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoY21lbW9yeV9pblVzZSkKLSNkZWZpbmUgZDJ1dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGQydXRhYmxlKQotI2RlZmluZSBkZWxldGVDRUxpc3QgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKGRlbGV0ZUNFTGlzdCkKLSNkZWZpbmUgZGVsZXRlQ2hhcnMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKGRlbGV0ZUNoYXJzKQotI2RlZmluZSBkZWxldGVDb2xsRGF0YUNhY2hlRW50cnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNvbGxEYXRhQ2FjaGVFbnRyeSkKLSNkZWZp
bmUgZGVsZXRlU3RyaW5nTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlU3RyaW5n
TGlzdCkKLSNkZWZpbmUgZGVsZXRlVW5pY29kZVN0cmluZ0tleSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoZGVsZXRlVW5pY29kZVN0cmluZ0tleSkKICNkZWZpbmUgaXpydWxlX2Nsb25lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVfY2xvbmUpCiAjZGVmaW5lIGl6cnVsZV9jbG9zZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxlX2Nsb3NlKQogI2RlZmluZSBpenJ1bGVfZXF1
YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVfZXF1YWxzKQpAQCAtMjEyLDggKzIw
MCw2IEBACiAjZGVmaW5lIHJlc19sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShyZXNfbG9h
ZCkKICNkZWZpbmUgcmVzX3JlYWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHJlc19yZWFkKQog
I2RlZmluZSByZXNfdW5sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShyZXNfdW5sb2FkKQot
I2RlZmluZSB0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh0bXV0Zm10SGFzaFRhYmxlVmFsdWVDb21wYXJhdG9yKQotI2RlZmluZSB0cmllZGlj
dF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh0cmllZGljdF9zd2FwKQogI2RlZmluZSB1
X1VDaGFyc1RvQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfVUNoYXJzVG9DaGFycykK
ICNkZWZpbmUgdV9hdXN0cmNweSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9hdXN0cmNweSkK
ICNkZWZpbmUgdV9hdXN0cm5jcHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfYXVzdHJuY3B5
KQpAQCAtMjM5LDYgKzIyNSw3IEBACiAjZGVmaW5lIHVfZmVvZiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9mZW9mKQogI2RlZmluZSB1X2ZmbHVzaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9mZmx1c2gpCiAjZGVmaW5lIHVfZmdldENvbnZlcnRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9mZ2V0Q29udmVydGVyKQorI2RlZmluZSB1X2ZnZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfZmdldE51bWJlckZvcm1hdCkKICNkZWZpbmUgdV9mZ2V0YyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0YykKICNkZWZpbmUgdV9mZ2V0Y29kZXBhZ2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGNvZGVwYWdlKQogI2RlZmluZSB1X2ZnZXRjeCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0Y3gpCkBAIC0yNjcsNiArMjU0LDcgQEAKICNk
ZWZpbmUgdV9mc2V0dHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnNl
dHRyYW5zbGl0ZXJhdG9yKQogI2RlZmluZSB1X2ZzdHJvcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2ZzdHJvcGVuKQogI2RlZmluZSB1X2Z1bmdldGMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfZnVuZ2V0YykKKyNkZWZpbmUgdV9nZXRCaWRpUGFpcmVkQnJhY2tldCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9nZXRCaWRpUGFpcmVkQnJhY2tldCkKICNkZWZpbmUgdV9nZXRDb21i
aW5pbmdDbGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRDb21iaW5pbmdDbGFzcykK
ICNkZWZpbmUgdV9nZXREYXRhRGlyZWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dl
dERhdGFEaXJlY3RvcnkpCiAjZGVmaW5lIHVfZ2V0RGF0YVZlcnNpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfZ2V0RGF0YVZlcnNpb24pCkBAIC0yNzYsNiArMjY0LDcgQEAKICNkZWZpbmUg
dV9nZXRJbnRQcm9wZXJ0eU1heFZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldElu
dFByb3BlcnR5TWF4VmFsdWUpCiAjZGVmaW5lIHVfZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKQogI2RlZmluZSB1
X2dldEludFByb3BlcnR5VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJv
cGVydHlWYWx1ZSkKKyNkZWZpbmUgdV9nZXRNYWluUHJvcGVydGllcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXRNYWluUHJvcGVydGllcykKICNkZWZpbmUgdV9nZXROdW1lcmljVmFsdWUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0TnVtZXJpY1ZhbHVlKQogI2RlZmluZSB1X2dl
dFByb3BlcnR5RW51bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRQcm9wZXJ0eUVudW0p
CiAjZGVmaW5lIHVfZ2V0UHJvcGVydHlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dl
dFByb3BlcnR5TmFtZSkKQEAgLTI4NCw5ICsyNzMsOSBAQAogI2RlZmluZSB1X2dldFVuaWNvZGVQ
cm9wZXJ0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFVuaWNvZGVQcm9wZXJ0aWVz
KQogI2RlZmluZSB1X2dldFVuaWNvZGVWZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2dldFVuaWNvZGVWZXJzaW9uKQogI2RlZmluZSB1X2dldFZlcnNpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfZ2V0VmVyc2lvbikKKyNkZWZpbmUgdV9nZXRfc3Rkb3V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1X2dldF9zdGRvdXQpCiAjZGVmaW5lIHVfaGFzQmluYXJ5UHJvcGVydHkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaGFzQmluYXJ5UHJvcGVydHkpCiAjZGVmaW5lIHVf
aW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pbml0KQotI2RlZmluZSB1X2lzRGF0YU9s
ZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2lzRGF0YU9sZGVyKQogI2RlZmluZSB1X2lz
SURJZ25vcmFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXNJRElnbm9yYWJsZSkKICNk
ZWZpbmUgdV9pc0lEUGFydCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc0lEUGFydCkKICNk
ZWZpbmUgdV9pc0lEU3RhcnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXNJRFN0YXJ0KQpA
QCAtMzE4LDcgKzMwNyw2IEBACiAjZGVmaW5lIHVfaXN0aXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9pc3RpdGxlKQogI2RlZmluZSB1X2lzdXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVfaXN1cHBlcikKICNkZWZpbmUgdV9pc3hkaWdpdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodV9pc3hkaWdpdCkKLSNkZWZpbmUgdV9sZW5ndGhPZklkZW50aWNhbExldmVsUnVuIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xlbmd0aE9mSWRlbnRpY2FsTGV2ZWxSdW4pCiAjZGVmaW5l
IHVfbG9jYnVuZF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2Nsb3Nl
KQogI2RlZmluZSB1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0KQogI2RlZmluZSB1X2xvY2J1bmRfaW5pdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2NidW5kX2luaXQpCkBAIC0zMzQsNyArMzIyLDkg
QEAKICNkZWZpbmUgdV9tZW1zZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfbWVtc2V0KQog
I2RlZmluZSB1X3BhcnNlTWVzc2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wYXJzZU1l
c3NhZ2UpCiAjZGVmaW5lIHVfcGFyc2VNZXNzYWdlV2l0aEVycm9yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1X3BhcnNlTWVzc2FnZVdpdGhFcnJvcikKKyNkZWZpbmUgdV9wcmludGYgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmKQogI2RlZmluZSB1X3ByaW50Zl9wYXJzZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wcmludGZfcGFyc2UpCisjZGVmaW5lIHVfcHJpbnRmX3Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmX3UpCiAjZGVmaW5lIHVfcmVsZWFzZURl
ZmF1bHRDb252ZXJ0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcmVsZWFzZURlZmF1bHRD
b252ZXJ0ZXIpCiAjZGVmaW5lIHVfc2NhbmZfcGFyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVfc2NhbmZfcGFyc2UpCiAjZGVmaW5lIHVfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X3NldEF0b21pY0luY0RlY0Z1bmN0aW9ucykKQEAgLTQ0Niw3
ICs0MzYsMTAgQEAKICNkZWZpbmUgdWJpZGlfZ2V0TWF4VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHViaWRpX2dldE1heFZhbHVlKQogI2RlZmluZSB1YmlkaV9nZXRNZW1vcnkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldE1lbW9yeSkKICNkZWZpbmUgdWJpZGlfZ2V0TWly
cm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRNaXJyb3IpCisjZGVmaW5lIHVi
aWRpX2dldFBhaXJlZEJyYWNrZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBh
aXJlZEJyYWNrZXQpCisjZGVmaW5lIHViaWRpX2dldFBhaXJlZEJyYWNrZXRUeXBlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYWlyZWRCcmFja2V0VHlwZSkKICNkZWZpbmUgdWJp
ZGlfZ2V0UGFyYUxldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhTGV2
ZWwpCisjZGVmaW5lIHViaWRpX2dldFBhcmFMZXZlbEF0SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHViaWRpX2dldFBhcmFMZXZlbEF0SW5kZXgpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFn
cmFwaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfZ2V0UGFyYWdyYXBoKQogI2RlZmlu
ZSB1YmlkaV9nZXRQYXJhZ3JhcGhCeUluZGV4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Ymlk
aV9nZXRQYXJhZ3JhcGhCeUluZGV4KQogI2RlZmluZSB1YmlkaV9nZXRQcm9jZXNzZWRMZW5ndGgg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFByb2Nlc3NlZExlbmd0aCkKQEAgLTQ3
MSw2ICs0NjQsNyBAQAogI2RlZmluZSB1YmlkaV9yZW9yZGVyTG9naWNhbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWJpZGlfcmVvcmRlckxvZ2ljYWwpCiAjZGVmaW5lIHViaWRpX3Jlb3JkZXJW
aXN1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3Jlb3JkZXJWaXN1YWwpCiAjZGVm
aW5lIHViaWRpX3NldENsYXNzQ2FsbGJhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRp
X3NldENsYXNzQ2FsbGJhY2spCisjZGVmaW5lIHViaWRpX3NldENvbnRleHQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHViaWRpX3NldENvbnRleHQpCiAjZGVmaW5lIHViaWRpX3NldEludmVyc2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldEludmVyc2UpCiAjZGVmaW5lIHViaWRp
X3NldExpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldExpbmUpCiAjZGVmaW5l
IHViaWRpX3NldFBhcmEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldFBhcmEpCkBA
IC00OTUsNiArNDg5LDcgQEAKICNkZWZpbmUgdWJya19vcGVuUnVsZXMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVicmtfb3BlblJ1bGVzKQogI2RlZmluZSB1YnJrX3ByZWNlZGluZyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWJya19wcmVjZWRpbmcpCiAjZGVmaW5lIHVicmtfcHJldmlvdXMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfcHJldmlvdXMpCisjZGVmaW5lIHVicmtfcmVm
cmVzaFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YnJrX3JlZnJlc2hVVGV4dCkKICNk
ZWZpbmUgdWJya19zYWZlQ2xvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfc2FmZUNs
b25lKQogI2RlZmluZSB1YnJrX3NldFRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtf
c2V0VGV4dCkKICNkZWZpbmUgdWJya19zZXRVVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWJya19zZXRVVGV4dCkKQEAgLTUxMyw2ICs1MDgsNyBAQAogI2RlZmluZSB1Y2FsX2dldERTVFNh
dmluZ3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RFNUU2F2aW5ncykKICNkZWZp
bmUgdWNhbF9nZXREYXlPZldlZWtUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dl
dERheU9mV2Vla1R5cGUpCiAjZGVmaW5lIHVjYWxfZ2V0RGVmYXVsdFRpbWVab25lIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERlZmF1bHRUaW1lWm9uZSkKKyNkZWZpbmUgdWNhbF9n
ZXRGaWVsZERpZmZlcmVuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0RmllbGRE
aWZmZXJlbmNlKQogI2RlZmluZSB1Y2FsX2dldEdyZWdvcmlhbkNoYW5nZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNhbF9nZXRHcmVnb3JpYW5DaGFuZ2UpCiAjZGVmaW5lIHVjYWxfZ2V0S2V5
d29yZFZhbHVlc0ZvckxvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRLZXl3
b3JkVmFsdWVzRm9yTG9jYWxlKQogI2RlZmluZSB1Y2FsX2dldExpbWl0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FsX2dldExpbWl0KQpAQCAtNTIxLDEzICs1MTcsMTggQEAKICNkZWZpbmUg
dWNhbF9nZXROb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0Tm93KQogI2RlZmlu
ZSB1Y2FsX2dldFRaRGF0YVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0
VFpEYXRhVmVyc2lvbikKICNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZURpc3BsYXlOYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lRGlzcGxheU5hbWUpCisjZGVmaW5l
IHVjYWxfZ2V0VGltZVpvbmVJRCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1l
Wm9uZUlEKQorI2RlZmluZSB1Y2FsX2dldFRpbWVab25lSURGb3JXaW5kb3dzSUQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpvbmVJREZvcldpbmRvd3NJRCkKKyNkZWZpbmUg
dWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
Y2FsX2dldFRpbWVab25lVHJhbnNpdGlvbkRhdGUpCiAjZGVmaW5lIHVjYWxfZ2V0VHlwZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUeXBlKQogI2RlZmluZSB1Y2FsX2dldFdlZWtl
bmRUcmFuc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFdlZWtlbmRUcmFu
c2l0aW9uKQorI2RlZmluZSB1Y2FsX2dldFdpbmRvd3NUaW1lWm9uZUlEIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y2FsX2dldFdpbmRvd3NUaW1lWm9uZUlEKQogI2RlZmluZSB1Y2FsX2luRGF5
bGlnaHRUaW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2luRGF5bGlnaHRUaW1lKQog
I2RlZmluZSB1Y2FsX2lzU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2lzU2V0KQog
I2RlZmluZSB1Y2FsX2lzV2Vla2VuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9pc1dl
ZWtlbmQpCiAjZGVmaW5lIHVjYWxfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9v
cGVuKQogI2RlZmluZSB1Y2FsX29wZW5Db3VudHJ5VGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y2FsX29wZW5Db3VudHJ5VGltZVpvbmVzKQorI2RlZmluZSB1Y2FsX29wZW5UaW1l
Wm9uZUlERW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfb3BlblRpbWVa
b25lSURFbnVtZXJhdGlvbikKICNkZWZpbmUgdWNhbF9vcGVuVGltZVpvbmVzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y2FsX29wZW5UaW1lWm9uZXMpCiAjZGVmaW5lIHVjYWxfcm9sbCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9yb2xsKQogI2RlZmluZSB1Y2FsX3NldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNhbF9zZXQpCkBAIC01NjAsNiArNTYxLDggQEAKICNkZWZpbmUg
dWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2Vt
YXBfZ2V0QnJlYWtJdGVyYXRvcikKICNkZWZpbmUgdWNhc2VtYXBfZ2V0TG9jYWxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRMb2NhbGUpCiAjZGVmaW5lIHVjYXNlbWFwX2dl
dE9wdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX2dldE9wdGlvbnMpCisj
ZGVmaW5lIHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0bGUpCisjZGVmaW5lIHVjYXNlbWFwX21hcFVU
RjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX21hcFVURjgpCiAjZGVmaW5lIHVj
YXNlbWFwX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX29wZW4pCiAjZGVm
aW5lIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YXNlbWFwX3NldEJyZWFrSXRlcmF0b3IpCiAjZGVmaW5lIHVjYXNlbWFwX3NldExvY2FsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfc2V0TG9jYWxlKQpAQCAtNTY5LDExICs1NzIs
NiBAQAogI2RlZmluZSB1Y2FzZW1hcF91dGY4VG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWNhc2VtYXBfdXRmOFRvTG93ZXIpCiAjZGVmaW5lIHVjYXNlbWFwX3V0ZjhUb1RpdGxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF91dGY4VG9UaXRsZSkKICNkZWZpbmUgdWNh
c2VtYXBfdXRmOFRvVXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3V0ZjhU
b1VwcGVyKQotI2RlZmluZSB1Y2RfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9j
bG9zZSkKLSNkZWZpbmUgdWNkX2ZsdXNoQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
ZF9mbHVzaENhY2hlKQotI2RlZmluZSB1Y2RfZnJlZUNhY2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2RfZnJlZUNhY2hlKQotI2RlZmluZSB1Y2RfZ2V0Q29sbGF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjZF9nZXRDb2xsYXRvcikKLSNkZWZpbmUgdWNkX29wZW4gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjZF9vcGVuKQogI2RlZmluZSB1Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0
cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNoYXJfYWRkUHJvcGVydHlTdGFydHMpCiAjZGVm
aW5lIHVjaGFyX3N3YXBOYW1lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNoYXJfc3dhcE5h
bWVzKQogI2RlZmluZSB1Y2xuX2NsZWFudXBPbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
bG5fY2xlYW51cE9uZSkKQEAgLTY1Niw2ICs2NTQsNyBAQAogI2RlZmluZSB1Y252X2lvX3N0cmlw
QVNDSUlGb3JDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2lvX3N0cmlwQVND
SUlGb3JDb21wYXJlKQogI2RlZmluZSB1Y252X2lvX3N0cmlwRUJDRElDRm9yQ29tcGFyZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pb19zdHJpcEVCQ0RJQ0ZvckNvbXBhcmUpCiAjZGVm
aW5lIHVjbnZfaXNBbWJpZ3VvdXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfaXNBbWJp
Z3VvdXMpCisjZGVmaW5lIHVjbnZfaXNGaXhlZFdpZHRoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y252X2lzRml4ZWRXaWR0aCkKICNkZWZpbmUgdWNudl9sb2FkIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y252X2xvYWQpCiAjZGVmaW5lIHVjbnZfbG9hZFNoYXJlZERhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjbnZfbG9hZFNoYXJlZERhdGEpCiAjZGVmaW5lIHVjbnZfb3BlbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9vcGVuKQpAQCAtNjk3LDcgKzY5Niw2IEBACiAj
ZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2Fs
Y1NvcnRLZXkpCiAjZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXlTaW1wbGVUZXJ0aWFyeSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jYWxjU29ydEtleVNpbXBsZVRlcnRpYXJ5KQogI2RlZmlu
ZSB1Y29sX2Nsb25lQmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb25lQmlu
YXJ5KQotI2RlZmluZSB1Y29sX2Nsb25lUnVsZURhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfY2xvbmVSdWxlRGF0YSkKICNkZWZpbmUgdWNvbF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9jbG9zZSkKICNkZWZpbmUgdWNvbF9jbG9zZUVsZW1lbnRzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb3NlRWxlbWVudHMpCiAjZGVmaW5lIHVjb2xfY291bnRB
dmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY291bnRBdmFpbGFibGUpCkBA
IC03MTQsOSArNzEyLDExIEBACiAjZGVmaW5lIHVjb2xfZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2dldEF2YWlsYWJsZSkKICNkZWZpbmUgdWNvbF9nZXRCb3VuZCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRCb3VuZCkKICNkZWZpbmUgdWNvbF9nZXRD
RVN0cmVuZ3RoRGlmZmVyZW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDRVN0
cmVuZ3RoRGlmZmVyZW5jZSkKKyNkZWZpbmUgdWNvbF9nZXRDb2xsYXRpb25LZXkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Q29sbGF0aW9uS2V5KQogI2RlZmluZSB1Y29sX2dldENv
bnRyYWN0aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnMp
CiAjZGVmaW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25zQW5kRXhwYW5zaW9ucyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnNBbmRFeHBhbnNpb25zKQogI2RlZmluZSB1
Y29sX2dldERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldERpc3Bs
YXlOYW1lKQorI2RlZmluZSB1Y29sX2dldEVxdWl2YWxlbnRSZW9yZGVyQ29kZXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RXF1aXZhbGVudFJlb3JkZXJDb2RlcykKICNkZWZpbmUg
dWNvbF9nZXRGaXJzdENFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEZpcnN0Q0Up
CiAjZGVmaW5lIHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQpCiAjZGVmaW5lIHVjb2xfZ2V0S2V5
d29yZFZhbHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRLZXl3b3JkVmFsdWVz
KQpAQCAtNzM1LDggKzczNSw2IEBACiAjZGVmaW5lIHVjb2xfZ2V0UnVsZXNFeCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNvbF9nZXRSdWxlc0V4KQogI2RlZmluZSB1Y29sX2dldFNob3J0RGVm
aW5pdGlvblN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTaG9ydERlZmlu
aXRpb25TdHJpbmcpCiAjZGVmaW5lIHVjb2xfZ2V0U29ydEtleSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9nZXRTb3J0S2V5KQotI2RlZmluZSB1Y29sX2dldFNvcnRLZXlTaXplIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNvcnRLZXlTaXplKQotI2RlZmluZSB1Y29sX2dl
dFNvcnRLZXlXaXRoQWxsb2NhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRT
b3J0S2V5V2l0aEFsbG9jYXRpb24pCiAjZGVmaW5lIHVjb2xfZ2V0U3RyZW5ndGggVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0U3RyZW5ndGgpCiAjZGVmaW5lIHVjb2xfZ2V0VGFpbG9y
ZWRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0VGFpbG9yZWRTZXQpCiAjZGVm
aW5lIHVjb2xfZ2V0VUNBVmVyc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRV
Q0FWZXJzaW9uKQpAQCAtNzg4LDYgKzc4Niw3IEBACiAjZGVmaW5lIHVjb2xfc2V0VmFyaWFibGVU
b3AgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc2V0VmFyaWFibGVUb3ApCiAjZGVmaW5l
IHVjb2xfc3RyY29sbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9zdHJjb2xsKQogI2Rl
ZmluZSB1Y29sX3N0cmNvbGxJdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNv
bGxJdGVyKQorI2RlZmluZSB1Y29sX3N0cmNvbGxVVEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y29sX3N0cmNvbGxVVEY4KQogI2RlZmluZSB1Y29sX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjb2xfc3dhcCkKICNkZWZpbmUgdWNvbF9zd2FwQmluYXJ5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y29sX3N3YXBCaW5hcnkpCiAjZGVmaW5lIHVjb2xfc3dhcEludmVyc2VVQ0Eg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcEludmVyc2VVQ0EpCkBAIC04MDUsMTIg
KzgwNCwxNCBAQAogI2RlZmluZSB1Y3NkZXRfZW5hYmxlSW5wdXRGaWx0ZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjc2RldF9lbmFibGVJbnB1dEZpbHRlcikKICNkZWZpbmUgdWNzZGV0X2dl
dEFsbERldGVjdGFibGVDaGFyc2V0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2dl
dEFsbERldGVjdGFibGVDaGFyc2V0cykKICNkZWZpbmUgdWNzZGV0X2dldENvbmZpZGVuY2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRDb25maWRlbmNlKQorI2RlZmluZSB1Y3Nk
ZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRf
Z2V0RGV0ZWN0YWJsZUNoYXJzZXRzKQogI2RlZmluZSB1Y3NkZXRfZ2V0TGFuZ3VhZ2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRMYW5ndWFnZSkKICNkZWZpbmUgdWNzZGV0X2dl
dE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXROYW1lKQogI2RlZmluZSB1
Y3NkZXRfZ2V0VUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0VUNoYXJz
KQogI2RlZmluZSB1Y3NkZXRfaXNJbnB1dEZpbHRlckVuYWJsZWQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjc2RldF9pc0lucHV0RmlsdGVyRW5hYmxlZCkKICNkZWZpbmUgdWNzZGV0X29wZW4g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9vcGVuKQogI2RlZmluZSB1Y3NkZXRfc2V0
RGVjbGFyZWRFbmNvZGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldERlY2xh
cmVkRW5jb2RpbmcpCisjZGVmaW5lIHVjc2RldF9zZXREZXRlY3RhYmxlQ2hhcnNldCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldERldGVjdGFibGVDaGFyc2V0KQogI2RlZmluZSB1
Y3NkZXRfc2V0VGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldFRleHQpCiAj
ZGVmaW5lIHVjdXJyX2NvdW50Q3VycmVuY2llcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1
cnJfY291bnRDdXJyZW5jaWVzKQogI2RlZmluZSB1Y3Vycl9mb3JMb2NhbGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjdXJyX2ZvckxvY2FsZSkKQEAgLTgxOCw4ICs4MTksMTAgQEAKICNkZWZp
bmUgdWN1cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1Y3Vycl9nZXREZWZhdWx0RnJhY3Rpb25EaWdpdHMpCiAjZGVmaW5lIHVjdXJyX2dldEtleXdv
cmRWYWx1ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldEtleXdv
cmRWYWx1ZXNGb3JMb2NhbGUpCiAjZGVmaW5lIHVjdXJyX2dldE5hbWUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjdXJyX2dldE5hbWUpCisjZGVmaW5lIHVjdXJyX2dldE51bWVyaWNDb2RlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXROdW1lcmljQ29kZSkKICNkZWZpbmUgdWN1
cnJfZ2V0UGx1cmFsTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfZ2V0UGx1cmFs
TmFtZSkKICNkZWZpbmUgdWN1cnJfZ2V0Um91bmRpbmdJbmNyZW1lbnQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVjdXJyX2dldFJvdW5kaW5nSW5jcmVtZW50KQorI2RlZmluZSB1Y3Vycl9pc0F2
YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfaXNBdmFpbGFibGUpCiAjZGVm
aW5lIHVjdXJyX29wZW5JU09DdXJyZW5jaWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vy
cl9vcGVuSVNPQ3VycmVuY2llcykKICNkZWZpbmUgdWN1cnJfcmVnaXN0ZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjdXJyX3JlZ2lzdGVyKQogI2RlZmluZSB1Y3Vycl91bnJlZ2lzdGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl91bnJlZ2lzdGVyKQpAQCAtODMzLDYgKzgzNiw3
IEBACiAjZGVmaW5lIHVkYXRfZ2V0MkRpZ2l0WWVhclN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGF0X2dldDJEaWdpdFllYXJTdGFydCkKICNkZWZpbmUgdWRhdF9nZXRBdmFpbGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1ZGF0
X2dldENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldENhbGVuZGFyKQor
I2RlZmluZSB1ZGF0X2dldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0
Q29udGV4dCkKICNkZWZpbmUgdWRhdF9nZXRMb2NhbGVCeVR5cGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVkYXRfZ2V0TG9jYWxlQnlUeXBlKQogI2RlZmluZSB1ZGF0X2dldE51bWJlckZvcm1h
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5l
IHVkYXRfZ2V0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9nZXRTeW1ib2xz
KQpAQCAtODQwLDggKzg0NCwxMCBAQAogI2RlZmluZSB1ZGF0X29wZW4gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVkYXRfb3BlbikKICNkZWZpbmUgdWRhdF9wYXJzZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWRhdF9wYXJzZSkKICNkZWZpbmUgdWRhdF9wYXJzZUNhbGVuZGFyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3BhcnNlQ2FsZW5kYXIpCisjZGVmaW5lIHVkYXRfcmVnaXN0
ZXJPcGVuZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfcmVnaXN0ZXJPcGVuZXIpCiAj
ZGVmaW5lIHVkYXRfc2V0MkRpZ2l0WWVhclN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZGF0X3NldDJEaWdpdFllYXJTdGFydCkKICNkZWZpbmUgdWRhdF9zZXRDYWxlbmRhciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRDYWxlbmRhcikKKyNkZWZpbmUgdWRhdF9zZXRDb250
ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldENvbnRleHQpCiAjZGVmaW5lIHVk
YXRfc2V0TGVuaWVudCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRMZW5pZW50KQog
I2RlZmluZSB1ZGF0X3NldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRh
dF9zZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRfc2V0U3ltYm9scyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdF9zZXRTeW1ib2xzKQpAQCAtODQ5LDYgKzg1NSw3IEBACiAjZGVmaW5l
IHVkYXRfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVybikK
ICNkZWZpbmUgdWRhdF90b1BhdHRlcm5SZWxhdGl2ZURhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRlKQogI2RlZmluZSB1ZGF0X3RvUGF0dGVyblJl
bGF0aXZlVGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF90b1BhdHRlcm5SZWxhdGl2
ZVRpbWUpCisjZGVmaW5lIHVkYXRfdW5yZWdpc3Rlck9wZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdF91bnJlZ2lzdGVyT3BlbmVyKQogI2RlZmluZSB1ZGF0YV9jaGVja0NvbW1vbkRh
dGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2NoZWNrQ29tbW9uRGF0YSkKICNkZWZp
bmUgdWRhdGFfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2Nsb3NlKQogI2Rl
ZmluZSB1ZGF0YV9jbG9zZVN3YXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2Ns
b3NlU3dhcHBlcikKQEAgLTg5MiwxMiArODk5LDE3IEBACiAjZGVmaW5lIHVkYXRwZ19zZXRBcHBl
bmRJdGVtTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdHBnX3NldEFwcGVuZEl0ZW1O
YW1lKQogI2RlZmluZSB1ZGF0cGdfc2V0RGF0ZVRpbWVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVkYXRwZ19zZXREYXRlVGltZUZvcm1hdCkKICNkZWZpbmUgdWRhdHBnX3NldERlY2lt
YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19zZXREZWNpbWFsKQorI2RlZmluZSB1
ZGljdF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGljdF9zd2FwKQorI2RlZmluZSB1
ZHRpdHZmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkdGl0dmZtdF9jbG9zZSkK
KyNkZWZpbmUgdWR0aXR2Zm10X2Zvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2
Zm10X2Zvcm1hdCkKKyNkZWZpbmUgdWR0aXR2Zm10X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkdGl0dmZtdF9vcGVuKQogI2RlZmluZSB1ZW51bV9jbG9zZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWVudW1fY2xvc2UpCiAjZGVmaW5lIHVlbnVtX2NvdW50IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZW51bV9jb3VudCkKICNkZWZpbmUgdWVudW1fbmV4dCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWVudW1fbmV4dCkKICNkZWZpbmUgdWVudW1fbmV4dERlZmF1bHQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX25leHREZWZhdWx0KQogI2RlZmluZSB1ZW51bV9vcGVu
Q2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3Bl
bkNoYXJTdHJpbmdzRW51bWVyYXRpb24pCiAjZGVmaW5lIHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51
bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51
bWVyYXRpb24pCisjZGVmaW5lIHVlbnVtX29wZW5VQ2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3BlblVDaGFyU3RyaW5nc0VudW1lcmF0aW9uKQog
I2RlZmluZSB1ZW51bV9yZXNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fcmVzZXQp
CiAjZGVmaW5lIHVlbnVtX3VuZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91bmV4
dCkKICNkZWZpbmUgdWVudW1fdW5leHREZWZhdWx0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZW51bV91bmV4dERlZmF1bHQpCkBAIC05MDgsMzQgKzkyMCw0OSBAQAogI2RlZmluZSB1ZmlsZV9n
ZXRjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZpbGVfZ2V0Y2gpCiAjZGVmaW5lIHVmaWxl
X2dldGNoMzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmaWxlX2dldGNoMzIpCiAjZGVmaW5l
IHVmbXRfNjR0b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfNjR0b3UpCisjZGVmaW5l
IHVmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfY2xvc2UpCiAjZGVmaW5l
IHVmbXRfZGVmYXVsdENQVG9Vbmljb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2Rl
ZmF1bHRDUFRvVW5pY29kZSkKICNkZWZpbmUgdWZtdF9kaWdpdHZhbHVlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Zm10X2RpZ2l0dmFsdWUpCisjZGVmaW5lIHVmbXRfZ2V0QXJyYXlJdGVtQnlJ
bmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4KQor
I2RlZmluZSB1Zm10X2dldEFycmF5TGVuZ3RoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10
X2dldEFycmF5TGVuZ3RoKQorI2RlZmluZSB1Zm10X2dldERhdGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVmbXRfZ2V0RGF0ZSkKKyNkZWZpbmUgdWZtdF9nZXREZWNOdW1DaGFycyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXREZWNOdW1DaGFycykKKyNkZWZpbmUgdWZtdF9nZXRE
b3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RG91YmxlKQorI2RlZmluZSB1
Zm10X2dldEludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldEludDY0KQorI2Rl
ZmluZSB1Zm10X2dldExvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0TG9uZykK
KyNkZWZpbmUgdWZtdF9nZXRPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0
T2JqZWN0KQorI2RlZmluZSB1Zm10X2dldFR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVm
bXRfZ2V0VHlwZSkKKyNkZWZpbmUgdWZtdF9nZXRVQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVmbXRfZ2V0VUNoYXJzKQorI2RlZmluZSB1Zm10X2lzTnVtZXJpYyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWZtdF9pc051bWVyaWMpCiAjZGVmaW5lIHVmbXRfaXNkaWdpdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWZtdF9pc2RpZ2l0KQorI2RlZmluZSB1Zm10X29wZW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfb3BlbikKICNkZWZpbmUgdWZtdF9wdG91IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Zm10X3B0b3UpCiAjZGVmaW5lIHVmbXRfdXRvNjQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVmbXRfdXRvNjQpCiAjZGVmaW5lIHVmbXRfdXRvcCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWZtdF91dG9wKQorI2RlZmluZSB1Z2VuZGVyX2dldEluc3RhbmNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Z2VuZGVyX2dldEluc3RhbmNlKQorI2RlZmluZSB1Z2Vu
ZGVyX2dldExpc3RHZW5kZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVnZW5kZXJfZ2V0TGlz
dEdlbmRlcikKICNkZWZpbmUgdWhhc2hfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2Nsb3NlKQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5n
KQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2NvbXBhcmVDaGFycykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUlDaGFycyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUlDaGFycykKICNkZWZpbmUgdWhhc2hfY29tcGFy
ZUxvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVMb25nKQorI2RlZmlu
ZSB1aGFzaF9jb21wYXJlU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9j
b21wYXJlU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9jb21wYXJlVUNoYXJzIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlVUNoYXJzKQogI2RlZmluZSB1aGFzaF9jb21wYXJl
VW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZVVuaWNv
ZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2NvdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
aGFzaF9jb3VudCkKICNkZWZpbmUgdWhhc2hfZGVsZXRlSGFzaHRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9kZWxldGVIYXNodGFibGUpCi0jZGVmaW5lIHVoYXNoX2RlbGV0ZVVP
YmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVVPYmplY3QpCi0jZGVm
aW5lIHVoYXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVo
YXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcpCisjZGVmaW5lIHVoYXNoX2RlbGV0ZVNjcmlwdFNldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZGVsZXRlU2NyaXB0U2V0KQogI2RlZmluZSB1
aGFzaF9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2VxdWFscykKKyNkZWZp
bmUgdWhhc2hfZXF1YWxzU2NyaXB0U2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9l
cXVhbHNTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNoX2ZpbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVoYXNoX2ZpbmQpCi0jZGVmaW5lIHVoYXNoX2ZyZWVCbG9jayBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWhhc2hfZnJlZUJsb2NrKQogI2RlZmluZSB1aGFzaF9nZXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVoYXNoX2dldCkKICNkZWZpbmUgdWhhc2hfZ2V0aSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWhhc2hfZ2V0aSkKICNkZWZpbmUgdWhhc2hfaGFzaENhc2VsZXNzVW5pY29k
ZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaENhc2VsZXNzVW5pY29k
ZVN0cmluZykKICNkZWZpbmUgdWhhc2hfaGFzaENoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1aGFzaF9oYXNoQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2hhc2hJQ2hhcnMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hJQ2hhcnMpCiAjZGVmaW5lIHVoYXNoX2hhc2hMb25nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoTG9uZykKKyNkZWZpbmUgdWhhc2hfaGFz
aFNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFNjcmlwdFNldCkK
ICNkZWZpbmUgdWhhc2hfaGFzaFVDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hf
aGFzaFVDaGFycykKLSNkZWZpbmUgdWhhc2hfaGFzaFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2hhc2hVQ2hhcnNOKQogI2RlZmluZSB1aGFzaF9oYXNoVW5pY29kZVN0cmlu
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVuaWNvZGVTdHJpbmcpCiAjZGVm
aW5lIHVoYXNoX2lnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2lnZXQpCiAjZGVm
aW5lIHVoYXNoX2lnZXRpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9pZ2V0aSkKQEAg
LTk4NSw2ICsxMDEyLDcgQEAKICNkZWZpbmUgdWl0ZXJfc2V0VVRGMTZCRSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGMTZCRSkKICNkZWZpbmUgdWl0ZXJfc2V0VVRGOCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGOCkKICNkZWZpbmUgdWxkbl9jbG9zZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9jbG9zZSkKKyNkZWZpbmUgdWxkbl9nZXRDb250
ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldENvbnRleHQpCiAjZGVmaW5lIHVs
ZG5fZ2V0RGlhbGVjdEhhbmRsaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldERp
YWxlY3RIYW5kbGluZykKICNkZWZpbmUgdWxkbl9nZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVsZG5fZ2V0TG9jYWxlKQogI2RlZmluZSB1bGRuX2tleURpc3BsYXlOYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2tleURpc3BsYXlOYW1lKQpAQCAtOTkyLDYgKzEwMjAs
NyBAQAogI2RlZmluZSB1bGRuX2xhbmd1YWdlRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVsZG5fbGFuZ3VhZ2VEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9sb2NhbGVEaXNw
bGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9sb2NhbGVEaXNwbGF5TmFtZSkK
ICNkZWZpbmUgdWxkbl9vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX29wZW4pCisj
ZGVmaW5lIHVsZG5fb3BlbkZvckNvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5f
b3BlbkZvckNvbnRleHQpCiAjZGVmaW5lIHVsZG5fcmVnaW9uRGlzcGxheU5hbWUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVsZG5fcmVnaW9uRGlzcGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fc2Ny
aXB0Q29kZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX3NjcmlwdENv
ZGVEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9zY3JpcHREaXNwbGF5TmFtZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWxkbl9zY3JpcHREaXNwbGF5TmFtZSkKQEAgLTEwMjgsNiArMTA1Nyw3
IEBACiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheUxhbmd1YWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bG9jX2dldERpc3BsYXlMYW5ndWFnZSkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5TmFt
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5TmFtZSkKICNkZWZpbmUg
dWxvY19nZXREaXNwbGF5U2NyaXB0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERp
c3BsYXlTY3JpcHQpCisjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheVNjcmlwdEluQ29udGV4dCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXREaXNwbGF5U2NyaXB0SW5Db250ZXh0KQogI2Rl
ZmluZSB1bG9jX2dldERpc3BsYXlWYXJpYW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9j
X2dldERpc3BsYXlWYXJpYW50KQogI2RlZmluZSB1bG9jX2dldElTTzNDb3VudHJ5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldElTTzNDb3VudHJ5KQogI2RlZmluZSB1bG9jX2dldElT
TzNMYW5ndWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRJU08zTGFuZ3VhZ2Up
CkBAIC0xMDc1LDE4ICsxMTA1LDIxIEBACiAjZGVmaW5lIHVtc2dfdG9QYXR0ZXJuIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bXNnX3RvUGF0dGVybikKICNkZWZpbmUgdW1zZ192Zm9ybWF0IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3Zmb3JtYXQpCiAjZGVmaW5lIHVtc2dfdnBhcnNl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3ZwYXJzZSkKLSNkZWZpbmUgdW10eF9hdG9t
aWNfZGVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2F0b21pY19kZWMpCi0jZGVmaW5l
IHVtdHhfYXRvbWljX2luYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9hdG9taWNfaW5j
KQotI2RlZmluZSB1bXR4X2NsZWFudXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfY2xl
YW51cCkKLSNkZWZpbmUgdW10eF9kZXN0cm95IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4
X2Rlc3Ryb3kpCi0jZGVmaW5lIHVtdHhfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10
eF9pbml0KQogI2RlZmluZSB1bXR4X2xvY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhf
bG9jaykKICNkZWZpbmUgdW10eF91bmxvY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhf
dW5sb2NrKQogI2RlZmluZSB1bmlzZXRfZ2V0VW5pY29kZTMySW5zdGFuY2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVuaXNldF9nZXRVbmljb2RlMzJJbnN0YW5jZSkKICNkZWZpbmUgdW5vcm0y
X2FwcGVuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2FwcGVuZCkKICNkZWZpbmUg
dW5vcm0yX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfY2xvc2UpCisjZGVm
aW5lIHVub3JtMl9jb21wb3NlUGFpciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2Nv
bXBvc2VQYWlyKQorI2RlZmluZSB1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVub3JtMl9nZXRDb21iaW5pbmdDbGFzcykKICNkZWZpbmUgdW5vcm0yX2dl
dERlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXREZWNvbXBv
c2l0aW9uKQogI2RlZmluZSB1bm9ybTJfZ2V0SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVub3JtMl9nZXRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GQ0luc3RhbmNlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJfZ2V0TkZDSW5zdGFuY2UpCisjZGVmaW5lIHVu
b3JtMl9nZXRORkRJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5G
REluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRORktDQ2FzZWZvbGRJbnN0YW5jZSkKKyNkZWZp
bmUgdW5vcm0yX2dldE5GS0NJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0y
X2dldE5GS0NJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0RJbnN0YW5jZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GS0RJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0y
X2dldFJhd0RlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRS
YXdEZWNvbXBvc2l0aW9uKQogI2RlZmluZSB1bm9ybTJfaGFzQm91bmRhcnlBZnRlciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5QWZ0ZXIpCiAjZGVmaW5lIHVub3Jt
Ml9oYXNCb3VuZGFyeUJlZm9yZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0Jv
dW5kYXJ5QmVmb3JlKQogI2RlZmluZSB1bm9ybTJfaXNJbmVydCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodW5vcm0yX2lzSW5lcnQpCkBAIC0xMTAwLDcgKzExMzMsNyBAQAogI2RlZmluZSB1bm9y
bV9jbG9zZUl0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2Nsb3NlSXRlcikKICNk
ZWZpbmUgdW5vcm1fY29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm1fY29tcGFy
ZSkKICNkZWZpbmUgdW5vcm1fY29uY2F0ZW5hdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVu
b3JtX2NvbmNhdGVuYXRlKQotI2RlZmluZSB1bm9ybV9nZXRGQ0RUcmllSW5kZXggVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVub3JtX2dldEZDRFRyaWVJbmRleCkKKyNkZWZpbmUgdW5vcm1fZ2V0
RkNEMTYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldEZDRDE2KQogI2RlZmluZSB1
bm9ybV9nZXRRdWlja0NoZWNrIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRRdWlj
a0NoZWNrKQogI2RlZmluZSB1bm9ybV9pc05vcm1hbGl6ZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVub3JtX2lzTm9ybWFsaXplZCkKICNkZWZpbmUgdW5vcm1faXNOb3JtYWxpemVkV2l0aE9w
dGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2lzTm9ybWFsaXplZFdpdGhPcHRp
b25zKQpAQCAtMTEyMCw2ICsxMTUzLDcgQEAKICNkZWZpbmUgdW51bV9mb3JtYXREb3VibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9ybWF0RG91YmxlKQogI2RlZmluZSB1bnVtX2Zv
cm1hdERvdWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdERv
dWJsZUN1cnJlbmN5KQogI2RlZmluZSB1bnVtX2Zvcm1hdEludDY0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtX2Zvcm1hdEludDY0KQorI2RlZmluZSB1bnVtX2Zvcm1hdFVGb3JtYXR0YWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9mb3JtYXRVRm9ybWF0dGFibGUpCiAjZGVm
aW5lIHVudW1fZ2V0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2dldEF0
dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVudW1fZ2V0QXZhaWxhYmxlKQogI2RlZmluZSB1bnVtX2dldERvdWJsZUF0dHJpYnV0ZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9nZXREb3VibGVBdHRyaWJ1dGUpCkBAIC0xMTMy
LDExICsxMTY2LDI0IEBACiAjZGVmaW5lIHVudW1fcGFyc2VEb3VibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVudW1fcGFyc2VEb3VibGUpCiAjZGVmaW5lIHVudW1fcGFyc2VEb3VibGVDdXJy
ZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9wYXJzZURvdWJsZUN1cnJlbmN5KQog
I2RlZmluZSB1bnVtX3BhcnNlSW50NjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFy
c2VJbnQ2NCkKKyNkZWZpbmUgdW51bV9wYXJzZVRvVUZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1bnVtX3BhcnNlVG9VRm9ybWF0dGFibGUpCiAjZGVmaW5lIHVudW1fc2V0QXR0
cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3NldEF0dHJpYnV0ZSkKICNkZWZp
bmUgdW51bV9zZXREb3VibGVBdHRyaWJ1dGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1f
c2V0RG91YmxlQXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3NldFN5bWJvbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW51bV9zZXRTeW1ib2wpCiAjZGVmaW5lIHVudW1fc2V0VGV4dEF0dHJpYnV0
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRUZXh0QXR0cmlidXRlKQogI2RlZmlu
ZSB1bnVtX3RvUGF0dGVybiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV90b1BhdHRlcm4p
CisjZGVmaW5lIHVudW1zeXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNf
Y2xvc2UpCisjZGVmaW5lIHVudW1zeXNfZ2V0RGVzY3JpcHRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVudW1zeXNfZ2V0RGVzY3JpcHRpb24pCisjZGVmaW5lIHVudW1zeXNfZ2V0TmFtZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5c19nZXROYW1lKQorI2RlZmluZSB1bnVtc3lz
X2dldFJhZGl4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX2dldFJhZGl4KQorI2Rl
ZmluZSB1bnVtc3lzX2lzQWxnb3JpdGhtaWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1z
eXNfaXNBbGdvcml0aG1pYykKKyNkZWZpbmUgdW51bXN5c19vcGVuIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bnVtc3lzX29wZW4pCisjZGVmaW5lIHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW5BdmFpbGFibGVOYW1lcykKKyNk
ZWZpbmUgdW51bXN5c19vcGVuQnlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lz
X29wZW5CeU5hbWUpCisjZGVmaW5lIHVwbHJ1bGVzX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cGxydWxlc19jbG9zZSkKKyNkZWZpbmUgdXBscnVsZXNfb3BlbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBscnVsZXNfb3BlbikKKyNkZWZpbmUgdXBscnVsZXNfb3BlbkZvclR5cGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX29wZW5Gb3JUeXBlKQorI2RlZmluZSB1
cGxydWxlc19zZWxlY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1bGVzX3NlbGVjdCkK
ICNkZWZpbmUgdXBsdWdfY2xvc2VMaWJyYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1
Z19jbG9zZUxpYnJhcnkpCiAjZGVmaW5lIHVwbHVnX2ZpbmRMaWJyYXJ5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cGx1Z19maW5kTGlicmFyeSkKICNkZWZpbmUgdXBsdWdfZ2V0Q29uZmlndXJh
dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBsdWdfZ2V0Q29uZmlndXJhdGlvbikKQEAg
LTExNjAsMTIgKzEyMDcsMTIgQEAKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z0xldmVsIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTGV2ZWwpCiAjZGVmaW5lIHVwbHVnX3NldFBs
dWdOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTmFtZSkKICNkZWZp
bmUgdXBsdWdfc2V0UGx1Z05vVW5sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19z
ZXRQbHVnTm9VbmxvYWQpCi0jZGVmaW5lIHVwbmFtZV9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cG5hbWVfc3dhcCkKICNkZWZpbmUgdXByb3BzX2dldFNvdXJjZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXByb3BzX2dldFNvdXJjZSkKICNkZWZpbmUgdXByb3BzdmVjX2FkZFByb3Bl
cnR5U3RhcnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJvcHN2ZWNfYWRkUHJvcGVydHlT
dGFydHMpCiAjZGVmaW5lIHVwcnZfYWVzdHJuY3B5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2Flc3RybmNweSkKICNkZWZpbmUgdXBydl9hc2NpaUZyb21FYmNkaWMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVwcnZfYXNjaWlGcm9tRWJjZGljKQogI2RlZmluZSB1cHJ2X2FzY2lpdG9s
b3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9hc2NpaXRvbG93ZXIpCisjZGVmaW5l
IHVwcnZfY2FsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NhbGxvYykKICNkZWZp
bmUgdXBydl9jZWlsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NlaWwpCiAjZGVmaW5l
IHVwcnZfY250dGFiX2FkZENvbnRyYWN0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2
X2NudHRhYl9hZGRDb250cmFjdGlvbikKICNkZWZpbmUgdXBydl9jbnR0YWJfY2hhbmdlQ29udHJh
Y3Rpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfY250dGFiX2NoYW5nZUNvbnRyYWN0
aW9uKQpAQCAtMTIwMiw3ICsxMjQ5LDYgQEAKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U2V0U3Rh
dHVzRnJvbVN0cmluZ1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRl
eHRTZXRTdGF0dXNGcm9tU3RyaW5nUXVpZXQpCiAjZGVmaW5lIHVwcnZfZGVjQ29udGV4dFNldFN0
YXR1c1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRTdGF0
dXNRdWlldCkKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0U3RhdHVzVG9TdHJpbmcgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFN0YXR1c1RvU3RyaW5nKQotI2RlZmluZSB1
cHJ2X2RlY0NvbnRleHRUZXN0RW5kaWFuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Rl
Y0NvbnRleHRUZXN0RW5kaWFuKQogI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRUZXN0U2F2ZWRTdGF0
dXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4dFRlc3RTYXZlZFN0YXR1
cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0VGVzdFN0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWNDb250ZXh0VGVzdFN0YXR1cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0
WmVyb1N0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0WmVyb1N0
YXR1cykKQEAgLTEyNjgsMTIgKzEzMTQsMTQgQEAKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJWZXJz
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclZlcnNpb24pCiAjZGVm
aW5lIHVwcnZfZGVjTnVtYmVyWG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051
bWJlclhvcikKICNkZWZpbmUgdXBydl9kZWNOdW1iZXJaZXJvIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X2RlY051bWJlclplcm8pCisjZGVmaW5lIHVwcnZfZGVsZXRlVU9iamVjdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWxldGVVT2JqZWN0KQogI2RlZmluZSB1cHJ2X2Rl
bGV0ZV9jb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWxldGVfY29s
bEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfZGxfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfZGxfY2xvc2UpCiAjZGVmaW5lIHVwcnZfZGxfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kbF9vcGVuKQotI2RlZmluZSB1cHJ2X2RsX3N5bSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9kbF9zeW0pCisjZGVmaW5lIHVwcnZfZGxzeW1fZnVuYyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9kbHN5bV9mdW5jKQogI2RlZmluZSB1cHJ2X2Vhc3RybmNweSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYXN0cm5jcHkpCiAjZGVmaW5lIHVwcnZfZWJj
ZGljRnJvbUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ViY2RpY0Zyb21Bc2Np
aSkKKyNkZWZpbmUgdXBydl9lYmNkaWNUb0xvd2VyY2FzZUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2ViY2RpY1RvTG93ZXJjYXNlQXNjaWkpCiAjZGVmaW5lIHVwcnZfZWJjZGlj
dG9sb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9lYmNkaWN0b2xvd2VyKQogI2Rl
ZmluZSB1cHJ2X2ZhYnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZmFicykKICNkZWZp
bmUgdXBydl9mbG9vciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9mbG9vcikKQEAgLTEy
OTUsMTMgKzEzNDMsMTMgQEAKICNkZWZpbmUgdXBydl9pbml0X2NvbGxJdGVyYXRlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2luaXRfY29sbEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfaW5p
dF9wY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaW5pdF9wY2UpCiAjZGVmaW5lIHVw
cnZfaW50MzJDb21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ludDMyQ29t
cGFyYXRvcikKKyNkZWZpbmUgdXBydl9pc0FTQ0lJTGV0dGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X2lzQVNDSUlMZXR0ZXIpCiAjZGVmaW5lIHVwcnZfaXNJbmZpbml0ZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0luZmluaXRlKQogI2RlZmluZSB1cHJ2X2lzSW52YXJp
YW50U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzSW52YXJpYW50U3RyaW5n
KQogI2RlZmluZSB1cHJ2X2lzSW52YXJpYW50VVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBydl9pc0ludmFyaWFudFVTdHJpbmcpCiAjZGVmaW5lIHVwcnZfaXNOYU4gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfaXNOYU4pCiAjZGVmaW5lIHVwcnZfaXNOZWdhdGl2ZUluZmlu
aXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzTmVnYXRpdmVJbmZpbml0eSkKICNk
ZWZpbmUgdXBydl9pc1Bvc2l0aXZlSW5maW5pdHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfaXNQb3NpdGl2ZUluZmluaXR5KQotI2RlZmluZSB1cHJ2X2lzUnVsZVdoaXRlU3BhY2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNSdWxlV2hpdGVTcGFjZSkKICNkZWZpbmUgdXBy
dl9pdG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2l0b3UpCiAjZGVmaW5lIHVwcnZf
bG9nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2xvZykKICNkZWZpbmUgdXBydl9tYWxs
b2MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWFsbG9jKQpAQCAtMTMxMiw3ICsxMzYw
LDYgQEAKICNkZWZpbmUgdXBydl9taW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWlu
KQogI2RlZmluZSB1cHJ2X21vZGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbW9kZikK
ICNkZWZpbmUgdXBydl9uZXdfY29sbEl0ZXJhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfbmV3X2NvbGxJdGVyYXRlKQotI2RlZmluZSB1cHJ2X29wZW5SdWxlV2hpdGVTcGFjZVNldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9vcGVuUnVsZVdoaXRlU3BhY2VTZXQpCiAjZGVm
aW5lIHVwcnZfcGFyc2VDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wYXJz
ZUN1cnJlbmN5KQogI2RlZmluZSB1cHJ2X3BhdGhJc0Fic29sdXRlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X3BhdGhJc0Fic29sdXRlKQogI2RlZmluZSB1cHJ2X3BvdyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXBydl9wb3cpCkBAIC0xMzIwLDkgKzEzNjcsMTIgQEAKICNkZWZpbmUg
dXBydl9yZWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3JlYWxsb2MpCiAjZGVm
aW5lIHVwcnZfcm91bmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfcm91bmQpCiAjZGVm
aW5lIHVwcnZfc29ydEFycmF5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3NvcnRBcnJh
eSkKKyNkZWZpbmUgdXBydl9zdGFibGVCaW5hcnlTZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVwcnZfc3RhYmxlQmluYXJ5U2VhcmNoKQogI2RlZmluZSB1cHJ2X3N0ckNvbXBhcmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyQ29tcGFyZSkKICNkZWZpbmUgdXBydl9zdHJk
dXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyZHVwKQorI2RlZmluZSB1cHJ2X3N0
cmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RyaWNtcCkKICNkZWZpbmUgdXBy
dl9zdHJuZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3N0cm5kdXApCisjZGVmaW5l
IHVwcnZfc3RybmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RybmljbXApCiAj
ZGVmaW5lIHVwcnZfc3ludGF4RXJyb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3lu
dGF4RXJyb3IpCiAjZGVmaW5lIHVwcnZfdGltZXpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfdGltZXpvbmUpCiAjZGVmaW5lIHVwcnZfdG91cHBlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl90b3VwcGVyKQpAQCAtMTM4Niw2ICsxNDM2LDcgQEAKICNkZWZpbmUgdXJlZ2V4
X29wZW5VVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X29wZW5VVGV4dCkKICNk
ZWZpbmUgdXJlZ2V4X3BhdHRlcm4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9wYXR0
ZXJuKQogI2RlZmluZSB1cmVnZXhfcGF0dGVyblVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cmVnZXhfcGF0dGVyblVUZXh0KQorI2RlZmluZSB1cmVnZXhfcmVmcmVzaFVUZXh0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVmcmVzaFVUZXh0KQogI2RlZmluZSB1cmVnZXhf
cmVnaW9uRW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVnaW9uRW5kKQogI2Rl
ZmluZSB1cmVnZXhfcmVnaW9uRW5kNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9y
ZWdpb25FbmQ2NCkKICNkZWZpbmUgdXJlZ2V4X3JlZ2lvblN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVnZXhfcmVnaW9uU3RhcnQpCkBAIC0xNDE0LDYgKzE0NjUsMTkgQEAKICNkZWZp
bmUgdXJlZ2V4X3VzZUFuY2hvcmluZ0JvdW5kcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJl
Z2V4X3VzZUFuY2hvcmluZ0JvdW5kcykKICNkZWZpbmUgdXJlZ2V4X3VzZVRyYW5zcGFyZW50Qm91
bmRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfdXNlVHJhbnNwYXJlbnRCb3VuZHMp
CiAjZGVmaW5lIHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFyQXQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdleF91dGV4dF91bmVzY2FwZV9jaGFyQXQpCisjZGVmaW5lIHVyZWdpb25fYXJl
RXF1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fYXJlRXF1YWwpCisjZGVmaW5l
IHVyZWdpb25fY29udGFpbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fY29udGFp
bnMpCisjZGVmaW5lIHVyZWdpb25fZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cmVnaW9uX2dldEF2YWlsYWJsZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluZWRSZWdp
b25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnMp
CisjZGVmaW5lIHVyZWdpb25fZ2V0Q29udGFpbmVkUmVnaW9uc09mVHlwZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250YWluZWRSZWdpb25zT2ZUeXBlKQorI2RlZmluZSB1
cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdp
b25fZ2V0Q29udGFpbmluZ1JlZ2lvbikKKyNkZWZpbmUgdXJlZ2lvbl9nZXRDb250YWluaW5nUmVn
aW9uT2ZUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldENvbnRhaW5pbmdS
ZWdpb25PZlR5cGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0TnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0TnVtZXJpY0NvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0
UHJlZmVycmVkVmFsdWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFByZWZl
cnJlZFZhbHVlcykKKyNkZWZpbmUgdXJlZ2lvbl9nZXRSZWdpb25Db2RlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkNvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVn
aW9uRnJvbUNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0UmVnaW9uRnJv
bUNvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJvbU51bWVyaWNDb2RlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkZyb21OdW1lcmljQ29kZSkKKyNkZWZp
bmUgdXJlZ2lvbl9nZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFR5
cGUpCiAjZGVmaW5lIHVyZXNfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY2xv
c2UpCiAjZGVmaW5lIHVyZXNfY29weVJlc2IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNf
Y29weVJlc2IpCiAjZGVmaW5lIHVyZXNfY291bnRBcnJheUl0ZW1zIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cmVzX2NvdW50QXJyYXlJdGVtcykKQEAgLTE0NTcsMTMgKzE1MjEsMTkgQEAKICNk
ZWZpbmUgdXJlc19vcGVuVSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19vcGVuVSkKICNk
ZWZpbmUgdXJlc19yZXNldEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX3Jl
c2V0SXRlcmF0b3IpCiAjZGVmaW5lIHVyZXNfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXJlc19zd2FwKQorI2RlZmluZSB1c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2JyZWFrc0JldHdlZW5MZXR0ZXJzKQogI2RlZmluZSB1
c2NyaXB0X2Nsb3NlUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2Nsb3NlUnVu
KQogI2RlZmluZSB1c2NyaXB0X2dldENvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3Jp
cHRfZ2V0Q29kZSkKICNkZWZpbmUgdXNjcmlwdF9nZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1c2NyaXB0X2dldE5hbWUpCisjZGVmaW5lIHVzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNhbXBsZVN0cmluZykKKyNkZWZpbmUg
dXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
c2NyaXB0X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2NyaXB0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNjcmlwdCkKICNkZWZpbmUgdXNj
cmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0
X2dldFNjcmlwdEV4dGVuc2lvbnMpCiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2hvcnROYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNob3J0TmFtZSkKKyNkZWZpbmUgdXNjcmlw
dF9nZXRVc2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9nZXRVc2FnZSkKICNk
ZWZpbmUgdXNjcmlwdF9oYXNTY3JpcHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRf
aGFzU2NyaXB0KQorI2RlZmluZSB1c2NyaXB0X2lzQ2FzZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVzY3JpcHRfaXNDYXNlZCkKKyNkZWZpbmUgdXNjcmlwdF9pc1JpZ2h0VG9MZWZ0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lzUmlnaHRUb0xlZnQpCiAjZGVmaW5lIHVzY3Jp
cHRfbmV4dFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9uZXh0UnVuKQogI2Rl
ZmluZSB1c2NyaXB0X29wZW5SdW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfb3Bl
blJ1bikKICNkZWZpbmUgdXNjcmlwdF9yZXNldFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXNjcmlwdF9yZXNldFJ1bikKQEAgLTE1NjcsNiArMTYzNywxMSBAQAogI2RlZmluZSB1c3Bvb2Zf
Z2V0QWxsb3dlZExvY2FsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRBbGxv
d2VkTG9jYWxlcykKICNkZWZpbmUgdXNwb29mX2dldEFsbG93ZWRVbmljb2RlU2V0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0QWxsb3dlZFVuaWNvZGVTZXQpCiAjZGVmaW5lIHVz
cG9vZl9nZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRDaGVja3Mp
CisjZGVmaW5lIHVzcG9vZl9nZXRJbmNsdXNpb25TZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzcG9vZl9nZXRJbmNsdXNpb25TZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRJbmNsdXNpb25Vbmlj
b2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0SW5jbHVzaW9uVW5pY29k
ZVNldCkKKyNkZWZpbmUgdXNwb29mX2dldFJlY29tbWVuZGVkU2V0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZWNv
bW1lbmRlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRSZWNv
bW1lbmRlZFVuaWNvZGVTZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZXN0cmljdGlvbkxldmVsIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0UmVzdHJpY3Rpb25MZXZlbCkKICNkZWZp
bmUgdXNwb29mX2dldFNrZWxldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0
U2tlbGV0b24pCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvblVURjggVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVURjgpCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2Vs
ZXRvblVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2Vs
ZXRvblVuaWNvZGVTdHJpbmcpCkBAIC0xNTc4LDIzICsxNjUzLDI1IEBACiAjZGVmaW5lIHVzcG9v
Zl9zZXRBbGxvd2VkTG9jYWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3NldEFs
bG93ZWRMb2NhbGVzKQogI2RlZmluZSB1c3Bvb2Zfc2V0QWxsb3dlZFVuaWNvZGVTZXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRBbGxvd2VkVW5pY29kZVNldCkKICNkZWZpbmUg
dXNwb29mX3NldENoZWNrcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3NldENoZWNr
cykKKyNkZWZpbmUgdXNwb29mX3NldFJlc3RyaWN0aW9uTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzcG9vZl9zZXRSZXN0cmljdGlvbkxldmVsKQogI2RlZmluZSB1c3Bvb2Zfc3dhcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29mX3N3YXApCiAjZGVmaW5lIHVzcHJlcF9jbG9z
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX2Nsb3NlKQogI2RlZmluZSB1c3ByZXBf
b3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX29wZW4pCiAjZGVmaW5lIHVzcHJl
cF9vcGVuQnlUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3ByZXBfb3BlbkJ5VHlwZSkK
ICNkZWZpbmUgdXNwcmVwX3ByZXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9w
cmVwYXJlKQogI2RlZmluZSB1c3ByZXBfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNw
cmVwX3N3YXApCi0jZGVmaW5lIHVzdHJfZm9sZENhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzdHJfZm9sZENhc2UpCi0jZGVmaW5lIHVzdHJfdG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXN0cl90b0xvd2VyKQotI2RlZmluZSB1c3RyX3RvVGl0bGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzdHJfdG9UaXRsZSkKLSNkZWZpbmUgdXN0cl90b1VwcGVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3RyX3RvVXBwZXIpCi0jZGVmaW5lIHV0ZXh0X2Nhc2VDb21wYXJlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jYXNlQ29tcGFyZSkKLSNkZWZpbmUgdXRleHRf
Y2FzZUNvbXBhcmVOYXRpdmVMaW1pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2Fz
ZUNvbXBhcmVOYXRpdmVMaW1pdCkKKyNkZWZpbmUgdXN0cl9oYXNoQ2hhcnNOIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1c3RyX2hhc2hDaGFyc04pCisjZGVmaW5lIHVzdHJfaGFzaElDaGFyc04g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFzaElDaGFyc04pCisjZGVmaW5lIHVzdHJf
aGFzaFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfaGFzaFVDaGFyc04pCisj
ZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsRm9sZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0
cmNhc2VfaW50ZXJuYWxGb2xkKQorI2RlZmluZSB1c3RyY2FzZV9pbnRlcm5hbFRvTG93ZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX2ludGVybmFsVG9Mb3dlcikKKyNkZWZpbmUg
dXN0cmNhc2VfaW50ZXJuYWxUb1RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2Fz
ZV9pbnRlcm5hbFRvVGl0bGUpCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsVG9VcHBlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJuYWxUb1VwcGVyKQorI2RlZmluZSB1
c3RyY2FzZV9tYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX21hcCkKKyNkZWZp
bmUgdXN0cmNhc2Vfc2V0VGVtcENhc2VNYXBMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVzdHJjYXNlX3NldFRlbXBDYXNlTWFwTG9jYWxlKQogI2RlZmluZSB1dGV4dF9jaGFyMzJBdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2hhcjMyQXQpCiAjZGVmaW5lIHV0ZXh0X2Ns
b25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jbG9uZSkKICNkZWZpbmUgdXRleHRf
Y2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2Nsb3NlKQotI2RlZmluZSB1dGV4
dF9jb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jb21wYXJlKQotI2RlZmlu
ZSB1dGV4dF9jb21wYXJlTmF0aXZlTGltaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0
X2NvbXBhcmVOYXRpdmVMaW1pdCkKICNkZWZpbmUgdXRleHRfY29weSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXRleHRfY29weSkKICNkZWZpbmUgdXRleHRfY3VycmVudDMyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1dGV4dF9jdXJyZW50MzIpCiAjZGVmaW5lIHV0ZXh0X2VxdWFscyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfZXF1YWxzKQpAQCAtMTc0Myw0OTkgKzE4MjAsNiBA
QAogI2RlZmluZSB6dHJhbnNfc2V0VGltZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5z
X3NldFRpbWUpCiAjZGVmaW5lIHp0cmFuc19zZXRUbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
enRyYW5zX3NldFRvKQogCi0KLS8qIEMrKyBjbGFzcyBuYW1lcyByZW5hbWluZyBkZWZpbmVzICov
Ci0KLSNpZmRlZiBYUF9DUExVU1BMVVMKLSNpZiAhVV9IQVZFX05BTUVTUEFDRQotCi0jZGVmaW5l
IEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFic29s
dXRlVmFsdWVTdWJzdGl0dXRpb24pCi0jZGVmaW5lIEFsdGVybmF0ZVN1YnN0aXR1dGlvblN1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbHRlcm5hdGVTdWJzdGl0dXRpb25TdWJ0YWJs
ZSkKLSNkZWZpbmUgQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFuY2hvclRh
YmxlKQotI2RlZmluZSBBbmRDb25zdHJhaW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbmRD
b25zdHJhaW50KQotI2RlZmluZSBBbm51YWxUaW1lWm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEFubnVhbFRpbWVab25lUnVsZSkKLSNkZWZpbmUgQW55VHJhbnNsaXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEFueVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBBcmFiaWNP
cGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJhYmljT3BlblR5
cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEFyYWJpY1NoYXBpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEFyYWJpY1NoYXBpbmcpCi0jZGVmaW5lIEFyZ0V4dHJhY3RvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQXJnRXh0cmFjdG9yKQotI2RlZmluZSBCTVBTZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEJNUFNldCkKLSNkZWZpbmUgQmFja3dhcmRVVHJpZTJTdHJpbmdJdGVyYXRvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFja3dhcmRVVHJpZTJTdHJpbmdJdGVyYXRvcikKLSNk
ZWZpbmUgQmFkQ2hhcmFjdGVyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhZENoYXJh
Y3RlclRhYmxlKQotI2RlZmluZSBCYXNpY0NhbGVuZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQmFzaWNDYWxlbmRhckZhY3RvcnkpCi0jZGVmaW5lIEJhc2ljVGltZVpvbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhc2ljVGltZVpvbmUpCi0jZGVmaW5lIEJpbmFyeVNlYXJj
aExvb2t1cFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCaW5hcnlTZWFyY2hMb29rdXBU
YWJsZSkKLSNkZWZpbmUgQm95ZXJNb29yZVNlYXJjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Qm95ZXJNb29yZVNlYXJjaCkKLSNkZWZpbmUgQnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgQnJlYWtUcmFuc2xpdGVyYXRvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQnJlYWtUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgQnVkZGhp
c3RDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVkZGhpc3RDYWxlbmRhcikKLSNk
ZWZpbmUgQnVpbGRDb21wYWN0VHJpZUhvcml6b250YWxOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShCdWlsZENvbXBhY3RUcmllSG9yaXpvbnRhbE5vZGUpCi0jZGVmaW5lIEJ1aWxkQ29tcGFj
dFRyaWVOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBhY3RUcmllTm9kZSkK
LSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQnVpbGRDb21wYWN0VHJpZVZlcnRpY2FsTm9kZSkKLSNkZWZpbmUgQnVpbGRlclNjcmlw
dFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRlclNjcmlwdFNldCkKLSNkZWZpbmUg
Qnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJ5dGVTaW5rKQotI2RlZmluZSBDRUJ1
ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VCdWZmZXIpCi0jZGVmaW5lIENFQ2FsZW5k
YXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENFQ2FsZW5kYXIpCi0jZGVmaW5lIENFTGlzdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VMaXN0KQotI2RlZmluZSBDRVRvU3RyaW5nc01hcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VUb1N0cmluZ3NNYXApCi0jZGVmaW5lIENGYWN0b3J5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDRmFjdG9yeSkKLSNkZWZpbmUgQ2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyKQotI2RlZmluZSBDYWxlbmRhckFzdHJvbm9t
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFyQXN0cm9ub21lcikKLSNkZWZpbmUg
Q2FsZW5kYXJDYWNoZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FsZW5kYXJDYWNoZSkKLSNk
ZWZpbmUgQ2FsZW5kYXJEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYWxlbmRhckRhdGEp
Ci0jZGVmaW5lIENhbGVuZGFyU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FsZW5k
YXJTZXJ2aWNlKQotI2RlZmluZSBDYW5vbkl0ZXJEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDYW5vbkl0ZXJEYXRhKQotI2RlZmluZSBDYW5vbkl0ZXJEYXRhU2luZ2xldG9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRhU2luZ2xldG9uKQotI2RlZmluZSBDYW5vbk1h
cmtGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbm9uTWFya0ZpbHRlcikKLSNkZWZp
bmUgQ2Fub25TaGFwaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vblNoYXBpbmcpCi0j
ZGVmaW5lIENhbm9uaWNhbEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbmlj
YWxJdGVyYXRvcikKLSNkZWZpbmUgQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDYXNlTWFwVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4
dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBD
aGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJs
ZSkKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25G
b3JtYXQzU3VidGFibGUpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1
YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0
dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ2hhclN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhclN0cmluZykKLSNkZWZpbmUgQ2hhclN1YnN0aXR1dGlvbkZpbHRlciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhclN1YnN0aXR1dGlvbkZpbHRlcikKLSNkZWZpbmUgQ2hhcmFjdGVy
SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJhY3Rlckl0ZXJhdG9yKQotI2Rl
ZmluZSBDaGFyYWN0ZXJOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyYWN0ZXJOb2Rl
KQotI2RlZmluZSBDaGFyc2V0RGV0ZWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXREZXRlY3RvcikKLSNkZWZpbmUgQ2hhcnNldE1hdGNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0TWF0Y2gpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ18yMDIyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJD
TiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJDTikKLSNkZWZpbmUg
Q2hhcnNldFJlY29nXzIwMjJKUCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
XzIwMjJKUCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJLUiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzIwMjJLUikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMSkKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfMV9kYSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfMV9kYSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9kZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9kZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfMV9lbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9l
bikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfMV9lcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9m
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9mcikKLSNkZWZp
bmUgQ2hhcnNldFJlY29nXzg4NTlfMV9pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nXzg4NTlfMV9pdCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9ubCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9ubCkKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nXzg4NTlfMV9ubyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4
NTlfMV9ubykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9wdCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9wdCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4
NTlfMV9zdiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9zdikK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfMikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9jcyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9jcykKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nXzg4NTlfMl9odSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4
NTlfMl9odSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9wbCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9wbCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4
NTlfMl9ybyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9ybykK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfNSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNV9ydSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNV9ydSkKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nXzg4NTlfNiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
NikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNl9hciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfNl9hcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNykKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfN19lbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfN19lbCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
OF9JX2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfODg1OV84X0lfaGUp
Ci0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzhfaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KENoYXJzZXRSZWNvZ184ODU5XzhfaGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzkgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzkpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ184ODU5XzlfdHIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184
ODU5XzlfdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBfYXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19J
Qk00MjBfYXJfbHRyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIw
X2FyX2x0cikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0lCTTQyMF9hcl9ydGwgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBfYXJfcnRsKQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfSUJNNDI0X2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJN
NDI0X2hlKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX2x0ciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0lCTTQyNF9oZV9sdHIpCi0jZGVmaW5lIENoYXJzZXRS
ZWNvZ19JQk00MjRfaGVfcnRsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2df
SUJNNDI0X2hlX3J0bCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX0tPSThfUiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0tPSThfUikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VU
RjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19VVEY4KQotI2RlZmluZSBD
aGFyc2V0UmVjb2dfVVRGXzE2X0JFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2dfVVRGXzE2X0JFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzE2X0xFIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzE2X0xFKQotI2RlZmluZSBDaGFyc2V0UmVj
b2dfVVRGXzMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyKQot
I2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0JFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
aGFyc2V0UmVjb2dfVVRGXzMyX0JFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0xFIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyX0xFKQotI2RlZmluZSBD
aGFyc2V0UmVjb2dfVW5pY29kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
X1VuaWNvZGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19iaWc1IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfYmlnNSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1YyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1YykKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X2V1Y19qcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1Y19qcCkKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19rciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nX2V1Y19rcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2diXzE4MDMwIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZ2JfMTgwMzApCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z19tYmNzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfbWJjcykKLSNkZWZp
bmUgQ2hhcnNldFJlY29nX3NiY3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNv
Z19zYmNzKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfc2ppcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nX3NqaXMpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ193aW5kb3dzXzEyNTYpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ25pemVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2duaXplcikKLSNkZWZpbmUgQ2hlY2tlZEFy
cmF5Qnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoZWNrZWRBcnJheUJ5dGVTaW5r
KQotI2RlZmluZSBDaGluZXNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoaW5l
c2VDYWxlbmRhcikKLSNkZWZpbmUgQ2hvaWNlRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaG9pY2VGb3JtYXQpCi0jZGVmaW5lIENsYXNzRGVmRm9ybWF0MVRhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDbGFzc0RlZkZvcm1hdDFUYWJsZSkKLSNkZWZpbmUgQ2xhc3NEZWZGb3Jt
YXQyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENsYXNzRGVmRm9ybWF0MlRhYmxlKQot
I2RlZmluZSBDbGFzc0RlZmluaXRpb25UYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xh
c3NEZWZpbml0aW9uVGFibGUpCi0jZGVmaW5lIENsb2NrTWF0aCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2xvY2tNYXRoKQotI2RlZmluZSBDb2xsRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ29sbERhdGEpCi0jZGVmaW5lIENvbGxEYXRhQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENvbGxEYXRhQ2FjaGUpCi0jZGVmaW5lIENvbGxEYXRhQ2FjaGVFbnRyeSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ29sbERhdGFDYWNoZUVudHJ5KQotI2RlZmluZSBDb2xsYXRpb25FbGVt
ZW50SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxhdGlvbkVsZW1lbnRJdGVy
YXRvcikKLSNkZWZpbmUgQ29sbGF0aW9uS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xs
YXRpb25LZXkpCi0jZGVmaW5lIENvbGxhdGlvbkxvY2FsZUxpc3RFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uTG9jYWxlTGlzdEVudW1lcmF0aW9uKQotI2RlZmlu
ZSBDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0b3IpCi0jZGVmaW5lIENv
bGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0b3JGYWN0b3J5KQot
I2RlZmluZSBDb21wYWN0VHJpZURpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENv
bXBhY3RUcmllRGljdGlvbmFyeSkKLSNkZWZpbmUgQ29tcGFjdFRyaWVFbnVtZXJhdGlvbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRyaWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgQ29t
cG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb21wb3NlTm9ybWFsaXpl
cjIpCi0jZGVmaW5lIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENvbXBvdW5kVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIENvbmZ1c2FibGVkYXRhQnVpbGRl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29uZnVzYWJsZWRhdGFCdWlsZGVyKQotI2RlZmlu
ZSBDb250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgQ29u
dGV4dHVhbFN1YnN0aXR1dGlvbkJhc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1
YWxTdWJzdGl0dXRpb25CYXNlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0
MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9u
Rm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1
YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9y
bWF0MlN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0
M1N1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFsU3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZp
bmUgQ29wdGljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvcHRpY0NhbGVuZGFy
KQotI2RlZmluZSBDb3ZlcmFnZUZvcm1hdDFUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q292ZXJhZ2VGb3JtYXQxVGFibGUpCi0jZGVmaW5lIENvdmVyYWdlRm9ybWF0MlRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZvcm1hdDJUYWJsZSkKLSNkZWZpbmUgQ292ZXJh
Z2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VUYWJsZSkKLSNkZWZpbmUg
Q3VycmVuY3lBbW91bnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5QW1vdW50KQot
I2RlZmluZSBDdXJyZW5jeUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lG
b3JtYXQpCi0jZGVmaW5lIEN1cnJlbmN5UGx1cmFsSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ3VycmVuY3lQbHVyYWxJbmZvKQotI2RlZmluZSBDdXJyZW5jeVVuaXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEN1cnJlbmN5VW5pdCkKLSNkZWZpbmUgQ3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSkK
LSNkZWZpbmUgRFRSZWR1bmRhbnRFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
RFRSZWR1bmRhbnRFbnVtZXJhdGlvbikKLSNkZWZpbmUgRFRTa2VsZXRvbkVudW1lcmF0aW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEVFNrZWxldG9uRW51bWVyYXRpb24pCi0jZGVmaW5lIERh
dGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVGb3JtYXQpCi0jZGVmaW5lIERh
dGVGb3JtYXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlRm9ybWF0U3ltYm9s
cykKLSNkZWZpbmUgRGF0ZUludGVydmFsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50
ZXJ2YWwpCi0jZGVmaW5lIERhdGVJbnRlcnZhbEZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoRGF0ZUludGVydmFsRm9ybWF0KQotI2RlZmluZSBEYXRlSW50ZXJ2YWxJbmZvIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxJbmZvKQotI2RlZmluZSBEYXRlVGltZU1hdGNo
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERhdGVUaW1lTWF0Y2hlcikKLSNkZWZpbmUgRGF0
ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZVBh
dHRlcm5HZW5lcmF0b3IpCi0jZGVmaW5lIERhdGVUaW1lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGF0ZVRpbWVSdWxlKQotI2RlZmluZSBEZWNpbWFsRm9ybWF0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShEZWNpbWFsRm9ybWF0KQotI2RlZmluZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1hbEZvcm1hdFN5bWJvbHMpCi0jZGVmaW5lIERl
Y29tcG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWNvbXBvc2VOb3Jt
YWxpemVyMikKLSNkZWZpbmUgRGVmYXVsdENhbGVuZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRGVmYXVsdENhbGVuZGFyRmFjdG9yeSkKLSNkZWZpbmUgRGVmYXVsdENoYXJNYXBw
ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERlZmF1bHRDaGFyTWFwcGVyKQotI2RlZmluZSBE
ZXZpY2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGV2aWNlVGFibGUpCi0jZGVmaW5l
IERpY3Rpb25hcnlCcmVha0VuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGljdGlvbmFy
eUJyZWFrRW5naW5lKQotI2RlZmluZSBEaWdpdExpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KERpZ2l0TGlzdCkKLSNkZWZpbmUgRGlzdGFuY2VJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShEaXN0YW5jZUluZm8pCi0jZGVmaW5lIEVudW1Ub09mZnNldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRW51bVRvT2Zmc2V0KQotI2RlZmluZSBFcnJvckNvZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEVycm9yQ29kZSkKLSNkZWZpbmUgRXNjYXBlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKEVzY2FwZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBFdGhpb3BpY0Nh
bGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFdGhpb3BpY0NhbGVuZGFyKQotI2RlZmlu
ZSBFdmVudExpc3RlbmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShFdmVudExpc3RlbmVyKQot
I2RlZmluZSBFeHRlbnNpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRXh0ZW5z
aW9uU3VidGFibGUpCi0jZGVmaW5lIEZDRE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShGQ0ROb3JtYWxpemVyMikKLSNkZWZpbmUgRkNEVHJpZVNpbmdsZXRvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoRkNEVHJpZVNpbmdsZXRvbikKLSNkZWZpbmUgRmVhdHVyZUxpc3RUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmVhdHVyZUxpc3RUYWJsZSkKLSNkZWZpbmUgRmll
bGRQb3NpdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbikKLSNkZWZp
bmUgRmllbGRQb3NpdGlvbkhhbmRsZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9z
aXRpb25IYW5kbGVyKQotI2RlZmluZSBGaWVsZFBvc2l0aW9uSXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25JdGVyYXRvcikKLSNkZWZpbmUgRmllbGRQb3NpdGlv
bkl0ZXJhdG9ySGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbkl0
ZXJhdG9ySGFuZGxlcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbk9ubHlIYW5kbGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9uT25seUhhbmRsZXIpCi0jZGVmaW5lIEZpbHRl
cmVkTm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpbHRlcmVkTm9ybWFsaXpl
cjIpCi0jZGVmaW5lIEZvbnRSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb250UnVucykK
LSNkZWZpbmUgRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQpCi0jZGVmaW5l
IEZvcm1hdDFBbmNob3JUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0MUFuY2hv
clRhYmxlKQotI2RlZmluZSBGb3JtYXQyQW5jaG9yVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEZvcm1hdDJBbmNob3JUYWJsZSkKLSNkZWZpbmUgRm9ybWF0M0FuY2hvclRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQzQW5jaG9yVGFibGUpCi0jZGVmaW5lIEZvcm1hdE5h
bWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRm9ybWF0TmFtZUVudW1lcmF0
aW9uKQotI2RlZmluZSBGb3JtYXRQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1h
dFBhcnNlcikKLSNkZWZpbmUgRm9ybWF0dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZv
cm1hdHRhYmxlKQotI2RlZmluZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgRm9yd2FyZFVU
cmllMlN0cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3J3YXJkVVRyaWUy
U3RyaW5nSXRlcmF0b3IpCi0jZGVmaW5lIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbikKLSNkZWZpbmUg
RnVuY3Rpb25SZXBsYWNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRnVuY3Rpb25SZXBsYWNl
cikKLSNkZWZpbmUgR0RFRk1hcmtGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdERUZN
YXJrRmlsdGVyKQotI2RlZmluZSBHWExheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoR1hMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEdseXBoRGVmaW5pdGlvblRhYmxlSGVhZGVyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaERlZmluaXRpb25UYWJsZUhlYWRlcikKLSNkZWZp
bmUgR2x5cGhJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhJdGVyYXRvcikK
LSNkZWZpbmUgR2x5cGhMb29rdXBUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
R2x5cGhMb29rdXBUYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhQb3NpdGlvbkFkanVzdG1lbnRz
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaFBvc2l0aW9uQWRqdXN0bWVudHMpCi0jZGVm
aW5lIEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIEdseXBoUG9zaXRp
b25pbmdUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlvbmlu
Z1RhYmxlSGVhZGVyKQotI2RlZmluZSBHbHlwaFN1YnN0aXR1dGlvbkxvb2t1cFByb2Nlc3NvciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhTdWJzdGl0dXRpb25Mb29rdXBQcm9jZXNzb3Ip
Ci0jZGVmaW5lIEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEdseXBoU3Vic3RpdHV0aW9uVGFibGVIZWFkZXIpCi0jZGVmaW5lIEdvb2RTdWZmaXhU
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR29vZFN1ZmZpeFRhYmxlKQotI2RlZmluZSBH
cmVnbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR3JlZ28pCi0jZGVmaW5lIEdyZWdvcmlhbkNh
bGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHcmVnb3JpYW5DYWxlbmRhcikKLSNkZWZp
bmUgSGFuT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEhhbk9w
ZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBIYW5ndWxPcGVuVHlwZUxheW91dEVuZ2luZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSGFuZ3VsT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVm
aW5lIEhlYnJld0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShIZWJyZXdDYWxlbmRh
cikKLSNkZWZpbmUgSUNVQnJlYWtJdGVyYXRvckZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5KQotI2RlZmluZSBJQ1VCcmVha0l0ZXJhdG9yU2Vy
dmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQnJlYWtJdGVyYXRvclNlcnZpY2UpCi0j
ZGVmaW5lIElDVUNvbGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQ29s
bGF0b3JGYWN0b3J5KQotI2RlZmluZSBJQ1VDb2xsYXRvclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKElDVUNvbGxhdG9yU2VydmljZSkKLSNkZWZpbmUgSUNVRGF0YVRhYmxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VEYXRhVGFibGUpCi0jZGVmaW5lIElDVUxhbmd1YWdlQnJl
YWtGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VMYW5ndWFnZUJyZWFrRmFjdG9y
eSkKLSNkZWZpbmUgSUNVTG9jYWxlU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNV
TG9jYWxlU2VydmljZSkKLSNkZWZpbmUgSUNVTm90aWZpZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElDVU5vdGlmaWVyKQotI2RlZmluZSBJQ1VOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBJQ1VOdW1i
ZXJGb3JtYXRTZXJ2aWNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRT
ZXJ2aWNlKQotI2RlZmluZSBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSkKLSNkZWZpbmUgSUNVU2VydmljZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVU2VydmljZSkKLSNkZWZpbmUgSUNVU2VydmljZUZh
Y3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVNlcnZpY2VGYWN0b3J5KQotI2RlZmlu
ZSBJQ1VTZXJ2aWNlS2V5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VTZXJ2aWNlS2V5KQot
I2RlZmluZSBJQ1VfVXRpbGl0eSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVX1V0aWxpdHkp
Ci0jZGVmaW5lIElETkEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElETkEpCi0jZGVmaW5lIElu
ZGlhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpYW5DYWxlbmRhcikKLSNk
ZWZpbmUgSW5kaWNDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbmRpY0NsYXNz
VGFibGUpCi0jZGVmaW5lIEluZGljT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEluZGljT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEluZGljUmVhcnJh
bmdlbWVudFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5kaWNSZWFycmFuZ2Vt
ZW50UHJvY2Vzc29yKQotI2RlZmluZSBJbmRpY1Jlb3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEluZGljUmVvcmRlcmluZykKLSNkZWZpbmUgSW5pdGlhbFRpbWVab25lUnVsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5pdGlhbFRpbWVab25lUnVsZSkKLSNkZWZpbmUgSW5wdXRU
ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJbnB1dFRleHQpCi0jZGVmaW5lIEludGVncmFs
UGFydFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW50ZWdyYWxQYXJ0U3Vi
c3RpdHV0aW9uKQotI2RlZmluZSBJc2xhbWljQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKElzbGFtaWNDYWxlbmRhcikKLSNkZWZpbmUgSXRlcmF0ZWRDaGFyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShJdGVyYXRlZENoYXIpCi0jZGVmaW5lIEphcGFuZXNlQ2FsZW5kYXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEphcGFuZXNlQ2FsZW5kYXIpCi0jZGVmaW5lIEtlcm5UYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2VyblRhYmxlKQotI2RlZmluZSBLZXl3b3JkRW51bWVy
YXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtleXdvcmRFbnVtZXJhdGlvbikKLSNkZWZp
bmUgS2htZXJDbGFzc1RhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShLaG1lckNsYXNzVGFi
bGUpCi0jZGVmaW5lIEtobWVyT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKEtobWVyT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEtobWVyUmVvcmRlcmlu
ZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2htZXJSZW9yZGVyaW5nKQotI2RlZmluZSBMRUNo
YXJNYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFQ2hhck1hcHBlcikKLSNkZWZpbmUg
TEVGb250SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFRm9udEluc3RhbmNlKQot
I2RlZmluZSBMRUdseXBoRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMRUdseXBoRmls
dGVyKQotI2RlZmluZSBMRUdseXBoU3RvcmFnZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVH
bHlwaFN0b3JhZ2UpCi0jZGVmaW5lIExFSW5zZXJ0aW9uQ2FsbGJhY2sgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExFSW5zZXJ0aW9uQ2FsbGJhY2spCi0jZGVmaW5lIExFSW5zZXJ0aW9uTGlzdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNlcnRpb25MaXN0KQotI2RlZmluZSBMWFV0aWxp
dGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTFhVdGlsaXRpZXMpCi0jZGVmaW5lIExhbmd1
YWdlQnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExhbmd1YWdlQnJlYWtFbmdp
bmUpCi0jZGVmaW5lIExhbmd1YWdlQnJlYWtGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZpbmUgTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIExpZ2F0dXJlU3Vic3RpdHV0aW9u
UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMaWdhdHVyZVN1YnN0aXR1dGlvblBy
b2Nlc3NvcikKLSNkZWZpbmUgTGlnYXR1cmVTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTGlnYXR1cmVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgTG9j
RGF0YVBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jRGF0YVBhcnNlcikKLSNkZWZp
bmUgTG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGUpCi0jZGVmaW5lIExvY2Fs
ZUJhc2VkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVCYXNlZCkKLSNkZWZpbmUgTG9j
YWxlRGlzcGxheU5hbWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVEaXNwbGF5TmFt
ZXMpCi0jZGVmaW5lIExvY2FsZURpc3BsYXlOYW1lc0ltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExvY2FsZURpc3BsYXlOYW1lc0ltcGwpCi0jZGVmaW5lIExvY2FsZUtleSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTG9jYWxlS2V5KQotI2RlZmluZSBMb2NhbGVLZXlGYWN0b3J5IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVLZXlGYWN0b3J5KQotI2RlZmluZSBMb2NhbGVSdW5z
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVSdW5zKQotI2RlZmluZSBMb2NhbGVVdGls
aXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVVdGlsaXR5KQotI2RlZmluZSBMb2Nh
bGl6YXRpb25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGl6YXRpb25JbmZvKQot
I2RlZmluZSBMb29rdXBMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cExp
c3RUYWJsZSkKLSNkZWZpbmUgTG9va3VwUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIExvb2t1cFN1YnRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShMb29rdXBTdWJ0YWJsZSkKLSNkZWZpbmUgTG9va3VwVGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKExvb2t1cFRhYmxlKQotI2RlZmluZSBMb3dlcmNhc2VUcmFuc2xpdGVy
YXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIE1QcmVGaXh1cHMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1QcmVGaXh1cHMpCi0j
ZGVmaW5lIE1hcmtBcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya0FycmF5KQotI2Rl
ZmluZSBNYXJrVG9CYXNlUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTWFya1RvQmFzZVBvc2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIE1hcmtUb0xpZ2F0dXJl
UG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvTGlnYXR1
cmVQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBNYXJrVG9NYXJrUG9zaXRpb25pbmdTdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvTWFya1Bvc2l0aW9uaW5nU3VidGFi
bGUpCi0jZGVmaW5lIE1lYXN1cmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmUpCi0j
ZGVmaW5lIE1lYXN1cmVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lYXN1cmVGb3Jt
YXQpCi0jZGVmaW5lIE1lYXN1cmVVbml0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNZWFzdXJl
VW5pdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVz
c2FnZUZvcm1hdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdEFkYXB0ZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKE1lc3NhZ2VGb3JtYXRBZGFwdGVyKQotI2RlZmluZSBNb2R1bHVzU3Vic3RpdHV0
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb2R1bHVzU3Vic3RpdHV0aW9uKQotI2RlZmlu
ZSBNb29uUmlzZVNldENvb3JkRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9vblJpc2VT
ZXRDb29yZEZ1bmMpCi0jZGVmaW5lIE1vb25UaW1lQW5nbGVGdW5jIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShNb29uVGltZUFuZ2xlRnVuYykKLSNkZWZpbmUgTW9ycGhTdWJ0YWJsZUhlYWRlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhTdWJ0YWJsZUhlYWRlcikKLSNkZWZpbmUgTW9y
cGhUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhUYWJsZUhlYWRlcikK
LSNkZWZpbmUgTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgTXVsdGlwbGllclN1
YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTXVsdGlwbGllclN1YnN0aXR1dGlv
bikKLSNkZWZpbmUgTXV0YWJsZVRyaWVEaWN0aW9uYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShNdXRhYmxlVHJpZURpY3Rpb25hcnkpCi0jZGVmaW5lIE11dGFibGVUcmllRW51bWVyYXRpb24g
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11dGFibGVUcmllRW51bWVyYXRpb24pCi0jZGVmaW5l
IE5GRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTkZGYWN0b3J5KQotI2RlZmluZSBO
RktEQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORktEQnVmZmVyKQotI2RlZmluZSBO
RlJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5GUnVsZSkKLSNkZWZpbmUgTkZSdWxlU2V0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1bGVTZXQpCi0jZGVmaW5lIE5GU3Vic3RpdHV0
aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTkdy
YW1QYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5HcmFtUGFyc2VyKQotI2RlZmluZSBO
YW1lVG9FbnVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOYW1lVG9FbnVtKQotI2RlZmluZSBO
YW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOYW1lVW5p
Y29kZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb25Db250ZXh0dWFsR2x5cGhTdWJzdGl0dXRp
b25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vbkNvbnRleHR1YWxHbHlwaFN1
YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgTm9uQ29udGlndW91c0VudW1Ub09mZnNldCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9uQ29udGlndW91c0VudW1Ub09mZnNldCkKLSNkZWZp
bmUgTm9vcE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb29wTm9ybWFsaXpl
cjIpCi0jZGVmaW5lIE5vcm0yQWxsTW9kZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm0y
QWxsTW9kZXMpCi0jZGVmaW5lIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb3Jt
YWxpemVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOb3JtYWxpemVyKQotI2RlZmluZSBOb3Jt
YWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjIpCi0jZGVmaW5lIE5v
cm1hbGl6ZXIyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJGYWN0
b3J5KQotI2RlZmluZSBOb3JtYWxpemVyMkltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5v
cm1hbGl6ZXIySW1wbCkKLSNkZWZpbmUgTm9ybWFsaXplcjJXaXRoSW1wbCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTm9ybWFsaXplcjJXaXRoSW1wbCkKLSNkZWZpbmUgTnVsbFN1YnN0aXR1dGlv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVsbFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTnVs
bFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdWxsVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVtYmVy
Rm9ybWF0KQotI2RlZmluZSBOdW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2RlZmluZSBOdW1iZXJpbmdTeXN0ZW0gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE51bWJlcmluZ1N5c3RlbSkKLSNkZWZpbmUgTnVtZXJhdG9yU3Vi
c3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1lcmF0b3JTdWJzdGl0dXRpb24p
Ci0jZGVmaW5lIE9sc29uVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9sc29uVGlt
ZVpvbmUpCi0jZGVmaW5lIE9wZW5UeXBlTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNkZWZpbmUgT3BlblR5cGVVdGlsaXRpZXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKE9wZW5UeXBlVXRpbGl0aWVzKQotI2RlZmluZSBPckNvbnN0
cmFpbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9yQ29uc3RyYWludCkKLSNkZWZpbmUgUENF
QnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQQ0VCdWZmZXIpCi0jZGVmaW5lIFBhaXJQ
b3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFpclBv
c2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBQYWlyUG9zaXRpb25pbmdGb3JtYXQy
U3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDJT
dWJ0YWJsZSkKLSNkZWZpbmUgUGFpclBvc2l0aW9uaW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBQYXJhZ3JhcGhMYXlv
dXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhcmFncmFwaExheW91dCkKLSNkZWZpbmUgUGFy
c2VEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQYXJzZURhdGEpCi0jZGVmaW5lIFBhcnNl
UG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhcnNlUG9zaXRpb24pCi0jZGVmaW5l
IFBhdHRlcm5NYXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhdHRlcm5NYXApCi0jZGVmaW5l
IFBhdHRlcm5NYXBJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGF0dGVybk1hcEl0
ZXJhdG9yKQotI2RlZmluZSBQZXJzaWFuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFBlcnNpYW5DYWxlbmRhcikKLSNkZWZpbmUgUGx1cmFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShQbHVyYWxGb3JtYXQpCi0jZGVmaW5lIFBsdXJhbEtleXdvcmRFbnVtZXJhdGlvbiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsS2V5d29yZEVudW1lcmF0aW9uKQotI2RlZmlu
ZSBQbHVyYWxSdWxlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFsUnVsZXMpCi0jZGVm
aW5lIFByb3BlcnR5QWxpYXNlcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUHJvcGVydHlBbGlh
c2VzKQotI2RlZmluZSBQdG5FbGVtIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQdG5FbGVtKQot
I2RlZmluZSBQdG5Ta2VsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUHRuU2tlbGV0b24p
Ci0jZGVmaW5lIFF1YW50aWZpZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFF1YW50aWZpZXIp
Ci0jZGVmaW5lIFJCQklEYXRhV3JhcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSURh
dGFXcmFwcGVyKQotI2RlZmluZSBSQkJJTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJC
SU5vZGUpCi0jZGVmaW5lIFJCQklSdWxlQnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UkJCSVJ1bGVCdWlsZGVyKQotI2RlZmluZSBSQkJJUnVsZVNjYW5uZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJCQklSdWxlU2Nhbm5lcikKLSNkZWZpbmUgUkJCSVNldEJ1aWxkZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFJCQklTZXRCdWlsZGVyKQotI2RlZmluZSBSQkJJU3RhdGVEZXNj
cmlwdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJU3RhdGVEZXNjcmlwdG9yKQotI2Rl
ZmluZSBSQkJJU3ltYm9sVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTeW1ib2xU
YWJsZSkKLSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxlRW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFJCQklTeW1ib2xUYWJsZUVudHJ5KQotI2RlZmluZSBSQkJJVGFibGVCdWlsZGVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJVGFibGVCdWlsZGVyKQotI2RlZmluZSBSQ0VCdWZmZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJDRUJ1ZmZlcikKLSNkZWZpbmUgUmFuZ2VEZXNjcmlw
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSYW5nZURlc2NyaXB0b3IpCi0jZGVmaW5lIFJl
Z2V4Q29tcGlsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhDb21waWxlKQotI2RlZmlu
ZSBSZWdleE1hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlZ2V4TWF0Y2hlcikKLSNk
ZWZpbmUgUmVnZXhQYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZWdleFBhdHRlcm4p
Ci0jZGVmaW5lIFJlZ2V4U3RhdGljU2V0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhT
dGF0aWNTZXRzKQotI2RlZmluZSBSZWd1bGFyRXhwcmVzc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUmVndWxhckV4cHJlc3Npb24pCi0jZGVmaW5lIFJlbGF0aXZlRGF0ZUZvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVsYXRpdmVEYXRlRm9ybWF0KQotI2RlZmluZSBSZW1vdmVU
cmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVtb3ZlVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIFJlb3JkZXJpbmdCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJl
b3JkZXJpbmdCdWZmZXIpCi0jZGVmaW5lIFJlcGxhY2VhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShSZXBsYWNlYWJsZSkKLSNkZWZpbmUgUmVwbGFjZWFibGVHbHVlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShSZXBsYWNlYWJsZUdsdWUpCi0jZGVmaW5lIFJlc291cmNlQnVuZGxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShSZXNvdXJjZUJ1bmRsZSkKLSNkZWZpbmUgUmlzZVNldENvb3Jk
RnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmlzZVNldENvb3JkRnVuYykKLSNkZWZpbmUg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgUnVsZUJhc2VkQ29sbGF0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJ1bGVCYXNlZENvbGxhdG9yKQotI2RlZmluZSBSdWxlQmFzZWROdW1iZXJGb3Jt
YXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZE51bWJlckZvcm1hdCkKLSNkZWZp
bmUgUnVsZUJhc2VkVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZFRp
bWVab25lKQotI2RlZmluZSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFJ1bGVDaGFpbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUNoYWluKQotI2RlZmluZSBSdWxlQ2hhcmFjdGVySXRl
cmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcikKLSNk
ZWZpbmUgUnVsZUhhbGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVIYWxmKQotI2RlZmlu
ZSBSdWxlUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSdWxlUGFyc2VyKQotI2RlZmlu
ZSBSdW5BcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVuQXJyYXkpCi0jZGVmaW5lIFNQ
VVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU1BVU3RyaW5nKQotI2RlZmluZSBTUFVT
dHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTUFVTdHJpbmdQb29sKQotI2RlZmlu
ZSBTYWZlWm9uZVN0cmluZ0Zvcm1hdFB0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2FmZVpv
bmVTdHJpbmdGb3JtYXRQdHIpCi0jZGVmaW5lIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU2FtZVZhbHVlU3Vic3RpdHV0aW9uKQotI2RlZmluZSBTY3JpcHRM
aXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdExpc3RUYWJsZSkKLSNkZWZp
bmUgU2NyaXB0UnVuSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFJ1bkl0
ZXJhdG9yKQotI2RlZmluZSBTY3JpcHRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlw
dFNldCkKLSNkZWZpbmUgU2NyaXB0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlw
dFRhYmxlKQotI2RlZmluZSBTZWFyY2hJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
U2VhcmNoSXRlcmF0b3IpCi0jZGVmaW5lIFNlZ21lbnRBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoU2VnbWVudEFycmF5UHJvY2Vzc29yKQotI2RlZmluZSBTZWdtZW50U2lu
Z2xlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZWdtZW50U2luZ2xlUHJvY2Vz
c29yKQotI2RlZmluZSBTZWxlY3RGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlbGVj
dEZvcm1hdCkKLSNkZWZpbmUgU2VydmljZUVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTZXJ2aWNlRW51bWVyYXRpb24pCi0jZGVmaW5lIFNlcnZpY2VMaXN0ZW5lciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoU2VydmljZUxpc3RlbmVyKQotI2RlZmluZSBTaW1wbGVBcnJheVBy
b2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlQXJyYXlQcm9jZXNzb3IpCi0j
ZGVmaW5lIFNpbXBsZURhdGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZURh
dGVGb3JtYXQpCi0jZGVmaW5lIFNpbXBsZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFNpbXBsZUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNpbXBsZUxvY2FsZUtleUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZU51
bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZU51bWJlckZv
cm1hdEZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoU2ltcGxlU2luZ2xldG9uKQotI2RlZmluZSBTaW1wbGVUaW1lWm9uZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoU2ltcGxlVGltZVpvbmUpCi0jZGVmaW5lIFNpbmdsZVBvc2l0aW9uaW5n
Rm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmlu
Z0Zvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlUG9zaXRpb25pbmdGb3JtYXQyU3VidGFi
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MlN1YnRh
YmxlKQotI2RlZmluZSBTaW5nbGVQb3NpdGlvbmluZ1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTaW5nbGVQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0
dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVN1YnN0
aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0
MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25Gb3Jt
YXQyU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgU2lu
Z2xlVGFibGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbmdsZVRhYmxlUHJv
Y2Vzc29yKQotI2RlZmluZSBTcG9vZkRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNwb29m
RGF0YSkKLSNkZWZpbmUgU3Bvb2ZJbXBsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTcG9vZklt
cGwpCi0jZGVmaW5lIFN0YXRlVGFibGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFN0YXRlVGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUg
U3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0cmluZ0VudW1lcmF0
aW9uKQotI2RlZmluZSBTdHJpbmdMaXN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdM
aXN0KQotI2RlZmluZSBTdHJpbmdMb2NhbGl6YXRpb25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTdHJpbmdMb2NhbGl6YXRpb25JbmZvKQotI2RlZmluZSBTdHJpbmdNYXRjaGVyIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdNYXRjaGVyKQotI2RlZmluZSBTdHJpbmdQYWlyIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdQYWlyKQotI2RlZmluZSBTdHJpbmdQaWVjZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5nUGllY2UpCi0jZGVmaW5lIFN0cmluZ1JlcGxh
Y2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdSZXBsYWNlcikKLSNkZWZpbmUgU3Ry
aW5nU2VhcmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdTZWFyY2gpCi0jZGVmaW5l
IFN0cmluZ1RvQ0VzTWFwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdUb0NFc01hcCkK
LSNkZWZpbmUgU3R5bGVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHlsZVJ1bnMpCi0j
ZGVmaW5lIFN1YnN0aXR1dGlvbkxvb2t1cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Vic3Rp
dHV0aW9uTG9va3VwKQotI2RlZmluZSBTdWJ0YWJsZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoU3VidGFibGVQcm9jZXNzb3IpCi0jZGVmaW5lIFN1blRpbWVBbmdsZUZ1bmMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFN1blRpbWVBbmdsZUZ1bmMpCi0jZGVmaW5lIFN5bWJvbFRh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTeW1ib2xUYWJsZSkKLSNkZWZpbmUgVFpFbnVt
ZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVFpFbnVtZXJhdGlvbikKLSNkZWZpbmUg
VGFpd2FuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRhaXdhbkNhbGVuZGFyKQot
I2RlZmluZSBUYXJnZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRhcmdldCkKLSNkZWZpbmUg
VGVybmFyeU5vZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRlcm5hcnlOb2RlKQotI2RlZmlu
ZSBUZXh0VHJpZU1hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGV4dFRyaWVNYXApCi0jZGVm
aW5lIFRleHRUcmllTWFwU2VhcmNoUmVzdWx0SGFuZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVGV4dFRyaWVNYXBTZWFyY2hSZXN1bHRIYW5kbGVyKQotI2RlZmluZSBUaGFpQnJlYWtFbmdp
bmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlCcmVha0VuZ2luZSkKLSNkZWZpbmUgVGhh
aUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGhhaUxheW91dEVuZ2luZSkK
LSNkZWZpbmUgVGhhaVNoYXBpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRoYWlTaGFwaW5n
KQotI2RlZmluZSBUaWJldGFuQ2xhc3NUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGli
ZXRhbkNsYXNzVGFibGUpCi0jZGVmaW5lIFRpYmV0YW5PcGVuVHlwZUxheW91dEVuZ2luZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbk9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmlu
ZSBUaWJldGFuUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhblJlb3Jk
ZXJpbmcpCi0jZGVmaW5lIFRpbWVBcnJheVRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVGltZUFycmF5VGltZVpvbmVSdWxlKQotI2RlZmluZSBUaW1lVW5pdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVGltZVVuaXQpCi0jZGVmaW5lIFRpbWVVbml0QW1vdW50IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShUaW1lVW5pdEFtb3VudCkKLSNkZWZpbmUgVGltZVVuaXRGb3JtYXQg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVVbml0Rm9ybWF0KQotI2RlZmluZSBUaW1lWm9u
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmUpCi0jZGVmaW5lIFRpbWVab25lUnVs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVpvbmVSdWxlKQotI2RlZmluZSBUaW1lWm9u
ZVRyYW5zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVab25lVHJhbnNpdGlvbikK
LSNkZWZpbmUgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRpb25SdWxlKQotI2RlZmluZSBUcmFu
c2xpdGVyYXRpb25SdWxlRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0
aW9uUnVsZURhdGEpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQpCi0jZGVmaW5lIFRyYW5zbGl0ZXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVHJh
bnNsaXRlcmF0b3JBbGlhcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JB
bGlhcykKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVHJhbnNsaXRlcmF0b3JFbnRyeSkKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JJRFBhcnNlciBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JJRFBhcnNlcikKLSNkZWZpbmUg
VHJhbnNsaXRlcmF0b3JQYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJh
dG9yUGFyc2VyKQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5KQotI2RlZmluZSBUcmFuc2xpdGVyYXRv
clNwZWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yU3BlYykKLSNkZWZp
bmUgVHJpU3RhdGVTaW5nbGV0b24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyaVN0YXRlU2lu
Z2xldG9uKQotI2RlZmluZSBUcmllV29yZERpY3Rpb25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFRyaWVXb3JkRGljdGlvbmFyeSkKLSNkZWZpbmUgVHJpbW1lZEFycmF5UHJvY2Vzc29yIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmltbWVkQXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IpCi0jZGVmaW5lIFVDb2xsYXRpb25QQ0UgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFVDb2xsYXRpb25QQ0UpCi0jZGVmaW5lIFVEYXRhUGF0aEl0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShVRGF0YVBhdGhJdGVyYXRvcikKLSNkZWZpbmUgVUxvY1J1bnMgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFVMb2NSdW5zKQotI2RlZmluZSBVTWVtb3J5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShVTWVtb3J5KQotI2RlZmluZSBVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVT2JqZWN0KQotI2RlZmluZSBVU3RhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFVTdGFjaykKLSNkZWZpbmUgVVN0cmluZ0VudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShVU3RyaW5nRW51bWVyYXRpb24pCi0jZGVmaW5lIFVUUzQ2IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVVFM0NikKLSNkZWZpbmUgVVRyaWUyU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShVVHJpZTJTaW5nbGV0b24pCi0jZGVmaW5lIFVWZWN0b3IgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFVWZWN0b3IpCi0jZGVmaW5lIFVWZWN0b3IzMiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVVZlY3RvcjMyKQotI2RlZmluZSBVVmVjdG9yNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFVWZWN0b3I2NCkKLSNkZWZpbmUgVW5lc2NhcGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVW5lc2NhcGVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVW5oYW5kbGVk
RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmhhbmRsZWRFbmdpbmUpCi0jZGVmaW5l
IFVuaWNvZGVBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVW5pY29kZUFyYWJpY09wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBVbmljb2RlRmls
dGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlRmlsdGVyKQotI2RlZmluZSBVbmlj
b2RlRnVuY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUZ1bmN0b3IpCi0jZGVm
aW5lIFVuaWNvZGVNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlTWF0Y2hl
cikKLSNkZWZpbmUgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVW5pY29kZVJlcGxhY2Vy
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmljb2RlUmVwbGFjZXIpCi0jZGVmaW5lIFVuaWNv
ZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVTZXQpCi0jZGVmaW5lIFVuaWNv
ZGVTZXRJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVNldEl0ZXJhdG9y
KQotI2RlZmluZSBVbmljb2RlU2V0U3RyaW5nU3BhbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
VW5pY29kZVNldFN0cmluZ1NwYW4pCi0jZGVmaW5lIFVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFVuaWNvZGVTdHJpbmcpCi0jZGVmaW5lIFVwcGVyY2FzZVRyYW5zbGl0ZXJh
dG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVcHBlcmNhc2VUcmFuc2xpdGVyYXRvcikKLSNk
ZWZpbmUgVlRaUmVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShWVFpSZWFkZXIpCi0jZGVm
aW5lIFZUWldyaXRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVlRaV3JpdGVyKQotI2RlZmlu
ZSBWVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZUaW1lWm9uZSkKLSNkZWZpbmUg
VmFsdWVSZWNvcmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZhbHVlUmVjb3JkKQotI2RlZmlu
ZSBWYWx1ZVJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFZhbHVlUnVucykKLSNkZWZpbmUg
WlNGQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRkNhY2hlKQotI2RlZmluZSBaU0ZD
YWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZDYWNoZUVudHJ5KQotI2RlZmlu
ZSBaU0ZTdHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShaU0ZTdHJpbmdQb29sKQot
I2RlZmluZSBaU0ZTdHJpbmdQb29sQ2h1bmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRlN0
cmluZ1Bvb2xDaHVuaykKLSNkZWZpbmUgWm9uZU1ldGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFpvbmVNZXRhKQotI2RlZmluZSBab25lU3RyaW5nRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShab25lU3RyaW5nRm9ybWF0KQotI2RlZmluZSBab25lU3RyaW5nSW5mbyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ0luZm8pCi0jZGVmaW5lIFpvbmVTdHJpbmdTZWFyY2hS
ZXN1bHRIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3RyaW5nU2VhcmNoUmVz
dWx0SGFuZGxlcikKLSNkZWZpbmUgWm9uZVN0cmluZ3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFpvbmVTdHJpbmdzKQotI2RlZmluZSBjb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoY29sbEl0ZXJhdGUpCi0jZGVmaW5lIGxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUobG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKQotI2RlZmlu
ZSB1dGlsNjRfZnJvbURvdWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRpbDY0X2Zyb21E
b3VibGUpCi0jZGVmaW5lIHV0aWw2NF9wb3cgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2
NF9wb3cpCi0jZGVmaW5lIHV0aWw2NF90b3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2
NF90b3UpCi0KLSNlbmRpZgotI2VuZGlmCi0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2lj
dS91bmljb2RlL3VzY3JpcHQuaAppbmRleCBlZTIxYzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkw
NjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRhZmFiNTNmZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2NyaXB0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNjcmlwdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0gKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCkBAIC00NCwxODIgKzQ0LDM2OSBA
QAogICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVU2NyaXB0Q29kZSB7Cisg
ICAgLyoKKyAgICAgKiBOb3RlOiBVU2NyaXB0Q29kZSBjb25zdGFudHMgYW5kIHRoZWlyIElTTyBz
Y3JpcHQgY29kZSBjb21tZW50cworICAgICAqIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHku
CisgICAgICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVTQ1JJUFRfPFVuaWNv
ZGUgU2NyaXB0IHZhbHVlIG5hbWU+ID0gPGludGVnZXI+LCAgLyAqIDxJU08gc2NyaXB0IGNvZGU+
ICogLworICAgICAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NS
SVBUX0lOVkFMSURfQ09ERSA9IC0xLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAg
ICAgVVNDUklQVF9DT01NT04gICAgICAgPSAgMCwgIC8qIFp5eXkgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSU5IRVJJVEVEICAgID0gIDEsICAvKiBaaW5o
ICovIC8qICJDb2RlIGZvciBpbmhlcml0ZWQgc2NyaXB0IiwgZm9yIG5vbi1zcGFjaW5nIGNvbWJp
bmluZyBtYXJrczsgYWxzbyBRYWFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0FSQUJJQyAgICAgICA9ICAyLCAgLyogQXJhYiAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9BUk1FTklBTiAgICAgPSAgMywgIC8qIEFy
bW4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQkVOR0FM
SSAgICAgID0gIDQsICAvKiBCZW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0JPUE9NT0ZPICAgICA9ICA1LCAgLyogQm9wbyAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DSEVST0tFRSAgICAgPSAgNiwgIC8qIENo
ZXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09QVElD
ICAgICAgID0gIDcsICAvKiBDb3B0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0NZUklMTElDICAgICA9ICA4LCAgLyogQ3lybCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ERVNFUkVUICAgICAgPSAgOSwgIC8qIERz
cnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfREVWQU5B
R0FSSSAgID0gMTAsICAvKiBEZXZhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0VUSElPUElDICAgICA9IDExLCAgLyogRXRoaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HRU9SR0lBTiAgICAgPSAxMiwgIC8qIEdl
b3IgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR09USElD
ICAgICAgID0gMTMsICAvKiBHb3RoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0dSRUVLICAgICAgICA9IDE0LCAgLyogR3JlayAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9HVUpBUkFUSSAgICAgPSAxNSwgIC8qIEd1
anIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1VSTVVL
SEkgICAgID0gMTYsICAvKiBHdXJ1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0hBTiAgICAgICAgICA9IDE3LCAgLyogSGFuaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9IQU5HVUwgICAgICAgPSAxOCwgIC8qIEhh
bmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEVCUkVX
ICAgICAgID0gMTksICAvKiBIZWJyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0hJUkFHQU5BICAgICA9IDIwLCAgLyogSGlyYSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9LQU5OQURBICAgICAgPSAyMSwgIC8qIEtu
ZGEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0FUQUtB
TkEgICAgID0gMjIsICAvKiBLYW5hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX0tITUVSICAgICAgICA9IDIzLCAgLyogS2htciAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9MQU8gICAgICAgICAgPSAyNCwgIC8qIExh
b28gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU4g
ICAgICAgID0gMjUsICAvKiBMYXRuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX01BTEFZQUxBTSAgICA9IDI2LCAgLyogTWx5bSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9NT05HT0xJQU4gICAgPSAyNywgIC8qIE1v
bmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTVlBTk1B
UiAgICAgID0gMjgsICAvKiBNeW1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX09HSEFNICAgICAgICA9IDI5LCAgLyogT2dhbSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9PTERfSVRBTElDICAgPSAzMCwgIC8qIEl0
YWwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT1JJWUEg
ICAgICAgID0gMzEsICAvKiBPcnlhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX1JVTklDICAgICAgICA9IDMyLCAgLyogUnVuciAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9TSU5IQUxBICAgICAgPSAzMywgIC8qIFNp
bmggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfU1lSSUFD
ICAgICAgID0gMzQsICAvKiBTeXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX1RBTUlMICAgICAgICA9IDM1LCAgLyogVGFtbCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9URUxVR1UgICAgICAgPSAzNiwgIC8qIFRl
bHUgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEhBQU5B
ICAgICAgID0gMzcsICAvKiBUaGFhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAg
ICAgICBVU0NSSVBUX1RIQUkgICAgICAgICA9IDM4LCAgLyogVGhhaSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9USUJFVEFOICAgICAgPSAzOSwgIC8qIFRp
YnQgKi8KICAgICAgIC8qKiBDYW5hZGlhbl9BYm9yaWdpbmFsIHNjcmlwdC4gQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX0NBTkFESUFOX0FCT1JJR0lOQUwgPSA0MCwgIC8qIENhbnMg
Ki8KICAgICAgIC8qKiBDYW5hZGlhbl9BYm9yaWdpbmFsIHNjcmlwdCAoYWxpYXMpLiBAc3RhYmxl
IElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVUNBUyAgICAgICAgID0gVVNDUklQVF9DQU5BRElB
Tl9BQk9SSUdJTkFMLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQ
VF9ZSSAgICAgICAgICAgPSA0MSwgIC8qIFlpaWkgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGlu
IFVuaWNvZGUgMy4yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NS
SVBUX1RBR0FMT0cgICAgICA9IDQyLCAgLyogVGdsZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuMiAqLwogICAgICAgVVNDUklQVF9IQU5VTk9PICAgICAgPSA0MywgIC8qIEhhbm8gKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQlVISUQgICAgICAgID0g
NDQsICAvKiBCdWhkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NS
SVBUX1RBR0JBTldBICAgICA9IDQ1LCAgLyogVGFnYiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0
cyBpbiBVbmljb2RlIDQgQHN0YWJsZSBJQ1UgMi42ICovCisgICAgICAvKiBOZXcgc2NyaXB0cyBp
biBVbmljb2RlIDQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJ
UFRfQlJBSUxMRSAgICAgID0gNDYsICAvKiBCcmFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX0NZUFJJT1QgICAgICA9IDQ3LCAgLyogQ3BydCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9MSU1CVSAgICAgICAgPSA0
OCwgIC8qIExpbWIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJ
UFRfTElORUFSX0IgICAgID0gNDksICAvKiBMaW5iICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX09TTUFOWUEgICAgICA9IDUwLCAgLyogT3NtYSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuNiAqLwogICAgICAgVVNDUklQVF9TSEFWSUFOICAgICAgPSA1
MSwgIC8qIFNoYXcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJ
UFRfVEFJX0xFICAgICAgID0gNTIsICAvKiBUYWxlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi42ICovCiAgICAgICBVU0NSSVBUX1VHQVJJVElDICAgICA9IDUzLCAgLyogVWdhciAqLwogCiAg
ICAgICAvKiogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4wLjEgQHN0YWJsZSBJQ1UgMy4w
ICovCiAgICAgICBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BID0gNTQsLypIcmt0ICovCiAK
LSAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgNC4xIEBzdGFibGUgSUNVIDMuNCAqLwor
ICAgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0LjEgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfQlVHSU5FU0UgICAgICA9IDU1LCAvKiBCdWdpICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0dMQUdPTElUSUMg
ICAgPSA1NiwgLyogR2xhZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAg
VVNDUklQVF9LSEFST1NIVEhJICAgID0gNTcsIC8qIEtoYXIgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfU1lMT1RJX05BR1JJICA9IDU4LCAvKiBTeWxvICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX05FV19UQUlfTFVF
ICAgPSA1OSwgLyogVGFsdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAg
VVNDUklQVF9USUZJTkFHSCAgICAgID0gNjAsIC8qIFRmbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjQgKi8KICAgICAgIFVTQ1JJUFRfT0xEX1BFUlNJQU4gICA9IDYxLCAvKiBYcGVvICov
CiAKLSAgICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1Ug
My42ICovCisgICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JBTElORVNFICAgICAgICAg
ICAgICAgICAgICAgID0gNjIsIC8qIEJhbGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYg
Ki8KICAgICAgIFVTQ1JJUFRfQkFUQUsgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MywgLyog
QmF0ayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9CTElT
U1lNQk9MUyAgICAgICAgICAgICAgICAgICA9IDY0LCAvKiBCbGlzICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0JSQUhNSSAgICAgICAgICAgICAgICAgICAg
ICAgID0gNjUsIC8qIEJyYWggKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAg
IFVTQ1JJUFRfQ0hBTSAgICAgICAgICAgICAgICAgICAgICAgICAgPSA2NiwgLyogQ2hhbSAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DSVJUSCAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDY3LCAvKiBDaXJ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My42ICovCiAgICAgICBVU0NSSVBUX09MRF9DSFVSQ0hfU0xBVk9OSUNfQ1lSSUxMSUMgID0gNjgs
IC8qIEN5cnMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRf
REVNT1RJQ19FR1lQVElBTiAgICAgICAgICAgICAgPSA2OSwgLyogRWd5ZCAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ISUVSQVRJQ19FR1lQVElBTiAgICAg
ICAgICAgICA9IDcwLCAvKiBFZ3loICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAg
ICAgICBVU0NSSVBUX0VHWVBUSUFOX0hJRVJPR0xZUEhTICAgICAgICAgID0gNzEsIC8qIEVneXAg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0hVVFNVUkkg
ICAgICAgICAgICAgICAgICAgICAgPSA3MiwgLyogR2VvayAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9TSU1QTElGSUVEX0hBTiAgICAgICAgICAgICAgICA9
IDczLCAvKiBIYW5zICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NS
SVBUX1RSQURJVElPTkFMX0hBTiAgICAgICAgICAgICAgID0gNzQsIC8qIEhhbnQgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfUEFIQVdIX0hNT05HICAgICAg
ICAgICAgICAgICAgPSA3NSwgLyogSG1uZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAq
LwogICAgICAgVVNDUklQVF9PTERfSFVOR0FSSUFOICAgICAgICAgICAgICAgICA9IDc2LCAvKiBI
dW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0hBUkFQ
UEFOX0lORFVTICAgICAgICAgICAgICAgID0gNzcsIC8qIEluZHMgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfSkFWQU5FU0UgICAgICAgICAgICAgICAgICAg
ICAgPSA3OCwgLyogSmF2YSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9LQVlBSF9MSSAgICAgICAgICAgICAgICAgICAgICA9IDc5LCAvKiBLYWxpICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0ZSQUtUVVIg
ICAgICAgICAgICAgICAgID0gODAsIC8qIExhdGYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU5fR0FFTElDICAgICAgICAgICAgICAgICAgPSA4MSwg
LyogTGF0ZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9M
RVBDSEEgICAgICAgICAgICAgICAgICAgICAgICA9IDgyLCAvKiBMZXBjICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xJTkVBUl9BICAgICAgICAgICAgICAg
ICAgICAgID0gODMsIC8qIExpbmEgKi8KICAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAg
ICAgIFVTQ1JJUFRfTUFOREFJQyAgICAgICAgICAgICAgICAgICAgICAgPSA4NCwgLyogTWFuZCAq
LwogICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9NQU5EQUVBTiAg
ICAgICAgICAgICAgICAgICAgICA9IFVTQ1JJUFRfTUFOREFJQywKKyAgICAgIC8qKiBAc3RhYmxl
IElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTUFZQU5fSElFUk9HTFlQSFMgICAgICAgICAgICAg
PSA4NSwgLyogTWF5YSAqLwogICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVND
UklQVF9NRVJPSVRJQ19ISUVST0dMWVBIUyAgICAgICAgICA9IDg2LCAvKiBNZXJvICovCiAgICAg
ICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElDICAgICAgICAg
ICAgICAgICAgICAgID0gVVNDUklQVF9NRVJPSVRJQ19ISUVST0dMWVBIUywKKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfTktPICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSA4NywgLyogTmtvbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAg
ICAgVVNDUklQVF9PUktIT04gICAgICAgICAgICAgICAgICAgICAgICA9IDg4LCAvKiBPcmtoICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX09MRF9QRVJNSUMg
ICAgICAgICAgICAgICAgICAgID0gODksIC8qIFBlcm0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfUEhBR1NfUEEgICAgICAgICAgICAgICAgICAgICAgPSA5
MCwgLyogUGhhZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQ
VF9QSE9FTklDSUFOICAgICAgICAgICAgICAgICAgICA9IDkxLCAvKiBQaG54ICovCi0gICAgICBV
U0NSSVBUX1BIT05FVElDX1BPTExBUkQgICAgICAgICAgICAgID0gOTIsIC8qIFBscmQgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA1MiAqLworICAgICAgVVNDUklQVF9NSUFPICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDkyLCAvKiBQbHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42
ICovCisgICAgICBVU0NSSVBUX1BIT05FVElDX1BPTExBUkQgICAgICAgICAgICAgID0gVVNDUklQ
VF9NSUFPLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ST05H
T1JPTkdPICAgICAgICAgICAgICAgICAgICA9IDkzLCAvKiBSb3JvICovCisgICAgICAvKiogQHN0
YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1NBUkFUSSAgICAgICAgICAgICAgICAgICAg
ICAgID0gOTQsIC8qIFNhcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAg
IFVTQ1JJUFRfRVNUUkFOR0VMT19TWVJJQUMgICAgICAgICAgICAgPSA5NSwgLyogU3lyZSAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9XRVNURVJOX1NZUklB
QyAgICAgICAgICAgICAgICA9IDk2LCAvKiBTeXJqICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My42ICovCiAgICAgICBVU0NSSVBUX0VBU1RFUk5fU1lSSUFDICAgICAgICAgICAgICAgID0gOTcs
IC8qIFN5cm4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRf
VEVOR1dBUiAgICAgICAgICAgICAgICAgICAgICAgPSA5OCwgLyogVGVuZyAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9WQUkgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDk5LCAvKiBWYWlpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAg
ICAgICBVU0NSSVBUX1ZJU0lCTEVfU1BFRUNIICAgICAgICAgICAgICAgID0gMTAwLC8qIFZpc3Ag
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ1VORUlGT1JN
ICAgICAgICAgICAgICAgICAgICAgPSAxMDEsLyogWHN1eCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9VTldSSVRURU5fTEFOR1VBR0VTICAgICAgICAgICA9
IDEwMiwvKiBaeHh4ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NS
SVBUX1VOS05PV04gICAgICAgICAgICAgICAgICAgICAgID0gMTAzLC8qIFp6enogKi8gLyogVW5r
bm93bj0iQ29kZSBmb3IgdW5jb2RlZCBzY3JpcHQiLCBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50
cyAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUg
SUNVIDMuOCAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLwor
ICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9DQVJJQU4gICAgICAg
ICAgICAgICAgICAgICAgICA9IDEwNCwvKiBDYXJpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My44ICovCiAgICAgICBVU0NSSVBUX0pBUEFORVNFICAgICAgICAgICAgICAgICAgICAgID0gMTA1
LC8qIEpwYW4gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRf
TEFOTkEgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMDYsLyogTGFuYSAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9MWUNJQU4gICAgICAgICAgICAgICAg
ICAgICAgICA9IDEwNywvKiBMeWNpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAg
ICAgICBVU0NSSVBUX0xZRElBTiAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4LC8qIEx5ZGkg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfT0xfQ0hJS0kg
ICAgICAgICAgICAgICAgICAgICAgPSAxMDksLyogT2xjayAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9SRUpBTkcgICAgICAgICAgICAgICAgICAgICAgICA9
IDExMCwvKiBSam5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NS
SVBUX1NBVVJBU0hUUkEgICAgICAgICAgICAgICAgICAgID0gMTExLC8qIFNhdXIgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfU0lHTl9XUklUSU5HICAgICAg
ICAgICAgICAgICAgPSAxMTIsLyogU2dudyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAq
LwogICAgICAgVVNDUklQVF9TVU5EQU5FU0UgICAgICAgICAgICAgICAgICAgICA9IDExMywvKiBT
dW5kICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01PT04g
ICAgICAgICAgICAgICAgICAgICAgICAgID0gMTE0LC8qIE1vb24gKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTUVJVEVJX01BWUVLICAgICAgICAgICAgICAg
ICAgPSAxMTUsLyogTXRlaSAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNP
IDE1OTI0IEBzdGFibGUgSUNVIDQuMCAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9t
IElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQ
VF9JTVBFUklBTF9BUkFNQUlDICAgICAgICAgICAgICA9IDExNiwvKiBBcm1pICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0FWRVNUQU4gICAgICAgICAgICAg
ICAgICAgICAgID0gMTE3LC8qIEF2c3QgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8K
ICAgICAgIFVTQ1JJUFRfQ0hBS01BICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTgsLyogQ2Fr
bSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LT1JFQU4g
ICAgICAgICAgICAgICAgICAgICAgICA9IDExOSwvKiBLb3JlICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX0tBSVRISSAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTIwLC8qIEt0aGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVT
Q1JJUFRfTUFOSUNIQUVBTiAgICAgICAgICAgICAgICAgICAgPSAxMjEsLyogTWFuaSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BB
SExBVkkgICAgICAgICA9IDEyMiwvKiBQaGxpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4w
ICovCiAgICAgICBVU0NSSVBUX1BTQUxURVJfUEFITEFWSSAgICAgICAgICAgICAgID0gMTIzLC8q
IFBobHAgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQk9P
S19QQUhMQVZJICAgICAgICAgICAgICAgICAgPSAxMjQsLyogUGhsdiAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBUlRISUFOICAg
ICAgICA9IDEyNSwvKiBQcnRpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAg
ICBVU0NSSVBUX1NBTUFSSVRBTiAgICAgICAgICAgICAgICAgICAgID0gMTI2LC8qIFNhbXIgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfVEFJX1ZJRVQgICAg
ICAgICAgICAgICAgICAgICAgPSAxMjcsLyogVGF2dCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuMCAqLwogICAgICAgVVNDUklQVF9NQVRIRU1BVElDQUxfTk9UQVRJT04gICAgICAgICA9IDEy
OCwvKiBabXRoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBU
X1NZTUJPTFMgICAgICAgICAgICAgICAgICAgICAgID0gMTI5LC8qIFpzeW0gKi8KIAotICAgICAg
LyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjQgKi8KKyAg
ICAgIC8qIE5ldyBzY3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSA0LjQgKi8KICAgICAgIFVTQ1JJUFRfQkFNVU0gICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxMzAsLyogQmFtdSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAg
VVNDUklQVF9MSVNVICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEzMSwvKiBMaXN1ICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgNC40ICovCiAgICAgICBVU0NSSVBUX05BS0hJX0dFQkEgICAg
ICAgICAgICAgICAgICAgID0gMTMyLC8qIE5rZ2IgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0
LjQgKi8KICAgICAgIFVTQ1JJUFRfT0xEX1NPVVRIX0FSQUJJQU4gICAgICAgICAgICAgPSAxMzMs
LyogU2FyYiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBz
dGFibGUgSUNVIDQuNiAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTky
NCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9CQVNTQV9W
QUggICAgICAgICAgICAgICAgICAgICA9IDEzNCwvKiBCYXNzICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX0RVUExPWUFOX1NIT1JUQU5EICAgICAgICAgICAg
ID0gMTM1LC8qIER1cGwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVT
Q1JJUFRfRUxCQVNBTiAgICAgICAgICAgICAgICAgICAgICAgPSAxMzYsLyogRWxiYSAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9HUkFOVEhBICAgICAgICAg
ICAgICAgICAgICAgICA9IDEzNywvKiBHcmFuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42
ICovCiAgICAgICBVU0NSSVBUX0tQRUxMRSAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LC8q
IEtwZWwgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTE9N
QSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzksLyogTG9tYSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRU5ERSAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDE0MCwvKiBNZW5kICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAg
ICBVU0NSSVBUX01FUk9JVElDX0NVUlNJVkUgICAgICAgICAgICAgID0gMTQxLC8qIE1lcmMgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX05PUlRIX0FS
QUJJQU4gICAgICAgICAgICAgPSAxNDIsLyogTmFyYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuNiAqLwogICAgICAgVVNDUklQVF9OQUJBVEFFQU4gICAgICAgICAgICAgICAgICAgICA9IDE0
MywvKiBOYmF0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBU
X1BBTE1ZUkVORSAgICAgICAgICAgICAgICAgICAgID0gMTQ0LC8qIFBhbG0gKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfU0lOREhJICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNDUsLyogU2luZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwog
ICAgICAgVVNDUklQVF9XQVJBTkdfQ0lUSSAgICAgICAgICAgICAgICAgICA9IDE0NiwvKiBXYXJh
ICovCiAKKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfQUZBS0Eg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDcsLyogQWZhayAqLworICAgICAgLyoqIEBzdGFi
bGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9KVVJDSEVOICAgICAgICAgICAgICAgICAgICAg
ICA9IDE0OCwvKiBKdXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBV
U0NSSVBUX01STyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQ5LC8qIE1yb28gKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfTlVTSFUgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxNTAsLyogTnNodSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQu
OCAqLworICAgICAgVVNDUklQVF9TSEFSQURBICAgICAgICAgICAgICAgICAgICAgICA9IDE1MSwv
KiBTaHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1NP
UkFfU09NUEVORyAgICAgICAgICAgICAgICAgID0gMTUyLC8qIFNvcmEgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfVEFLUkkgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxNTMsLyogVGFrciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAg
ICAgVVNDUklQVF9UQU5HVVQgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NCwvKiBUYW5nICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1dPTEVBSSAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTU1LC8qIFdvbGUgKi8KKworICAgICAgLyoqIEBzdGFibGUg
SUNVIDQ5ICovCisgICAgICBVU0NSSVBUX0FOQVRPTElBTl9ISUVST0dMWVBIUyAgICAgICAgID0g
MTU2LC8qIEhsdXcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQ
VF9LSE9KS0kgICAgICAgICAgICAgICAgICAgICAgICA9IDE1NywvKiBLaG9qICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICAgIFVTQ1JJUFRfVElSSFVUQSAgICAgICAgICAgICAg
ICAgICAgICAgPSAxNTgsLyogVGlyaCAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8K
KyAgICAgIFVTQ1JJUFRfQ0FVQ0FTSUFOX0FMQkFOSUFOICAgICAgICAgICAgPSAxNTksLyogQWdo
YiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX01BSEFKQU5J
ICAgICAgICAgICAgICAgICAgICAgID0gMTYwLC8qIE1haGogKi8KKwogICAgICAgLyogUHJpdmF0
ZSB1c2UgY29kZXMgZnJvbSBRYWFhIC0gUWFieCBhcmUgbm90IHN1cHBvcnRlZCAqLwotICAgICAg
VVNDUklQVF9DT0RFX0xJTUlUICAgID0gMTQ3CisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIg
Ki8KKyAgICAgIFVTQ1JJUFRfQ09ERV9MSU1JVCAgICA9IDE2MQogfSBVU2NyaXB0Q29kZTsKIAog
LyoqCkBAIC0yNzcsOSArNDY0LDkgQEAgVV9TVEFCTEUgVVNjcmlwdENvZGUgIFVfRVhQT1JUMgog
dXNjcmlwdF9nZXRTY3JpcHQoVUNoYXIzMiBjb2RlcG9pbnQsIFVFcnJvckNvZGUgKmVycik7CiAK
IC8qKgotICogSXMgY29kZSBwb2ludCBjIHVzZWQgaW4gc2NyaXB0IHNjPwotICogVGhhdCBpcywg
ZG9lcyBjb2RlIHBvaW50IGMgaGF2ZSB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLAotICog
b3IgZG8gY29kZSBwb2ludCBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMgaW5jbHVkZSBzY3JpcHQgY29k
ZSBzYz8KKyAqIERvIHRoZSBTY3JpcHRfRXh0ZW5zaW9ucyBvZiBjb2RlIHBvaW50IGMgY29udGFp
biBzY3JpcHQgc2M/CisgKiBJZiBjIGRvZXMgbm90IGhhdmUgZXhwbGljaXQgU2NyaXB0X0V4dGVu
c2lvbnMsIHRoZW4gdGhpcyB0ZXN0cyB3aGV0aGVyCisgKiBjIGhhcyB0aGUgU2NyaXB0IHByb3Bl
cnR5IHZhbHVlIHNjLgogICoKICAqIFNvbWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBp
biBtdWx0aXBsZSBzY3JpcHRzLgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0
OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyNC8uCkBAIC0yODgsMTUgKzQ3NSwy
MiBAQCB1c2NyaXB0X2dldFNjcmlwdChVQ2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJy
KTsKICAqIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRo
dXMgaW4gSUNVLgogICogQHBhcmFtIGMgY29kZSBwb2ludAogICogQHBhcmFtIHNjIHNjcmlwdCBj
b2RlCi0gKiBAcmV0dXJuIFRSVUUgaWYgU2NyaXB0KGMpPT1zYyBvciBzYyBpcyBpbiBTY3JpcHRf
RXh0ZW5zaW9ucyhjKQotICogQGRyYWZ0IElDVSA0LjYKKyAqIEByZXR1cm4gVFJVRSBpZiBzYyBp
cyBpbiBTY3JpcHRfRXh0ZW5zaW9ucyhjKQorICogQHN0YWJsZSBJQ1UgNDkKICAqLwotVV9EUkFG
VCBVQm9vbCBVX0VYUE9SVDIKK1VfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgogdXNjcmlwdF9oYXNT
Y3JpcHQoVUNoYXIzMiBjLCBVU2NyaXB0Q29kZSBzYyk7CiAKIC8qKgogICogV3JpdGVzIGNvZGUg
cG9pbnQgYydzIFNjcmlwdF9FeHRlbnNpb25zIGFzIGEgbGlzdCBvZiBVU2NyaXB0Q29kZSB2YWx1
ZXMKLSAqIHRvIHRoZSBvdXRwdXQgc2NyaXB0cyBhcnJheS4KKyAqIHRvIHRoZSBvdXRwdXQgc2Ny
aXB0cyBhcnJheSBhbmQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNjcmlwdCBjb2Rlcy4KKyAqIC0g
SWYgYyBkb2VzIGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIFNjcmlwdCBwcm9wZXJ0
eSB2YWx1ZQorICogICAobm9ybWFsbHkgQ29tbW9uIG9yIEluaGVyaXRlZCkgaXMgbm90IGluY2x1
ZGVkLgorICogLSBJZiBjIGRvZXMgbm90IGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhl
IG9uZSBTY3JpcHQgY29kZSBpcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYXJyYXkuCisgKiAtIElm
IGMgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCwgdGhlbiB0aGUgb25lIFVTQ1JJUFRfVU5LTk9X
TiBjb2RlIGlzIHdyaXR0ZW4uCisgKiBJbiBvdGhlciB3b3JkcywgaWYgdGhlIHJldHVybiB2YWx1
ZSBpcyAxLAorICogdGhlbiB0aGUgb3V0cHV0IGFycmF5IGNvbnRhaW5zIGV4YWN0bHkgYydzIHNp
bmdsZSBTY3JpcHQgY29kZS4KKyAqIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbj49MiwgdGhlbiB0
aGUgb3V0cHV0IGFycmF5IGNvbnRhaW5zIGMncyBuIFNjcmlwdF9FeHRlbnNpb25zIHNjcmlwdCBj
b2Rlcy4KICAqCiAgKiBTb21lIGNoYXJhY3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlw
bGUgc2NyaXB0cy4KICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDov
L3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjQvLgpAQCAtMzE0LDEzICs1MDgsMTIwIEBAIHVz
Y3JpcHRfaGFzU2NyaXB0KFVDaGFyMzIgYywgVVNjcmlwdENvZGUgc2MpOwogICogICAgICAgICAg
ICAgICAgICBwYXNzIHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiBy
ZXR1cm5zCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlM
VVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQotICogQHJldHVybiBudW1i
ZXIgb2Ygc2NyaXB0IGNvZGVzIGluIGMncyBTY3JpcHRfRXh0ZW5zaW9ucywKKyAqIEByZXR1cm4g
bnVtYmVyIG9mIHNjcmlwdCBjb2RlcyBpbiBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMsIG9yIDEgZm9y
IHRoZSBzaW5nbGUgU2NyaXB0IHZhbHVlLAogICogICAgICAgICB3cml0dGVuIHRvIHNjcmlwdHMg
dW5sZXNzIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIGluZGljYXRlcyBpbnN1ZmZpY2llbnQgY2Fw
YWNpdHkKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZU
IGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdXNjcmlwdF9n
ZXRTY3JpcHRFeHRlbnNpb25zKFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVU2NyaXB0Q29kZSAqc2NyaXB0cywgaW50MzJfdCBjYXBhY2l0eSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICplcnJvckNvZGUpOworCisjaWZuZGVmIFVfSElERV9EUkFG
VF9BUEkKKworLyoqCisgKiBTY3JpcHQgdXNhZ2UgY29uc3RhbnRzLgorICogU2VlIFVBWCAjMzEg
VW5pY29kZSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheC4KKyAqIGh0dHA6Ly93d3cudW5p
Y29kZS5vcmcvcmVwb3J0cy90cjMxLyNUYWJsZV9DYW5kaWRhdGVfQ2hhcmFjdGVyc19mb3JfRXhj
bHVzaW9uX2Zyb21fSWRlbnRpZmllcnMKKyAqCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK3R5cGVk
ZWYgZW51bSBVU2NyaXB0VXNhZ2UgeworICAgIC8qKiBOb3QgZW5jb2RlZCBpbiBVbmljb2RlLiBA
ZHJhZnQgSUNVIDUxICovCisgICAgVVNDUklQVF9VU0FHRV9OT1RfRU5DT0RFRCwKKyAgICAvKiog
VW5rbm93biBzY3JpcHQgdXNhZ2UuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdF
X1VOS05PV04sCisgICAgLyoqIENhbmRpZGF0ZSBmb3IgRXhjbHVzaW9uIGZyb20gSWRlbnRpZmll
cnMuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0VYQ0xVREVELAorICAgIC8q
KiBMaW1pdGVkIFVzZSBzY3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdF
X0xJTUlURURfVVNFLAorICAgIC8qKiBBc3BpcmF0aW9uYWwgVXNlIHNjcmlwdC4gQGRyYWZ0IElD
VSA1MSAqLworICAgIFVTQ1JJUFRfVVNBR0VfQVNQSVJBVElPTkFMLAorICAgIC8qKiBSZWNvbW1l
bmRlZCBzY3JpcHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1JFQ09NTUVO
REVECit9IFVTY3JpcHRVc2FnZTsKKworLyoqCisgKiBXcml0ZXMgdGhlIHNjcmlwdCBzYW1wbGUg
Y2hhcmFjdGVyIHN0cmluZy4KKyAqIFRoaXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9u
ZSBjb2RlIHBvaW50IGJ1dCBtaWdodCBiZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5
IGlmIHRoZSBzY3JpcHQgaXMgbm90IGVuY29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3Jp
cHQgY29kZQorICogQHBhcmFtIGRlc3Qgb3V0cHV0IHN0cmluZyBhcnJheQorICogQHBhcmFtIGNh
cGFjaXR5IG51bWJlciBvZiBVQ2hhcnMgaW4gdGhlIGRlc3QgYXJyYXkKKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIHN0YW5kYXJkIElDVSBpbi9vdXQgZXJyb3IgY29kZSwgbXVzdCBwYXNzIFVfU1VDQ0VT
UygpIG9uIGlucHV0CisgKiBAcmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoLCBldmVuIGlmIFVfQlVG
RkVSX09WRVJGTE9XX0VSUk9SCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgaW50MzJf
dCBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nKFVTY3JpcHRDb2RlIHNjcmlwdCwg
VUNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KK2NsYXNzIFVu
aWNvZGVTdHJpbmc7CitVX05BTUVTUEFDRV9FTkQKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3Jp
cHQgc2FtcGxlIGNoYXJhY3RlciBzdHJpbmcuCisgKiBUaGlzIHN0cmluZyBub3JtYWxseSBjb25z
aXN0cyBvZiBvbmUgY29kZSBwb2ludCBidXQgbWlnaHQgYmUgbG9uZ2VyLgorICogVGhlIHN0cmlu
ZyBpcyBlbXB0eSBpZiB0aGUgc2NyaXB0IGlzIG5vdCBlbmNvZGVkLgorICoKKyAqIEBwYXJhbSBz
Y3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gdGhlIHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5n
CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfQ09NTU9OX0FQSSBpY3U6OlVuaWNvZGVTdHJpbmcg
VV9FWFBPUlQyCit1c2NyaXB0X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcoVVNjcmlwdENvZGUgc2Ny
aXB0KTsKKworI2VuZGlmCisKKy8qKgorICogUmV0dXJucyB0aGUgc2NyaXB0IHVzYWdlIGFjY29y
ZGluZyB0byBVQVggIzMxIFVuaWNvZGUgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXguCisg
KiBSZXR1cm5zIFVTQ1JJUFRfVVNBR0VfTk9UX0VOQ09ERUQgaWYgdGhlIHNjcmlwdCBpcyBub3Qg
ZW5jb2RlZCBpbiBVbmljb2RlLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAq
IEByZXR1cm4gc2NyaXB0IHVzYWdlCisgKiBAc2VlIFVTY3JpcHRVc2FnZQorICogQGRyYWZ0IElD
VSA1MQorICovCitVX0RSQUZUIFVTY3JpcHRVc2FnZSBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0VXNh
Z2UoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNj
cmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisgKiBGb3IgZXhhbXBsZSwgQXJhYiBhbmQg
SGVici4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIFRSVUUg
aWYgdGhlIHNjcmlwdCBpcyByaWdodC10by1sZWZ0CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1Vf
RFJBRlQgVUJvb2wgVV9FWFBPUlQyCit1c2NyaXB0X2lzUmlnaHRUb0xlZnQoVVNjcmlwdENvZGUg
c2NyaXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGlu
ZSBicmVha3MgYmV0d2VlbiBsZXR0ZXJzIChleGNsdWRpbmcgaHlwaGVuYXRpb24pLgorICogU3Vj
aCBhIHNjcmlwdCB0eXBpY2FsbHkgcmVxdWlyZXMgZGljdGlvbmFyeS1iYXNlZCBsaW5lIGJyZWFr
aW5nLgorICogRm9yIGV4YW1wbGUsIEhhbmkgYW5kIFRoYWkuCisgKgorICogQHBhcmFtIHNjcmlw
dCBzY3JpcHQgY29kZQorICogQHJldHVybiBUUlVFIGlmIHRoZSBzY3JpcHQgYWxsb3dzIGxpbmUg
YnJlYWtzIGJldHdlZW4gbGV0dGVycworICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVC
b29sIFVfRVhQT1JUMgordXNjcmlwdF9icmVha3NCZXR3ZWVuTGV0dGVycyhVU2NyaXB0Q29kZSBz
Y3JpcHQpOworCisvKioKKyAqIFJldHVybnMgVFJVRSBpZiBpbiBtb2Rlcm4gKG9yIG1vc3QgcmVj
ZW50KSB1c2FnZSBvZiB0aGUgc2NyaXB0IGNhc2UgZGlzdGluY3Rpb25zIGFyZSBjdXN0b21hcnku
CisgKiBGb3IgZXhhbXBsZSwgTGF0biBhbmQgQ3lybC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNj
cmlwdCBjb2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyBjYXNlZAorICogQGRy
YWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9pc0Nhc2Vk
KFVTY3JpcHRDb2RlIHNjcmlwdCk7CisKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLwog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZWFyY2gu
aCBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZWFyY2guaAppbmRleCAyZjNkNTYzOTAy
YjM5MGYwZTcxNDk5OWU4MzkyMTQwNTRlZjY4Nzk3Li45ZjMwNWViODcyMDQxMzhiM2RjNTE1ODRl
OTY4ZWJiM2YwNzcxOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91
c2VhcmNoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNlYXJjaC5oCkBAIC0x
LDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAx
MCBJQk0gYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogICBDb3B5cmlnaHQgKEMp
IDIwMDEtMjAxMSBJQk0gYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKICogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgogKiAgMDYvMjgv
MjAwMSAgIHN5bndlZSAgICAgIENyZWF0aW9uLgpAQCAtNTg2LDggKzU4Niw4IEBAIFVfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyIHVzZWFyY2hfZmlyc3QoVVN0cmluZ1NlYXJjaCAqc3Ryc3JjaCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAg
ICpzdGF0dXMpOwogCiAvKioKLSogUmV0dXJucyB0aGUgZmlyc3QgaW5kZXggZ3JlYXRlciB0aGFu
IDx0dD5wb3NpdGlvbjwvdHQ+IGF0IHdoaWNoIHRoZSBzdHJpbmcgCi0qIHRleHQgCisqIFJldHVy
bnMgdGhlIGZpcnN0IGluZGV4IGVxdWFsIG9yIGdyZWF0ZXIgdGhhbiA8dHQ+cG9zaXRpb248L3R0
PiBhdCB3aGljaAorKiB0aGUgc3RyaW5nIHRleHQKICogbWF0Y2hlcyB0aGUgc2VhcmNoIHBhdHRl
cm4uIFRoZSBpdGVyYXRvciBpcyBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IAogKiBpbmRl
eCAoYXMgcmV0dXJuZWQgYnkgPHR0PnVzZWFyY2hfZ2V0T2Zmc2V0PC90dD4pIGlzIHRoZSBtYXRj
aCBwb3NpdGlvbiBpZiAKICogb25lIHdhcyBmb3VuZC4KQEAgLTYzOCw3ICs2MzgsMTIgQEAgVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIgdXNlYXJjaF9sYXN0KFVTdHJpbmdTZWFyY2ggKnN0cnNy
Y2gsCiAqIDxwPgogKiBTZWFyY2ggcG9zaXRpb25zIHRoYXQgbWF5IHJlbmRlciBpbmNvcnJlY3Qg
cmVzdWx0cyBhcmUgaGlnaGxpZ2h0ZWQgaW4gdGhlCiAqIGhlYWRlciBjb21tZW50cy4gSWYgcG9z
aXRpb24gaXMgbGVzcyB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGV4dCByYW5nZSAKLSogZm9y
IHNlYXJjaGluZywgYW4gVV9JTkRFWF9PVVRPRkJPVU5EU19FUlJPUiB3aWxsIGJlIHJldHVybmVk
CisqIGZvciBzZWFyY2hpbmcsIGFuIFVfSU5ERVhfT1VUT0ZCT1VORFNfRVJST1Igd2lsbCBiZSBy
ZXR1cm5lZC4KKyogPHA+CisqIFdoZW4gPHR0PlVTRUFSQ0hfT1ZFUkxBUDwvdHQ+IG9wdGlvbiBp
cyBvZmYsIHRoZSBsYXN0IGluZGV4IG9mIHRoZQorKiByZXN1bHQgbWF0Y2ggaXMgYWx3YXlzIGxl
c3MgdGhhbiA8dHQ+cG9zaXRpb248L3R0Pi4KKyogV2hlbiA8dHQ+VVNFUkFSQ0hfT1ZFUkxBUDwv
dHQ+IGlzIG9uLCB0aGUgcmVzdWx0IG1hdGNoIG1heSBzcGFuIGFjcm9zcworKiA8dHQ+cG9zaXRp
b248L3R0Pi4KICogQHBhcmFtIHN0cnNyY2ggc2VhcmNoIGl0ZXJhdG9yIGRhdGEgc3RydWN0CiAq
IEBwYXJhbSBwb3NpdGlvbiBpbmRleCBwb3NpdGlvbiB0aGUgc2VhcmNoIGlzIHRvIGJlZ2luIGF0
CiAqIEBwYXJhbSBzdGF0dXMgZm9yIGVycm9ycyBpZiBpdCBvY2N1cnMKQEAgLTcwNCw2ICs3MDks
NyBAQCBVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMiB1c2VhcmNoX3ByZXZpb3VzKFVTdHJpbmdT
ZWFyY2ggKnN0cnNyY2gsCiAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgdXNlYXJjaF9yZXNl
dChVU3RyaW5nU2VhcmNoICpzdHJzcmNoKTsKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CiAvKioKICAgKiAgU2ltcGxlIGZvcndhcmQgc2VhcmNoIGZvciB0aGUgcGF0dGVybiwgc3RhcnRp
bmcgYXQgYSBzcGVjaWZpZWQgaW5kZXgsCiAgICogICAgIGFuZCB1c2luZyB1c2luZyBhIGRlZmF1
bHQgc2V0IHNlYXJjaCBvcHRpb25zLgpAQCAtODIzLDYgKzgyOSw3IEBAIFVfSU5URVJOQUwgVUJv
b2wgVV9FWFBPUlQyIHVzZWFyY2hfc2VhcmNoQmFja3dhcmRzKFVTdHJpbmdTZWFyY2ggKnN0cnNy
Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQzMl90ICAgICAgICAqbWF0Y2hTdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICptYXRjaExpbWl0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAg
ICAgKnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogI2VuZGlm
IC8qICNpZiAhVUNPTkZJR19OT19DT0xMQVRJT04gICYmICFVQ09ORklHX05PX0JSRUFLX0lURVJB
VElPTiAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2V0LmgKaW5kZXggNzdhYjA2MzQyZjI2ZTlj
NzBlMjczMDI0ZmE2ZWJlZjU2MmNkNTk4MS4uNDA1MTBjZDQxNjdjOGY3N2Q1MDY2MWRmZmY3ZmUw
OWI5ZWY4MDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzZXQuaApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAyMDAyLTIw
MTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDIw
MDItMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgpAQCAtODksMTMgKzg5LDcgQEAgZW51bSB7CiAgICAgICogb2YgZWFjaCBleGlzdGluZyBl
bGVtZW50IGluIHRoZSBzZXQuCiAgICAgICogQHN0YWJsZSBJQ1UgMy4yCiAgICAgICovCi0gICAg
VVNFVF9BRERfQ0FTRV9NQVBQSU5HUyA9IDQsCi0gICAgCi0gICAgLyoqCi0gICAgICogRW5vdWdo
IGZvciBhbnkgc2luZ2xlLWNvZGUgcG9pbnQgc2V0Ci0gICAgICogQGludGVybmFsCi0gICAgICov
Ci0gICAgVVNFVF9TRVJJQUxJWkVEX1NUQVRJQ19BUlJBWV9DQVBBQ0lUWT04CisgICAgVVNFVF9B
RERfQ0FTRV9NQVBQSU5HUyA9IDQKIH07CiAKIC8qKgpAQCAtMjA3LDYgKzIwMSwxNiBAQCB0eXBl
ZGVmIGVudW0gVVNldFNwYW5Db25kaXRpb24gewogICAgIFVTRVRfU1BBTl9DT05ESVRJT05fQ09V
TlQKIH0gVVNldFNwYW5Db25kaXRpb247CiAKK2VudW0geworICAgIC8qKgorICAgICAqIENhcGFj
aXR5IG9mIFVTZXJpYWxpemVkU2V0OjpzdGF0aWNBcnJheS4KKyAgICAgKiBFbm91Z2ggZm9yIGFu
eSBzaW5nbGUtY29kZSBwb2ludCBzZXQuCisgICAgICogQWxzbyBwcm92aWRlcyBwYWRkaW5nIGZv
ciBuaWNlIHNpemVvZihVU2VyaWFsaXplZFNldCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40Cisg
ICAgICovCisgICAgVVNFVF9TRVJJQUxJWkVEX1NUQVRJQ19BUlJBWV9DQVBBQ0lUWT04Cit9Owor
CiAvKioKICAqIEEgc2VyaWFsaXplZCBmb3JtIG9mIGEgVW5pY29kZSBzZXQuICBMaW1pdGVkIG1h
bmlwdWxhdGlvbnMgYXJlCiAgKiBwb3NzaWJsZSBkaXJlY3RseSBvbiBhIHNlcmlhbGl6ZWQgc2V0
LiAgU2VlIGJlbG93LgpAQCAtMjQ3LDcgKzI1MSw3IEBAIHR5cGVkZWYgc3RydWN0IFVTZXJpYWxp
emVkU2V0IHsKICAqIEBzdGFibGUgSUNVIDQuMgogICovCiBVX1NUQUJMRSBVU2V0KiBVX0VYUE9S
VDIKLXVzZXRfb3BlbkVtcHR5KCk7Cit1c2V0X29wZW5FbXB0eSh2b2lkKTsKIAogLyoqCiAgKiBD
cmVhdGVzIGEgVVNldCBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgcmFuZ2Ugb2YgY2hhcmFjdGVy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXNoYXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2hhcGUuaAppbmRleCA2YzM2NTVmN2ExYTYyMjQ1MzQ3
NzE3MDUyYjJiODc4YTMwZjQyYWUzLi45ZmI1YWI0ZTU0N2Y0Y2FkYzY0MzFiM2UzOWFmYzUyMjJl
YTI3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2hhcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c2hhcGUuaApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAx
MCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAw
MC0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24g
YW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKQEAgLTQ2MSwxNCArNDYxLDE0IEBAIHVfc2hhcGVBcmFiaWMoY29uc3QgVUNoYXIgKnNvdXJj
ZSwgaW50MzJfdCBzb3VyY2VMZW5ndGgsCiAgKiBTaGFwaW5nIE1vZGU6IE9ubHkgc2hhcGluZy4K
ICAqIERlLXNoYXBpbmcgTW9kZTogTi9BLgogICogQWZmZWN0czogQWxsIFNlZW4gb3B0aW9ucwot
ICogQGRyYWZ0IElDVSA0LjIKKyAqIEBzdGFibGUgSUNVIDQuOAogICovCi0jZGVmaW5lIFNIQVBF
X1RBSUxfTkVXX1VOSUNPREUgICAgICAgIDB4ODAwMDAwMAorI2RlZmluZSBVX1NIQVBFX1RBSUxf
TkVXX1VOSUNPREUgICAgICAgIDB4ODAwMDAwMAogCiAvKioKICAqIEJpdCBtYXNrIGZvciBuZXcg
VW5pY29kZSBUYWlsIG9wdGlvbiAKLSAqIEBkcmFmdCBJQ1UgNC4yCisgKiBAc3RhYmxlIElDVSA0
LjgKICAqLwotI2RlZmluZSBTSEFQRV9UQUlMX1RZUEVfTUFTSyAgICAgICAgICAweDgwMDAwMDAK
KyNkZWZpbmUgVV9TSEFQRV9UQUlMX1RZUEVfTUFTSyAgICAgICAgICAweDgwMDAwMDAKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91c3RyaW5nLmgKaW5kZXggMmVlMTZlOTljZjNjMDA3
YWI3NWVjMWY2YmQ0MWMxNWFlYWQ5Mjk1Mi4uZDJlYTMxYzY3NDdmOGYxYzFlYjAzNzBlMjg0M2Mz
ZjY0NDk4YjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXN0cmlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3VzdHJpbmcuaApAQCAtMSw2ICsx
LDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMTAsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAx
MiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMjAsOSAr
MjAsMTQgQEAKICNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCiAjaW5jbHVkZSAidW5pY29kZS91
aXRlci5oIgogCi0vKiogU2ltcGxlIGRlY2xhcmF0aW9uIGZvciB1X3N0clRvVGl0bGUoKSB0byBh
dm9pZCBpbmNsdWRpbmcgdW5pY29kZS91YnJrLmguIEBzdGFibGUgSUNVIDIuMSovCisvKioKKyAq
IFxkZWYgVUJSS19UWVBFREVGX1VCUkVBS19JVEVSQVRPUgorICogQGludGVybmFsIAorICovCisK
ICNpZm5kZWYgVUJSS19UWVBFREVGX1VCUkVBS19JVEVSQVRPUgogIyAgIGRlZmluZSBVQlJLX1RZ
UEVERUZfVUJSRUFLX0lURVJBVE9SCisvKiogU2ltcGxlIGRlY2xhcmF0aW9uIGZvciB1X3N0clRv
VGl0bGUoKSB0byBhdm9pZCBpbmNsdWRpbmcgdW5pY29kZS91YnJrLmguIEBzdGFibGUgSUNVIDIu
MSovCiAgICAgdHlwZWRlZiBzdHJ1Y3QgVUJyZWFrSXRlcmF0b3IgVUJyZWFrSXRlcmF0b3I7CiAj
ZW5kaWYKIApAQCAtMTQ2LDggKzE1MSw4IEBAIHVfc3RyY2F0KFVDaGFyICAgICAqZHN0LAogICog
SWYgPGNvZGU+biZsdDs9MDwvY29kZT4gdGhlbiBkc3QgaXMgbm90IG1vZGlmaWVkLgogICoKICAq
IEBwYXJhbSBkc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhlIHNv
dXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVy
cyB0byBhcHBlbmQuCisgKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVM
TC9pbnZhbGlkIGlmIG48PTApLgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNo
YXJhY3RlcnMgdG8gYXBwZW5kOyBuby1vcCBpZiA8PTAuCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0
byA8Y29kZT5kc3Q8L2NvZGU+LgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTU1MCw5ICs1
NTUsOSBAQCB1X3N0ckNhc2VDb21wYXJlKGNvbnN0IFVDaGFyICpzMSwgaW50MzJfdCBsZW5ndGgx
LAogICogQ29tcGFyZSB0d28gdXN0cmluZ3MgZm9yIGJpdHdpc2UgZXF1YWxpdHkuIAogICogQ29t
cGFyZXMgYXQgbW9zdCA8Y29kZT5uPC9jb2RlPiBjaGFyYWN0ZXJzLgogICoKLSAqIEBwYXJhbSB1
Y3MxIEEgc3RyaW5nIHRvIGNvbXBhcmUuCi0gKiBAcGFyYW0gdWNzMiBBIHN0cmluZyB0byBjb21w
YXJlLgotICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29t
cGFyZS4KKyAqIEBwYXJhbSB1Y3MxIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBiZSBOVUxML2lu
dmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gdWNzMiBBIHN0cmluZyB0byBjb21wYXJlIChjYW4g
YmUgTlVMTC9pbnZhbGlkIGlmIG48PTApLgorICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVy
IG9mIGNoYXJhY3RlcnMgdG8gY29tcGFyZTsgYWx3YXlzIHJldHVybnMgMCBpZiBuPD0wLgogICog
QHJldHVybiAwIGlmIDxjb2RlPnMxPC9jb2RlPiBhbmQgPGNvZGU+czI8L2NvZGU+IGFyZSBiaXR3
aXNlIGVxdWFsOyBhIG5lZ2F0aXZlCiAgKiB2YWx1ZSBpZiA8Y29kZT5zMTwvY29kZT4gaXMgYml0
d2lzZSBsZXNzIHRoYW4gPGNvZGU+czI8L2NvZGU+OyBhIHBvc2l0aXZlCiAgKiB2YWx1ZSBpZiA8
Y29kZT5zMTwvY29kZT4gaXMgYml0d2lzZSBncmVhdGVyIHRoYW4gPGNvZGU+czI8L2NvZGU+LgpA
QCAtNjY3LDggKzY3Miw4IEBAIHVfc3RyY3B5KFVDaGFyICAgICAqZHN0LAogICogaWYgdGhlIGxl
bmd0aCBvZiA8Y29kZT5zcmM8L2NvZGU+IGlzIGxlc3MgdGhhbiA8Y29kZT5uPC9jb2RlPi4KICAq
CiAgKiBAcGFyYW0gZHN0IFRoZSBkZXN0aW5hdGlvbiBzdHJpbmcuCi0gKiBAcGFyYW0gc3JjIFRo
ZSBzb3VyY2Ugc3RyaW5nLgotICogQHBhcmFtIG4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJh
Y3RlcnMgdG8gY29weS4KKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBO
VUxML2ludmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2Yg
Y2hhcmFjdGVycyB0byBjb3B5OyBuby1vcCBpZiA8PTAuCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0
byA8Y29kZT5kc3Q8L2NvZGU+LgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTc0Miw4ICs3
NDcsOCBAQCBVX1NUQUJMRSBjaGFyKiBVX0VYUE9SVDIgdV9hdXN0cm5jcHkoY2hhciAqZHN0LAog
LyoqCiAgKiBTeW5vbnltIGZvciBtZW1jcHkoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBA
cGFyYW0gZGVzdCBUaGUgZGVzdGluYXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3Vy
Y2Ugc3RyaW5nCi0gKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGNv
cHkKKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQg
aWYgY291bnQ8PTApCisgKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRv
IGNvcHk7IG5vLW9wIGlmIDw9MAogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwv
Y29kZT4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC03NTMsOCArNzU4LDggQEAgdV9tZW1j
cHkoVUNoYXIgKmRlc3QsIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3QgY291bnQpOwogLyoqCiAg
KiBTeW5vbnltIGZvciBtZW1tb3ZlKCksIGJ1dCB3aXRoIFVDaGFycyBvbmx5LgogICogQHBhcmFt
IGRlc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZwotICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0
cmluZwotICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBtb3ZlCisg
KiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3RyaW5nIChjYW4gYmUgTlVMTC9pbnZhbGlkIGlmIGNv
dW50PD0wKQorICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBtb3Zl
OyBuby1vcCBpZiA8PTAKICAqIEByZXR1cm4gQSBwb2ludGVyIHRvIDxjb2RlPmRlc3Q8L2NvZGU+
CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtOTE4LDcgKzkyMyw3IEBAIHVfbWVtcmNocjMy
KGNvbnN0IFVDaGFyICpzLCBVQ2hhcjMyIGMsIGludDMyX3QgY291bnQpOwogICogICAgfQogICog
PC9wcmU+CiAgKiAKLSAqIE5vdGUgdGhhdCB0aGUgbWFjcm9zIHdpbGwgTk9UIGNvbnNpc3RlbnRs
eSB3b3JrIGlmIHRoZWlyIGFyZ3VtZW50IGlzIGFub3RoZXIgI2RlZmluZS4gCisgKiBOb3RlIHRo
YXQgdGhlIG1hY3JvcyB3aWxsIE5PVCBjb25zaXN0ZW50bHkgd29yayBpZiB0aGVpciBhcmd1bWVu
dCBpcyBhbm90aGVyIDxjb2RlPiNkZWZpbmU8L2NvZGU+LiAKICAqICBUaGUgZm9sbG93aW5nIHdp
bGwgbm90IHdvcmsgb24gYWxsIHBsYXRmb3JtcywgZG9uJ3QgdXNlIGl0LgogICogCiAgKiA8cHJl
PgpAQCAtOTM0LDcgKzkzOSw3IEBAIHVfbWVtcmNocjMyKGNvbnN0IFVDaGFyICpzLCBVQ2hhcjMy
IGMsIGludDMyX3QgY291bnQpOwogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZiBkZWZpbmVk
KFVfREVDTEFSRV9VVEYxNikKLSMgICBkZWZpbmUgVV9TVFJJTkdfREVDTCh2YXIsIGNzLCBsZW5n
dGgpIHN0YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0aCkrMV09VV9ERUNMQVJFX1VURjE2KGNz
KQorIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0
IFVDaGFyICp2YXI9KGNvbnN0IFVDaGFyICopVV9ERUNMQVJFX1VURjE2KGNzKQogICAgIC8qKkBz
dGFibGUgSUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0
aCkKICNlbGlmIFVfU0laRU9GX1dDSEFSX1Q9PVVfU0laRU9GX1VDSEFSICYmIChVX0NIQVJTRVRf
RkFNSUxZPT1VX0FTQ0lJX0ZBTUlMWSB8fCAoVV9TSVpFT0ZfVUNIQVIgPT0gMiAmJiBkZWZpbmVk
KFVfV0NIQVJfSVNfVVRGMTYpKSkKQEAgLTk0Miw3ICs5NDcsNyBAQCB1X21lbXJjaHIzMihjb25z
dCBVQ2hhciAqcywgVUNoYXIzMiBjLCBpbnQzMl90IGNvdW50KTsKICAgICAvKipAc3RhYmxlIElD
VSAyLjAgKi8KICMgICBkZWZpbmUgVV9TVFJJTkdfSU5JVCh2YXIsIGNzLCBsZW5ndGgpCiAjZWxp
ZiBVX1NJWkVPRl9VQ0hBUj09MSAmJiBVX0NIQVJTRVRfRkFNSUxZPT1VX0FTQ0lJX0ZBTUlMWQot
IyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVD
aGFyIHZhclsobGVuZ3RoKSsxXT17IChjb25zdCBVQ2hhciAqKWNzIH0KKyMgICBkZWZpbmUgVV9T
VFJJTkdfREVDTCh2YXIsIGNzLCBsZW5ndGgpIHN0YXRpYyBjb25zdCBVQ2hhciB2YXJbKGxlbmd0
aCkrMV09Y3MKICAgICAvKipAc3RhYmxlIElDVSAyLjAgKi8KICMgICBkZWZpbmUgVV9TVFJJTkdf
SU5JVCh2YXIsIGNzLCBsZW5ndGgpCiAjZWxzZQpAQCAtMTE1NCwxMCArMTE1OSwxMiBAQCB1X3N0
clRvVGl0bGUoVUNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAogI2VuZGlmCiAKIC8q
KgotICogQ2FzZS1mb2xkIHRoZSBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLgorICogQ2FzZS1mb2xk
cyB0aGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZy4KKyAqCiAgKiBDYXNlLWZvbGRpbmcgaXMgbG9j
YWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCiAgKiBidXQgdGhlcmUg
aXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5ncyBm
b3IgZG90dGVkIEkKLSAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ0knIGlu
IENhc2VGb2xkaW5nLnR4dC4KKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGgg
J1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCiAgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIg
b3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KICAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0
aGUgZGVzdGluYXRpb24gYnVmZmVyIGFyZSBhbGxvd2VkIHRvIG92ZXJsYXAuCiAgKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2ljdS91bmljb2RlL3V0ZXh0LmgKaW5kZXggMDg4YTUzMjczOTdmZDZjZjg1ZWIzNDEyMDU3ZWZm
NWQ5MGRlMDEyZi4uZDQzMTkxM2QzNWIzMWU4NzcxOWMyNjQ3OWFiMjIxNWU2NGZmMzM5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pY3UvdW5pY29kZS91dGV4dC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEyLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0yNTcs
NyArMjU3LDcgQEAgdXRleHRfb3BlblVDaGFycyhVVGV4dCAqdXQsIGNvbnN0IFVDaGFyICpzLCBp
bnQ2NF90IGxlbmd0aCwgVUVycm9yQ29kZSAqc3RhdHVzKTsKICAqIEBzdGFibGUgSUNVIDMuNAog
ICovCiBVX1NUQUJMRSBVVGV4dCAqIFVfRVhQT1JUMgotdXRleHRfb3BlblVuaWNvZGVTdHJpbmco
VVRleHQgKnV0LCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyAqcywgVUVycm9y
Q29kZSAqc3RhdHVzKTsKK3V0ZXh0X29wZW5Vbmljb2RlU3RyaW5nKFVUZXh0ICp1dCwgaWN1OjpV
bmljb2RlU3RyaW5nICpzLCBVRXJyb3JDb2RlICpzdGF0dXMpOwogCiAKIC8qKgpAQCAtMjczLDcg
KzI3Myw3IEBAIHV0ZXh0X29wZW5Vbmljb2RlU3RyaW5nKFVUZXh0ICp1dCwgVV9OQU1FU1BBQ0Vf
UVVBTElGSUVSIFVuaWNvZGVTdHJpbmcgKnMsIFVFcnJvCiAgKiBAc3RhYmxlIElDVSAzLjQKICAq
LwogVV9TVEFCTEUgVVRleHQgKiBVX0VYUE9SVDIKLXV0ZXh0X29wZW5Db25zdFVuaWNvZGVTdHJp
bmcoVVRleHQgKnV0LCBjb25zdCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgVW5pY29kZVN0cmluZyAq
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKK3V0ZXh0X29wZW5Db25zdFVuaWNvZGVTdHJpbmcoVVRl
eHQgKnV0LCBjb25zdCBpY3U6OlVuaWNvZGVTdHJpbmcgKnMsIFVFcnJvckNvZGUgKnN0YXR1cyk7
CiAKIAogLyoqCkBAIC0yODksNyArMjg5LDcgQEAgdXRleHRfb3BlbkNvbnN0VW5pY29kZVN0cmlu
ZyhVVGV4dCAqdXQsIGNvbnN0IFVfTkFNRVNQQUNFX1FVQUxJRklFUiBVbmljb2RlU3RyaW4KICAq
IEBzdGFibGUgSUNVIDMuNAogICovCiBVX1NUQUJMRSBVVGV4dCAqIFVfRVhQT1JUMgotdXRleHRf
b3BlblJlcGxhY2VhYmxlKFVUZXh0ICp1dCwgVV9OQU1FU1BBQ0VfUVVBTElGSUVSIFJlcGxhY2Vh
YmxlICpyZXAsIFVFcnJvckNvZGUgKnN0YXR1cyk7Cit1dGV4dF9vcGVuUmVwbGFjZWFibGUoVVRl
eHQgKnV0LCBpY3U6OlJlcGxhY2VhYmxlICpyZXAsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKIC8q
KgogICogT3BlbiBhICBVVGV4dCBpbXBsZW1lbnRhdGlvbiBvdmVyIGFuIElDVSBDaGFyYWN0ZXJJ
dGVyYXRvci4KQEAgLTMwNCw3ICszMDQsNyBAQCB1dGV4dF9vcGVuUmVwbGFjZWFibGUoVVRleHQg
KnV0LCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgUmVwbGFjZWFibGUgKnJlcCwgVUVycm9yQwogICog
QHN0YWJsZSBJQ1UgMy40CiAgKi8KIFVfU1RBQkxFIFVUZXh0ICogVV9FWFBPUlQyCi11dGV4dF9v
cGVuQ2hhcmFjdGVySXRlcmF0b3IoVVRleHQgKnV0LCBVX05BTUVTUEFDRV9RVUFMSUZJRVIgQ2hh
cmFjdGVySXRlcmF0b3IgKmljLCBVRXJyb3JDb2RlICpzdGF0dXMpOwordXRleHRfb3BlbkNoYXJh
Y3Rlckl0ZXJhdG9yKFVUZXh0ICp1dCwgaWN1OjpDaGFyYWN0ZXJJdGVyYXRvciAqY2ksIFVFcnJv
ckNvZGUgKnN0YXR1cyk7CiAKICNlbmRpZgogCkBAIC02NzUsMTQ3ICs2NzUsNiBAQCB1dGV4dF9l
eHRyYWN0KFVUZXh0ICp1dCwKICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOwogCiAK
LS8qKgotICogQ29tcGFyZSB0d28gVVRleHRzIChiaW5hcnkgb3JkZXIpLiBUaGUgY29tcGFyaXNv
biBiZWdpbnMgYXQgZWFjaCBzb3VyY2UgdGV4dCdzCi0gKiBpdGVyYXRpb24gcG9zaXRpb24uIFRo
ZSBpdGVyYXRpb24gcG9zaXRpb24gb2YgZWFjaCBVVGV4dCB3aWxsIGJlIGxlZnQgZm9sbG93aW5n
Ci0gKiB0aGUgbGFzdCBjaGFyYWN0ZXIgY29tcGFyZWQuCi0gKgotICogVGhlIGNvbXBhcmlzb24g
aXMgZG9uZSBpbiBjb2RlIHBvaW50IG9yZGVyOyB1bmxpa2UgdV9zdHJDb21wYXJlLCB5b3UKLSAq
IGNhbm5vdCBjaG9vc2UgdG8gdXNlIGNvZGUgdW5pdCBvcmRlci4gVGhpcyBpcyBiZWNhdXNlIHRo
ZSBjaGFyYWN0ZXJzCi0gKiBpbiBhIFVUZXh0IGFyZSBhY2Nlc3NlZCBvbmUgY29kZSBwb2ludCBh
dCBhIHRpbWUsIGFuZCBtYXkgbm90IGJlIGZyb20gYSBVVEYtMTYKLSAqIGNvbnRleHQuCi0gKgot
ICogVGhpcyBmdW5jdGlvbnMgd29ya3Mgd2l0aCBzdHJpbmdzIG9mIGRpZmZlcmVudCBleHBsaWNp
dGx5IHNwZWNpZmllZCBsZW5ndGhzCi0gKiB1bmxpa2UgdGhlIEFOU0kgQy1saWtlIHVfc3RyY21w
KCkgYW5kIHVfbWVtY21wKCkgZXRjLgotICogQSBsZW5ndGggYXJndW1lbnQgb2YgLTEgc2lnbmlm
aWVzIHRoYXQgYXMgbXVjaCBvZiB0aGUgc3RyaW5nIHNob3VsZCBiZSB1c2VkIGFzCi0gKiBpcyBu
ZWNlc3NhcnkgdG8gY29tcGFyZSB3aXRoIHRoZSBvdGhlciBzdHJpbmcuIElmIGJvdGggbGVuZ3Ro
IGFyZ3VtZW50cyBhcmUgLTEsCi0gKiB0aGUgZW50aXJlIHJlbWFpbmluZyBwb3J0aW9uc3Mgb2Yg
Ym90aCBzdHJpbmdzIGFyZSB1c2VkLgotICoKLSAqIEBwYXJhbSBzMSBGaXJzdCBzb3VyY2Ugc3Ry
aW5nLgotICogQHBhcmFtIGxlbmd0aDEgTGVuZ3RoIG9mIGZpcnN0IHNvdXJjZSBzdHJpbmcgaW4g
VVRGLTMyIGNvZGUgcG9pbnRzLgotICoKLSAqIEBwYXJhbSBzMiBTZWNvbmQgc291cmNlIHN0cmlu
Zy4KLSAqIEBwYXJhbSBsZW5ndGgyIExlbmd0aCBvZiBzZWNvbmQgc291cmNlIHN0cmluZyBpbiBV
VEYtMzIgY29kZSBwb2ludHMuCi0gKgotICogQHJldHVybiA8MCBvciAwIG9yID4wIGFzIHVzdWFs
IGZvciBzdHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBAaW50ZXJuYWwgSUNVIDQuNCB0ZWNobm9s
b2d5IHByZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQzMl90IFVfRVhQT1JUMgotdXRleHRfY29t
cGFyZShVVGV4dCAqczEsIGludDMyX3QgbGVuZ3RoMSwKLSAgICAgICAgICAgICAgVVRleHQgKnMy
LCBpbnQzMl90IGxlbmd0aDIpOyAgICAKLQotLyoqCi0gKiBDb21wYXJlIHR3byBVVGV4dHMgKGJp
bmFyeSBvcmRlcikuIFRoZSBjb21wYXJpc29uIGJlZ2lucyBhdCBlYWNoIHNvdXJjZSB0ZXh0J3MK
LSAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4gVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBvZiBlYWNoIFVU
ZXh0IHdpbGwgYmUgbGVmdCBmb2xsb3dpbmcKLSAqIHRoZSBsYXN0IGNoYXJhY3RlciBjb21wYXJl
ZC4gVGhpcyBtZXRob2QgZGlmZmVycyBmcm9tIHV0ZXh0X2NvbXBhcmUgaW4gdGhhdAotICogaXQg
YWNjZXB0cyBuYXRpdmUgbGltaXRzIHJhdGhlciB0aGFuIGxlbmd0aHMgZm9yIGVhY2ggc3RyaW5n
LgotICoKLSAqIFRoZSBjb21wYXJpc29uIGlzIGRvbmUgaW4gY29kZSBwb2ludCBvcmRlcjsgdW5s
aWtlIHVfc3RyQ29tcGFyZSwgeW91Ci0gKiBjYW5ub3QgY2hvb3NlIHRvIHVzZSBjb2RlIHVuaXQg
b3JkZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgY2hhcmFjdGVycwotICogaW4gYSBVVGV4dCBhcmUg
YWNjZXNzZWQgb25lIGNvZGUgcG9pbnQgYXQgYSB0aW1lLCBhbmQgbWF5IG5vdCBiZSBmcm9tIGEg
VVRGLTE2Ci0gKiBjb250ZXh0LgotICoKLSAqIFRoaXMgZnVuY3Rpb25zIHdvcmtzIHdpdGggc3Ry
aW5ncyBvZiBkaWZmZXJlbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgbGVuZ3RocwotICogdW5saWtl
IHRoZSBBTlNJIEMtbGlrZSB1X3N0cmNtcCgpIGFuZCB1X21lbWNtcCgpIGV0Yy4KLSAqIEEgbGlt
aXQgYXJndW1lbnQgb2YgLTEgc2lnbmlmaWVzIHRoYXQgYXMgbXVjaCBvZiB0aGUgc3RyaW5nIHNo
b3VsZCBiZSB1c2VkIGFzCi0gKiBpcyBuZWNlc3NhcnkgdG8gY29tcGFyZSB3aXRoIHRoZSBvdGhl
ciBzdHJpbmcuIElmIGJvdGggbGltaXQgYXJndW1lbnRzIGFyZSAtMSwKLSAqIHRoZSBlbnRpcmUg
cmVtYWluaW5nIHBvcnRpb25zcyBvZiBib3RoIHN0cmluZ3MgYXJlIHVzZWQuCi0gKgotICogQHBh
cmFtIHMxIEZpcnN0IHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbGltaXQxIE5hdGl2ZSBpbmRl
eCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBzdHJpbmcgdG8gYmUg
Y29uc2lkZXJlZC4KLSAqCi0gKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCi0gKiBA
cGFyYW0gbGltaXQyIE5hdGl2ZSBpbmRleCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHNl
Y29uZCBzb3VyY2Ugc3RyaW5nIHRvIGJlIGNvbnNpZGVyZWQuCi0gKgotICogQHJldHVybiA8MCBv
ciAwIG9yID4wIGFzIHVzdWFsIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBAaW50ZXJu
YWwgSUNVIDQuNCB0ZWNobm9sb2d5IHByZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQzMl90IFVf
RVhQT1JUMgotdXRleHRfY29tcGFyZU5hdGl2ZUxpbWl0KFVUZXh0ICpzMSwgaW50NjRfdCBsaW1p
dDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgVVRleHQgKnMyLCBpbnQ2NF90IGxpbWl0Mik7
ICAgIAotCi0vKioKLSAqIENvbXBhcmUgdHdvIFVUZXh0cyBjYXNlLWluc2Vuc2l0aXZlbHkgdXNp
bmcgZnVsbCBjYXNlIGZvbGRpbmcuIFRoZSBjb21wYXJpc29uCi0gKiBiZWdpbnMgYXQgZWFjaCBz
b3VyY2UgdGV4dCdzIGl0ZXJhdGlvbiBwb3NpdGlvbi4gVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBv
ZiBlYWNoCi0gKiBVVGV4dCB3aWxsIGJlIGxlZnQgZm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3Rl
ciBjb21wYXJlZC4KLSAqCi0gKiBUaGUgY29tcGFyaXNvbiBpcyBkb25lIGluIGNvZGUgcG9pbnQg
b3JkZXI7IHRoaXMgaXMgYmVjYXVzZSB0aGUgY2hhcmFjdGVycwotICogaW4gYSBVVGV4dCBhcmUg
YWNjZXNzZWQgb25lIGNvZGUgcG9pbnQgYXQgYSB0aW1lLCBhbmQgbWF5IG5vdCBiZSBmcm9tIGEg
VVRGLTE2Ci0gKiBjb250ZXh0LgotICoKLSAqIFRoaXMgZnVuY3Rpb25zIHdvcmtzIHdpdGggc3Ry
aW5ncyBvZiBkaWZmZXJlbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgbGVuZ3RocwotICogdW5saWtl
IHRoZSBBTlNJIEMtbGlrZSB1X3N0cmNtcCgpIGFuZCB1X21lbWNtcCgpIGV0Yy4KLSAqIEEgbGVu
Z3RoIGFyZ3VtZW50IG9mIC0xIHNpZ25pZmllcyB0aGF0IGFzIG11Y2ggb2YgdGhlIHN0cmluZyBz
aG91bGQgYmUgdXNlZCBhcwotICogaXMgbmVjZXNzYXJ5IHRvIGNvbXBhcmUgd2l0aCB0aGUgb3Ro
ZXIgc3RyaW5nLiBJZiBib3RoIGxlbmd0aCBhcmd1bWVudHMgYXJlIC0xLAotICogdGhlIGVudGly
ZSByZW1haW5pbmcgcG9ydGlvbnNzIG9mIGJvdGggc3RyaW5ncyBhcmUgdXNlZC4KLSAqCi0gKiBA
cGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KLSAqIEBwYXJhbSBsZW5ndGgxIExlbmd0aCBv
ZiBmaXJzdCBzb3VyY2Ugc3RyaW5nIGluIFVURi0zMiBjb2RlIHBvaW50cy4KLSAqCi0gKiBAcGFy
YW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbGVuZ3RoMiBMZW5ndGggb2Yg
c2Vjb25kIHNvdXJjZSBzdHJpbmcgaW4gVVRGLTMyIGNvZGUgcG9pbnRzLgotICoKLSAqIEBwYXJh
bSBvcHRpb25zIEEgYml0IHNldCBvZiBvcHRpb25zOgotICogICAtIFVfRk9MRF9DQVNFX0RFRkFV
TFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6Ci0gKiAgICAgQ29tcGFyaXNvbiBp
biBjb2RlIHBvaW50IG9yZGVyIHdpdGggZGVmYXVsdCBjYXNlIGZvbGRpbmcuCi0gKgotICogICAt
IFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCi0gKgotICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKLSAqICAgICAg
ICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUg
ZnVuY3Rpb24gY2FsbC4KLSAqCi0gKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9y
IHN0cmluZyBjb21wYXJpc29ucwotICoKLSAqIEBpbnRlcm5hbCBJQ1UgNC40IHRlY2hub2xvZ3kg
cHJldmlldwotICovCi1VX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyCi11dGV4dF9jYXNlQ29t
cGFyZShVVGV4dCAqczEsIGludDMyX3QgbGVuZ3RoMSwKLSAgICAgICAgICAgICAgICAgIFVUZXh0
ICpzMiwgaW50MzJfdCBsZW5ndGgyLAotICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3B0aW9u
cywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7ICAgIAotCi0vKioKLSAqIENvbXBhcmUgdHdvIFVU
ZXh0cyBjYXNlLWluc2Vuc2l0aXZlbHkgdXNpbmcgZnVsbCBjYXNlIGZvbGRpbmcuIFRoZSBjb21w
YXJpc29uCi0gKiBiZWdpbnMgYXQgZWFjaCBzb3VyY2UgdGV4dCdzIGl0ZXJhdGlvbiBwb3NpdGlv
bi4gVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBvZiBlYWNoCi0gKiBVVGV4dCB3aWxsIGJlIGxlZnQg
Zm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3RlciBjb21wYXJlZC4gVGhpcyBtZXRob2QgZGlmZmVy
cyBmcm9tCi0gKiB1dGV4dF9jYXNlQ29tcGFyZSBpbiB0aGF0IGl0IGFjY2VwdHMgbmF0aXZlIGxp
bWl0cyByYXRoZXIgdGhhbiBsZW5ndGhzIGZvciBlYWNoCi0gKiBzdHJpbmcuCi0gKgotICogVGhl
IGNvbXBhcmlzb24gaXMgZG9uZSBpbiBjb2RlIHBvaW50IG9yZGVyOyB0aGlzIGlzIGJlY2F1c2Ug
dGhlIGNoYXJhY3RlcnMKLSAqIGluIGEgVVRleHQgYXJlIGFjY2Vzc2VkIG9uZSBjb2RlIHBvaW50
IGF0IGEgdGltZSwgYW5kIG1heSBub3QgYmUgZnJvbSBhIFVURi0xNgotICogY29udGV4dC4KLSAq
Ci0gKiBUaGlzIGZ1bmN0aW9ucyB3b3JrcyB3aXRoIHN0cmluZ3Mgb2YgZGlmZmVyZW50IGV4cGxp
Y2l0bHkgc3BlY2lmaWVkIGxlbmd0aHMKLSAqIHVubGlrZSB0aGUgQU5TSSBDLWxpa2UgdV9zdHJj
bXAoKSBhbmQgdV9tZW1jbXAoKSBldGMuCi0gKiBBIGxpbWl0IGFyZ3VtZW50IG9mIC0xIHNpZ25p
ZmllcyB0aGF0IGFzIG11Y2ggb2YgdGhlIHN0cmluZyBzaG91bGQgYmUgdXNlZCBhcwotICogaXMg
bmVjZXNzYXJ5IHRvIGNvbXBhcmUgd2l0aCB0aGUgb3RoZXIgc3RyaW5nLiBJZiBib3RoIGxlbmd0
aCBhcmd1bWVudHMgYXJlIC0xLAotICogdGhlIGVudGlyZSByZW1haW5pbmcgcG9ydGlvbnNzIG9m
IGJvdGggc3RyaW5ncyBhcmUgdXNlZC4KLSAqCi0gKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0
cmluZy4KLSAqIEBwYXJhbSBsaW1pdDEgTmF0aXZlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3Rl
ciBpbiB0aGUgZmlyc3Qgc291cmNlIHN0cmluZyB0byBiZSBjb25zaWRlcmVkLgotICoKLSAqIEBw
YXJhbSBzMiBTZWNvbmQgc291cmNlIHN0cmluZy4KLSAqIEBwYXJhbSBsaW1pdDIgTmF0aXZlIGlu
ZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgc2Vjb25kIHNvdXJjZSBzdHJpbmcgdG8g
YmUgY29uc2lkZXJlZC4KLSAqCi0gKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9u
czoKLSAqICAgLSBVX0ZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBv
cHRpb25zOgotICogICAgIENvbXBhcmlzb24gaW4gY29kZSBwb2ludCBvcmRlciB3aXRoIGRlZmF1
bHQgY2FzZSBmb2xkaW5nLgotICoKLSAqICAgLSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxf
SQotICoKLSAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCi0gKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGlu
ZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCi0gKgotICogQHJldHVy
biA8MCBvciAwIG9yID4wIGFzIHVzdWFsIGZvciBzdHJpbmcgY29tcGFyaXNvbnMKLSAqCi0gKiBA
aW50ZXJuYWwgSUNVIDQuNCB0ZWNobm9sb2d5IHByZXZpZXcKLSAqLwotVV9JTlRFUk5BTCBpbnQz
Ml90IFVfRVhQT1JUMgotdXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdChVVGV4dCAqczEsIGlu
dDY0X3QgbGltaXQxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVGV4dCAqczIsIGlu
dDY0X3QgbGltaXQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvcHRp
b25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsgICAgCi0KIAogLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgogICoKQEAgLTgzMiw2ICs2OTEsNyBAQCB1dGV4dF9jYXNlQ29tcGFyZU5hdGl2
ZUxpbWl0KFVUZXh0ICpzMSwgaW50NjRfdCBsaW1pdDEsCiAgKgogICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKi8KIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKioKICAqIGlubGlu
ZSB2ZXJzaW9uIG9mIHV0ZXh0X2N1cnJlbnQzMigpLCBmb3IgcGVyZm9ybWFuY2UtY3JpdGljYWwg
c2l0dWF0aW9ucy4KICAqCkBAIC04NDQsNiArNzA0LDcgQEAgdXRleHRfY2FzZUNvbXBhcmVOYXRp
dmVMaW1pdChVVGV4dCAqczEsIGludDY0X3QgbGltaXQxLAogI2RlZmluZSBVVEVYVF9DVVJSRU5U
MzIodXQpICBcCiAgICAgKCh1dCktPmNodW5rT2Zmc2V0IDwgKHV0KS0+Y2h1bmtMZW5ndGggJiYg
KCh1dCktPmNodW5rQ29udGVudHMpWyh1dCktPmNodW5rT2Zmc2V0XTwweGQ4MDAgPyBcCiAgICAg
KCh1dCktPmNodW5rQ29udGVudHMpWygodXQpLT5jaHVua09mZnNldCldIDogdXRleHRfY3VycmVu
dDMyKHV0KSkKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqIGlu
bGluZSB2ZXJzaW9uIG9mIHV0ZXh0X25leHQzMigpLCBmb3IgcGVyZm9ybWFuY2UtY3JpdGljYWwg
c2l0dWF0aW9ucy4KQEAgLTE2OTIsNiArMTU1Myw3IEBAIHN0cnVjdCBVVGV4dCB7CiBVX1NUQUJM
RSBVVGV4dCAqIFVfRVhQT1JUMgogdXRleHRfc2V0dXAoVVRleHQgKnV0LCBpbnQzMl90IGV4dHJh
U3BhY2UsIFVFcnJvckNvZGUgKnN0YXR1cyk7CiAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQogLyoqCiAgICogQGludGVybmFsCiAgICogIFZhbHVlIHVzZWQgdG8gaGVscCBpZGVudGlmeSBj
b3JyZWN0bHkgaW5pdGlhbGl6ZWQgVVRleHQgc3RydWN0cy4KQEAgLTE3MDAsNiArMTU2Miw3IEBA
IHV0ZXh0X3NldHVwKFVUZXh0ICp1dCwgaW50MzJfdCBleHRyYVNwYWNlLCBVRXJyb3JDb2RlICpz
dGF0dXMpOwogZW51bSB7CiAgICAgVVRFWFRfTUFHSUMgPSAweDM0NWFkODJjCiB9OworI2VuZGlm
ICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogaW5pdGlhbGl6ZXIgdG8gYmUg
dXNlZCB3aXRoIGxvY2FsIChzdGFjaykgaW5zdGFuY2VzIG9mIGEgVVRleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0Zi5oIGIvU291cmNlL1dlYkNvcmUvaWN1L3Vu
aWNvZGUvdXRmLmgKaW5kZXggZjc5NDc5OTM1ZDRhMWQ2YjFiZWZjZDQwNWNkMDRmNTIzODFiOTNl
Ny4uZjU5NTRmZTlmZTY5OTg5M2JkMzE4ZTI0NzcyOTI2YzE3NWEyMGM3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdXRmLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTIyLDE1ICsyMiwyMCBAQAog
ICogYSBzdXJyb2dhdGUgb3IgYSBub24tY2hhcmFjdGVyIGV0Yy4KICAqCiAgKiBUaGUgVUNoYXIg
YW5kIFVDaGFyMzIgZGF0YSB0eXBlcyBmb3IgVW5pY29kZSBjb2RlIHVuaXRzIGFuZCBjb2RlIHBv
aW50cwotICogYXJlIGRlZmluZWQgaW4gdW1hY2hpbmVzLmggYmVjYXVzZSB0aGV5IGNhbiBiZSBt
YWNoaW5lLWRlcGVuZGVudC4KKyAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lLmggYmVjYXVzZSB0
aGV5IGNhbiBiZSBtYWNoaW5lLWRlcGVuZGVudC4KICAqCi0gKiB1dGYuaCBpcyBpbmNsdWRlZCBi
eSB1dHlwZXMuaCBhbmQgaXRzZWxmIGluY2x1ZGVzIHV0ZjguaCBhbmQgdXRmMTYuaCBhZnRlciBz
b21lCi0gKiBjb21tb24gZGVmaW5pdGlvbnMuIFRob3NlIGZpbGVzIGRlZmluZSBtYWNyb3MgZm9y
IGVmZmljaWVudGx5IGdldHRpbmcgY29kZSBwb2ludHMKKyAqIElmIFVfTk9fREVGQVVMVF9JTkNM
VURFX1VURl9IRUFERVJTIGlzIDAgdGhlbiB1dGYuaCBpcyBpbmNsdWRlZCBieSB1dHlwZXMuaAor
ICogYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4LmggYW5kIHV0ZjE2LmggYWZ0ZXIgc29tZQorICog
Y29tbW9uIGRlZmluaXRpb25zLgorICogSWYgVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURF
UlMgaXMgMSB0aGVuIGVhY2ggb2YgdGhlc2UgaGVhZGVycyBtdXN0IGJlCisgKiBpbmNsdWRlZCBl
eHBsaWNpdGx5IGlmIHRoZWlyIGRlZmluaXRpb25zIGFyZSB1c2VkLgorICoKKyAqIHV0ZjguaCBh
bmQgdXRmMTYuaCBkZWZpbmUgbWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9p
bnRzCiAgKiBpbiBhbmQgb3V0IG9mIFVURi04LzE2IHN0cmluZ3MuCiAgKiB1dGYxNi5oIG1hY3Jv
cyBoYXZlICJVMTZfIiBwcmVmaXhlcy4KICAqIHV0ZjguaCBkZWZpbmVzIHNpbWlsYXIgbWFjcm9z
IHdpdGggIlU4XyIgcHJlZml4ZXMgZm9yIFVURi04IHN0cmluZyBoYW5kbGluZy4KICAqCi0gKiBJ
Q1UgcHJvY2Vzc2VzIDE2LWJpdCBVbmljb2RlIHN0cmluZ3MuCisgKiBJQ1UgbW9zdGx5IHByb2Nl
c3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdzLgogICogTW9zdCBvZiB0aGUgdGltZSwgc3VjaCBz
dHJpbmdzIGFyZSB3ZWxsLWZvcm1lZCBVVEYtMTYuCiAgKiBTaW5nbGUsIHVucGFpcmVkIHN1cnJv
Z2F0ZXMgbXVzdCBiZSBoYW5kbGVkIGFzIHdlbGwsIGFuZCBhcmUgdHJlYXRlZCBpbiBJQ1UKICAq
IGxpa2UgcmVndWxhciBjb2RlIHBvaW50cyB3aGVyZSBwb3NzaWJsZS4KQEAgLTQyLDE1ICs0Nywx
NiBAQAogICogSUNVIGZ1bmN0aW9ucyBoYW5kbGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAo
VSsxMDAwMC4uVSsxMGZmZmYpCiAgKiBidXQgYXJlIG9wdGltaXplZCBmb3IgdGhlIG11Y2ggbW9y
ZSBmcmVxdWVudGx5IG9jY3VycmluZyBCTVAgY29kZSBwb2ludHMuCiAgKgotICogdXRmLmggZGVm
aW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlci4gSWYgdGhpcyBtYXRj
aGVzIHdjaGFyX3QsIHRoZW4KLSAqIFVDaGFyIGlzIGRlZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hh
cl90LCBvdGhlcndpc2UgdWludDE2X3QuCisgKiB1bWFjaGluZS5oIGRlZmluZXMgVUNoYXIgdG8g
YmUgYW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIuCisgKiBXaGVyZSBhdmFpbGFibGUsIFVDaGFy
IGlzIGRlZmluZWQgdG8gYmUgYSBjaGFyMTZfdAorICogb3IgYSB3Y2hhcl90IChpZiB0aGF0IGlz
IGFuIHVuc2lnbmVkIDE2LWJpdCB0eXBlKSwgb3RoZXJ3aXNlIHVpbnQxNl90LgogICoKICAqIFVD
aGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50ZWdlciAoaW50MzJfdCks
IGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQKICAqIFVuaWNvZGUgY29kZSBwb2ludCAoVW5pY29k
ZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KICAqIEJlZm9yZSBJQ1UgMi40LCB0aGUgZGVm
aW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0tZGVwZW5kZW50IGFzCiAg
KiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0
aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi4KICAqCi0gKiB1dGYuaCBhbHNvIGRlZmluZXMgYSBzbWFs
bCBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgorICog
dXRmLmggZGVmaW5lcyBhIHNtYWxsIG51bWJlciBvZiBDIG1hY3JvcyBmb3Igc2luZ2xlIFVuaWNv
ZGUgY29kZSBwb2ludHMuCiAgKiBUaGVzZSBhcmUgc2ltcGxlIGNoZWNrcyBmb3Igc3Vycm9nYXRl
cyBhbmQgbm9uLWNoYXJhY3RlcnMuCiAgKiBGb3IgYWN0dWFsIFVuaWNvZGUgY2hhcmFjdGVyIHBy
b3BlcnRpZXMgc2VlIHVjaGFyLmguCiAgKgpAQCAtNTksOSArNjUsNiBAQAogICogVGhlIG1hY3Jv
cyB3aWxsIGRldGVjdCBpZiBhIHN1cnJvZ2F0ZSBjb2RlIHVuaXQgaXMgdW5wYWlyZWQKICAqIChs
ZWFkIHVuaXQgd2l0aG91dCB0cmFpbCB1bml0IG9yIHZpY2UgdmVyc2EpIGFuZCBqdXN0IHJldHVy
biB0aGUgdW5pdCBpdHNlbGYKICAqIGFzIHRoZSBjb2RlIHBvaW50LgotICogKEl0IGlzIGFuIGFj
Y2lkZW50YWwgcHJvcGVydHkgb2YgVW5pY29kZSBhbmQgVVRGLTE2IHRoYXQgYWxsCi0gKiBtYWxm
b3JtZWQgc2VxdWVuY2VzIGNhbiBiZSBleHByZXNzZWQgdW5hbWJpZ3VvdXNseSB3aXRoIGEgZGlz
dGluY3Qgc3VicmFuZ2UKLSAqIG9mIFVuaWNvZGUgY29kZSBwb2ludHMuKQogICoKICAqIFRoZSBy
ZWd1bGFyICJzYWZlIiBtYWNyb3MgcmVxdWlyZSB0aGF0IHRoZSBpbml0aWFsLCBwYXNzZWQtaW4g
c3RyaW5nIGluZGV4CiAgKiBpcyB3aXRoaW4gYm91bmRzLiBUaGV5IG9ubHkgY2hlY2sgdGhlIGlu
ZGV4IHdoZW4gdGhleSByZWFkIG1vcmUgdGhhbiBvbmUKQEAgLTk1LDcgKzk4LDcgQEAKICAqIGNv
ZGUgcG9pbnQgdmFsdWVzICgwLi5VKzEwZmZmZikuIFRoZXkgYXJlIGluZGljYXRlZCB3aXRoIG5l
Z2F0aXZlIHZhbHVlcyBpbnN0ZWFkLgogICoKICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB0
aGUgSUNVIFVzZXIgR3VpZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvc3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1w
cm9qZWN0Lm9yZy9zdHJpbmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2Rp
bmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVu
IHVzaW5nIHRoZXNlIG1hY3Jvcy4KQEAgLTEwOCwzMiArMTExLDEyIEBACiAjaWZuZGVmIF9fVVRG
X0hfXwogI2RlZmluZSBfX1VURl9IX18KIAotI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogLyogaW5jbHVkZSB0aGUgdXRmWFguaCBhZnRl
ciB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zICovCiAKIC8qIHNpbmdsZS1jb2RlIHBvaW50IGRl
ZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CiAKIC8qKgotICogVGhpcyB2YWx1ZSBpcyBpbnRlbmRlZCBmb3Igc2VudGluZWwgdmFsdWVzIGZv
ciBBUElzIHRoYXQKLSAqICh0YWtlIG9yKSByZXR1cm4gc2luZ2xlIGNvZGUgcG9pbnRzIChVQ2hh
cjMyKS4KLSAqIEl0IGlzIG91dHNpZGUgb2YgdGhlIFVuaWNvZGUgY29kZSBwb2ludCByYW5nZSAw
Li4weDEwZmZmZi4KLSAqIAotICogRm9yIGV4YW1wbGUsIGEgImRvbmUiIG9yICJlcnJvciIgdmFs
dWUgaW4gYSBuZXcgQVBJCi0gKiBjb3VsZCBiZSBpbmRpY2F0ZWQgd2l0aCBVX1NFTlRJTkVMLgot
ICoKLSAqIElDVSBBUElzIGRlc2lnbmVkIGJlZm9yZSBJQ1UgMi40IHVzdWFsbHkgZGVmaW5lIHNl
cnZpY2Utc3BlY2lmaWMgImRvbmUiCi0gKiB2YWx1ZXMsIG1vc3RseSAweGZmZmYuCi0gKiBUaG9z
ZSBtYXkgbmVlZCB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KLSAqIGFjdHVhbCBVK2ZmZmYgdGV4
dCBjb250ZW50cyBieSBjYWxsaW5nIGZ1bmN0aW9ucyBsaWtlCi0gKiBDaGFyYWN0ZXJJdGVyYXRv
cjo6aGFzTmV4dCgpIG9yIFVuaWNvZGVTdHJpbmc6Omxlbmd0aCgpLgotICoKLSAqIEByZXR1cm4g
LTEKLSAqIEBzZWUgVUNoYXIzMgotICogQHN0YWJsZSBJQ1UgMi40Ci0gKi8KLSNkZWZpbmUgVV9T
RU5USU5FTCAoLTEpCi0KLS8qKgogICogSXMgdGhpcyBjb2RlIHBvaW50IGEgVW5pY29kZSBub25j
aGFyYWN0ZXI/CiAgKiBAcGFyYW0gYyAzMi1iaXQgY29kZSBwb2ludAogICogQHJldHVybiBUUlVF
IG9yIEZBTFNFCkBAIC0yMjcsMTAgKzIxMCwxNCBAQAogCiAvKiBpbmNsdWRlIHRoZSB1dGZYWC5o
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LwogCisjaWYgIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTCisKICNpbmNsdWRlICJ1
bmljb2RlL3V0ZjguaCIKICNpbmNsdWRlICJ1bmljb2RlL3V0ZjE2LmgiCiAKIC8qIHV0Zl9vbGQu
aCBjb250YWlucyBkZXByZWNhdGVkLCBwcmUtSUNVIDIuNCBkZWZpbml0aW9ucyAqLwogI2luY2x1
ZGUgInVuaWNvZGUvdXRmX29sZC5oIgogCi0jZW5kaWYKKyNlbmRpZiAgLyogIVVfTk9fREVGQVVM
VF9JTkNMVURFX1VURl9IRUFERVJTICovCisKKyNlbmRpZiAgLyogX19VVEZfSF9fICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dGYxNi5oIGIvU291cmNlL1dlYkNv
cmUvaWN1L3VuaWNvZGUvdXRmMTYuaAppbmRleCA1MDc5YzExNDZiM2QzNDcyMzBjZDY5OGEwZTEz
OTY4OTdlNDg0NWFkLi5iZGQ4OGE4YjljNGYwMGVhMGRmMjcyYWMwMmY2OTY3ZWY2MTA4OWI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dGYxNi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0ZjE2LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTIsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE5
LDExICsxOSw5IEBACiAgKiBcYnJpZWYgQyBBUEk6IDE2LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1h
Y3JvcwogICogCiAgKiBUaGlzIGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIDE2LWJp
dCBVbmljb2RlIChVVEYtMTYpIGNvZGUgdW5pdHMgYW5kIHN0cmluZ3MuCi0gKiB1dGYxNi5oIGlz
IGluY2x1ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hpbmUuaAotICogYW5kIHNvbWUg
Y29tbW9uIGRlZmluaXRpb25zLgogICoKICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB1dGYu
aCBhbmQgdGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICogKGh0dHA6Ly9pY3Ut
cHJvamVjdC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0cDovL3VzZXJndWlk
ZS5pY3UtcHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdlOjwvZW0+CiAgKiBJ
Q1UgY29kaW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91bGQgYmUgZm9sbG93
ZWQgd2hlbiB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0zNCw3ICszMiw3IEBACiAjaWZuZGVmIF9f
VVRGMTZfSF9fCiAjZGVmaW5lIF9fVVRGMTZfSF9fCiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVk
ZWQgZmlyc3QuICovCisjaW5jbHVkZSAidW5pY29kZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VU
Rl9IX18KICMgICBpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2VuZGlmCkBAIC0xODIsNiArMTgw
LDkgQEAKICAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0aGUgbGVhZCBvciB0cmFp
bCBzdXJyb2dhdGUgdW5pdAogICogZm9yIGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50LCBpbiB3
aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQKICAqIHRoZSBhZGphY2VudCBtYXRjaGluZyBz
dXJyb2dhdGUgYXMgd2VsbC4KKyAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3Ig
YSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8g
YSBzaW5nbGUsIHVucGFpcmVkIHN1cnJvZ2F0ZSwgdGhlbiB0aGF0IGl0c2VsZgogICogd2lsbCBi
ZSByZXR1cm5lZCBhcyB0aGUgY29kZSBwb2ludC4KICAqIEl0ZXJhdGlvbiB0aHJvdWdoIGEgc3Ry
aW5nIGlzIG1vcmUgZWZmaWNpZW50IHdpdGggVTE2X05FWFRfVU5TQUZFIG9yIFUxNl9ORVhULgpA
QCAtMTk5LDcgKzIwMCw3IEBACiAgICAgaWYoVTE2X0lTX1NVUlJPR0FURShjKSkgeyBcCiAgICAg
ICAgIHVpbnQxNl90IF9fYzI7IFwKICAgICAgICAgaWYoVTE2X0lTX1NVUlJPR0FURV9MRUFEKGMp
KSB7IFwKLSAgICAgICAgICAgIGlmKChpKSsxPChsZW5ndGgpICYmIFUxNl9JU19UUkFJTChfX2My
PShzKVsoaSkrMV0pKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxIT0obGVuZ3RoKSAmJiBVMTZf
SVNfVFJBSUwoX19jMj0ocylbKGkpKzFdKSkgeyBcCiAgICAgICAgICAgICAgICAgKGMpPVUxNl9H
RVRfU1VQUExFTUVOVEFSWSgoYyksIF9fYzIpOyBcCiAgICAgICAgICAgICB9IFwKICAgICAgICAg
fSBlbHNlIHsgXApAQCAtMjQ0LDYgKzI0NSw4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgZm9y
d2FyZCBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJv
Z2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0
aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIFRo
ZSBvZmZzZXQgbWF5IHBvaW50IHRvIHRoZSBsZWFkIHN1cnJvZ2F0ZSB1bml0CiAgKiBmb3IgYSBz
dXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVh
ZAogICogdGhlIGZvbGxvd2luZyB0cmFpbCBzdXJyb2dhdGUgYXMgd2VsbC4KQEAgLTI2Miw3ICsy
NjUsNyBAQAogICAgIChjKT0ocylbKGkpKytdOyBcCiAgICAgaWYoVTE2X0lTX0xFQUQoYykpIHsg
XAogICAgICAgICB1aW50MTZfdCBfX2MyOyBcCi0gICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBV
MTZfSVNfVFJBSUwoX19jMj0ocylbKGkpXSkpIHsgXAorICAgICAgICBpZigoaSkhPShsZW5ndGgp
ICYmIFUxNl9JU19UUkFJTChfX2MyPShzKVsoaSldKSkgeyBcCiAgICAgICAgICAgICArKyhpKTsg
XAogICAgICAgICAgICAgKGMpPVUxNl9HRVRfU1VQUExFTUVOVEFSWSgoYyksIF9fYzIpOyBcCiAg
ICAgICAgIH0gXApAQCAtMzQwLDYgKzM0Myw4IEBACiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRl
cmF0aW9uLikKICAqICJTYWZlIiBtYWNybywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFu
ZCBjaGVja3MgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJl
IG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBj
b25zdCBVQ2hhciAqIHN0cmluZwogICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBp
PGxlbmd0aAogICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCkBAIC0zNDcsNyArMzUyLDcg
QEAKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9GV0RfMShzLCBpLCBsZW5n
dGgpIHsgXAotICAgIGlmKFUxNl9JU19MRUFEKChzKVsoaSkrK10pICYmIChpKTwobGVuZ3RoKSAm
JiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCisgICAgaWYoVTE2X0lTX0xFQUQoKHMpWyhpKSsr
XSkgJiYgKGkpIT0obGVuZ3RoKSAmJiBVMTZfSVNfVFJBSUwoKHMpW2ldKSkgeyBcCiAgICAgICAg
ICsrKGkpOyBcCiAgICAgfSBcCiB9CkBAIC0zNzgsMTYgKzM4MywxOCBAQAogICogKFBvc3QtaW5j
cmVtZW50aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQg
c3Vycm9nYXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUg
bGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgog
ICogQHBhcmFtIHMgY29uc3QgVUNoYXIgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZz
ZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICog
QHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFy
YW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNv
ZGUgcG9pbnRzIHRvIHNraXAKICAqIEBzZWUgVTE2X0ZXRF9OX1VOU0FGRQogICogQHN0YWJsZSBJ
Q1UgMi40CiAgKi8KICNkZWZpbmUgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgeyBcCiAgICAg
aW50MzJfdCBfX049KG4pOyBcCi0gICAgd2hpbGUoX19OPjAgJiYgKGkpPChsZW5ndGgpKSB7IFwK
KyAgICB3aGlsZShfX04+MCAmJiAoKGkpPChsZW5ndGgpIHx8ICgobGVuZ3RoKTwwICYmIChzKVtp
XSE9MCkpKSB7IFwKICAgICAgICAgVTE2X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAg
LS1fX047IFwKICAgICB9IFwKQEAgLTU5OCwxNSArNjA1LDE3IEBACiAgKiBUaGUgaW5wdXQgb2Zm
c2V0IG1heSBiZSB0aGUgc2FtZSBhcyB0aGUgc3RyaW5nIGxlbmd0aC4KICAqICJTYWZlIiBtYWNy
bywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBib3Vu
ZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJt
aW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCBVQ2hhciAqIHN0cmluZwotICog
QHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJh
bSBpIHN0cmluZyBvZmZzZXQsIHN0YXJ0PD1pPD1sZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3Ry
aW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNl
dCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBzdGFydDw9
aTw9bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHNl
ZSBVMTZfU0VUX0NQX0xJTUlUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZp
bmUgVTE2X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZigoc3Rh
cnQpPChpKSAmJiAoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX0xFQUQoKHMpWyhpKS0xXSkgJiYgVTE2
X0lTX1RSQUlMKChzKVtpXSkpIHsgXAorICAgIGlmKChzdGFydCk8KGkpICYmICgoaSk8KGxlbmd0
aCkgfHwgKGxlbmd0aCk8MCkgJiYgVTE2X0lTX0xFQUQoKHMpWyhpKS0xXSkgJiYgVTE2X0lTX1RS
QUlMKChzKVtpXSkpIHsgXAogICAgICAgICArKyhpKTsgXAogICAgIH0gXAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmOC5oIGIvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdXRmOC5oCmluZGV4IDY0MDU3OTVhNWExYzUzNjk4ODQ2ZDExMDE1Njk5YjYxYzMx
MDIyMjQuLjIxZTVmM2QwNDc5MDUzMTU1ZjI5NGM0Mjg4NGY0Mjc0ZGE1NDRlYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0ZjguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pY3UvdW5pY29kZS91dGY4LmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA5LCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTMsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE5LDExICsxOSw5
IEBACiAgKiBcYnJpZWYgQyBBUEk6IDgtYml0IFVuaWNvZGUgaGFuZGxpbmcgbWFjcm9zCiAgKiAK
ICAqIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggOC1iaXQgVW5pY29kZSAo
VVRGLTgpIGNvZGUgdW5pdHMgKGJ5dGVzKSBhbmQgc3RyaW5ncy4KLSAqIHV0ZjguaCBpcyBpbmNs
dWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmgKLSAqIGFuZCBzb21lIGNvbW1v
biBkZWZpbml0aW9ucy4KICAqCiAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdXRmLmggYW5k
IHRoZSBJQ1UgVXNlciBHdWlkZSBTdHJpbmdzIGNoYXB0ZXIKLSAqIChodHRwOi8vaWN1LXByb2pl
Y3Qub3JnL3VzZXJndWlkZS9zdHJpbmdzLmh0bWwpLgorICogKGh0dHA6Ly91c2VyZ3VpZGUuaWN1
LXByb2plY3Qub3JnL3N0cmluZ3MpLgogICoKICAqIDxlbT5Vc2FnZTo8L2VtPgogICogSUNVIGNv
ZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIHdo
ZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgpAQCAtMzQsNyArMzIsNyBAQAogI2lmbmRlZiBfX1VURjhf
SF9fCiAjZGVmaW5lIF9fVVRGOF9IX18KIAotLyogdXRmLmggbXVzdCBiZSBpbmNsdWRlZCBmaXJz
dC4gKi8KKyNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjaWZuZGVmIF9fVVRGX0hfXwog
IyAgIGluY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjZW5kaWYKQEAgLTYyLDEzICs2MCw0MSBAQCBV
X0NGVU5DIFVfSU1QT1JUIGNvbnN0IHVpbnQ4X3QgLyogVV9JTVBPUlQyPyAqLyAvKlVfSU1QT1JU
Ki8KIHV0ZjhfY291bnRUcmFpbEJ5dGVzWzI1Nl07CiAKIC8qKgotICogQ291bnQgdGhlIHRyYWls
IGJ5dGVzIGZvciBhIFVURi04IGxlYWQgYnl0ZS4KKyAqIENvdW50cyB0aGUgdHJhaWwgYnl0ZXMg
Zm9yIGEgVVRGLTggbGVhZCBieXRlLgorICogUmV0dXJucyAwIGZvciAwLi4weGJmIGFzIHdlbGwg
YXMgZm9yIDB4ZmUgYW5kIDB4ZmYuCiAgKgogICogVGhpcyBpcyBpbnRlcm5hbCBzaW5jZSBpdCBp
cyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IGV4dGVybmFsIGNsaWVudHM7CiAg
KiBob3dldmVyIGl0IGlzIGNhbGxlZCBieSBwdWJsaWMgbWFjcm9zIGluIHRoaXMgZmlsZSBhbmQg
dGh1cyBtdXN0IHJlbWFpbiBzdGFibGUuCisgKgorICogTm90ZTogQmVnaW5uaW5nIHdpdGggSUNV
IDUwLCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBhIG11bHRpLWNvbmRpdGlvbiBleHByZXNzaW9u
CisgKiB3aGljaCB3YXMgc2hvd24gaW4gMjAxMiAob24geDg2LTY0KSB0byBjb21waWxlIHRvIGZh
c3QsIGJyYW5jaC1mcmVlIGNvZGUuCisgKiBsZWFkQnl0ZSBpcyBldmFsdWF0ZWQgbXVsdGlwbGUg
dGltZXMuCisgKgorICogVGhlIHByZS1JQ1UgNTAgaW1wbGVtZW50YXRpb24gdXNlZCB0aGUgZXhw
b3J0ZWQgYXJyYXkgdXRmOF9jb3VudFRyYWlsQnl0ZXM6CisgKiAjZGVmaW5lIFU4X0NPVU5UX1RS
QUlMX0JZVEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbbGVhZEJ5dGVdKQorICog
bGVhZEJ5dGUgd2FzIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UuCisgKgorICogQHBhcmFtIGxlYWRC
eXRlIFRoZSBmaXJzdCBieXRlIG9mIGEgVVRGLTggc2VxdWVuY2UuIE11c3QgYmUgMC4uMHhmZi4K
ICAqIEBpbnRlcm5hbAogICovCi0jZGVmaW5lIFU4X0NPVU5UX1RSQUlMX0JZVEVTKGxlYWRCeXRl
KSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVdKQorI2RlZmluZSBVOF9D
T1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgXAorICAgICgobGVhZEJ5dGUpPDB4ZjAgPyBcCisg
ICAgICAgICgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkgOiBcCisgICAgICAg
IChsZWFkQnl0ZSk8MHhmZSA/IDMrKChsZWFkQnl0ZSk+PTB4ZjgpKygobGVhZEJ5dGUpPj0weGZj
KSA6IDApCisKKy8qKgorICogQ291bnRzIHRoZSB0cmFpbCBieXRlcyBmb3IgYSBVVEYtOCBsZWFk
IGJ5dGUgb2YgYSB2YWxpZCBVVEYtOCBzZXF1ZW5jZS4KKyAqIFRoZSBtYXhpbXVtIHN1cHBvcnRl
ZCBsZWFkIGJ5dGUgaXMgMHhmNCBjb3JyZXNwb25kaW5nIHRvIFUrMTBGRkZGLgorICogbGVhZEJ5
dGUgbWlnaHQgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgorICoKKyAqIFRoaXMgaXMgaW50
ZXJuYWwgc2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseSBieSBleHRl
cm5hbCBjbGllbnRzOworICogaG93ZXZlciBpdCBpcyBjYWxsZWQgYnkgcHVibGljIG1hY3JvcyBp
biB0aGlzIGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4gc3RhYmxlLgorICoKKyAqIEBwYXJhbSBs
ZWFkQnl0ZSBUaGUgZmlyc3QgYnl0ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4
ZmYuCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFU19VTlNB
RkUobGVhZEJ5dGUpIFwKKyAgICAoKChsZWFkQnl0ZSk+PTB4YzApKygobGVhZEJ5dGUpPj0weGUw
KSsoKGxlYWRCeXRlKT49MHhmMCkpCiAKIC8qKgogICogTWFzayBhIFVURi04IGxlYWQgYnl0ZSwg
bGVhdmUgb25seSB0aGUgbG93ZXIgYml0cyB0aGF0IGZvcm0gcGFydCBvZiB0aGUgY29kZSBwb2lu
dCB2YWx1ZS4KQEAgLTIwNiwyNCArMjMyLDYwIEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1
aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogVGhlIG9mZnNldCBtYXkg
cG9pbnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0cmFpbCBieXRlcwog
ICogZm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkIGFs
bCBvZiB0aGUgYnl0ZXMKICAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisgKiBUaGUgbGVuZ3Ro
IGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogSWYg
dGhlIG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlLCB0aGVu
CiAgKiBjIGlzIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICogSXRlcmF0aW9uIHRocm91Z2gg
YSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0aCBVOF9ORVhUX1VOU0FGRSBvciBVOF9ORVhU
LgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFy
dCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0Ci0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIHN0YXJ0PD1pPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBA
cGFyYW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBAcGFyYW0gaSBp
bnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBAcGFyYW0g
bGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIg
dmFyaWFibGUsIHNldCB0byA8MCBpbiBjYXNlIG9mIGFuIGVycm9yCiAgKiBAc2VlIFU4X0dFVF9V
TlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0dFVChzLCBzdGFydCwg
aSwgbGVuZ3RoLCBjKSB7IFwKLSAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9KGludDMyX3QpKGkp
OyBcCisgICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAogICAgIFU4X1NFVF9DUF9TVEFS
VChzLCBzdGFydCwgX3U4X2dldF9pbmRleCk7IFwKICAgICBVOF9ORVhUKHMsIF91OF9nZXRfaW5k
ZXgsIGxlbmd0aCwgYyk7IFwKIH0KIAorI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAq
IEdldCBhIGNvZGUgcG9pbnQgZnJvbSBhIHN0cmluZyBhdCBhIHJhbmRvbS1hY2Nlc3Mgb2Zmc2V0
LAorICogd2l0aG91dCBjaGFuZ2luZyB0aGUgb2Zmc2V0LgorICogVGhlIG9mZnNldCBtYXkgcG9p
bnQgdG8gZWl0aGVyIHRoZSBsZWFkIGJ5dGUgb3Igb25lIG9mIHRoZSB0cmFpbCBieXRlcworICog
Zm9yIGEgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFkIGFsbCBv
ZiB0aGUgYnl0ZXMKKyAqIGZvciB0aGUgY29kZSBwb2ludC4KKyAqCisgKiBUaGUgbGVuZ3RoIGNh
biBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgorICogSWYgdGhl
IG9mZnNldCBwb2ludHMgdG8gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlLCB0aGVuCisg
KiBjIGlzIHNldCB0byBVK0ZGRkQuCisgKiBJdGVyYXRpb24gdGhyb3VnaCBhIHN0cmluZyBpcyBt
b3JlIGVmZmljaWVudCB3aXRoIFU4X05FWFRfVU5TQUZFIG9yIFU4X05FWFRfT1JfRkZGRC4KKyAq
CisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZG
RCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBz
ZXF1ZW5jZS4KKyAqIFVzZSBVOF9HRVQoKSBpZiB0aGF0IGRpc3RpbmN0aW9uIGlzIGltcG9ydGFu
dC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCisgKiBAcGFyYW0gc3Rh
cnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0CisgKiBAcGFyYW0gaSBpbnQzMl90IHN0
cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGlu
dDMyX3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFibGUs
IHNldCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBVOF9HRVQKKyAqIEBk
cmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9HRVRfT1JfRkZGRChzLCBzdGFydCwgaSwgbGVu
Z3RoLCBjKSB7IFwKKyAgICBpbnQzMl90IF91OF9nZXRfaW5kZXg9KGkpOyBcCisgICAgVThfU0VU
X0NQX1NUQVJUKHMsIHN0YXJ0LCBfdThfZ2V0X2luZGV4KTsgXAorICAgIFU4X05FWFRfT1JfRkZG
RChzLCBfdThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBcCit9CisjZW5kaWYgLyogVV9ISURFX0RS
QUZUX0FQSSAqLworCiAvKiBkZWZpbml0aW9ucyB3aXRoIGZvcndhcmQgaXRlcmF0aW9uIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTI0NSwxOSAr
MzA3LDE2IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0
YXJ0LCBpbnQzMl90IGkpOwogICovCiAjZGVmaW5lIFU4X05FWFRfVU5TQUZFKHMsIGksIGMpIHsg
XAogICAgIChjKT0odWludDhfdCkocylbKGkpKytdOyBcCi0gICAgaWYoKHVpbnQ4X3QpKChjKS0w
eGMwKTwweDM1KSB7IFwKLSAgICAgICAgdWludDhfdCBfX2NvdW50PVU4X0NPVU5UX1RSQUlMX0JZ
VEVTKGMpOyBcCi0gICAgICAgIFU4X01BU0tfTEVBRF9CWVRFKGMsIF9fY291bnQpOyBcCi0gICAg
ICAgIHN3aXRjaChfX2NvdW50KSB7IFwKLSAgICAgICAgLyogZWFjaCBmb2xsb3dpbmcgYnJhbmNo
IGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25lICovIFwKLSAgICAgICAgY2FzZSAzOiBcCi0g
ICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKLSAgICAgICAgY2Fz
ZSAyOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKLSAg
ICAgICAgY2FzZSAxOiBcCi0gICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgz
Zik7IFwKLSAgICAgICAgLyogbm8gb3RoZXIgYnJhbmNoZXMgdG8gb3B0aW1pemUgc3dpdGNoKCkg
Ki8gXAotICAgICAgICAgICAgYnJlYWs7IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAg
ICBpZigoYyk8MHhlMCkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmMHgxZik8PDYpfCgocylb
KGkpKytdJjB4M2YpOyBcCisgICAgICAgIH0gZWxzZSBpZigoYyk8MHhmMCkgeyBcCisgICAgICAg
ICAgICAvKiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1c2UgdGhlIHVwcGVyIGJpdHMgYXJlIHRy
dW5jYXRlZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRvIChVQ2hhcikgKi8gXAorICAgICAgICAg
ICAgKGMpPShVQ2hhcikoKChjKTw8MTIpfCgoKHMpW2ldJjB4M2YpPDw2KXwoKHMpWyhpKSsxXSYw
eDNmKSk7IFwKKyAgICAgICAgICAgIChpKSs9MjsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAg
ICAgICAgICAoYyk9KCgoYykmNyk8PDE4KXwoKChzKVtpXSYweDNmKTw8MTIpfCgoKHMpWyhpKSsx
XSYweDNmKTw8Nil8KChzKVsoaSkrMl0mMHgzZik7IFwKKyAgICAgICAgICAgIChpKSs9MzsgXAog
ICAgICAgICB9IFwKICAgICB9IFwKIH0KQEAgLTI2OCwxNCArMzI3LDE2IEBAIHV0ZjhfYmFjazFT
YWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICog
KFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKICAqICJTYWZlIiBtYWNybywg
Y2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgog
ICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0
cmluZy4KKyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVhZCBieXRlIG9mIGEg
bXVsdGktYnl0ZSBzZXF1ZW5jZSwKICAqIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVh
ZCB0aGUgd2hvbGUgc2VxdWVuY2UuCiAgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHRyYWls
IGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgogICogYyBpcyBzZXQgdG8g
YSBuZWdhdGl2ZSB2YWx1ZS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5n
Ci0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFyYW0g
bGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwg
bXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgK
ICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4gY2FzZSBv
ZiBhbiBlcnJvcgogICogQHNlZSBVOF9ORVhUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CkBA
IC0yODYsNyArMzQ3LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGlu
dDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgIHVpbnQ4X3QgX190MSwgX190MjsgXAog
ICAgICAgICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAqLyBcCiAgICAgICAg
ICAgICAoMHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCi0gICAgICAgICAgICAoKChpKSsxKTwo
bGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkgfHwgKGxlbmd0aCk8
MCkgJiYgXAogICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2Yg
JiYgXAogICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0tMHg4MCkpPD0gMHgz
ZiBcCiAgICAgICAgICkgeyBcCkBAIC0yOTUsMTkgKzM1Niw3MCBAQCB1dGY4X2JhY2sxU2FmZUJv
ZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAgICAgICAg
ICAgIChpKSs9MjsgXAogICAgICAgICB9IGVsc2UgaWYoIC8qIGhhbmRsZSBVKzAwODAuLlUrMDdG
RiBpbmxpbmUgKi8gXAogICAgICAgICAgICAgKChjKTwweGUwICYmIChjKT49MHhjMikgJiYgXAot
ICAgICAgICAgICAgKChpKTwobGVuZ3RoKSkgJiYgXAorICAgICAgICAgICAgKChpKSE9KGxlbmd0
aCkpICYmIFwKICAgICAgICAgICAgIChfX3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0weDNm
IFwKICAgICAgICAgKSB7IFwKLSAgICAgICAgICAgIChjKT0oVUNoYXIpKCgoKGMpJjB4MWYpPDw2
KXxfX3QxKTsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxfX3QxOyBcCiAgICAg
ICAgICAgICArKyhpKTsgXAotICAgICAgICB9IGVsc2UgaWYoVThfSVNfTEVBRChjKSkgeyBcCisg
ICAgICAgIH0gZWxzZSB7IFwKICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIGNhbGwgZm9yICJjb21w
bGljYXRlZCIgYW5kIGVycm9yIGNhc2VzICovIFwKLSAgICAgICAgICAgIChjKT11dGY4X25leHRD
aGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4X3QgKilzLCAmKGkpLCAoaW50MzJfdCkobGVuZ3RoKSwg
YywgLTEpOyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1
aW50OF90ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0xKTsgXAorICAgICAgICB9IFwKKyAgICB9
IFwKK30KKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisvKioKKyAqIEdldCBhIGNvZGUgcG9p
bnQgZnJvbSBhIHN0cmluZyBhdCBhIGNvZGUgcG9pbnQgYm91bmRhcnkgb2Zmc2V0LAorICogYW5k
IGFkdmFuY2UgdGhlIG9mZnNldCB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGJvdW5kYXJ5LgorICog
KFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKKyAqICJTYWZlIiBtYWNybywg
Y2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgor
ICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJtaW5hdGVkIHN0
cmluZy4KKyAqCisgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVhZCBieXRlIG9mIGEg
bXVsdGktYnl0ZSBzZXF1ZW5jZSwKKyAqIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVh
ZCB0aGUgd2hvbGUgc2VxdWVuY2UuCisgKiBJZiB0aGUgb2Zmc2V0IHBvaW50cyB0byBhIHRyYWls
IGJ5dGUgb3IgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbgorICogYyBpcyBzZXQgdG8g
VStGRkZELgorICoKKyAqIFRoaXMgbWFjcm8gZG9lcyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBh
IHJlYWwgVStGRkZEIGluIHRoZSB0ZXh0CisgKiBhbmQgVStGRkZEIHJldHVybmVkIGZvciBhbiBp
bGwtZm9ybWVkIHNlcXVlbmNlLgorICogVXNlIFU4X05FWFQoKSBpZiB0aGF0IGRpc3RpbmN0aW9u
IGlzIGltcG9ydGFudC4KKyAqCisgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCisg
KiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKKyAqIEBw
YXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gYyBvdXRwdXQgVUNo
YXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9mIGFuIGVycm9yCisgKiBAc2Vl
IFU4X05FWFQKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmluZSBVOF9ORVhUX09SX0ZGRkQo
cywgaSwgbGVuZ3RoLCBjKSB7IFwKKyAgICAoYyk9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAorICAg
IGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIHVpbnQ4X3QgX190MSwgX190MjsgXAorICAgICAg
ICBpZiggLyogaGFuZGxlIFUrMTAwMC4uVStDRkZGIGlubGluZSAqLyBcCisgICAgICAgICAgICAo
MHhlMDwoYykgJiYgKGMpPD0weGVjKSAmJiBcCisgICAgICAgICAgICAoKChpKSsxKTwobGVuZ3Ro
KSB8fCAobGVuZ3RoKTwwKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ld
LTB4ODApKTw9MHgzZiAmJiBcCisgICAgICAgICAgICAoX190Mj0odWludDhfdCkoKHMpWyhpKSsx
XS0weDgwKSk8PSAweDNmIFwKKyAgICAgICAgKSB7IFwKKyAgICAgICAgICAgIC8qIG5vIG5lZWQg
Zm9yIChjJjB4ZikgYmVjYXVzZSB0aGUgdXBwZXIgYml0cyBhcmUgdHJ1bmNhdGVkIGFmdGVyIDw8
MTIgaW4gdGhlIGNhc3QgdG8gKFVDaGFyKSAqLyBcCisgICAgICAgICAgICAoYyk9KFVDaGFyKSgo
KGMpPDwxMil8KF9fdDE8PDYpfF9fdDIpOyBcCisgICAgICAgICAgICAoaSkrPTI7IFwKKyAgICAg
ICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYgaW5saW5lICovIFwKKyAgICAg
ICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShs
ZW5ndGgpKSAmJiBcCisgICAgICAgICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9
MHgzZiBcCisgICAgICAgICkgeyBcCisgICAgICAgICAgICAoYyk9KCgoYykmMHgxZik8PDYpfF9f
dDE7IFwKKyAgICAgICAgICAgICsrKGkpOyBcCiAgICAgICAgIH0gZWxzZSB7IFwKLSAgICAgICAg
ICAgIChjKT1VX1NFTlRJTkVMOyBcCisgICAgICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAi
Y29tcGxpY2F0ZWQiIGFuZCBlcnJvciBjYXNlcyAqLyBcCisgICAgICAgICAgICAoYyk9dXRmOF9u
ZXh0Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgJihpKSwgKGxlbmd0aCksIGMsIC0z
KTsgXAogICAgICAgICB9IFwKICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRfQVBJ
ICovCiAKIC8qKgogICogQXBwZW5kIGEgY29kZSBwb2ludCB0byBhIHN0cmluZywgb3ZlcndyaXRp
bmcgMSB0byA0IGJ5dGVzLgpAQCAtMzUxLDkgKzQ2Myw5IEBAIHV0ZjhfYmFjazFTYWZlQm9keShj
b25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogdGhlbiBpc0Vy
cm9yIGlzIHNldCB0byBUUlVFLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJp
bmcgYnVmZmVyCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8Y2FwYWNpdHkK
LSAqIEBwYXJhbSBjYXBhY2l0eSBzaXplIG9mIHRoZSBzdHJpbmcgYnVmZmVyCi0gKiBAcGFyYW0g
YyBjb2RlIHBvaW50IHRvIGFwcGVuZAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0
LCBtdXN0IGJlIGk8Y2FwYWNpdHkKKyAqIEBwYXJhbSBjYXBhY2l0eSBpbnQzMl90IHNpemUgb2Yg
dGhlIHN0cmluZyBidWZmZXIKKyAqIEBwYXJhbSBjIFVDaGFyMzIgY29kZSBwb2ludCB0byBhcHBl
bmQKICAqIEBwYXJhbSBpc0Vycm9yIG91dHB1dCBVQm9vbCBzZXQgdG8gVFJVRSBpZiBhbiBlcnJv
ciBvY2N1cnMsIG90aGVyd2lzZSBub3QgbW9kaWZpZWQKICAqIEBzZWUgVThfQVBQRU5EX1VOU0FG
RQogICogQHN0YWJsZSBJQ1UgMi40CkBAIC0zNjksNyArNDgxLDcgQEAgdXRmOF9iYWNrMVNhZmVC
b2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAg
IChzKVsoaSkrK109KHVpbnQ4X3QpKCgoKGMpPj42KSYweDNmKXwweDgwKTsgXAogICAgICAgICAo
cylbKGkpKytdPSh1aW50OF90KSgoKGMpJjB4M2YpfDB4ODApOyBcCiAgICAgfSBlbHNlIHsgXAot
ICAgICAgICAoaSk9dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50
MzJfdCkoY2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAorICAgICAgICAoaSk9dXRmOF9hcHBl
bmRDaGFyU2FmZUJvZHkocywgKGkpLCAoY2FwYWNpdHkpLCBjLCAmKGlzRXJyb3IpKTsgXAogICAg
IH0gXAogfQogCkBAIC0zODQsNyArNDk2LDcgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVp
bnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiBAc3RhYmxlIElDVSAyLjQK
ICAqLwogI2RlZmluZSBVOF9GV0RfMV9VTlNBRkUocywgaSkgeyBcCi0gICAgKGkpKz0xK1U4X0NP
VU5UX1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKKyAgICAoaSkrPTErVThfQ09VTlRfVFJBSUxfQllU
RVNfVU5TQUZFKCh1aW50OF90KShzKVtpXSk7IFwKIH0KIAogLyoqCkBAIC0zOTIsOSArNTA0LDEx
IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBp
bnQzMl90IGkpOwogICogKFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIg
bWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRh
cmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWlu
YXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICog
QHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0
aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3Qg
YmUgaTxsZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBA
c2VlIFU4X0ZXRF8xX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KQEAgLTQwMiw3ICs1
MTYsNyBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFy
dCwgaW50MzJfdCBpKTsKICAgICB1aW50OF90IF9fYj0odWludDhfdCkocylbKGkpKytdOyBcCiAg
ICAgaWYoVThfSVNfTEVBRChfX2IpKSB7IFwKICAgICAgICAgdWludDhfdCBfX2NvdW50PVU4X0NP
VU5UX1RSQUlMX0JZVEVTKF9fYik7IFwKLSAgICAgICAgaWYoKGkpK19fY291bnQ+KGxlbmd0aCkp
IHsgXAorICAgICAgICBpZigoaSkrX19jb3VudD4obGVuZ3RoKSAmJiAobGVuZ3RoKT49MCkgeyBc
CiAgICAgICAgICAgICBfX2NvdW50PSh1aW50OF90KSgobGVuZ3RoKS0oaSkpOyBcCiAgICAgICAg
IH0gXAogICAgICAgICB3aGlsZShfX2NvdW50PjAgJiYgVThfSVNfVFJBSUwoKHMpW2ldKSkgeyBc
CkBAIC00MzgsMTYgKzU1MiwxOCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAq
cywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVy
YXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFu
ZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRp
dmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVp
bnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5n
dGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGkgaW50MzJfdCBz
dHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMyX3Qg
c3RyaW5nIGxlbmd0aAogICogQHBhcmFtIG4gbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRvIHNraXAK
ICAqIEBzZWUgVThfRldEX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogI2RlZmlu
ZSBVOF9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIHsgXAogICAgIGludDMyX3QgX19OPShuKTsgXAot
ICAgIHdoaWxlKF9fTj4wICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgd2hpbGUoX19OPjAgJiYg
KChpKTwobGVuZ3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAg
IFU4X0ZXRF8xKHMsIGksIGxlbmd0aCk7IFwKICAgICAgICAgLS1fX047IFwKICAgICB9IFwKQEAg
LTQ3OSwxNCArNTk1LDE0IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBp
bnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGls
bGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFt
IHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmlu
ZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUg
c3RhcnQ8PWkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQg
KHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBz
dGFydDw9aQogICogQHNlZSBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwogI2RlZmluZSBVOF9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIGkpIHsgXAogICAgIGlm
KFU4X0lTX1RSQUlMKChzKVsoaSldKSkgeyBcCi0gICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJv
ZHkocywgc3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYmFjazFTYWZl
Qm9keShzLCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQogCkBAIC01NDcsOCArNjYzLDggQEAg
dXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMy
X3QgaSk7CiAgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2FsIFVURi04IHNlcXVl
bmNlLCB0aGVuIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUuCiAgKgogICogQHBhcmFtIHMg
Y29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBv
ZmZzZXQgKHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3Rh
cnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1
YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0
PGkKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gPDAgaW4gY2Fz
ZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9QUkVWX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40
CkBAIC01NTYsMTMgKzY3Miw0MiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAq
cywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICNkZWZpbmUgVThfUFJFVihzLCBzdGFydCwg
aSwgYykgeyBcCiAgICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKICAgICBpZigoYyk+PTB4
ODApIHsgXAotICAgICAgICBpZigoYyk8PTB4YmYpIHsgXAotICAgICAgICAgICAgKGMpPXV0Zjhf
cHJldkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAmKGkpLCBjLCAtMSk7
IFwKLSAgICAgICAgfSBlbHNlIHsgXAotICAgICAgICAgICAgKGMpPVVfU0VOVElORUw7IFwKLSAg
ICAgICAgfSBcCisgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkoKGNvbnN0IHVpbnQ4
X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBcCisgICAgfSBcCit9CisKKyNpZm5kZWYgVV9I
SURFX0RSQUZUX0FQSQorLyoqCisgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZyb20gb25lIGNv
ZGUgcG9pbnQgYm91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZQorICogYW5kIGdldCB0aGUgY29k
ZSBwb2ludCBiZXR3ZWVuIHRoZW0uCisgKiAoUHJlLWRlY3JlbWVudGluZyBiYWNrd2FyZCBpdGVy
YXRpb24uKQorICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFu
ZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCisgKgorICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUg
dGhlIHNhbWUgYXMgdGhlIHN0cmluZyBsZW5ndGguCisgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGlu
ZCBhIG11bHRpLWJ5dGUgc2VxdWVuY2UsIHRoZW4gdGhlIG1hY3JvIHdpbGwgcmVhZAorICogdGhl
IHdob2xlIHNlcXVlbmNlLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYSBsZWFkIGJ5dGUs
IHRoZW4gdGhhdCBpdHNlbGYKKyAqIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhlIGNvZGUgcG9pbnQu
CisgKiBJZiB0aGUgb2Zmc2V0IGlzIGJlaGluZCBhbiBpbGxlZ2FsIFVURi04IHNlcXVlbmNlLCB0
aGVuIGMgaXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBUaGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rp
bmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0aGUgdGV4dAorICogYW5kIFUrRkZGRCBy
ZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5jZS4KKyAqIFVzZSBVOF9QUkVWKCkgaWYg
dGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFtIHMgY29uc3QgdWlu
dDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9m
ZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8g
VStGRkZEIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfUFJFVgorICogQGRyYWZ0IElD
VSA1MQorICovCisjZGVmaW5lIFU4X1BSRVZfT1JfRkZGRChzLCBzdGFydCwgaSwgYykgeyBcCisg
ICAgKGMpPSh1aW50OF90KShzKVstLShpKV07IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAg
ICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgc3RhcnQs
ICYoaSksIGMsIC0zKTsgXAogICAgIH0gXAogfQorI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkg
Ki8KIAogLyoqCiAgKiBNb3ZlIHRoZSBzdHJpbmcgb2Zmc2V0IGZyb20gb25lIGNvZGUgcG9pbnQg
Ym91bmRhcnkgdG8gdGhlIHByZXZpb3VzIG9uZS4KQEAgLTU4NiwxNCArNzMxLDE0IEBAIHV0Zjhf
YmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkp
OwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Ig
c3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmlu
ZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKLSAq
IEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0
IGludDMyX3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkg
aW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKICAqIEBzZWUgVThfQkFDS18x
X1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfQkFDS18xKHMsIHN0
YXJ0LCBpKSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylbLS0oaSldKSkgeyBcCi0gICAgICAg
IChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChpbnQzMl90KShpKSk7IFwKKyAgICAg
ICAgKGkpPXV0ZjhfYmFjazFTYWZlQm9keShzLCBzdGFydCwgKGkpKTsgXAogICAgIH0gXAogfQog
CkBAIC02MjYsOCArNzcxLDggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMs
IGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3Ig
aWxsZWdhbCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCiAgKiBAcGFy
YW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgaW5kZXggb2YgdGhl
IHN0YXJ0IG9mIHRoZSBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUg
c3RhcnQ8aQorICogQHBhcmFtIHN0YXJ0IGludDMyX3QgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRo
ZSBzdHJpbmcKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFy
dDxpCiAgKiBAcGFyYW0gbiBudW1iZXIgb2YgY29kZSBwb2ludHMgdG8gc2tpcAogICogQHNlZSBV
OF9CQUNLX05fVU5TQUZFCiAgKiBAc3RhYmxlIElDVSAyLjQKQEAgLTY2NiwxNSArODExLDE3IEBA
IHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQz
Ml90IGkpOwogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0cmlu
ZyBsZW5ndGguCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdhbCBzZXF1ZW5jZXMg
YW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdh
dGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3Qg
dWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQg
KHVzdWFsbHkgMCkKLSAqIEBwYXJhbSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8
PWxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVuZ3RoCisgKiBAcGFyYW0gc3RhcnQg
aW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBAcGFyYW0gaSBp
bnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWk8PWxlbmd0aAorICogQHBhcmFt
IGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBzZWUgVThfU0VUX0NQX0xJTUlUX1VO
U0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfU0VUX0NQX0xJTUlUKHMs
IHN0YXJ0LCBpLCBsZW5ndGgpIHsgXAotICAgIGlmKChzdGFydCk8KGkpICYmIChpKTwobGVuZ3Ro
KSkgeyBcCisgICAgaWYoKHN0YXJ0KTwoaSkgJiYgKChpKTwobGVuZ3RoKSB8fCAoKGxlbmd0aCk8
MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFU4X0JBQ0tfMShzLCBzdGFydCwgaSk7IFwK
ICAgICAgICAgVThfRldEXzEocywgaSwgbGVuZ3RoKTsgXAogICAgIH0gXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXRmX29sZC5oIGIvU291cmNlL1dlYkNvcmUvaWN1
L3VuaWNvZGUvdXRmX29sZC5oCmluZGV4IDg1MDRhMDMwZGRmYzRkYmFlMzYzZTViNWZhNmM1ZDE1
OGJiN2NjZTMuLmY5MTI1YjFkZDJlZDdlMWM2ODRkYTE2NTRmNWU0N2RkN2NkNWZiMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V0Zl9vbGQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pY3UvdW5pY29kZS91dGZfb2xkLmgKQEAgLTEgKzEsMTE2OSBAQAotLyogVGhpcyBm
aWxlIGlzIGludGVudGlvbmFsbHkgbGVmdCBibGFuay4gKi8KKy8qCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTIsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dGZf
b2xkLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1
c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAyc2VwMjEKKyog
ICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworLyoqCisgKiBcZmlsZSAKKyAq
IFxicmllZiBDIEFQSTogRGVwcmVjYXRlZCBtYWNyb3MgZm9yIFVuaWNvZGUgc3RyaW5nIGhhbmRs
aW5nCisgKi8KKworLyoqCisgKiAKKyAqIFRoZSBtYWNyb3MgaW4gdXRmX29sZC5oIGFyZSBhbGwg
ZGVwcmVjYXRlZCBhbmQgdGhlaXIgdXNlIGRpc2NvdXJhZ2VkLgorICogU29tZSBvZiB0aGUgZGVz
aWduIHByaW5jaXBsZXMgYmVoaW5kIHRoZSBzZXQgb2YgVVRGIG1hY3JvcworICogaGF2ZSBjaGFu
Z2VkIG9yIHByb3ZlZCBpbXByYWN0aWNhbC4KKyAqIEFsbW9zdCBhbGwgb2YgdGhlIG9sZCAiVVRG
IG1hY3JvcyIgYXJlIGF0IGxlYXN0IHJlbmFtZWQuCisgKiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9y
IGEgbmV3IGVxdWl2YWxlbnQgdG8gYW4gb2xkIG1hY3JvLCBwbGVhc2Ugc2VlIHRoZQorICogY29t
bWVudCBhdCB0aGUgb2xkIG9uZS4KKyAqCisgKiBCcmllZiBzdW1tYXJ5IG9mIHJlYXNvbnMgZm9y
IGRlcHJlY2F0aW9uOgorICogLSBTd2l0Y2ggb24gVVRGX1NJWkUgKHNlbGVjdGlvbiBvZiBVVEYt
OC8xNi8zMiBkZWZhdWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgaW1wcmFjdGljYWwu
CisgKiAtIFN3aXRjaCBvbiBVVEZfU0FGRSBldGMuIChzZWxlY3Rpb24gb2YgdW5zYWZlL3NhZmUv
c3RyaWN0IGRlZmF1bHQgc3RyaW5nIHByb2Nlc3NpbmcpCisgKiAgIHdhcyBvZiBsaXR0bGUgdXNl
IGFuZCBpbXByYWN0aWNhbC4KKyAqIC0gV2hvbGUgY2xhc3NlcyBvZiBtYWNyb3MgYmVjYW1lIG9i
c29sZXRlIG91dHNpZGUgb2YgdGhlIFVURl9TSVpFL1VURl9TQUZFCisgKiAgIHNlbGVjdGlvbiBm
cmFtZXdvcms6IFVURjMyXyBtYWNyb3MgKGFsbCB0cml2aWFsKQorICogICBhbmQgVVRGXyBkZWZh
dWx0IGFuZCBpbnRlcm1lZGlhdGUgbWFjcm9zIChhbGwgYWxpYXNlcykuCisgKiAtIFRoZSBzZWxl
Y3Rpb24gZnJhbWV3b3JrIGFsc28gY2F1c2VkIG1hbnkgbWFjcm8gYWxpYXNlcy4KKyAqIC0gQ2hh
bmdlIGluIFVuaWNvZGUgc3RhbmRhcmQ6ICJpcnJlZ3VsYXIiIHNlcXVlbmNlcyAoMy4wKSBiZWNh
bWUgaWxsZWdhbCAoMy4yKS4KKyAqIC0gQ2hhbmdlIG9mIGxhbmd1YWdlIGluIFVuaWNvZGUgc3Rh
bmRhcmQ6CisgKiAgIEdyb3dpbmcgZGlzdGluY3Rpb24gYmV0d2VlbiBpbnRlcm5hbCB4LWJpdCBV
bmljb2RlIHN0cmluZ3MgYW5kIGV4dGVybmFsIFVURi14CisgKiAgIGZvcm1zLCB3aXRoIHRoZSBm
b3JtZXIgbW9yZSBsZW5pZW50LgorICogICBTdWdnZXN0cyByZW5hbWluZyBvZiBVVEYxNl8gbWFj
cm9zIHRvIFUxNl8uCisgKiAtIFRoZSBwcmVmaXggIlVURl8iIHdpdGhvdXQgYSB3aWR0aCBudW1i
ZXIgY29uZnVzZWQgc29tZSB1c2Vycy4KKyAqIC0gIlNhZmUiIGFwcGVuZCBtYWNyb3MgbmVlZGVk
IHRoZSBhZGRpdGlvbiBvZiBhbiBlcnJvciBpbmRpY2F0b3Igb3V0cHV0LgorICogLSAiU2FmZSIg
VVRGLTggbWFjcm9zIHVzZWQgbGVnaXRpbWF0ZSAoaWYgcmFyZWx5IHVzZWQpIGNvZGUgcG9pbnQg
dmFsdWVzCisgKiAgIHRvIGluZGljYXRlIGVycm9yIGNvbmRpdGlvbnMuCisgKiAtIFRoZSB1c2Ug
b2YgdGhlICJfQ0hBUiIgaW5maXggZm9yIGNvZGUgcG9pbnQgb3BlcmF0aW9ucyBjb25mdXNlZCBz
b21lIHVzZXJzLgorICoKKyAqIE1vcmUgZGV0YWlsczoKKyAqCisgKiBVbnRpbCBJQ1UgMi4yLCB1
dGYuaCB0aGVvcmV0aWNhbGx5IGFsbG93ZWQgdG8gY2hvb3NlIGFtb25nIFVURi04LzE2LzMyCisg
KiBmb3Igc3RyaW5nIHByb2Nlc3NpbmcsIGFuZCBhbW9uZyB1bnNhZmUvc2FmZS9zdHJpY3QgZGVm
YXVsdCBtYWNyb3MgZm9yIHRoYXQuCisgKgorICogSXQgcHJvdmVkIG5lYXJseSBpbXBvc3NpYmxl
IHRvIHdyaXRlIG5vbi10cml2aWFsLCBoaWdoLXBlcmZvcm1hbmNlIGNvZGUKKyAqIHRoYXQgaXMg
VVRGLWdlbmVyaWMuCisgKiBVbnNhZmUgZGVmYXVsdCBtYWNyb3Mgd291bGQgYmUgZGFuZ2Vyb3Vz
IGZvciBkZWZhdWx0IHN0cmluZyBwcm9jZXNzaW5nLAorICogYW5kIHRoZSBtYWluIHJlYXNvbiBm
b3IgdGhlICJzdHJpY3QiIHZlcnNpb25zIGRpc2FwcGVhcmVkOgorICogQmV0d2VlbiBVbmljb2Rl
IDMuMCBhbmQgMy4yIGFsbCAiaXJyZWd1bGFyIiBVVEYtOCBzZXF1ZW5jZXMgYmVjYW1lIGlsbGVn
YWwuCisgKiBUaGUgb25seSBvdGhlciBjb25kaXRpb25zIHRoYXQgInN0cmljdCIgY2hlY2tlZCBm
b3Igd2VyZSBub24tY2hhcmFjdGVycywKKyAqIHdoaWNoIGFyZSB2YWxpZCBkdXJpbmcgcHJvY2Vz
c2luZy4gT25seSBkdXJpbmcgdGV4dCBpbnB1dC9vdXRwdXQgc2hvdWxkIHRoZXkKKyAqIGJlIGNo
ZWNrZWQsIGFuZCBhdCB0aGF0IHRpbWUgb3RoZXIgd2VsbC1mb3JtZWRuZXNzIGNoZWNrcyBtYXkg
YmUKKyAqIG5lY2Vzc2FyeSBvciB1c2VmdWwgYXMgd2VsbC4KKyAqIFRoaXMgY2FuIHN0aWxsIGJl
IGRvbmUgYnkgdXNpbmcgVTE2X05FWFQgYW5kIFVfSVNfVU5JQ09ERV9OT05DSEFSCisgKiBvciBV
X0lTX1VOSUNPREVfQ0hBUi4KKyAqCisgKiBUaGUgb2xkIFVURjhfLi4uX1NBRkUgbWFjcm9zIGFs
c28gdXNlZCBzb21lIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzCisgKiB0byBpbmRpY2F0ZSBt
YWxmb3JtZWQgc2VxdWVuY2VzLgorICogVGhlIG5ldyBVVEY4XyBtYWNyb3Mgd2l0aG91dCBzdWZm
aXggdXNlIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLgorICoKKyAqIFRoZSBlbnRpcmUgY29udGVu
dHMgb2YgdXRmMzIuaCB3YXMgbW92ZWQgaGVyZSB3aXRob3V0IHJlcGxhY2VtZW50CisgKiBiZWNh
dXNlIGFsbCB0aG9zZSBtYWNyb3Mgd2VyZSB0cml2aWFsIGFuZAorICogd2VyZSBtZWFuaW5nZnVs
IG9ubHkgaW4gdGhlIGZyYW1ld29yayBvZiBjaG9vc2luZyB0aGUgVVRGIHNpemUuCisgKgorICog
U2VlIEppdHRlcmJ1ZyAyMTUwIGFuZCBpdHMgZGlzY3Vzc2lvbiBvbiB0aGUgSUNVIG1haWxpbmcg
bGlzdAorICogaW4gU2VwdGVtYmVyIDIwMDIuCisgKgorICogPGhyPgorICoKKyAqIDxlbT5PYnNv
bGV0ZSBwYXJ0PC9lbT4gb2YgcHJlLUlDVSAyLjQgdXRmLmggZmlsZSBkb2N1bWVudGF0aW9uOgor
ICoKKyAqIDxwPlRoZSBvcmlnaW5hbCBjb25jZXB0IGZvciB0aGVzZSBmaWxlcyB3YXMgZm9yIElD
VSB0byBhbGxvdworICogaW4gcHJpbmNpcGxlIHRvIHNldCB3aGljaCBVVEYgKFVURi04LzE2LzMy
KSBpcyB1c2VkIGludGVybmFsbHkKKyAqIGJ5IGRlZmluaW5nIFVURl9TSVpFIHRvIGVpdGhlciA4
LCAxNiwgb3IgMzIuIHV0Zi5oIHdvdWxkIHRoZW4gZGVmaW5lIHRoZSBVQ2hhciB0eXBlCisgKiBh
Y2NvcmRpbmdseS4gVVRGLTE2IHdhcyB0aGUgZGVmYXVsdC48L3A+CisgKgorICogPHA+VGhpcyBj
b25jZXB0IGhhcyBiZWVuIGFiYW5kb25lZC4KKyAqIEEgbG90IG9mIHRoZSBJQ1Ugc291cmNlIGNv
ZGUgYXNzdW1lcyBVQ2hhciBzdHJpbmdzIGFyZSBpbiBVVEYtMTYuCisgKiBUaGlzIGlzIGVzcGVj
aWFsbHkgdHJ1ZSBmb3IgbG93LWxldmVsIGNvZGUgbGlrZQorICogY29udmVyc2lvbiwgbm9ybWFs
aXphdGlvbiwgYW5kIGNvbGxhdGlvbi4KKyAqIFRoZSB1dGYuaCBoZWFkZXIgZW5mb3JjZXMgdGhl
IGRlZmF1bHQgb2YgVVRGLTE2LgorICogVGhlIFVURi04IGFuZCBVVEYtMzIgbWFjcm9zIHJlbWFp
biBmb3Igbm93IGZvciBjb21wbGV0ZW5lc3MgYW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuPC9w
PgorICoKKyAqIDxwPkFjY29yZGluZ2x5LCB1dGYuaCBkZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVu
c2lnbmVkIDE2LWJpdCBpbnRlZ2VyLiBJZiB0aGlzIG1hdGNoZXMgd2NoYXJfdCwgdGhlbgorICog
VUNoYXIgaXMgZGVmaW5lZCB0byBiZSBleGFjdGx5IHdjaGFyX3QsIG90aGVyd2lzZSB1aW50MTZf
dC48L3A+CisgKgorICogPHA+VUNoYXIzMiBpcyBkZWZpbmVkIHRvIGJlIGEgc2lnbmVkIDMyLWJp
dCBpbnRlZ2VyIChpbnQzMl90KSwgbGFyZ2UgZW5vdWdoIGZvciBhIDIxLWJpdAorICogVW5pY29k
ZSBjb2RlIHBvaW50IChVbmljb2RlIHNjYWxhciB2YWx1ZSwgMC4uMHgxMGZmZmYpLgorICogQmVm
b3JlIElDVSAyLjQsIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyMzIgd2FzIHNpbWlsYXJseSBwbGF0
Zm9ybS1kZXBlbmRlbnQgYXMKKyAqIHRoZSBkZWZpbml0aW9uIG9mIFVDaGFyLiBGb3IgZGV0YWls
cyBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIFVDaGFyMzIgaXRzZWxmLjwvcD4KKyAqCisgKiA8
cD51dGYuaCBhbHNvIGRlZmluZXMgYSBudW1iZXIgb2YgQyBtYWNyb3MgZm9yIGhhbmRsaW5nIHNp
bmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzIGFuZAorICogZm9yIHVzaW5nIFVURiBVbmljb2RlIHN0
cmluZ3MuIEl0IGluY2x1ZGVzIHV0ZjguaCwgdXRmMTYuaCwgYW5kIHV0ZjMyLmggZm9yIHRoZSBh
Y3R1YWwKKyAqIGltcGxlbWVudGF0aW9ucyBvZiB0aG9zZSBtYWNyb3MgYW5kIHRoZW4gYWxpYXNl
cyBvbmUgc2V0IG9mIHRoZW0gKGZvciBVVEYtMTYpIGZvciBnZW5lcmFsIHVzZS4KKyAqIFRoZSBV
VEYtc3BlY2lmaWMgbWFjcm9zIGhhdmUgdGhlIFVURiBzaXplIGluIHRoZSBtYWNybyBuYW1lIHBy
ZWZpeGVzIChVVEYxNl8uLi4pLCB3aGlsZQorICogdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIGFs
d2F5cyBiZWdpbiB3aXRoIFVURl8uLi48L3A+CisgKgorICogPHA+TWFueSBzdHJpbmcgb3BlcmF0
aW9ucyBjYW4gYmUgZG9uZSB3aXRoIG9yIHdpdGhvdXQgZXJyb3IgY2hlY2tpbmcuCisgKiBXaGVy
ZSBzdWNoIGEgZGlzdGluY3Rpb24gaXMgdXNlZnVsLCB0aGVyZSBhcmUgdHdvIHZlcnNpb25zIG9m
IHRoZSBtYWNyb3MsICJ1bnNhZmUiIGFuZCAic2FmZSIKKyAqIG9uZXMgd2l0aCAuLi5fVU5TQUZF
IGFuZCAuLi5fU0FGRSBzdWZmaXhlcy4gVGhlIHVuc2FmZSBtYWNyb3MgYXJlIGZhc3QgYnV0IG1h
eSBjYXVzZQorICogcHJvZ3JhbSBmYWlsdXJlcyBpZiB0aGUgc3RyaW5ncyBhcmUgbm90IHdlbGwt
Zm9ybWVkLiBUaGUgc2FmZSBtYWNyb3MgaGF2ZSBhbiBhZGRpdGlvbmFsLCBib29sZWFuCisgKiBw
YXJhbWV0ZXIgInN0cmljdCIuIElmIHN0cmljdCBpcyBGQUxTRSwgdGhlbiBvbmx5IGlsbGVnYWwg
c2VxdWVuY2VzIGFyZSBkZXRlY3RlZC4KKyAqIE90aGVyd2lzZSwgaXJyZWd1bGFyIHNlcXVlbmNl
cyBhbmQgbm9uLWNoYXJhY3RlcnMgYXJlIGRldGVjdGVkIGFzIHdlbGwgKGxpa2Ugc2luZ2xlIHN1
cnJvZ2F0ZXMpLgorICogU2FmZSBtYWNyb3MgcmV0dXJuIHNwZWNpYWwgZXJyb3IgY29kZSBwb2lu
dHMgZm9yIGlsbGVnYWwvaXJyZWd1bGFyIHNlcXVlbmNlczoKKyAqIFR5cGljYWxseSwgVStmZmZm
LCBvciB2YWx1ZXMgdGhhdCB3b3VsZCByZXN1bHQgaW4gYSBjb2RlIHVuaXQgc2VxdWVuY2Ugb2Yg
dGhlIHNhbWUgbGVuZ3RoCisgKiBhcyB0aGUgZXJyb25lb3VzIGlucHV0IHNlcXVlbmNlLjxicj4K
KyAqIE5vdGUgdGhhdCBfVU5TQUZFIG1hY3JvcyBoYXZlIGZld2VyIHBhcmFtZXRlcnM6IFRoZXkg
ZG8gbm90IGhhdmUgdGhlIHN0cmljdG5lc3MgcGFyYW1ldGVyLCBhbmQKKyAqIHRoZXkgZG8gbm90
IGhhdmUgc3RhcnQvbGVuZ3RoIHBhcmFtZXRlcnMgZm9yIGJvdW5kYXJ5IGNoZWNraW5nLjwvcD4K
KyAqCisgKiA8cD5IZXJlLCB0aGUgbWFjcm9zIGFyZSBhbGlhc2VkIGluIHR3byBzdGVwczoKKyAq
IEluIHRoZSBmaXJzdCBzdGVwLCB0aGUgVVRGLXNwZWNpZmljIG1hY3JvcyB3aXRoIFVURjE2XyBw
cmVmaXggYW5kIF9VTlNBRkUgYW5kIF9TQUZFIHN1ZmZpeGVzIGFyZQorICogYWxpYXNlZCBhY2Nv
cmRpbmcgdG8gdGhlIFVURl9TSVpFIHRvIG1hY3JvcyB3aXRoIFVURl8gcHJlZml4IGFuZCB0aGUg
c2FtZSBzdWZmaXhlcyBhbmQgc2lnbmF0dXJlcy4KKyAqIFRoZW4sIGluIGEgc2Vjb25kIHN0ZXAs
IHRoZSBkZWZhdWx0LCBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhcmUgc2V0IHRvIHVzZSBlaXRoZXIg
dGhlIHVuc2FmZSBvcgorICogdGhlIHNhZmUvbm90IHN0cmljdCAoZGVmYXVsdCkgb3IgdGhlIHNh
ZmUvc3RyaWN0IG1hY3JvOworICogdGhlc2UgZ2VuZXJhbCBtYWNyb3MgZG8gbm90IGhhdmUgYSBz
dHJpY3RuZXNzIHBhcmFtZXRlci48L3A+CisgKgorICogPHA+SXQgaXMgcG9zc2libGUgdG8gY2hh
bmdlIHRoZSBkZWZhdWx0IGNob2ljZSBmb3IgdGhlIGdlbmVyYWwgYWxpYXMgbWFjcm9zIHRvIGJl
IHVuc2FmZSwgc2FmZS9ub3Qgc3RyaWN0IG9yIHNhZmUvc3RyaWN0LgorICogVGhlIGRlZmF1bHQg
aXMgc2FmZS9ub3Qgc3RyaWN0LiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gc2VsZWN0IHRoZSB1
bnNhZmUgbWFjcm9zIGFzIHRoZSBiYXNpcyBmb3IKKyAqIFVuaWNvZGUgc3RyaW5nIGhhbmRsaW5n
IGluIElDVSEgVG8gc2VsZWN0IHRoaXMsIGRlZmluZSBVVEZfU0FGRSwgVVRGX1NUUklDVCwgb3Ig
VVRGX1VOU0FGRS48L3A+CisgKgorICogPHA+Rm9yIGdlbmVyYWwgdXNlLCBvbmUgc2hvdWxkIHVz
ZSB0aGUgZGVmYXVsdCwgZ2VuZXJhbCBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgbm8gX1NB
RkUvX1VOU0FGRSBzdWZmaXguCisgKiBPbmx5IGluIHNvbWUgY2FzZXMgaXQgbWF5IGJlIG5lY2Vz
c2FyeSB0byBjb250cm9sIHRoZSBjaG9pY2Ugb2YgbWFjcm8gZGlyZWN0bHkgYW5kIHVzZSBhIGxl
c3MgZ2VuZXJpYyBhbGlhcy4KKyAqIEZvciBleGFtcGxlLCBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0
aGF0IGEgc3RyaW5nIGlzIHdlbGwtZm9ybWVkIGFuZCB0aGUgaW5kZXggd2lsbCBzdGF5IHdpdGhp
biB0aGUgYm91bmRzLAorICogdGhlbiB0aGUgX1VOU0FGRSB2ZXJzaW9uIG1heSBiZSB1c2VkLgor
ICogSWYgYSBVVEYtOCBzdHJpbmcgaXMgdG8gYmUgcHJvY2Vzc2VkLCB0aGVuIHRoZSBtYWNyb3Mg
d2l0aCBVVEY4XyBwcmVmaXhlcyBuZWVkIHRvIGJlIHVzZWQuPC9wPgorICoKKyAqIDxocj4KKyAq
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgdGhlIG1hY3JvcyBpbiB1dGYuaCwgdXRmMTYu
aCwgdXRmOC5oIGluc3RlYWQuCisgKi8KKworI2lmbmRlZiBfX1VURl9PTERfSF9fCisjZGVmaW5l
IF9fVVRGX09MRF9IX18KKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworI2luY2x1
ZGUgInVuaWNvZGUvdXRmLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCisjaW5jbHVkZSAi
dW5pY29kZS91dGYxNi5oIgorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFydCAxIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWZkZWYgVV9V
U0VfVVRGX0RFUFJFQ0FURVMKKy8qKgorICogVW5pY29kZSBzdHJpbmcgYW5kIGFycmF5IG9mZnNl
dCBhbmQgaW5kZXggdHlwZS4KKyAqIElDVSBhbHdheXMgY291bnRzIFVuaWNvZGUgY29kZSB1bml0
cyAoVUNoYXJzKSBmb3IKKyAqIHN0cmluZyBvZmZzZXRzLCBpbmRleGVzLCBhbmQgbGVuZ3Rocywg
bm90IFVuaWNvZGUgY29kZSBwb2ludHMuCisgKgorICogQG9ic29sZXRlIElDVSAyLjYuIFVzZSBp
bnQzMl90IGRpcmVjdGx5IGluc3RlYWQgc2luY2UgdGhpcyBBUEkgd2lsbCBiZSByZW1vdmVkIGlu
IHRoYXQgcmVsZWFzZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IFVUZXh0T2Zmc2V0OworI2VuZGlm
CisKKy8qKiBOdW1iZXIgb2YgYml0cyBpbiBhIFVuaWNvZGUgc3RyaW5nIGNvZGUgdW5pdCAtIElD
VSB1c2VzIDE2LWJpdCBVbmljb2RlLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NJWkUgMTYKKworLyoqCisgKiBUaGUgZGVmYXVs
dCBjaG9pY2UgZm9yIGdlbmVyYWwgVW5pY29kZSBzdHJpbmcgbWFjcm9zIGlzIHRvIHVzZSB0aGUg
Li4uX1NBRkUgbWFjcm8gaW1wbGVtZW50YXRpb25zCisgKiB3aXRoIHN0cmljdD1GQUxTRS4KKyAq
CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLwor
I2RlZmluZSBVVEZfU0FGRQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLiAqLworI3VuZGVmIFVURl9VTlNBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyN1bmRlZiBVVEZfU1RSSUNUCisKKy8qKgor
ICogVVRGOF9FUlJPUl9WQUxVRV8xIGFuZCBVVEY4X0VSUk9SX1ZBTFVFXzIgYXJlIHNwZWNpYWwg
ZXJyb3IgdmFsdWVzIGZvciBVVEYtOCwKKyAqIHdoaWNoIG5lZWQgMSBvciAyIGJ5dGVzIGluIFVU
Ri04OgorICogXGNvZGUKKyAqIFUrMDAxNSA9IE5BSyA9IE5lZ2F0aXZlIEFja25vd2xlZGdlLCBD
MCBjb250cm9sIGNoYXJhY3RlcgorICogVSswMDlmID0gaGlnaGVzdCBDMSBjb250cm9sIGNoYXJh
Y3RlcgorICogXGVuZGNvZGUKKyAqCisgKiBUaGVzZSBhcmUgdXNlZCBieSBVVEY4Xy4uLl9TQUZF
IG1hY3JvcyBzbyB0aGF0IHRoZXkgY2FuIHJldHVybiBhbiBlcnJvciB2YWx1ZQorICogdGhhdCBu
ZWVkcyB0aGUgc2FtZSBudW1iZXIgb2YgY29kZSB1bml0cyAoYnl0ZXMpIGFzIHdlcmUgc2VlbiBi
eQorICogYSBtYWNyby4gVGhleSBzaG91bGQgYmUgdGVzdGVkIHdpdGggVVRGX0lTX0VSUk9SKCkg
b3IgVVRGX0lTX1ZBTElEKCkuCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUs
IHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8xIDB4MTUKKwor
LyoqCisgKiBTZWUgZG9jdW1lbnRhdGlvbiBvbiBVVEY4X0VSUk9SX1ZBTFVFXzEgZm9yIGRldGFp
bHMuCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmgu
CisgKi8KKyNkZWZpbmUgVVRGOF9FUlJPUl9WQUxVRV8yIDB4OWYKKworLyoqCisgKiBFcnJvciB2
YWx1ZSBmb3IgYWxsIFVURnMuIFRoaXMgY29kZSBwb2ludCB2YWx1ZSB3aWxsIGJlIHNldCBieSBt
YWNyb3Mgd2l0aCBlcnJvcgorICogY2hlY2tpbmcgaWYgYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuCisg
KgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGX0VSUk9SX1ZBTFVFIDB4ZmZmZgorCisvKioKKyAqIElzIGEgZ2l2ZW4gMzIt
Yml0IGNvZGUgYW4gZXJyb3IgdmFsdWUKKyAqIGFzIHJldHVybmVkIGJ5IG9uZSBvZiB0aGUgbWFj
cm9zIGZvciBhbnkgVVRGPworICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBz
ZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19FUlJPUihjKSBcCisgICAgKCgoYykm
MHhmZmZlKT09MHhmZmZlIHx8IChjKT09VVRGOF9FUlJPUl9WQUxVRV8xIHx8IChjKT09VVRGOF9F
UlJPUl9WQUxVRV8yKQorCisvKioKKyAqIFRoaXMgaXMgYSBjb21iaW5lZCBtYWNybzogSXMgYyBh
IHZhbGlkIFVuaWNvZGUgdmFsdWUgX2FuZF8gbm90IGFuIGVycm9yIGNvZGU/CisgKgorICogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUg
VVRGX0lTX1ZBTElEKGMpIFwKKyAgICAoVVRGX0lTX1VOSUNPREVfQ0hBUihjKSAmJiBcCisgICAg
IChjKSE9VVRGOF9FUlJPUl9WQUxVRV8xICYmIChjKSE9VVRGOF9FUlJPUl9WQUxVRV8yKQorCisv
KioKKyAqIElzIHRoaXMgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgYSBzdXJyb2dhdGUgKFUrZDgw
MC4uVStkZmZmKT8KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19TVVJS
T0dBVEUgYW5kIFUxNl9JU19TVVJST0dBVEUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUg
VVRGX0lTX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmY4MDApPT0weGQ4MDApCisK
Ky8qKgorICogSXMgYSBnaXZlbiAzMi1iaXQgY29kZSBwb2ludCBhIFVuaWNvZGUgbm9uY2hhcmFj
dGVyPworICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19VTklDT0RF
X05PTkNIQVIsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVfTk9O
Q0hBUihjKSBcCisgICAgKChjKT49MHhmZGQwICYmIFwKKyAgICAgKCh1aW50MzJfdCkoYyk8PTB4
ZmRlZiB8fCAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSkgJiYgXAorICAgICAodWludDMyX3QpKGMpPD0w
eDEwZmZmZikKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCB2YWx1ZSBhIFVuaWNvZGUgY29k
ZSBwb2ludCB2YWx1ZSAoMC4uVSsxMGZmZmYpCisgKiB0aGF0IGNhbiBiZSBhc3NpZ25lZCBhIGNo
YXJhY3Rlcj8KKyAqCisgKiBDb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgY2hhcmFjdGVycyBpbmNs
dWRlOgorICogLSBzaW5nbGUgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIChVK2Q4MDAuLlUrZGZmZiwg
MjA0OCBjb2RlIHBvaW50cykKKyAqIC0gdGhlIGxhc3QgdHdvIGNvZGUgcG9pbnRzIG9uIGVhY2gg
cGxhbmUgKFUrX19mZmZlIGFuZCBVK19fZmZmZiwgMzQgY29kZSBwb2ludHMpCisgKiAtIFUrZmRk
MC4uVStmZGVmIChuZXcgd2l0aCBVbmljb2RlIDMuMSwgMzIgY29kZSBwb2ludHMpCisgKiAtIHRo
ZSBoaWdoZXN0IFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZSBpcyBVKzEwZmZmZgorICoKKyAqIFRo
aXMgbWVhbnMgdGhhdCBhbGwgY29kZSBwb2ludHMgYmVsb3cgVStkODAwIGFyZSBjaGFyYWN0ZXIg
Y29kZSBwb2ludHMsCisgKiBhbmQgdGhhdCBib3VuZGFyeSBpcyB0ZXN0ZWQgZmlyc3QgZm9yIHBl
cmZvcm1hbmNlLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19V
TklDT0RFX0NIQVIsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX1VOSUNPREVf
Q0hBUihjKSBcCisgICAgKCh1aW50MzJfdCkoYyk8MHhkODAwIHx8IFwKKyAgICAgICAgKCh1aW50
MzJfdCkoYyk+MHhkZmZmICYmIFwKKyAgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZmICYm
IFwKKyAgICAgICAgICFVVEZfSVNfVU5JQ09ERV9OT05DSEFSKGMpKSkKKworLyogRm9ybWVybHkg
dXRmOC5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKi8KKworLyoqCisgKiBDb3VudCB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTgg
bGVhZCBieXRlLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9DT1VOVF9U
UkFJTF9CWVRFUywgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEY4X0NPVU5UX1RSQUlM
X0JZVEVTKGxlYWRCeXRlKSAodXRmOF9jb3VudFRyYWlsQnl0ZXNbKHVpbnQ4X3QpbGVhZEJ5dGVd
KQorCisvKioKKyAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxvd2Vy
IGJpdHMgdGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCisgKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X01BU0tfTEVBRF9CWVRFLCBzZWUgdXRmX29sZC5o
LgorICovCisjZGVmaW5lIFVURjhfTUFTS19MRUFEX0JZVEUobGVhZEJ5dGUsIGNvdW50VHJhaWxC
eXRlcykgKChsZWFkQnl0ZSkmPSgxPDwoNi0oY291bnRUcmFpbEJ5dGVzKSkpLTEpCisKKy8qKiBJ
cyB0aGlzIHRoaXMgY29kZSBwb2ludCBhIHNpbmdsZSBjb2RlIHVuaXQgKGJ5dGUpPyBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGOF9JU19TSU5HTEUodWNoYXIpICgoKHVjaGFyKSYweDgwKT09MCkKKy8qKiBJ
cyB0aGlzIHRoaXMgY29kZSB1bml0IHRoZSBsZWFkIGNvZGUgdW5pdCAoYnl0ZSkgb2YgYSBjb2Rl
IHBvaW50PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0lTX0xFQUQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfSVNfTEVBRCh1Y2hhcikgKCh1aW50OF90KSgodWNo
YXIpLTB4YzApPDB4M2UpCisvKiogSXMgdGhpcyB0aGlzIGNvZGUgdW5pdCBhIHRyYWlsaW5nIGNv
ZGUgdW5pdCAoYnl0ZSkgb2YgYSBjb2RlIHBvaW50PyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X0lTX1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0lTX1RS
QUlMKHVjaGFyKSAoKCh1Y2hhcikmMHhjMCk9PTB4ODApCisKKy8qKiBEb2VzIHRoaXMgc2NhbGFy
IFVuaWNvZGUgdmFsdWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHg3
ZikgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9ORUVEX01VTFRJUExF
X1VDSEFSKGMpICgodWludDMyX3QpKGMpPjB4N2YpCisKKy8qKgorICogR2l2ZW4gdGhlIGxlYWQg
Y2hhcmFjdGVyLCBob3cgbWFueSBieXRlcyBhcmUgdGFrZW4gYnkgdGhpcyBjb2RlIHBvaW50Lgor
ICogSUNVIGRvZXMgbm90IGRlYWwgd2l0aCBjb2RlIHBvaW50cyA+MHgxMGZmZmYKKyAqIHVubGVz
cyBuZWNlc3NhcnkgZm9yIGFkdmFuY2luZyBpbiB0aGUgYnl0ZSBzdHJlYW0uCisgKgorICogVGhl
c2UgbGVuZ3RoIG1hY3JvcyB0YWtlIGludG8gYWNjb3VudCB0aGF0IGZvciB2YWx1ZXMgPjB4MTBm
ZmZmCisgKiB0aGUgVVRGOF9BUFBFTkRfQ0hBUl9TQUZFIG1hY3JvcyB3b3VsZCB3cml0ZSB0aGUg
ZXJyb3IgY29kZSBwb2ludCAweGZmZmYKKyAqIHdpdGggMyBieXRlcy4KKyAqIENvZGUgcG9pbnQg
Y29tcGFyaXNvbnMgbmVlZCB0byBiZSBpbiB1aW50MzJfdCBiZWNhdXNlIFVDaGFyMzIKKyAqIG1h
eSBiZSBhIHNpZ25lZCB0eXBlLCBhbmQgbmVnYXRpdmUgdmFsdWVzIG11c3QgYmUgcmVjb2duaXpl
ZC4KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfTEVOR1RIIGluc3RlYWQsIHNl
ZSB1dGYuaC4KKyAqLworI2lmIDEKKyMgICBkZWZpbmUgVVRGOF9DSEFSX0xFTkdUSChjKSBcCisg
ICAgICAgICgodWludDMyX3QpKGMpPD0weDdmID8gMSA6IFwKKyAgICAgICAgICAgICgodWludDMy
X3QpKGMpPD0weDdmZiA/IDIgOiBcCisgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoKGMpLTB4
MTAwMDApPjB4ZmZmZmYgPyAzIDogNCkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNl
bHNlCisjICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAgICAoKHVpbnQzMl90
KShjKTw9MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHg3ZmYgPyAy
IDogXAorICAgICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAzIDogXAorICAg
ICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYgPyA0IDogXAorICAgICAg
ICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4M2ZmZmZmZiA/IDUgOiBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmZmZmZmYgPyA2IDog
MykgXAorICAgICAgICAgICAgICAgICAgICAgICAgKSBcCisgICAgICAgICAgICAgICAgICAgICkg
XAorICAgICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgKSBcCisgICAgICAgICkKKyNlbmRp
ZgorCisvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHBlciBjb2RlIHBvaW50LiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X01BWF9MRU5HVEgsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjhfTUFYX0NIQVJfTEVOR1RIIDQKKworLyoqIEF2ZXJhZ2UgbnVtYmVy
IG9mIGNvZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2LiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9BUlJBWV9TSVpFKHNpemUp
ICgoNSooc2l6ZSkpLzIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4
X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfR0VUX0NIQVJfVU5T
QUZFKHMsIGksIGMpIHsgXAorICAgIGludDMyX3QgX3V0ZjhfZ2V0X2NoYXJfdW5zYWZlX2luZGV4
PShpbnQzMl90KShpKTsgXAorICAgIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIF91dGY4
X2dldF9jaGFyX3Vuc2FmZV9pbmRleCk7IFwKKyAgICBVVEY4X05FWFRfQ0hBUl9VTlNBRkUocywg
X3V0ZjhfZ2V0X2NoYXJfdW5zYWZlX2luZGV4LCBjKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFU4X0dFVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEY4X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAg
ICBpbnQzMl90IF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXg9KGludDMyX3QpKGkpOyBcCisgICAg
VVRGOF9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBfdXRmOF9nZXRfY2hhcl9zYWZlX2lu
ZGV4KTsgXAorICAgIFVURjhfTkVYVF9DSEFSX1NBRkUocywgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9p
bmRleCwgbGVuZ3RoLCBjLCBzdHJpY3QpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBSZW5hbWVkIHRvIFU4X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEY4X05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwK
KyAgICBpZigodWludDhfdCkoKGMpLTB4YzApPDB4MzUpIHsgXAorICAgICAgICB1aW50OF90IF9f
Y291bnQ9VVRGOF9DT1VOVF9UUkFJTF9CWVRFUyhjKTsgXAorICAgICAgICBVVEY4X01BU0tfTEVB
RF9CWVRFKGMsIF9fY291bnQpOyBcCisgICAgICAgIHN3aXRjaChfX2NvdW50KSB7IFwKKyAgICAg
ICAgLyogZWFjaCBmb2xsb3dpbmcgYnJhbmNoIGZhbGxzIHRocm91Z2ggdG8gdGhlIG5leHQgb25l
ICovIFwKKyAgICAgICAgY2FzZSAzOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8Nil8KChzKVso
aSkrK10mMHgzZik7IFwKKyAgICAgICAgY2FzZSAyOiBcCisgICAgICAgICAgICAoYyk9KChjKTw8
Nil8KChzKVsoaSkrK10mMHgzZik7IFwKKyAgICAgICAgY2FzZSAxOiBcCisgICAgICAgICAgICAo
Yyk9KChjKTw8Nil8KChzKVsoaSkrK10mMHgzZik7IFwKKyAgICAgICAgLyogbm8gb3RoZXIgYnJh
bmNoZXMgdG8gb3B0aW1pemUgc3dpdGNoKCkgKi8gXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAg
ICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFU4X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQ
RU5EX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4N2Yp
IHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50OF90KShjKTsgXAorICAgIH0gZWxzZSB7IFwK
KyAgICAgICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZmYpIHsgXAorICAgICAgICAgICAgKHMpWyhp
KSsrXT0odWludDhfdCkoKChjKT4+Nil8MHhjMCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAg
ICAgICAgICAgaWYoKHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgICAgICAgICAo
cylbKGkpKytdPSh1aW50OF90KSgoKGMpPj4xMil8MHhlMCk7IFwKKyAgICAgICAgICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKGMpPj4xOCl8MHhm
MCk7IFwKKyAgICAgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90KSgoKChjKT4+MTIpJjB4
M2YpfDB4ODApOyBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVp
bnQ4X3QpKCgoKGMpPj42KSYweDNmKXwweDgwKTsgXAorICAgICAgICB9IFwKKyAgICAgICAgKHMp
WyhpKSsrXT0odWludDhfdCkoKChjKSYweDNmKXwweDgwKTsgXAorICAgIH0gXAorfQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfMV9VTlNBRkUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIChpKSs9
MStVVEY4X0NPVU5UX1RSQUlMX0JZVEVTKChzKVtpXSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVThfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0o
bik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjhfRldEXzFfVU5TQUZFKHMs
IGkpOyBcCisgICAgICAgIC0tX19OOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBSZW5hbWVkIHRvIFU4X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdo
aWxlKFVURjhfSVNfVFJBSUwoKHMpW2ldKSkgeyAtLShpKTsgfSBcCit9CisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgVThfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEY4X05FWFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAg
ICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKFVU
RjhfSVNfTEVBRChjKSkgeyBcCisgICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5
KHMsICYoaSksIChpbnQzMl90KShsZW5ndGgpLCBjLCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgICAgIChjKT1VVEY4X0VSUk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBc
CisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVThfQVBQRU5EIGlu
c3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVBQRU5EX0NIQVJfU0FGRShz
LCBpLCBsZW5ndGgsIGMpICB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwKKyAg
ICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAg
IChpKT11dGY4X2FwcGVuZENoYXJTYWZlQm9keShzLCAoaW50MzJfdCkoaSksIChpbnQzMl90KShs
ZW5ndGgpLCBjLCBOVUxMKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9GV0RfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9G
V0RfMV9TQUZFKHMsIGksIGxlbmd0aCkgVThfRldEXzEocywgaSwgbGVuZ3RoKQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGOF9GV0RfTl9TQUZFKHMsIGksIGxlbmd0aCwgbikgVThfRldEX04ocywgaSwg
bGVuZ3RoLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9TRVRf
Q1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfU0VUX0NIQVJfU1RBUlRf
U0FGRShzLCBzdGFydCwgaSkgVThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQu
aC4gKi8KKyNkZWZpbmUgVVRGOF9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChj
KT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGOF9JU19UUkFJTChjKSkgeyBcCisgICAgICAgIHVp
bnQ4X3QgX19iLCBfX2NvdW50PTEsIF9fc2hpZnQ9NjsgXAorXAorICAgICAgICAvKiBjIGlzIGEg
dHJhaWwgYnl0ZSAqLyBcCisgICAgICAgIChjKSY9MHgzZjsgXAorICAgICAgICBmb3IoOzspIHsg
XAorICAgICAgICAgICAgX19iPShzKVstLShpKV07IFwKKyAgICAgICAgICAgIGlmKF9fYj49MHhj
MCkgeyBcCisgICAgICAgICAgICAgICAgVVRGOF9NQVNLX0xFQURfQllURShfX2IsIF9fY291bnQp
OyBcCisgICAgICAgICAgICAgICAgKGMpfD0oVUNoYXIzMilfX2I8PF9fc2hpZnQ7IFwKKyAgICAg
ICAgICAgICAgICBicmVhazsgXAorICAgICAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAg
ICAgIChjKXw9KFVDaGFyMzIpKF9fYiYweDNmKTw8X19zaGlmdDsgXAorICAgICAgICAgICAgICAg
ICsrX19jb3VudDsgXAorICAgICAgICAgICAgICAgIF9fc2hpZnQrPTY7IFwKKyAgICAgICAgICAg
IH0gXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVThfQkFDS18xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGOF9CQUNLXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIHdoaWxlKFVURjhfSVNfVFJBSUwoKHMp
Wy0tKGkpXSkpIHt9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VThfQkFDS19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05f
VU5TQUZFKHMsIGksIG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9f
Tj4wKSB7IFwKKyAgICAgICAgVVRGOF9CQUNLXzFfVU5TQUZFKHMsIGkpOyBcCisgICAgICAgIC0t
X19OOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFU4X1NFVF9DUF9MSU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhf
U0VUX0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIFVURjhfQkFDS18xX1VOU0FGRShz
LCBpKTsgXAorICAgIFVURjhfRldEXzFfVU5TQUZFKHMsIGkpOyBcCit9CisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBVc2UgVThfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEY4X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAg
IChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMp
PD0weGJmKSB7IFwKKyAgICAgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHkocywgc3Rh
cnQsICYoaSksIGMsIHN0cmljdCk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAg
KGMpPVVURjhfRVJST1JfVkFMVUVfMTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKK30KKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQkFDS18xLCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEY4X0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSBVOF9CQUNLXzEocywg
c3RhcnQsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tf
Tiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9CQUNLX05fU0FGRShzLCBzdGFydCwg
aSwgbikgVThfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfTElNSVQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjhfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoKSBVOF9TRVRfQ1Bf
TElNSVQocywgc3RhcnQsIGksIGxlbmd0aCkKKworLyogRm9ybWVybHkgdXRmMTYuaCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwor
LyoqIElzIHVjaGFyIGEgZmlyc3QvbGVhZCBzdXJyb2dhdGU/IEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVV9JU19MRUFEIGFuZCBVMTZfSVNfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURSh1Y2hhcikgKCgodWNoYXIpJjB4ZmZmZmZj
MDApPT0weGQ4MDApCisKKy8qKiBJcyB1Y2hhciBhIHNlY29uZC90cmFpbCBzdXJyb2dhdGU/IEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2X0lTX1RSQUlM
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfSVNfU0VDT05EX1NVUlJPR0FURSh1Y2hh
cikgKCgodWNoYXIpJjB4ZmZmZmZjMDApPT0weGRjMDApCisKKy8qKiBBc3N1bWluZyBjIGlzIGEg
c3Vycm9nYXRlLCBpcyBpdCBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRFX0xFQUQgYW5kIFUxNl9JU19TVVJST0dBVEVf
TEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NVUlJPR0FURV9GSVJTVChj
KSAoKChjKSYweDQwMCk9PTApCisKKy8qKiBIZWxwZXIgY29uc3RhbnQgZm9yIFVURjE2X0dFVF9Q
QUlSX1ZBTFVFLiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TVVJST0dBVEVf
T0ZGU0VULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU1VSUk9HQVRFX09GRlNFVCAo
KDB4ZDgwMDw8MTBVTCkrMHhkYzAwLTB4MTAwMDApCisKKy8qKiBHZXQgdGhlIFVURi0zMiB2YWx1
ZSBmcm9tIHRoZSBzdXJyb2dhdGUgY29kZSB1bml0cy4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfR0VUX1NVUFBMRU1FTlRBUlksIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjE2X0dFVF9QQUlSX1ZBTFVFKGZpcnN0LCBzZWNvbmQpIFwKKyAgICAoKChmaXJzdCk8PDEw
VUwpKyhzZWNvbmQpLVVURl9TVVJST0dBVEVfT0ZGU0VUKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0ZJUlNUX1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KSAoVUNoYXIpKCgoc3VwcGxlbWVudGFyeSk+
PjEwKSsweGQ3YzApCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9U
UkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFQ09ORF9TVVJST0dBVEUoc3Vw
cGxlbWVudGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpJjB4M2ZmKXwweGRjMDApCisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRUFELCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEYxNl9MRUFEKHN1cHBsZW1lbnRhcnkpIFVURl9GSVJTVF9TVVJST0dB
VEUoc3VwcGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9UUkFJTChzdXBwbGVt
ZW50YXJ5KSBVVEZfU0VDT05EX1NVUlJPR0FURShzdXBwbGVtZW50YXJ5KQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfU0lOR0xFLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYxNl9JU19TSU5HTEUodWNoYXIpICFVVEZfSVNfU1VSUk9HQVRFKHVjaGFy
KQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfSVNfTEVBRCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfTEVBRCh1Y2hhcikgVVRGX0lTX0ZJUlNU
X1NVUlJPR0FURSh1Y2hhcikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8g
VTE2X0lTX1RSQUlMLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9JU19UUkFJTCh1
Y2hhcikgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpCisKKy8qKiBEb2VzIHRoaXMgc2Nh
bGFyIFVuaWNvZGUgdmFsdWUgbmVlZCBtdWx0aXBsZSBjb2RlIHVuaXRzIGZvciBzdG9yYWdlPyBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMp
PjB4ZmZmZikgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfTkVFRF9N
VUxUSVBMRV9VQ0hBUihjKSAoKHVpbnQzMl90KShjKT4weGZmZmYpCisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9MRU5HVEgsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjE2X0NIQVJfTEVOR1RIKGMpICgodWludDMyX3QpKGMpPD0weGZmZmYgPyAxIDogMikK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X01BWF9MRU5HVEgsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X01BWF9DSEFSX0xFTkdUSCAyCisKKy8qKiBB
dmVyYWdlIG51bWJlciBvZiBjb2RlIHVuaXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0FS
UkFZX1NJWkUoc2l6ZSkgKHNpemUpCisKKy8qKgorICogR2V0IGEgc2luZ2xlIGNvZGUgcG9pbnQg
ZnJvbSBhbiBvZmZzZXQgdGhhdCBwb2ludHMgdG8gYW55CisgKiBvZiB0aGUgY29kZSB1bml0cyB0
aGF0IGJlbG9uZyB0byB0aGF0IGNvZGUgcG9pbnQuCisgKiBBc3N1bWUgMDw9aTxsZW5ndGguCisg
KgorICogVGhpcyBjb3VsZCBiZSB1c2VkIGZvciBpdGVyYXRpb24gdG9nZXRoZXIgd2l0aAorICog
VVRGMTZfQ0hBUl9MRU5HVEgoKSBhbmQgVVRGX0lTX0VSUk9SKCksCisgKiBidXQgdGhlIHVzZSBv
ZiBVVEYxNl9ORVhUX0NIQVJbX1VOU0FGRV0oKSBhbmQKKyAqIFVURjE2X1BSRVZfQ0hBUltfVU5T
QUZFXSgpIGlzIG1vcmUgZWZmaWNpZW50IGZvciB0aGF0LgorICogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfR0VUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmlu
ZSBVVEYxNl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAor
ICAgIGlmKFVURl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICBpZihVVEZfSVNfU1VSUk9H
QVRFX0ZJUlNUKGMpKSB7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgo
YyksIChzKVsoaSkrMV0pOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1V
VEYxNl9HRVRfUEFJUl9WQUxVRSgocylbKGkpLTFdLCAoYykpOyBcCisgICAgICAgIH0gXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9HRVQgaW5zdGVhZCwg
c2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfR0VUX0NIQVJfU0FGRShzLCBzdGFydCwg
aSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBpZihVVEZf
SVNfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBp
ZihVVEZfSVNfU1VSUk9HQVRFX0ZJUlNUKGMpKSB7IFwKKyAgICAgICAgICAgIGlmKChpKSsxPChs
ZW5ndGgpICYmIFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKSsxXSkpIHsgXAor
ICAgICAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisg
ICAgICAgICAgICAgICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBjYXVnaHQg
YnkgVVRGX0lTX0VSUk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisgICAgICAg
ICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBm
aXJzdCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICAgICAgICAgIH0gXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICBpZigo
aSktMT49KHN0YXJ0KSAmJiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkp
IHsgXAorICAgICAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShfX2MyLCAoYykp
OyBcCisgICAgICAgICAgICAgICAgLyogc3RyaWN0OiAoKGMpJjB4ZmZmZSk9PTB4ZmZmZSBpcyBj
YXVnaHQgYnkgVVRGX0lTX0VSUk9SKCkgYW5kIFVURl9JU19VTklDT0RFX0NIQVIoKSAqLyBcCisg
ICAgICAgICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgICAgIC8qIHVubWF0
Y2hlZCBzZWNvbmQgc3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9S
X1ZBTFVFOyBcCisgICAgICAgICAgICB9IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChz
dHJpY3QpICYmICFVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURl9F
UlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2
X05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVsoaSkrK107IFwKKyAg
ICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dF
VF9QQUlSX1ZBTFVFKChjKSwgKHMpWyhpKSsrXSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjE2X0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAg
ICBpZigodWludDMyX3QpKGMpPD0weGZmZmYpIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50
MTZfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90
KSgoKGMpPj4xMCkrMHhkN2MwKTsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChj
KSYweDNmZil8MHhkYzAwKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmlu
ZSBVVEYxNl9GV0RfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRGX0lTX0ZJUlNUX1NVUlJP
R0FURSgocylbKGkpKytdKSkgeyBcCisgICAgICAgICsrKGkpOyBcCisgICAgfSBcCit9CisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfTl9VTlNBRkUsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0ZXRF9OX1VOU0FGRShzLCBpLCBuKSB7IFwKKyAg
ICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkgeyBcCisgICAgICAgIFVURjE2
X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX1NUQVJUX1VOU0FG
RSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfVU5TQUZF
KHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKChzKVtpXSkpIHsgXAor
ICAgICAgICAtLShpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
VXNlIFUxNl9ORVhUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05F
WFRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhp
KSsrXTsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICB1
aW50MTZfdCBfX2MyOyBcCisgICAgICAgIGlmKChpKTwobGVuZ3RoKSAmJiBVVEZfSVNfU0VDT05E
X1NVUlJPR0FURShfX2MyPShzKVsoaSldKSkgeyBcCisgICAgICAgICAgICArKyhpKTsgXAorICAg
ICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZBTFVFKChjKSwgX19jMik7IFwKKyAgICAgICAg
ICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19F
UlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICB9IGVsc2UgaWYo
c3RyaWN0KSB7XAorICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSAqLyBc
CisgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgICAgIH0gXAorICAgIH0g
ZWxzZSBpZigoc3RyaWN0KSAmJiAhVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAg
IC8qIHVubWF0Y2hlZCBzZWNvbmQgc3Vycm9nYXRlIG9yIG90aGVyIG5vbi1jaGFyYWN0ZXIgKi8g
XAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYykgeyBcCisg
ICAgaWYoKHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWlu
dDE2X3QpKGMpOyBcCisgICAgfSBlbHNlIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwK
KyAgICAgICAgaWYoKGkpKzE8KGxlbmd0aCkpIHsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0o
dWludDE2X3QpKCgoYyk+PjEwKSsweGQ3YzApOyBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1
aW50MTZfdCkoKChjKSYweDNmZil8MHhkYzAwKTsgXAorICAgICAgICB9IGVsc2UgLyogbm90IGVu
b3VnaCBzcGFjZSAqLyB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVF
OyBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSBlcnJvciB2
YWx1ZSAqLyB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9
IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkg
VTE2X0ZXRF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfTl9T
QUZFKHMsIGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGksIGxlbmd0aCwgbikKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkg
VTE2X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X1BSRVZfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9QUkVWX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBc
CisgICAgaWYoVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYyk9VVRG
MTZfR0VUX1BBSVJfVkFMVUUoKHMpWy0tKGkpXSwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FGRSwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICBp
ZihVVEZfSVNfU0VDT05EX1NVUlJPR0FURSgocylbLS0oaSldKSkgeyBcCisgICAgICAgIC0tKGkp
OyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9CQUNLX05fVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLX05f
VU5TQUZFKHMsIGksIG4pIHsgXAorICAgIGludDMyX3QgX19OPShuKTsgXAorICAgIHdoaWxlKF9f
Tj4wKSB7IFwKKyAgICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAt
LV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfU0VUX0NQX0xJTUlUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
MTZfU0VUX0NIQVJfTElNSVRfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9T
VVJST0dBVEUoKHMpWyhpKS0xXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBz
dHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAgaWYoVVRGX0lTX1NFQ09ORF9T
VVJST0dBVEUoYykpIHsgXAorICAgICAgICB1aW50MTZfdCBfX2MyOyBcCisgICAgICAgIGlmKChp
KT4oc3RhcnQpICYmIFVURl9JU19GSVJTVF9TVVJST0dBVEUoX19jMj0ocylbKGkpLTFdKSkgeyBc
CisgICAgICAgICAgICAtLShpKTsgXAorICAgICAgICAgICAgKGMpPVVURjE2X0dFVF9QQUlSX1ZB
TFVFKF9fYzIsIChjKSk7IFwKKyAgICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0w
eGZmZmUgaXMgY2F1Z2h0IGJ5IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFS
KCkgKi8gXAorICAgICAgICB9IGVsc2UgaWYoc3RyaWN0KSB7XAorICAgICAgICAgICAgLyogdW5t
YXRjaGVkIHNlY29uZCBzdXJyb2dhdGUgKi8gXAorICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9W
QUxVRTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgaWYoKHN0cmljdCkgJiYgIVVURl9JU19V
TklDT0RFX0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qgc3Vycm9nYXRl
IG9yIG90aGVyIG5vbi1jaGFyYWN0ZXIgKi8gXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVF
OyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9CQUNLXzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0JBQ0tfMV9TQUZFKHMs
IHN0YXJ0LCBpKSBVMTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwgbikgVTE2X0JBQ0tfTihzLCBzdGFydCwgaSwg
bikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1J
VCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfU0VUX0NIQVJfTElNSVRfU0FGRShz
LCBzdGFydCwgaSwgbGVuZ3RoKSBVMTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgp
CisKKy8qIEZvcm1lcmx5IHV0ZjMyLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisqIE9sZCBkb2N1bWVudGF0aW9uOgor
KgorKiAgIFRoaXMgZmlsZSBkZWZpbmVzIG1hY3JvcyB0byBkZWFsIHdpdGggVVRGLTMyIGNvZGUg
dW5pdHMgYW5kIGNvZGUgcG9pbnRzLgorKiAgIFNpZ25hdHVyZXMgYW5kIHNlbWFudGljcyBhcmUg
dGhlIHNhbWUgYXMgZm9yIHRoZSBzaW1pbGFybHkgbmFtZWQgbWFjcm9zCisqICAgaW4gdXRmMTYu
aC4KKyogICB1dGYzMi5oIGlzIGluY2x1ZGVkIGJ5IHV0Zi5oIGFmdGVyIHVuaWNvZGUvdW1hY2hp
bmUuaDwvcD4KKyogICBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCisqICAgPHA+PGI+VXNh
Z2U6PC9iPiAgSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigpIHN0YXRlbWVudHMgc2hvdWxk
IGJlIGZvbGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgorKiAgICAgICAgICAgICAgICAg
IENvbXBvdW5kIHN0YXRlbWVudHMgKGN1cmx5IGJyYWNlcyB7fSkgbXVzdCBiZSB1c2VkICBmb3Ig
aWYtZWxzZS13aGlsZS4uLgorKiAgICAgICAgICAgICAgICAgIGJvZGllcyBhbmQgYWxsIG1hY3Jv
IHN0YXRlbWVudHMgc2hvdWxkIGJlIHRlcm1pbmF0ZWQgd2l0aCBzZW1pY29sb24uPC9wPgorKi8K
KworLyogaW50ZXJuYWwgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19TQUZFKGMsIHN0cmlj
dCkgXAorICAgICghKHN0cmljdCkgPyBcCisgICAgICAgICh1aW50MzJfdCkoYyk8PTB4MTBmZmZm
IDogXAorICAgICAgICBVVEZfSVNfVU5JQ09ERV9DSEFSKGMpKQorCisvKgorICogRm9yIHRoZSBz
ZW1hbnRpY3Mgb2YgYWxsIG9mIHRoZXNlIG1hY3Jvcywgc2VlIHV0ZjE2LmguCisgKiBUaGUgVVRG
LTMyIHZlcnNpb25zIGFyZSB0cml2aWFsIGJlY2F1c2UgYW55IGNvZGUgcG9pbnQgaXMKKyAqIGVu
Y29kZWQgdXNpbmcgZXhhY3RseSBvbmUgY29kZSB1bml0LgorICovCisKKy8qIHNpbmdsZS1jb2Rl
IHBvaW50IGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCisKKy8qIGNsYXNzZXMgb2YgY29kZSB1bml0IHZhbHVlcyAqLworCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
RjMyX0lTX1NJTkdMRSh1Y2hhcikgMQorLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9JU19MRUFEKHVjaGFyKSAwCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjMyX0lTX1RSQUlMKHVjaGFyKSAwCisKKy8qIG51bWJlciBvZiBjb2RlIHVuaXRzIHBlciBj
b2RlIHBvaW50ICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVFRF9NVUxUSVBMRV9VQ0hBUihjKSAwCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjMyX0NIQVJfTEVOR1RIKGMpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTUFYX0NIQVJfTEVOR1RIIDEKKwor
LyogYXZlcmFnZSBudW1iZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYgKi8KKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2Rl
ZmluZSBVVEYzMl9BUlJBWV9TSVpFKHNpemUpIChzaXplKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9DSEFS
X1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCit9CisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJf
R0VUX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChj
KT0ocylbaV07IFwKKyAgICBpZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAg
ICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiBkZWZpbml0aW9ucyB3
aXRoIGZvcndhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqLworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAg
KGMpPShzKVsoaSkrK107IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9VTlNBRkUocywg
aSwgYykgeyBcCisgICAgKHMpWyhpKSsrXT0oYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfMV9V
TlNBRkUocywgaSkgeyBcCisgICAgKysoaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9GV0RfTl9VTlNB
RkUocywgaSwgbikgeyBcCisgICAgKGkpKz0obik7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRfQ0hB
Ul9TVEFSVF9VTlNBRkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfTkVYVF9DSEFSX1NBRkUo
cywgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAg
aWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1Jf
VkFMVUU7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9BUFBFTkRfQ0hBUl9TQUZFKHMsIGks
IGxlbmd0aCwgYykgeyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHgxMGZmZmYpIHsgXAorICAg
ICAgICAocylbKGkpKytdPShjKTsgXAorICAgIH0gZWxzZSAvKiBjPjB4MTBmZmZmLCB3cml0ZSAw
eGZmZmQgKi8geyBcCisgICAgICAgIChzKVsoaSkrK109MHhmZmZkOyBcCisgICAgfSBcCit9CisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMzJfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIHsgXAorICAgICsrKGkpOyBcCit9
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMzJfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIHsgXAorICAgIGlmKCgo
aSkrPShuKSk+KGxlbmd0aCkpIHsgXAorICAgICAgICAoaSk9KGxlbmd0aCk7IFwKKyAgICB9IFwK
K30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYzMl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0YXJ0LCBpKSB7IFwKK30K
KworLyogZGVmaW5pdGlvbnMgd2l0aCBiYWNrd2FyZCBpdGVyYXRpb24gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9i
c29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9QUkVWX0NIQVJfVU5TQUZF
KHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQkFD
S18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tf
Tl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgKGkpLT0obik7IFwKK30KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9T
RVRfQ0hBUl9MSU1JVF9VTlNBRkUocywgaSkgeyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFS
X1NBRkUocywgc3RhcnQsIGksIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVstLShpKV07IFwK
KyAgICBpZighVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpKSB7IFwKKyAgICAgICAgKGMpPVVURl9F
UlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jz
b2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9TQUZFKHMsIHN0
YXJ0LCBpKSB7IFwKKyAgICAtLShpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfTl9TQUZFKHMs
IHN0YXJ0LCBpLCBuKSB7IFwKKyAgICAoaSktPShuKTsgXAorICAgIGlmKChpKTwoc3RhcnQpKSB7
IFwKKyAgICAgICAgKGkpPShzdGFydCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9TRVRf
Q0hBUl9MSU1JVF9TQUZFKHMsIGksIGxlbmd0aCkgeyBcCit9CisKKy8qIEZvcm1lcmx5IHV0Zi5o
LCBwYXJ0IDIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICovCisKKy8qKgorICogRXN0aW1hdGUgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGZvciBh
IHN0cmluZyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzLgorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9BUlJBWV9TSVpFKHNpemUpIFVURjE2X0FSUkFZX1NJWkUoc2l6ZSkKKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAg
ICAgIFVURjE2X0dFVF9DSEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gVXNlIFUxNl9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSBVVEYxNl9HRVRf
Q0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTkVYVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAg
IFVURjE2X05FWFRfQ0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFVzZSBVMTZfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZf
TkVYVF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpICBVVEYxNl9ORVhUX0NIQVJf
U0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVMTZfQVBQRU5EX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGX0FQUEVORF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgVVRGMTZfQVBQ
RU5EX0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2Ug
VTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQVBQRU5E
X0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpICAgICAgICBVVEYxNl9BUFBFTkRfQ0hBUl9TQUZF
KHMsIGksIGxlbmd0aCwgYykKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVMTZfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFf
VU5TQUZFKHMsIGkpICAgICAgICAgICAgICAgICAgICAgICBVVEYxNl9GV0RfMV9VTlNBRkUocywg
aSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUg
dXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpICAgICAg
ICAgICAgICAgICBVVEYxNl9GV0RfMV9TQUZFKHMsIGksIGxlbmd0aCkKKworCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEZfRldEX05fVU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAg
ICBVVEYxNl9GV0RfTl9VTlNBRkUocywgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfRldE
X05fU0FGRShzLCBpLCBsZW5ndGgsIG4pICAgICAgICAgICAgICBVVEYxNl9GV0RfTl9TQUZFKHMs
IGksIGxlbmd0aCwgbikKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfU0VUX0NQX1NUQVJUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NF
VF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfU1RB
UlRfVU5TQUZFKHMsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUx
Nl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9T
VEFSVF9TQUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUo
cywgc3RhcnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X1BSRVZfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfUFJFVl9DSEFSX1VO
U0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgICBVVEYxNl9QUkVWX0NIQVJfVU5TQUZFKHMsIGks
IGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X1BSRVYgaW5zdGVhZCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBj
LCBzdHJpY3QpICAgVVRGMTZfUFJFVl9DSEFSX1NBRkUocywgc3RhcnQsIGksIGMsIHN0cmljdCkK
KworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xX1VOU0FG
RSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMV9VTlNBRkUocywgaSkgICAg
ICAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS18xX1VOU0FGRShzLCBpKQorCisvKiogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS18xLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEZfQkFDS18xX1NBRkUocywgc3RhcnQsIGkpICAgICAgICAgICAgICAgICBVVEYx
Nl9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVMTZfQkFDS19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGX0JBQ0tfTl9VTlNBRkUocywgaSwgbikgICAgICAgICAgICAgICAgICAgVVRGMTZfQkFDS19O
X1VOU0FGRShzLCBpLCBuKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfQkFDS19OLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfQkFDS19OX1NBRkUocywg
c3RhcnQsIGksIG4pICAgICAgICAgICAgICBVVEYxNl9CQUNLX05fU0FGRShzLCBzdGFydCwgaSwg
bikKKworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJ
TUlUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlU
X1VOU0FGRShzLCBpKSAgICAgICAgICAgICAgVVRGMTZfU0VUX0NIQVJfTElNSVRfVU5TQUZFKHMs
IGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElN
SVQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMs
IHN0YXJ0LCBpLCBsZW5ndGgpIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGks
IGxlbmd0aCkKKworLyogRGVmaW5lIGRlZmF1bHQgbWFjcm9zIChVVEYtMTYgInNhZmUiKSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCisgKiBEb2VzIHRoaXMg
Y29kZSB1bml0IGFsb25lIGVuY29kZSBhIGNvZGUgcG9pbnQgKEJNUCwgbm90IGEgc3Vycm9nYXRl
KT8KKyAqIFNhbWUgYXMgVVRGMTZfSVNfU0lOR0xFLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVX0lTX1NJTkdMRSBhbmQgVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4K
KyAqLworI2RlZmluZSBVVEZfSVNfU0lOR0xFKHVjaGFyKSBVMTZfSVNfU0lOR0xFKHVjaGFyKQor
CisvKioKKyAqIElzIHRoaXMgY29kZSB1bml0IHRoZSBmaXJzdCBvbmUgb2Ygc2V2ZXJhbCAoYSBs
ZWFkIHN1cnJvZ2F0ZSk/CisgKiBTYW1lIGFzIFVURjE2X0lTX0xFQUQuCisgKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZf
b2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0lTX0xFQUQodWNoYXIpIFUxNl9JU19MRUFEKHVjaGFy
KQorCisvKioKKyAqIElzIHRoaXMgY29kZSB1bml0IG9uZSBvZiBzZXZlcmFsIGJ1dCBub3QgdGhl
IGZpcnN0IG9uZSAoYSB0cmFpbCBzdXJyb2dhdGUpPworICogU2FtZSBhcyBVVEYxNl9JU19UUkFJ
TC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVV9JU19UUkFJTCBhbmQgVTE2
X0lTX1RSQUlMLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19UUkFJTCh1Y2hh
cikgVTE2X0lTX1RSQUlMKHVjaGFyKQorCisvKioKKyAqIERvZXMgdGhpcyBjb2RlIHBvaW50IHJl
cXVpcmUgbXVsdGlwbGUgY29kZSB1bml0cyAoaXMgaXQgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9p
bnQpPworICogU2FtZSBhcyBVVEYxNl9ORUVEX01VTFRJUExFX1VDSEFSLgorICogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZmZmYp
IGluc3RlYWQuCisgKi8KKyNkZWZpbmUgVVRGX05FRURfTVVMVElQTEVfVUNIQVIoYykgVVRGMTZf
TkVFRF9NVUxUSVBMRV9VQ0hBUihjKQorCisvKioKKyAqIEhvdyBtYW55IGNvZGUgdW5pdHMgYXJl
IHVzZWQgdG8gZW5jb2RlIHRoaXMgY29kZSBwb2ludCAoMSBvciAyKT8KKyAqIFNhbWUgYXMgVVRG
MTZfQ0hBUl9MRU5HVEguCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9M
RU5HVEgsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0NIQVJfTEVOR1RIKGMpIFUx
Nl9MRU5HVEgoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2VkIGF0IG1v
c3QgZm9yIGFueSBVbmljb2RlIGNvZGUgcG9pbnQgKDIpPworICogU2FtZSBhcyBVVEYxNl9NQVhf
Q0hBUl9MRU5HVEguCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhf
TEVOR1RILCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9NQVhfQ0hBUl9MRU5HVEgg
VTE2X01BWF9MRU5HVEgKKworLyoqCisgKiBTZXQgYyB0byB0aGUgY29kZSBwb2ludCB0aGF0IGNv
bnRhaW5zIHRoZSBjb2RlIHVuaXQgaS4KKyAqIGkgY291bGQgcG9pbnQgdG8gdGhlIGxlYWQgb3Ig
dGhlIHRyYWlsIHN1cnJvZ2F0ZSBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKiBpIGlzIG5vdCBtb2Rp
ZmllZC4KKyAqIFNhbWUgYXMgVVRGMTZfR0VUX0NIQVIuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisg
KgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfR0VULCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9HRVRfQ0hBUihzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKSBV
MTZfR0VUKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNv
ZGUgcG9pbnQgdGhhdCBzdGFydHMgYXQgY29kZSB1bml0IGkKKyAqIGFuZCBhZHZhbmNlIGkgdG8g
YmV5b25kIHRoZSBjb2RlIHVuaXRzIG9mIHRoaXMgY29kZSBwb2ludCAocG9zdC1pbmNyZW1lbnQp
LgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgYSBjb2RlIHBvaW50
LgorICogT3RoZXJ3aXNlIGMgaXMgc2V0IHRvIHRoZSB0cmFpbCB1bml0IChzdXJyb2dhdGUpIGl0
c2VsZi4KKyAqIFNhbWUgYXMgVVRGMTZfTkVYVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAor
ICogXHBvc3QgMDxpPD1sZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFUxNl9ORVhULCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9ORVhUX0NIQVIo
cywgaSwgbGVuZ3RoLCBjKSBVMTZfTkVYVChzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQXBw
ZW5kIHRoZSBjb2RlIHVuaXRzIG9mIGNvZGUgcG9pbnQgYyB0byB0aGUgc3RyaW5nIGF0IGluZGV4
IGkKKyAqIGFuZCBhZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBuZXcgY29kZSB1bml0cyAocG9zdC1p
bmNyZW1lbnQpLgorICogVGhlIGNvZGUgdW5pdHMgYmVnaW5uaW5nIGF0IGluZGV4IGkgd2lsbCBi
ZSBvdmVyd3JpdHRlbi4KKyAqIFNhbWUgYXMgVVRGMTZfQVBQRU5EX0NIQVIuCisgKiBccHJlIDA8
PWM8PTB4MTBmZmZmCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAor
ICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfQVBQRU5EIGluc3RlYWQsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFSKHMsIGksIGxlbmd0aCwgYykg
VVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpCisKKy8qKgorICogQWR2YW5j
ZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1bml0cyBvZiB0aGUgY29kZSBwb2ludCB0aGF0IGJlZ2lu
cyBhdCBpLgorICogSS5lLiwgYWR2YW5jZSBpIGJ5IG9uZSBjb2RlIHBvaW50LgorICogU2FtZSBh
cyBVVEYxNl9GV0RfMS4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3Ro
CisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEXzEsIHNlZSB1
dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0ZXRF8xKHMsIGksIGxlbmd0aCkgVTE2X0ZXRF8x
KHMsIGksIGxlbmd0aCkKKworLyoqCisgKiBBZHZhbmNlIGkgdG8gYmV5b25kIHRoZSBjb2RlIHVu
aXRzIG9mIHRoZSBuIGNvZGUgcG9pbnRzIHdoZXJlIHRoZSBmaXJzdCBvbmUgYmVnaW5zIGF0IGku
CisgKiBJLmUuLCBhZHZhbmNlIGkgYnkgbiBjb2RlIHBvaW50cy4KKyAqIFNhbWUgYXMgVVQxNl9G
V0RfTi4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxwb3N0IDA8aTw9bGVuZ3RoCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX04sIHNlZSB1dGZfb2xkLmgu
CisgKi8KKyNkZWZpbmUgVVRGX0ZXRF9OKHMsIGksIGxlbmd0aCwgbikgVTE2X0ZXRF9OKHMsIGks
IGxlbmd0aCwgbikKKworLyoqCisgKiBUYWtlIHRoZSByYW5kb20tYWNjZXNzIGluZGV4IGkgYW5k
IGFkanVzdCBpdCBzbyB0aGF0IGl0IHBvaW50cyB0byB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIGNv
ZGUgcG9pbnQuCisgKiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIHRvIGFueSBjb2RlIHVuaXQgb2Yg
YSBjb2RlIHBvaW50IGFuZCBpcyBtb3ZlZCB0byBwb2ludCB0bworICogdGhlIGZpcnN0IGNvZGUg
dW5pdCBvZiB0aGUgc2FtZSBjb2RlIHBvaW50LiBpIGlzIG5ldmVyIGluY3JlbWVudGVkLgorICog
SW4gb3RoZXIgd29yZHMsIGlmIGkgcG9pbnRzIHRvIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgaXMg
cHJlY2VkZWQgYnkgYSBtYXRjaGluZworICogbGVhZCBzdXJyb2dhdGUsIHRoZW4gaSBpcyBkZWNy
ZW1lbnRlZC4gT3RoZXJ3aXNlIGl0IGlzIG5vdCBtb2RpZmllZC4KKyAqIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gc3RhcnQgYW4gaXRlcmF0aW9uIHdpdGggVVRGX05FWFRfQ0hBUigpIGZyb20gYSByYW5k
b20gaW5kZXguCisgKiBTYW1lIGFzIFVURjE2X1NFVF9DSEFSX1NUQVJULgorICogXHByZSBzdGFy
dDw9aTxsZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVCwgc2VlIHV0Zl9vbGQuaC4KKyAq
LworI2RlZmluZSBVVEZfU0VUX0NIQVJfU1RBUlQocywgc3RhcnQsIGkpIFUxNl9TRVRfQ1BfU1RB
UlQocywgc3RhcnQsIGkpCisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBo
YXMgY29kZSB1bml0cyBiZWZvcmUgaQorICogYW5kIG1vdmUgaSBiYWNrd2FyZCAodG93YXJkcyB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9m
IHRoaXMgY29kZSBwb2ludCAocHJlLWluY3JlbWVudCkuCisgKiBpIG11c3QgcG9pbnQgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1bml0IG9mIGEgY29kZSBwb2ludCAoaT09
bGVuZ3RoIGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBVVEYxNl9QUkVWX0NIQVIuCisgKiBccHJl
IHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8bGVuZ3RoCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfUFJFViwgc2VlIHV0Zl9vbGQuaC4KKyAqLwor
I2RlZmluZSBVVEZfUFJFVl9DSEFSKHMsIHN0YXJ0LCBpLCBjKSBVMTZfUFJFVihzLCBzdGFydCwg
aSwgYykKKworLyoqCisgKiBNb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGUgY29kZSBwb2lu
dCB0aGF0IGhhcyBjb2RlIHVuaXRzIGJlZm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJk
IGJ5IG9uZSBjb2RlIHBvaW50LgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVu
aXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxv
d2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfQkFDS18xLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgK
KyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFD
S18xKHMsIHN0YXJ0LCBpKSBVMTZfQkFDS18xKHMsIHN0YXJ0LCBpKQorCisvKioKKyAqIE1vdmUg
aSBiYWNrd2FyZCAodG93YXJkcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcpCisgKiB0byB0
aGUgZmlyc3QgY29kZSB1bml0IG9mIHRoZSBuIGNvZGUgcG9pbnRzIHRoYXQgaGF2ZSBjb2RlIHVu
aXRzIGJlZm9yZSBpLgorICogSS5lLiwgbW92ZSBpIGJhY2t3YXJkIGJ5IG4gY29kZSBwb2ludHMu
CisgKiBpIG11c3QgcG9pbnQgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBhZnRlciB0aGUgbGFzdCB1
bml0IG9mIGEgY29kZSBwb2ludCAoaT09bGVuZ3RoIGlzIGFsbG93ZWQpLgorICogU2FtZSBhcyBV
VEYxNl9CQUNLX04uCisgKiBccHJlIHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8PWk8
bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFDS19O
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9CQUNLX04ocywgc3RhcnQsIGksIG4p
IFUxNl9CQUNLX04ocywgc3RhcnQsIGksIG4pCisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFj
Y2VzcyBpbmRleCBpIGFuZCBhZGp1c3QgaXQgc28gdGhhdCBpdCBwb2ludHMgYmV5b25kCisgKiBh
IGNvZGUgcG9pbnQuIFRoZSBpbnB1dCBpbmRleCBwb2ludHMgYmV5b25kIGFueSBjb2RlIHVuaXQK
KyAqIG9mIGEgY29kZSBwb2ludCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgYmV5b25kIHRoZSBsYXN0
IGNvZGUgdW5pdCBvZiB0aGUgc2FtZQorICogY29kZSBwb2ludC4gaSBpcyBuZXZlciBkZWNyZW1l
bnRlZC4KKyAqIEluIG90aGVyIHdvcmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0
ZSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVu
IGkgaXMgaW5jcmVtZW50ZWQuIE90aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlz
IGNhbiBiZSB1c2VkIHRvIHN0YXJ0IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9QUkVWX0NIQVIoKSBm
cm9tIGEgcmFuZG9tIGluZGV4LgorICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9MSU1JVC4KKyAq
IFxwcmUgc3RhcnQ8aTw9bGVuZ3RoCisgKiBccG9zdCBzdGFydDxpPD1sZW5ndGgKKyAqCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNlZSB1dGZf
b2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX1NFVF9DSEFSX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5n
dGgpIFUxNl9TRVRfQ1BfTElNSVQocywgc3RhcnQsIGksIGxlbmd0aCkKKworI2VuZGlmIC8qIFVf
SElERV9ERVBSRUNBVEVEX0FQSSAqLworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaWN1L3VuaWNvZGUvdXR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91
dHlwZXMuaAppbmRleCAwMGJmMTRjZThlNmU1ZDZlYzhlZDg3ZDhlOTU2MTcwY2E1Nzc4N2IyLi44
ZjkyNGM5ZDE0MjQxNzkyODQ2NGI3OTQ0Nzk2MTIxNzYwMTAyOWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pY3Uv
dW5pY29kZS91dHlwZXMuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAg
Q29weXJpZ2h0IChDKSAxOTk2LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgogKgpAQCAtMzQsOSArMzQsMTMgQEAKIAogCiAjaW5jbHVkZSAidW5pY29k
ZS91bWFjaGluZS5oIgotI2luY2x1ZGUgInVuaWNvZGUvdXRmLmgiCiAjaW5jbHVkZSAidW5pY29k
ZS91dmVyc2lvbi5oIgogI2luY2x1ZGUgInVuaWNvZGUvdWNvbmZpZy5oIgorI2luY2x1ZGUgPGZs
b2F0Lmg+CisKKyNpZiAhVV9OT19ERUZBVUxUX0lOQ0xVREVfVVRGX0hFQURFUlMKKyMgICBpbmNs
dWRlICJ1bmljb2RlL3V0Zi5oIgorI2VuZGlmCiAKIC8qIQogICogXGZpbGUKQEAgLTUzLDkgKzU3
LDkgQEAKICAqIFxkZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKICAqIEBpbnRlcm5hbAogICovCi0j
aWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBpZm5kZWYgVV9TSE9X
X0NQTFVTUExVU19BUEkKLSMgICAgICAgZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKyMg
ICAgICAgZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDAKICMgICBlbmRpZgogI2Vsc2UKICMg
ICB1bmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQpAQCAtNjcsNiArNzEsMTIgQEAKIC8qKgogICog
XGRlZiBVX0hJREVfRFJBRlRfQVBJCiAgKiBEZWZpbmUgdGhpcyB0byAxIHRvIHJlcXVlc3QgdGhh
dCBkcmFmdCBBUEkgYmUgImhpZGRlbiIKKyAqIEBpbnRlcm5hbAorICovCisvKioKKyAqIFxkZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQorICogRGVmaW5lIHRoaXMgdG8gMSB0byByZXF1ZXN0IHRoYXQg
aW50ZXJuYWwgQVBJIGJlICJoaWRkZW4iCisgKiBAaW50ZXJuYWwKICAqLwogI2lmICFVX0RFRkFV
TFRfU0hPV19EUkFGVCAmJiAhZGVmaW5lZChVX1NIT1dfRFJBRlRfQVBJKQogI2RlZmluZSBVX0hJ
REVfRFJBRlRfQVBJIDEKQEAgLTc1LDExNiArODUsOCBAQAogI2RlZmluZSBVX0hJREVfSU5URVJO
QUxfQVBJIDEKICNlbmRpZgogCi0jaWZkZWYgVV9ISURFX0RSQUZUX0FQSQotI2luY2x1ZGUgInVu
aWNvZGUvdWRyYWZ0LmgiCi0jZW5kaWYKLQotI2lmZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQot
I2luY2x1ZGUgInVuaWNvZGUvdWRlcHJjdGQuaCIKLSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX0RF
UFJFQ0FURURfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91b2JzbGV0ZS5oIgotI2VuZGlmCi0KLSNp
ZmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCi0jaW5jbHVkZSAidW5pY29kZS91aW50cm5hbC5oIgot
I2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfU1lTVEVNX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdXN5
c3RlbS5oIgotI2VuZGlmCi0KIC8qKiBAfSAqLwogCi0KLS8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
LS8qIGNoYXIgQ2hhcmFjdGVyIHNldCBmYW1pbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0g
KiBVX0NIQVJTRVRfRkFNSUxZIGlzIGVxdWFsIHRvIHRoaXMgdmFsdWUgd2hlbiB0aGUgcGxhdGZv
cm0gaXMgYW4gQVNDSUkgYmFzZWQgcGxhdGZvcm0uCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwot
I2RlZmluZSBVX0FTQ0lJX0ZBTUlMWSAwCi0KLS8qKgotICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBl
cXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhlIHBsYXRmb3JtIGlzIGFuIEVCQ0RJQyBiYXNlZCBw
bGF0Zm9ybS4KLSAqIEBzdGFibGUgSUNVIDIuMAotICovCi0jZGVmaW5lIFVfRUJDRElDX0ZBTUlM
WSAxCi0KLS8qKgotICogXGRlZiBVX0NIQVJTRVRfRkFNSUxZCi0gKgotICogPHA+VGhlc2UgZGVm
aW5pdGlvbnMgYWxsb3cgdG8gc3BlY2lmeSB0aGUgZW5jb2Rpbmcgb2YgdGV4dAotICogaW4gdGhl
IGNoYXIgZGF0YSB0eXBlIGFzIGRlZmluZWQgYnkgdGhlIHBsYXRmb3JtIGFuZCB0aGUgY29tcGls
ZXIuCi0gKiBJdCBpcyBlbm91Z2ggdG8gZGV0ZXJtaW5lIHRoZSBjb2RlIHBvaW50IHZhbHVlcyBv
ZiAiaW52YXJpYW50IGNoYXJhY3RlcnMiLAotICogd2hpY2ggYXJlIHRoZSBvbmVzIHNoYXJlZCBi
eSBhbGwgZW5jb2RpbmdzIHRoYXQgYXJlIGluIHVzZQotICogb24gYSBnaXZlbiBwbGF0Zm9ybS48
L3A+Ci0gKgotICogPHA+VGhvc2UgImludmFyaWFudCBjaGFyYWN0ZXJzIiBzaG91bGQgYmUgYWxs
IHRoZSB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZQotICogbGF0aW4gbGV0dGVycywgdGhlIGRpZ2l0
cywgdGhlIHNwYWNlLCBhbmQgImJhc2ljIHB1bmN0dWF0aW9uIi4KLSAqIEFsc28sICdcXG4nLCAn
XFxyJywgJ1xcdCcgc2hvdWxkIGJlIGF2YWlsYWJsZS48L3A+Ci0gKgotICogPHA+VGhlIGxpc3Qg
b2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiBpczo8YnI+Ci0gKiBcY29kZQotICogICAgQS1aICBh
LXogIDAtOSAgU1BBQ0UgICIgICUgICZhbXA7ICAnICAoICApICAqICArICAsICAtICAuICAvICA6
ICA7ICA8ICA9ICA+ICA/ICBfCi0gKiBcZW5kY29kZQotICogPGJyPgotICogKDUyIGxldHRlcnMg
KyAxMCBudW1iZXJzICsgMjAgcHVuYy9zeW0vc3BhY2UgPSA4MiB0b3RhbCk8L3A+Ci0gKgotICog
PHA+VGhpcyBtYXRjaGVzIHRoZSBJQk0gU3ludGFjdGljIENoYXJhY3RlciBTZXQgKENTIDY0MCku
PC9wPgotICoKLSAqIDxwPkluIG90aGVyIHdvcmRzLCBhbGwgdGhlIGdyYXBoaWMgY2hhcmFjdGVy
cyBpbiA3LWJpdCBBU0NJSSBzaG91bGQKLSAqIGJlIHNhZmVseSBhY2Nlc3NpYmxlIGV4Y2VwdCB0
aGUgZm9sbG93aW5nOjwvcD4KLSAqCi0gKiBcY29kZQotICogICAgJ1wnIDxiYWNrc2xhc2g+Ci0g
KiAgICAnWycgPGxlZnQgYnJhY2tldD4KLSAqICAgICddJyA8cmlnaHQgYnJhY2tldD4KLSAqICAg
ICd7JyA8bGVmdCBicmFjZT4KLSAqICAgICd9JyA8cmlnaHQgYnJhY2U+Ci0gKiAgICAnXicgPGNp
cmN1bWZsZXg+Ci0gKiAgICAnficgPHRpbGRlPgotICogICAgJyEnIDxleGNsYW1hdGlvbiBtYXJr
PgotICogICAgJyMnIDxudW1iZXIgc2lnbj4KLSAqICAgICd8JyA8dmVydGljYWwgbGluZT4KLSAq
ICAgICckJyA8ZG9sbGFyIHNpZ24+Ci0gKiAgICAnQCcgPGNvbW1lcmNpYWwgYXQ+Ci0gKiAgICAn
YCcgPGdyYXZlIGFjY2VudD4KLSAqIFxlbmRjb2RlCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwot
Ci0jaWZuZGVmIFVfQ0hBUlNFVF9GQU1JTFkKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0ZBTUlMWSAw
Ci0jZW5kaWYKLQotLyoqCi0gKiBcZGVmIFVfQ0hBUlNFVF9JU19VVEY4Ci0gKgotICogSGFyZGNv
ZGUgdGhlIGRlZmF1bHQgY2hhcnNldCB0byBVVEYtOC4KLSAqCi0gKiBJZiB0aGlzIGlzIHNldCB0
byAxLCB0aGVuCi0gKiAtIElDVSB3aWxsIGFzc3VtZSB0aGF0IGFsbCBub24taW52YXJpYW50IGNo
YXIqLCBTdHJpbmdQaWVjZSwgc3RkOjpzdHJpbmcgZXRjLgotICogICBjb250YWluIFVURi04IHRl
eHQsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc3lzdGVtIEFQSSB1c2VzCi0gKiAtIHNvbWUgSUNV
IGNvZGUgd2lsbCB1c2UgZmFzdCBmdW5jdGlvbnMgbGlrZSB1X3N0ckZyb21VVEY4KCkKLSAqICAg
cmF0aGVyIHRoYW4gdGhlIG1vcmUgZ2VuZXJhbCBhbmQgbW9yZSBoZWF2eS13ZWlnaHQgY29udmVy
c2lvbiBBUEkgKHVjbnYuaCkKLSAqIC0gdWNudl9nZXREZWZhdWx0TmFtZSgpIGFsd2F5cyByZXR1
cm5zICJVVEYtOCIKLSAqIC0gdWNudl9zZXREZWZhdWx0TmFtZSgpIGlzIGRpc2FibGVkIGFuZCB3
aWxsIG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgY2hhcnNldAotICogLSBzdGF0aWMgYnVpbGRzIG9m
IElDVSBhcmUgc21hbGxlcgotICogLSBtb3JlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHdp
dGggdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZC10aW1lCi0gKiAgIGNvbmZpZ3VyYXRp
b24gb3B0aW9uIChzZWUgdW5pY29kZS91Y29uZmlnLmgpCi0gKiAtIHRoZSBVQ09ORklHX05PX0NP
TlZFUlNJT04gYnVpbGQgb3B0aW9uIGluIHVjb25maWcuaCBpcyBtb3JlIHVzYWJsZQotICoKLSAq
IEBzdGFibGUgSUNVIDQuMgotICogQHNlZSBVQ09ORklHX05PX0NPTlZFUlNJT04KLSAqLwotI2lm
bmRlZiBVX0NIQVJTRVRfSVNfVVRGOAotIyAgIGRlZmluZSBVX0NIQVJTRVRfSVNfVVRGOCAwCi0j
ZW5kaWYKLQogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyogSUNVREFUQSBuYW1pbmcgc2NoZW1l
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwog
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMjMyLDkgKzEzNCwxMSBAQAogICogSUNVIDEuOC54
IG9uIEVCQ0RJQywgZXRjLi4KICAqIEBzdGFibGUgSUNVIDIuMAogICovCi0jZGVmaW5lIFVfSUNV
REFUQV9OQU1FICAgICJpY3VkdCIgVV9JQ1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9M
RVRURVIgIC8qKjwgQGludGVybmFsICovCisjZGVmaW5lIFVfSUNVREFUQV9OQU1FICAgICJpY3Vk
dCIgVV9JQ1VfVkVSU0lPTl9TSE9SVCBVX0lDVURBVEFfVFlQRV9MRVRURVIKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQogI2RlZmluZSBVX1VTUkRBVEFfTkFNRSAgICAidXNyZHQiIFVfSUNV
X1ZFUlNJT05fU0hPUlQgVV9JQ1VEQVRBX1RZUEVfTEVUVEVSICAvKio8IEBpbnRlcm5hbCAqLwot
I2RlZmluZSBVX1VTRV9VU1JEQVRBICAgICAwICAvKio8IEBpbnRlcm5hbCAqLworI2RlZmluZSBV
X1VTRV9VU1JEQVRBICAgICAxICAvKio8IEBpbnRlcm5hbCAqLworI2VuZGlmICAvKiBVX0hJREVf
SU5URVJOQUxfQVBJICovCiAKIC8qKgogICogIFVfSUNVX0VOVFJZX1BPSU5UIGlzIHRoZSBuYW1l
IG9mIHRoZSBETEwgZW50cnkgcG9pbnQgdG8gdGhlIElDVSBkYXRhIGxpYnJhcnkuCkBAIC0yNDcs
MzggKzE1MSwyOCBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCNkZWZp
bmUgVV9JQ1VfRU5UUllfUE9JTlQgaWN1ZHQxOV9kYXQKICAqIEBzdGFibGUgSUNVIDIuNAogICov
Ci0jZGVmaW5lIFVfSUNVREFUQV9FTlRSWV9QT0lOVCAgVV9ERUYyX0lDVURBVEFfRU5UUllfUE9J
TlQoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0sIFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNKQorI2Rl
ZmluZSBVX0lDVURBVEFfRU5UUllfUE9JTlQgIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BPSU5UKFVf
SUNVX1ZFUlNJT05fTUFKT1JfTlVNLFVfTElCX1NVRkZJWF9DX05BTUUpCiAKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQogLyoqCi0gKiBEbyBub3QgdXNlLgorICogRG8gbm90IHVzZS4gTm90
ZSB0aGF0IGl0J3MgT0sgZm9yIHRoZSAybmQgYXJndW1lbnQgdG8gYmUgdW5kZWZpbmVkIChsaXRl
cmFsKS4KICAqIEBpbnRlcm5hbAogICovCi0jZGVmaW5lIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BP
SU5UKG1ham9yLCBtaW5vcikgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwgbWlub3Ip
CisjZGVmaW5lIFVfREVGMl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLHN1ZmYpIFVfREVGX0lD
VURBVEFfRU5UUllfUE9JTlQobWFqb3Isc3VmZikKKwogLyoqCiAgKiBEbyBub3QgdXNlLgogICog
QGludGVybmFsCiAgKi8KICNpZm5kZWYgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVAogLyogYWZm
ZWN0ZWQgYnkgc3ltYm9sIHJlbmFtaW5nLiBTZWUgcGxhdGZvcm0uaCAqLwotI2RlZmluZSBVX0RF
Rl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLCBtaW5vcikgaWN1ZHQjI21ham9yIyNtaW5vciMj
X2RhdAotI2VuZGlmCi0KLS8qKgotICogXGRlZiBVX0NBTExDT05WCi0gKiBTaW1pbGFyIHRvIFVf
Q0RFQ0xfQkVHSU4vVV9DREVDTF9FTkQsIHRoaXMgcXVhbGlmaWVyIGlzIG5lY2Vzc2FyeQotICog
aW4gY2FsbGJhY2sgZnVuY3Rpb24gdHlwZWRlZnMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNhbGxp
bmcgY29udmVudGlvbgotICogaXMgY29tcGF0aWJsZS4KLSAqCi0gKiBUaGlzIGlzIG9ubHkgdXNl
ZCBmb3Igbm9uLUlDVS1BUEkgZnVuY3Rpb25zLgotICogV2hlbiBhIGZ1bmN0aW9uIGlzIGEgcHVi
bGljIElDVSBBUEksCi0gKiB5b3UgbXVzdCB1c2UgdGhlIFVfQ0FQSSBhbmQgVV9FWFBPUlQyIHF1
YWxpZmllcnMuCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2lmIGRlZmluZWQoT1MzOTApICYm
IGRlZmluZWQoWFBfQ1BMVVNQTFVTKQotIyAgICBkZWZpbmUgVV9DQUxMQ09OViBfX2NkZWNsCisj
aWZuZGVmIFVfTElCX1NVRkZJWF9DX05BTUUKKyNkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9Q
T0lOVChtYWpvciwgc3VmZikgaWN1ZHQjI21ham9yIyNfZGF0CiAjZWxzZQotIyAgICBkZWZpbmUg
VV9DQUxMQ09OViBVX0VYUE9SVDIKKyNkZWZpbmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVCht
YWpvciwgc3VmZikgaWN1ZHQjI3N1ZmYgIyMgbWFqb3IjI19kYXQKKyNlbmRpZgogI2VuZGlmCisj
ZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KIAogLyoqCiAgKiBcZGVmIE5VTEwKQEAg
LTI4Niw3ICsxODAsNyBAQAogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KICNpZm5kZWYgTlVMTAot
I2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAjZGVmaW5lIE5VTEwgICAg
MAogI2Vsc2UKICNkZWZpbmUgTlVMTCAgICAoKHZvaWQgKikwKQpAQCAtMzE1LDU0ICsyMDksMTcg
QEAgdHlwZWRlZiBkb3VibGUgVURhdGU7CiAvKiogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMg
cGVyIGRheSBAc3RhYmxlIElDVSAyLjAgKi8KICNkZWZpbmUgVV9NSUxMSVNfUEVSX0RBWSAgICAg
ICAoODY0MDAwMDApCiAKLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogVUNsYXNzSUQtYmFz
ZWQgUlRUSSAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyoqIAorICogTWF4aW11bSBVRGF0
ZSB2YWx1ZSAKKyAqIEBzdGFibGUgSUNVIDQuOCAKKyAqLyAKKyNkZWZpbmUgVV9EQVRFX01BWCBE
QkxfTUFYCiAKIC8qKgotICogVUNsYXNzSUQgaXMgdXNlZCB0byBpZGVudGlmeSBjbGFzc2VzIHdp
dGhvdXQgdXNpbmcgUlRUSSwgc2luY2UgUlRUSQotICogaXMgbm90IHlldCBzdXBwb3J0ZWQgYnkg
YWxsIEMrKyBjb21waWxlcnMuICBFYWNoIGNsYXNzIGhpZXJhcmNoeSB3aGljaCBuZWVkcwotICog
dG8gaW1wbGVtZW50IHBvbHltb3JwaGljIGNsb25lKCkgb3Igb3BlcmF0b3I9PSgpIGRlZmluZXMg
dHdvIG1ldGhvZHMsCi0gKiBkZXNjcmliZWQgaW4gZGV0YWlsIGJlbG93LiAgVUNsYXNzSUQgdmFs
dWVzIGNhbiBiZSBjb21wYXJlZCB1c2luZwotICogb3BlcmF0b3I9PSgpLiBOb3RoaW5nIGVsc2Ug
c2hvdWxkIGJlIGRvbmUgd2l0aCB0aGVtLgotICoKLSAqIFxwYXIKLSAqIGdldER5bmFtaWNDbGFz
c0lEKCkgaXMgZGVjbGFyZWQgaW4gdGhlIGJhc2UgY2xhc3Mgb2YgdGhlIGhpZXJhcmNoeSBhcwot
ICogYSBwdXJlIHZpcnR1YWwuICBFYWNoIGNvbmNyZXRlIHN1YmNsYXNzIGltcGxlbWVudHMgaXQg
aW4gdGhlIHNhbWUgd2F5OgotICoKLSAqIFxjb2RlCi0gKiAgICAgIGNsYXNzIEJhc2UgewotICog
ICAgICBwdWJsaWM6Ci0gKiAgICAgICAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFz
c0lEKCkgY29uc3QgPSAwOwotICogICAgICB9Ci0gKgotICogICAgICBjbGFzcyBEZXJpdmVkIHsK
LSAqICAgICAgcHVibGljOgotICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCgpIGNvbnN0Ci0gKiAgICAgICAgICAgIHsgcmV0dXJuIERlcml2ZWQ6OmdldFN0YXRp
Y0NsYXNzSUQoKTsgfQotICogICAgICB9Ci0gKiBcZW5kY29kZQotICoKLSAqIEVhY2ggY29uY3Jl
dGUgY2xhc3MgaW1wbGVtZW50cyBnZXRTdGF0aWNDbGFzc0lEKCkgYXMgd2VsbCwgd2hpY2ggYWxs
b3dzCi0gKiBjbGllbnRzIHRvIHRlc3QgZm9yIGEgc3BlY2lmaWMgdHlwZS4KLSAqCi0gKiBcY29k
ZQotICogICAgICBjbGFzcyBEZXJpdmVkIHsKLSAqICAgICAgcHVibGljOgotICogICAgICAgICAg
c3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7Ci0gKiAgICAgIHBy
aXZhdGU6Ci0gKiAgICAgICAgICBzdGF0aWMgY2hhciBmZ0NsYXNzSUQ7Ci0gKiAgICAgIH0KLSAq
Ci0gKiAgICAgIC8vIEluIERlcml2ZWQuY3BwOgotICogICAgICBVQ2xhc3NJRCBEZXJpdmVkOjpn
ZXRTdGF0aWNDbGFzc0lEKCkKLSAqICAgICAgICB7IHJldHVybiAoVUNsYXNzSUQpJkRlcml2ZWQ6
OmZnQ2xhc3NJRDsgfQotICogICAgICBjaGFyIERlcml2ZWQ6OmZnQ2xhc3NJRCA9IDA7IC8vIFZh
bHVlIGlzIGlycmVsZXZhbnQKLSAqIFxlbmRjb2RlCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwot
dHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKKyAqIE1pbmltdW0gVURhdGUgdmFsdWUgCisgKiBAc3Rh
YmxlIElDVSA0LjggCisgKi8gCisjZGVmaW5lIFVfREFURV9NSU4gLVVfREFURV9NQVgKIAogLyo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLwogLyogU2hhcmVkIGxpYnJhcnkvRExMIGltcG9ydC1leHBvcnQg
QVBJIGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMzczLDcgKzIz
MCw3IEBAIHR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CiAgKiBJQ1UgaXMgc2VwYXJhdGVkIGludG8g
dGhyZWUgbGlicmFyaWVzLgogICovCiAKLS8qCisvKioKICAqIFxkZWYgVV9DT01CSU5FRF9JTVBM
RU1FTlRBVElPTgogICogU2V0IHRvIGV4cG9ydCBsaWJyYXJ5IHN5bWJvbHMgZnJvbSBpbnNpZGUg
dGhlIElDVSBsaWJyYXJ5CiAgKiB3aGVuIGFsbCBvZiBJQ1UgaXMgaW4gYSBzaW5nbGUgbGlicmFy
eS4KQEAgLTU0MCw5ICszOTcsOSBAQCB0eXBlZGVmIHZvaWQqIFVDbGFzc0lEOwogICoKICAqIE5v
dGU6IFRoaXMgaXMgY3VycmVudGx5IG9ubHkgZG9uZSBvbiBXaW5kb3dzIGJlY2F1c2UKICAqIHNv
bWUgTGludXgvVW5peCBjb21waWxlcnMgaGF2ZSBwcm9ibGVtcyB3aXRoIGRlZmluaW5nIGdsb2Jh
bCBuZXcvZGVsZXRlLgotICogT24gV2luZG93cywgVV9XSU5ET1dTIGlzIGRlZmluZWQsIGFuZCBp
dCBpcyBfTVNDX1ZFUj49MTIwMCBmb3IgTVNWQyA2LjAgYW5kIGhpZ2hlci4KKyAqIE9uIFdpbmRv
d3MsIGl0IGlzIF9NU0NfVkVSPj0xMjAwIGZvciBNU1ZDIDYuMCBhbmQgaGlnaGVyLgogICovCi0j
aWYgZGVmaW5lZChYUF9DUExVU1BMVVMpICYmIGRlZmluZWQoV0lOMzIpICYmIFVfREVCVUcgJiYg
VV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAmJiAoX01TQ19WRVI+PTEyMDApICYmICFkZWZpbmVk
KFVfU1RBVElDX0lNUExFTUVOVEFUSU9OKSAmJiAoZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRB
VElPTikgfHwgZGVmaW5lZChVX0kxOE5fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JT19J
TVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVm
aW5lZChVX0xBWU9VVEVYX0lNUExFTUVOVEFUSU9OKSkKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVz
KSAmJiBVX0RFQlVHICYmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gJiYgKF9NU0NfVkVSPj0x
MjAwKSAmJiAhZGVmaW5lZChVX1NUQVRJQ19JTVBMRU1FTlRBVElPTikgJiYgKGRlZmluZWQoVV9D
T01NT05fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8
fCBkZWZpbmVkKFVfSU9fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVN
RU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikpCiAKICNpZm5k
ZWYgVV9ISURFX0lOVEVSTkFMX0FQSQogLyoqCkBAIC03NDMsNiArNjAwLDcgQEAgdHlwZWRlZiBl
bnVtIFVFcnJvckNvZGUgewogICAgIFVfVU5ERUZJTkVEX0tFWVdPUkQsICAgICAgICAgICAgICAv
Kio8IFVuZGVmaW5lZCBQbHVyYWwga2V5d29yZCAqLwogICAgIFVfREVGQVVMVF9LRVlXT1JEX01J
U1NJTkcsICAgICAgICAvKio8IE1pc3NpbmcgREVGQVVMVCBydWxlIGluIHBsdXJhbCBydWxlcyAq
LwogICAgIFVfREVDSU1BTF9OVU1CRVJfU1lOVEFYX0VSUk9SLCAgICAvKio8IERlY2ltYWwgbnVt
YmVyIHN5bnRheCBlcnJvciAqLworICAgIFVfRk9STUFUX0lORVhBQ1RfRVJST1IsICAgICAgICAg
ICAvKio8IENhbm5vdCBmb3JtYXQgYSBudW1iZXIgZXhhY3RseSBhbmQgcm91bmRpbmcgbW9kZSBp
cyBST1VORF9VTk5FQ0VTU0FSWSBAc3RhYmxlIElDVSA0LjggKi8KICAgICBVX0ZNVF9QQVJTRV9F
UlJPUl9MSU1JVCwgICAgICAgICAgLyoqPCBUaGUgbGltaXQgZm9yIGZvcm1hdCBsaWJyYXJ5IGVy
cm9ycyAqLwogCiAgICAgLyoKQEAgLTgyNiw3ICs2ODQsNyBAQCB0eXBlZGVmIGVudW0gVUVycm9y
Q29kZSB7CiAvKiBVc2UgdGhlIGZvbGxvd2luZyB0byBkZXRlcm1pbmUgaWYgYW4gVUVycm9yQ29k
ZSByZXByZXNlbnRzICovCiAvKiBvcGVyYXRpb25hbCBzdWNjZXNzIG9yIGZhaWx1cmUuICovCiAK
LSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogICAgIC8qKgogICAgICAq
IERvZXMgdGhlIGVycm9yIGNvZGUgaW5kaWNhdGUgc3VjY2Vzcz8KICAgICAgKiBAc3RhYmxlIElD
VSAyLjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0uaCBi
L1NvdXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJudW0uaAppbmRleCA3MjIxNjEyOTIwOTJk
YTYwNjI4OWMwNmVjMjM2MTMwODUzOTFjNDE4Li5iZDBiMGM5ODk4YTIzNTc5ZThmYjgxMTlmNmNk
MTYzOWFjMmE4ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVy
bnVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaWN1L3VuaWNvZGUvdXZlcm51bS5oCkBAIC0xLDYg
KzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIw
MDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAo
QykgMjAwMC0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCiAqCkBAIC0xMiw1NyArMTIsNjYgQEAKICogICBDcmVhdGVkIGJ5OiBWbGFkaW1pciBX
ZWluc3RlaW4KICogICBVcGRhdGVkIGJ5OiBTdGV2ZW4gUi4gTG9vbWlzCiAqCi0qICBHZXRzIGlu
Y2x1ZGVkIGJ5IHV2ZXJzaW9uLmggYW5kIG90aGVyIGZpbGVzLgotKgotKiBJTVBPUlRBTlQ6IFdo
ZW4gdXBkYXRpbmcgdmVyc2lvbiwgdGhlIGZvbGxvd2luZyB0aGluZ3MgbmVlZCB0byBiZSBkb25l
OgotKiBzb3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51bS5oIC0gdGhpcyBmaWxlOiB1cGRhdGUg
bWFqb3IsIG1pbm9yLAotKiAgICAgICAgcGF0Y2hsZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9y
dCB2ZXJzaW9uIGNvbnN0YW50cywgbmFtZXNwYWNlLAotKiAgICAgICAgICAgICAgICAgICAgcmVu
YW1pbmcgbWFjcm8sIGFuZCBjb3B5cmlnaHQKLSoKLSogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVk
IHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCwgd2hpY2ggY2FuIGJlIGRvbmUKLSogIGJ5IHJ1bm5pbmcg
dGhlIFVOSVggbWFrZWZpbGUgdGFyZ2V0ICd1cGRhdGUtd2luZG93cy1tYWtlZmlsZXMnIGluIGlj
dS9zb3VyY2UuCi0qCi0qCi0qIHNvdXJjZS9jb21tb24vY29tbW9uLnZjcHJvaiAtIHVwZGF0ZSAn
T3V0cHV0IGZpbGUgbmFtZScgb24gdGhlIGxpbmsgdGFiIHNvCi0qICAgICAgICAgICAgICAgICAg
IHRoYXQgaXQgY29udGFpbnMgdGhlIG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbgotKiBzb3Vy
Y2UvaTE4bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCi0qIHNv
dXJjZS9sYXlvdXQvbGF5b3V0LnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9q
Ci0qIHNvdXJjZS9sYXlvdXRleC9sYXlvdXRleC52Y3Byb2ogLSBzYW1lCi0qIHNvdXJjZS9zdHVi
ZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagotKiBz
b3VyY2UvaW8vaW8udmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKLSogc291
cmNlL2RhdGEvbWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9OQU1FIHNvIHRoYXQgaXQg
Y29udGFpbnMKLSogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBtYWpvci9taW5v
ciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KICovCiAKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDIEFQSTogZGVmaW5pdGlvbnMgb2YgSUNVIHZlcnNpb24gbnVtYmVycwor
ICoKKyAqIFRoaXMgZmlsZSBpcyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxl
cy4gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkKKyAqIG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMuIFRo
ZSBhY3R1YWwgdmVyc2lvbiBudW1iZXJzIGFyZSBkZWZpbmVkIGhlcmUuCisgKi8KKworIC8qCisg
ICogSU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhpbmdz
IG5lZWQgdG8gYmUgZG9uZToKKyAgKiBzb3VyY2UvY29tbW9uL3VuaWNvZGUvdXZlcm51bS5oIC0g
dGhpcyBmaWxlOiB1cGRhdGUgbWFqb3IsIG1pbm9yLAorICAqICAgICAgICBwYXRjaGxldmVsLCBz
dWZmaXgsIHZlcnNpb24sIHNob3J0IHZlcnNpb24gY29uc3RhbnRzLCBuYW1lc3BhY2UsCisgICog
ICAgICAgICAgICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0CisgICoKKyAg
KiBUaGUgZm9sbG93aW5nIGZpbGVzIG5lZWQgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsLCB3aGljaCBj
YW4gYmUgZG9uZQorICAqICBieSBydW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBk
YXRlLXdpbmRvd3MtbWFrZWZpbGVzJyBpbiBpY3Uvc291cmNlLgorICAqCisgICoKKyAgKiBzb3Vy
Y2UvY29tbW9uL2NvbW1vbi52Y3Byb2ogLSB1cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRo
ZSBsaW5rIHRhYiBzbworICAqICAgICAgICAgICAgICAgICAgIHRoYXQgaXQgY29udGFpbnMgdGhl
IG5ldyBtYWpvci9taW5vciBjb21iaW5hdGlvbgorICAqIHNvdXJjZS9pMThuL2kxOG4udmNwcm9q
IC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3Byb2oKKyAgKiBzb3VyY2UvbGF5b3V0L2xheW91
dC52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJvagorICAqIHNvdXJjZS9sYXlv
dXRleC9sYXlvdXRleC52Y3Byb2ogLSBzYW1lCisgICogc291cmNlL3N0dWJkYXRhL3N0dWJkYXRh
LnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNlL2lvL2lv
LnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICogc291cmNlL2RhdGEv
bWFrZWRhdGEubWFrIC0gY2hhbmdlIFVfSUNVREFUQV9OQU1FIHNvIHRoYXQgaXQgY29udGFpbnMK
KyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbmV3IG1ham9yL21pbm9yIGNvbWJp
bmF0aW9uIGFuZCB0aGUgVW5pY29kZSB2ZXJzaW9uLgorICAqLworCiAjaWZuZGVmIFVWRVJOVU1f
SAogI2RlZmluZSBVVkVSTlVNX0gKIAotLyoqIFRoZSBzdGFuZGFyZCBjb3B5cmlnaHQgbm90aWNl
IHRoYXQgZ2V0cyBjb21waWxlZCBpbnRvIGVhY2ggbGlicmFyeS4gCisvKiogVGhlIHN0YW5kYXJk
IGNvcHlyaWdodCBub3RpY2UgdGhhdCBnZXRzIGNvbXBpbGVkIGludG8gZWFjaCBsaWJyYXJ5Lgog
ICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2Yg
SUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVV9DT1BZUklHSFRfU1RSSU5H
IFwKLSAgIiBDb3B5cmlnaHQgKEMpIDIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gIgorICAiIENv
cHlyaWdodCAoQykgMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAiCiAKLS8qKiBUaGUgY3VycmVu
dCBJQ1UgbWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLiAKKy8qKiBUaGUgY3VycmVudCBJQ1Ug
bWFqb3IgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2Ug
aW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi40CiAg
Ki8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNAorI2RlZmluZSBVX0lDVV9WRVJT
SU9OX01BSk9SX05VTSA1MgogCi0vKiogVGhlIGN1cnJlbnQgSUNVIG1pbm9yIHZlcnNpb24gYXMg
YW4gaW50ZWdlci4gCisvKiogVGhlIGN1cnJlbnQgSUNVIG1pbm9yIHZlcnNpb24gYXMgYW4gaW50
ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVh
c2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNIDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gMQogCi0vKiog
VGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLiAgCisvKiog
VGhlIGN1cnJlbnQgSUNVIHBhdGNobGV2ZWwgdmVyc2lvbiBhcyBhbiBpbnRlZ2VyLgogICogIFRo
aXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVCiAg
KiAgQHN0YWJsZSBJQ1UgMi40CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9QQVRDSExFVkVM
X05VTSAxCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0gMAogCi0vKiogVGhl
IGN1cnJlbnQgSUNVIGJ1aWxkIGxldmVsIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gIAorLyoqIFRo
ZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFuIGludGVnZXIuCiAgKiAgVGhp
cyB2YWx1ZSBpcyBmb3IgdXNlIGJ5IElDVSBjbGllbnRzLiBJdCBkZWZhdWx0cyB0byAwLgogICog
IEBzdGFibGUgSUNVIDQuMAogICovCkBAIC03MCwzOSArNzksNTkgQEAKICNkZWZpbmUgVV9JQ1Vf
VkVSU0lPTl9CVUlMRExFVkVMX05VTSAwCiAjZW5kaWYKIAotLyoqIEdsdWVkIHZlcnNpb24gc3Vm
Zml4IGZvciByZW5hbWVycyAKKy8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMK
ICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9m
IElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fU1VG
RklYIF80NgorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1NVRkZJWCBfNTIKIAotLyoqIEdsdWVkIHZl
cnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycyAKKy8qKgorICogXGRlZiBVX0RFRjJf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVybmFsCisgKi8KKy8qKgorICogXGRlZiBV
X0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCisgKiBAaW50ZXJuYWwKKyAqLworLyoqIEdsdWVk
IHZlcnNpb24gc3VmZml4IGZ1bmN0aW9uIGZvciByZW5hbWVycwogICogIFRoaXMgdmFsdWUgd2ls
bCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVsZWFzZXMgb2YgSUNVLgogICogIElmIGEgY3Vz
dG9tIHN1ZmZpeCAoc3VjaCBhcyBtYXRjaGluZyBsaWJyYXJ5IHN1ZmZpeGVzKSBpcyBkZXNpcmVk
LCB0aGlzIGNhbiBiZSBtb2RpZmllZC4KICAqICBOb3RlIHRoYXQgaWYgcHJlc2VudCwgcGxhdGZv
cm0uaCBtYXkgY29udGFpbiBhbiBlYXJsaWVyIGRlZmluaXRpb24gb2YgdGhpcyBtYWNyby4KKyAq
ICBcZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQogICogIEBzdGFibGUgSUNVIDQuMgogICov
CisKICNpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FCi0jZGVmaW5lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh4KSAgICB4ICMjIF80NgorI2lmZGVmIFVfSEFWRV9MSUJfU1VGRklYCisj
ZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopIHggIyMgeSAjIyAgegor
I2RlZmluZSBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4LHkseikgVV9ERUZfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh4LHkseikKKyNkZWZpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHgpICAgIFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgsVV9JQ1VfVkVSU0lPTl9TVUZG
SVgsVV9MSUJfU1VGRklYX0NfTkFNRSkKKyNlbHNlCisjZGVmaW5lIFVfREVGX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoeCx5KSB4ICMjIHkKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoeCx5KSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkKKyNkZWZpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHgpICAgIFVfREVGMl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHgsVV9JQ1VfVkVSU0lPTl9TVUZGSVgpCisjZW5kaWYKICNlbmRpZgogCiAvKiogVGhlIGN1cnJl
bnQgSUNVIGxpYnJhcnkgdmVyc2lvbiBhcyBhIGRvdHRlZC1kZWNpbWFsIHN0cmluZy4gVGhlIHBh
dGNobGV2ZWwKLSAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYgaXQgbm9uLXplcm8u
IAorICogIG9ubHkgYXBwZWFycyBpbiB0aGlzIHN0cmluZyBpZiBpdCBub24temVyby4KICAqICBU
aGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQog
ICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT04gIjQuNi4xIgor
I2RlZmluZSBVX0lDVV9WRVJTSU9OICI1Mi4xIgogCi0vKiogVGhlIGN1cnJlbnQgSUNVIGxpYnJh
cnkgbWFqb3IvbWlub3IgdmVyc2lvbiBhcyBhIHN0cmluZyB3aXRob3V0IGRvdHMsIGZvciBsaWJy
YXJ5IG5hbWUgc3VmZml4ZXMuIAorLyoqIFRoZSBjdXJyZW50IElDVSBsaWJyYXJ5IG1ham9yL21p
bm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0aG91dCBkb3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1
ZmZpeGVzLgogICogIFRoaXMgdmFsdWUgd2lsbCBjaGFuZ2UgaW4gdGhlIHN1YnNlcXVlbnQgcmVs
ZWFzZXMgb2YgSUNVCiAgKiAgQHN0YWJsZSBJQ1UgMi42CiAgKi8KLSNkZWZpbmUgVV9JQ1VfVkVS
U0lPTl9TSE9SVCAiNDYiCisjZGVmaW5lIFVfSUNVX1ZFUlNJT05fU0hPUlQgIjUyIgogCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKiBEYXRhIHZlcnNpb24gaW4gSUNVNEMuCiAgKiBA
aW50ZXJuYWwgSUNVIDQuNCBJbnRlcm5hbCBVc2UgT25seQogICoqLwotI2RlZmluZSBVX0lDVV9E
QVRBX1ZFUlNJT04gIjQuNiIKKyNkZWZpbmUgVV9JQ1VfREFUQV9WRVJTSU9OICI1Mi4xIgorI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAg
KiBJQ1UgY29sbGF0aW9uIGZyYW1ld29yayB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
aWN1L3VuaWNvZGUvdXZlcnNpb24uaAppbmRleCBlNTRjZDU1YTY3Y2JjNGNjNjkyZTRlMzY5MjFk
YTJiMzZhZDE1YTVmLi43NGUzMDkxMDU1MTRhZGYzODIzN2EzYjdhNDA5ODAxYTgxNWE1ZDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pY3UvdW5pY29kZS91dmVyc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKQEAgLTEsNiArMSw2IEBACiAvKgog
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEwLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAg
LTY3LDcgKzY3LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9O
X0xFTkdUSF07CiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBpdCBiZWdpbnMgYW4gZXh0ZXJu
ICJDKysiIGxpbmthZ2UgYmxvY2sgKHRvIHByb3RlY3QKICAqIGFnYWluc3QgY2FzZXMgaW4gd2hp
Y2ggYW4gZXh0ZXJuYWwgY2xpZW50IGluY2x1ZGVzIElDVSBoZWFkZXIgZmlsZXMgaW5zaWRlCiAg
KiBhbiBleHRlcm4gIkMiIGxpbmthZ2UgYmxvY2spLgotICogSWYgdGhlIEMrKyBjb21waWxlciBz
dXBwb3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNvIGJlZ2lucyBhIG5hbWVzcGFjZSBibG9jay4KKyAq
CisgKiBJdCBhbHNvIGJlZ2lucyBhIHZlcnNpb25lZC1JQ1UtbmFtZXNwYWNlIGJsb2NrLgogICog
QHN0YWJsZSBJQ1UgMi40CiAgKi8KIApAQCAtNzcsOCArNzgsOCBAQCB0eXBlZGVmIHVpbnQ4X3Qg
VVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAqIFdoZW4gbm90IGNvbXBpbGlu
ZyBmb3IgQysrLCBpdCBkb2VzIG5vdGhpbmcuCiAgKiBXaGVuIGNvbXBpbGluZyBmb3IgQysrLCBp
dCBlbmRzIHRoZSBleHRlcm4gIkMrKyIgYmxvY2sgYmVndW4gYnkKICAqIFVfTkFNRVNQQUNFX0JF
R0lOLgotICogSWYgdGhlIEMrKyBjb21waWxlciBzdXBwb3J0cyBuYW1lc3BhY2VzLCBpdCBhbHNv
IGVuZHMgdGhlIG5hbWVzcGFjZSBibG9jawotICogYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4u
CisgKgorICogSXQgYWxzbyBlbmRzIHRoZSB2ZXJzaW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jayBi
ZWd1biBieSBVX05BTUVTUEFDRV9CRUdJTi4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAg
LTg2LDcgKzg3LDkgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9O
X0xFTkdUSF07CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1VTRQogICogVGhpcyBpcyB1c2VkIHRvIHNw
ZWNpZnkgdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSB1c2VzIHRoZQogICogcHVibGljIElDVSBD
KysgQVBJIG5hbWVzcGFjZS4KLSAqIElmIHRoZSBjb21waWxlciBkb2Vzbid0IHN1cHBvcnQgbmFt
ZXNwYWNlcywgdGhpcyBkb2VzIG5vdGhpbmcuCisgKiBUaGlzIGlzIGludm9rZWQgYnkgZGVmYXVs
dDsgd2UgcmVjb21tZW5kIHRoYXQgeW91IHR1cm4gaXQgb2ZmOgorICogU2VlIHRoZSAiUmVjb21t
ZW5kZWQgQnVpbGQgT3B0aW9ucyIgc2VjdGlvbiBvZiB0aGUgSUNVNEMgcmVhZG1lCisgKiAoaHR0
cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90cnVuay9yZWFkbWUuaHRt
bCNSZWNCdWlsZCkKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAgLTk0LDEzICs5NywxNCBA
QCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05fTEVOR1RIXTsKICAq
IFxkZWYgVV9OQU1FU1BBQ0VfUVVBTElGSUVSCiAgKiBUaGlzIGlzIHVzZWQgdG8gcXVhbGlmeSB0
aGF0IGEgZnVuY3Rpb24gb3IgY2xhc3MgaXMgcGFydCBvZgogICogdGhlIHB1YmxpYyBJQ1UgQysr
IEFQSSBuYW1lc3BhY2UuCi0gKiBJZiB0aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVz
cGFjZXMsIHRoaXMgZG9lcyBub3RoaW5nLgorICoKKyAqIFRoaXMgbWFjcm8gaXMgdW5uZWNlc3Nh
cnkgc2luY2UgSUNVIDQ5IHJlcXVpcmVzIG5hbWVzcGFjZSBzdXBwb3J0LgorICogWW91IGNhbiBq
dXN0IHVzZSAiaWN1OjoiIGluc3RlYWQuCiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCiAvKiBE
ZWZpbmUgbmFtZXNwYWNlIHN5bWJvbHMgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGl0LiAqLwot
I2lmZGVmIFhQX0NQTFVTUExVUwotI2lmIFVfSEFWRV9OQU1FU1BBQ0UKKyNpZmRlZiBfX2NwbHVz
cGx1cwogIyAgIGlmIFVfRElTQUJMRV9SRU5BTUlORwogIyAgICAgICBkZWZpbmUgVV9JQ1VfTkFN
RVNQQUNFIGljdQogICAgICAgICBuYW1lc3BhY2UgVV9JQ1VfTkFNRVNQQUNFIHsgfQpAQCAtMTIy
LDEyICsxMjYsNiBAQCB0eXBlZGVmIHVpbnQ4X3QgVVZlcnNpb25JbmZvW1VfTUFYX1ZFUlNJT05f
TEVOR1RIXTsKICAgICAgICAgVV9OQU1FU1BBQ0VfVVNFCiAjICAgZW5kaWYKICNlbHNlCi0jICAg
ZGVmaW5lIFVfTkFNRVNQQUNFX0JFR0lOIGV4dGVybiAiQysrIiB7Ci0jICAgZGVmaW5lIFVfTkFN
RVNQQUNFX0VORCB9Ci0jICAgZGVmaW5lIFVfTkFNRVNQQUNFX1VTRQotIyAgIGRlZmluZSBVX05B
TUVTUEFDRV9RVUFMSUZJRVIKLSNlbmRpZgotI2Vsc2UKICMgICBkZWZpbmUgVV9OQU1FU1BBQ0Vf
QkVHSU4KICMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfRU5ECiAjICAgZGVmaW5lIFVfTkFNRVNQQUNF
X1VTRQpAQCAtMTgwLDcgKzE3OCw3IEBAIHVfdmVyc2lvbkZyb21VU3RyaW5nKFVWZXJzaW9uSW5m
byB2ZXJzaW9uQXJyYXksIGNvbnN0IFVDaGFyICp2ZXJzaW9uU3RyaW5nKTsKICAqIEBzdGFibGUg
SUNVIDIuNAogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgotdV92ZXJzaW9uVG9TdHJpbmco
VVZlcnNpb25JbmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7Cit1X3ZlcnNp
b25Ub1N0cmluZyhjb25zdCBVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjaGFyICp2ZXJzaW9u
U3RyaW5nKTsKIAogLyoqCiAgKiBHZXRzIHRoZSBJQ1UgcmVsZWFzZSB2ZXJzaW9uLiAgVGhlIHZl
cnNpb24gYXJyYXkgc3RvcmVzIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS9sb2NhbHBvaW50ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL2xvY2FscG9pbnRlci5oCmluZGV4IGI3NmExZjg1NjI5OTIzYmRk
Yjg0NmU5OGEwODQ4MzM0N2NhNGVlNGEuLmUzY2NiMjU4MTU0Y2MyMTYwOThlYmMyNzM5ZmI3YjY4
MjIwNTljOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL2xvY2Fs
cG9pbnRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL2xvY2FscG9pbnRl
ci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAq
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNDQsNiArMTQ0LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgcHRyPXA7CiAgICAgfQogcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEFjdHVhbCBw
b2ludGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLwogICAgIFQgKnB0cjsKIHByaXZhdGU6
CiAgICAgLy8gTm8gY29tcGFyaXNvbiBvcGVyYXRvcnMgd2l0aCBvdGhlciBMb2NhbFBvaW50ZXJC
YXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3BsYXRmb3Jt
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS9wbGF0Zm9ybS5oCmluZGV4IDNkZTQw
ZDI1NjU1M2M0YWFmMWVjMDQ4MzFlOTljNTUzZmQ3YzQ2ZTkuLjFiMmFiMzA2ZWEzMzc4MjlmZDk5
YjJjMGYyODI3MGQyOWM3YmIyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91
bmljb2RlL3BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcGxh
dGZvcm0uaApAQCAtMSwxNSArMSwxMSBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgot
KiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgotKiBOb3RlOiBhdXRvY29uZiBjcmVhdGVz
IHBsYXRmb3JtLmggZnJvbSBwbGF0Zm9ybS5oLmluIGF0IGNvbmZpZ3VyZSB0aW1lLgotKgotKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCi0qCiAqICBGSUxFIE5BTUUgOiBwbGF0Zm9ybS5oCiAqCiAqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KQEAgLTIzLDM3OSArMTksNzM3IEBA
CiAjaWZuZGVmIF9QTEFURk9STV9ICiAjZGVmaW5lIF9QTEFURk9STV9ICiAKKyNpbmNsdWRlICJ1
bmljb2RlL3Vjb25maWcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V2ZXJudW0uaCIKKwogLyoqCi0g
KiBcZmlsZSAKLSAqIFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtIAorICogXGZp
bGUKKyAqIFxicmllZiBCYXNpYyB0eXBlcyBmb3IgdGhlIHBsYXRmb3JtLgorICoKKyAqIFRoaXMg
ZmlsZSB1c2VkIHRvIGJlIGdlbmVyYXRlZCBieSBhdXRvY29uZi9jb25maWd1cmUuCisgKiBTdGFy
dGluZyB3aXRoIElDVSA0OSwgcGxhdGZvcm0uaCBpcyBhIG5vcm1hbCBzb3VyY2UgZmlsZSwKKyAq
IHRvIHNpbXBsaWZ5IGNyb3NzLWNvbXBpbGluZyBhbmQgd29ya2luZyB3aXRoIG5vbi1hdXRvY29u
Zi9tYWtlIGJ1aWxkIHN5c3RlbXMuCisgKgorICogV2hlbiBhIHZhbHVlIGluIHRoaXMgZmlsZSBk
b2VzIG5vdCB3b3JrIG9uIGEgcGxhdGZvcm0sIHRoZW4gcGxlYXNlCisgKiB0cnkgdG8gZGVyaXZl
IGl0IGZyb20gdGhlIFVfUExBVEZPUk0gdmFsdWUKKyAqIChmb3Igd2hpY2ggd2UgbWlnaHQgbmVl
ZCBhIG5ldyB2YWx1ZSBjb25zdGFudCBpbiByYXJlIGNhc2VzKQorICogYW5kL29yIGZyb20gb3Ro
ZXIgbWFjcm9zIHRoYXQgYXJlIHByZWRlZmluZWQgYnkgdGhlIGNvbXBpbGVyCisgKiBvciBkZWZp
bmVkIGluIHN0YW5kYXJkIChQT1NJWCBvciBwbGF0Zm9ybSBvciBjb21waWxlcikgaGVhZGVycy4K
KyAqCisgKiBBcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLCB5b3UgY2FuIGFkZCBhbiBleHBsaWNp
dCA8Y29kZT4jZGVmaW5lPC9jb2RlPiBmb3Igc29tZSBtYWNyb3MKKyAqIGJlZm9yZSBpdCBpcyBm
aXJzdCB0ZXN0ZWQsIG9yIGFkZCBhbiBlcXVpdmFsZW50IC1EIG1hY3JvIGRlZmluaXRpb24KKyAq
IHRvIHRoZSBjb21waWxlcidzIGNvbW1hbmQgbGluZS4KKyAqCisgKiBOb3RlOiBTb21lIGNvbXBp
bGVycyBwcm92aWRlIHdheXMgdG8gc2hvdyB0aGUgcHJlZGVmaW5lZCBtYWNyb3MuCisgKiBGb3Ig
ZXhhbXBsZSwgd2l0aCBnY2MgeW91IGNhbiBjb21waWxlIGFuIGVtcHR5IC5jIGZpbGUgYW5kIGhh
dmUgdGhlIGNvbXBpbGVyCisgKiBwcmludCB0aGUgcHJlZGVmaW5lZCBtYWNyb3Mgd2l0aAorICog
XGNvZGUKKyAqIGdjYyAtRSAtZE0gLXggYyAvZGV2L251bGwgfCBzb3J0CisgKiBcZW5kY29kZQor
ICogKFlvdSBjYW4gcHJvdmlkZSBhbiBhY3R1YWwgZW1wdHkgLmMgZmlsZSByYXRoZXIgdGhhbiAv
ZGV2L251bGwuCisgKiA8Y29kZT4teCBjKys8L2NvZGU+IGlzIGZvciBDKysuKQogICovCiAKLS8q
IFRoaXMgZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgYmVmb3JlIHV2ZXJudW0uaC4gKi8KLSNpZiBk
ZWZpbmVkKFVWRVJOVU1fSCkKLSMgZXJyb3IgRG8gbm90IGluY2x1ZGUgdW5pY29kZS91dmVybnVt
LmggYmVmb3JlICNpbmNsdWRpbmcgdW5pY29kZS9wbGF0Zm9ybS5oLiAgSW5zdGVhZCBvZiB1bmlj
b2RlL3V2ZXJudW0uaCwgI2luY2x1ZGUgdW5pY29kZS91dmVyc2lvbi5oCi0jZW5kaWYKLQogLyoq
Ci0gKiBEZXRlcm1pbmUgd2hldGVyIHRvIGVuYWJsZSBhdXRvIGNsZWFudXAgb2YgbGlicmFyaWVz
LiAKKyAqIERlZmluZSBzb21lIHRoaW5ncyBzbyB0aGF0IHRoZXkgY2FuIGJlIGRvY3VtZW50ZWQu
CiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAotI2RlZmlu
ZSBVQ0xOX05PX0FVVE9fQ0xFQU5VUCAxCi0jZW5kaWYKLQotLyogTmVlZCBwbGF0Zm9ybS5oIHdo
ZW4gdXNpbmcgQ1lHV0lOTVNWQyB0byBnZXQgZGVmaW5pdGlvbnMgYWJvdmUuIElnbm9yZSBldmVy
eXRoaW5nIGVsc2UuICovCi0jaWZuZGVmIENZR1dJTk1TVkMKKyNpZmRlZiBVX0lOX0RPWFlHRU4K
Ky8qCisgKiBQcm9ibGVtOiAicGxhdGZvcm0uaDozMzU6IHdhcm5pbmc6IGRvY3VtZW50YXRpb24g
Zm9yIHVua25vd24gZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIGZvdW5kLiIgbWVhbnMgdGhhdCBV
X0hBVkVfU1REX1NUUklORyBpcyBub3QgZG9jdW1lbnRlZC4KKyAqIFNvbHV0aW9uOiAjZGVmaW5l
IGFueSBkZWZpbmVzIGZvciBub24gQGludGVybmFsIEFQSSBoZXJlLCBzbyB0aGF0IHRoZXkgYXJl
IHZpc2libGUgaW4gdGhlIGRvY3MuICBJZiB5b3UganVzdCBzZXQgUFJFREVGSU5FRCBpbiBEb3h5
ZmlsZS5pbiwgIHRoZXkgd29uJ3QgYmUgZG9jdW1lbnRlZC4KKyAqLwogCi0vKiogRGVmaW5lIHRo
ZSBwbGF0Zm9ybSB3ZSdyZSBvbi4gKi8KLSNpZm5kZWYgVV9EQVJXSU4KLSNkZWZpbmUgVV9EQVJX
SU4KKy8qIE5vbmUgZm9yIG5vdy4gKi8KICNlbmRpZgogCiAvKioKLSAqIFxkZWYgVV9IQVZFX0RJ
UkVOVF9ICi0gKiBEZWZpbmUgd2hldGhlciBkaXJlbnQuaCBpcyBhdmFpbGFibGUgCisgKiBcZGVm
IFVfUExBVEZPUk0KKyAqIFRoZSBVX1BMQVRGT1JNIG1hY3JvIGRlZmluZXMgdGhlIHBsYXRmb3Jt
IHdlJ3JlIG9uLgorICoKKyAqIFdlIHVzZWQgdG8gZGVmaW5lIG9uZSBkaWZmZXJlbnQsIHZhbHVl
LWxlc3MgbWFjcm8gcGVyIHBsYXRmb3JtLgorICogVGhhdCBtYWRlIGl0IGhhcmQgdG8ga25vdyB0
aGUgc2V0IG9mIHJlbGV2YW50IHBsYXRmb3JtcyBhbmQgbWFjcm9zLAorICogYW5kIGhhcmQgdG8g
ZGVhbCB3aXRoIHZhcmlhbnRzIG9mIHBsYXRmb3Jtcy4KKyAqCisgKiBTdGFydGluZyB3aXRoIElD
VSA0OSwgd2UgZGVmaW5lIHBsYXRmb3JtcyBhcyBudW1lcmljIG1hY3JvcywKKyAqIHdpdGggcmFu
Z2VzIG9mIHZhbHVlcyBmb3IgcmVsYXRlZCBwbGF0Zm9ybXMgYW5kIHRoZWlyIHZhcmlhbnRzLgor
ICogVGhlIFVfUExBVEZPUk0gbWFjcm8gaXMgc2V0IHRvIG9uZSBvZiB0aGVzZSB2YWx1ZXMuCisg
KgorICogSGlzdG9yaWNhbCBub3RlIGZyb20gdGhlIFNvbGFyaXMgV2lraXBlZGlhIGFydGljbGU6
CisgKiBBVCZUIGFuZCBTdW4gY29sbGFib3JhdGVkIG9uIGEgcHJvamVjdCB0byBtZXJnZSB0aGUg
bW9zdCBwb3B1bGFyIFVuaXggdmFyaWFudHMKKyAqIG9uIHRoZSBtYXJrZXQgYXQgdGhhdCB0aW1l
OiBCU0QsIFN5c3RlbSBWLCBhbmQgWGVuaXguCisgKiBUaGlzIGJlY2FtZSBVbml4IFN5c3RlbSBW
IFJlbGVhc2UgNCAoU1ZSNCkuCisgKgogICogQGludGVybmFsCiAgKi8KLSNpZm5kZWYgVV9IQVZF
X0RJUkVOVF9ICi0jZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAxCi0jZW5kaWYKIAotLyoqIERlZmlu
ZSB3aGV0aGVyIGludHR5cGVzLmggaXMgYXZhaWxhYmxlICovCi0jaWZuZGVmIFVfSEFWRV9JTlRU
WVBFU19ICi0jZGVmaW5lIFVfSEFWRV9JTlRUWVBFU19IIDEKKy8qKiBVbmtub3duIHBsYXRmb3Jt
LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9VTktOT1dOIDAKKy8qKiBXaW5kb3dzIEBpbnRl
cm5hbCAqLworI2RlZmluZSBVX1BGX1dJTkRPV1MgMTAwMAorLyoqIE1pbkdXLiBXaW5kb3dzLCBj
YWxscyB0byBXaW4zMiBBUEksIGJ1dCB1c2luZyBHTlUgZ2NjIGFuZCBiaW51dGlscy4gQGludGVy
bmFsICovCisjZGVmaW5lIFVfUEZfTUlOR1cgMTgwMAorLyoqCisgKiBDeWd3aW4uIFdpbmRvd3Ms
IGNhbGxzIHRvIGN5Z3dpbjEuZGxsIGZvciBQb3NpeCBmdW5jdGlvbnMsCisgKiB1c2luZyBNU1ZD
IG9yIEdOVSBnY2MgYW5kIGJpbnV0aWxzLgorICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVV9Q
Rl9DWUdXSU4gMTkwMAorLyogUmVzZXJ2ZSAyMDAwIGZvciBVX1BGX1VOSVg/ICovCisvKiogSFAt
VVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gVi4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZf
SFBVWCAyMTAwCisvKiogU29sYXJpcyBpcyBhIFVuaXggb3BlcmF0aW5nIHN5c3RlbSBiYXNlZCBv
biBTVlI0LiBAaW50ZXJuYWwgKi8KKyNkZWZpbmUgVV9QRl9TT0xBUklTIDI2MDAKKy8qKiBCU0Qg
aXMgYSBVTklYIG9wZXJhdGluZyBzeXN0ZW0gZGVyaXZhdGl2ZS4gQGludGVybmFsICovCisjZGVm
aW5lIFVfUEZfQlNEIDMwMDAKKy8qKiBBSVggaXMgYmFzZWQgb24gVU5JWCBTeXN0ZW0gViBSZWxl
YXNlcyBhbmQgNC4zIEJTRC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQUlYIDMxMDAKKy8q
KiBJUklYIGlzIGJhc2VkIG9uIFVOSVggU3lzdGVtIFYgd2l0aCBCU0QgZXh0ZW5zaW9ucy4gQGlu
dGVybmFsICovCisjZGVmaW5lIFVfUEZfSVJJWCAzMjAwCisvKioKKyAqIERhcndpbiBpcyBhIFBP
U0lYLWNvbXBsaWFudCBvcGVyYXRpbmcgc3lzdGVtLCBjb21wb3NlZCBvZiBjb2RlIGRldmVsb3Bl
ZCBieSBBcHBsZSwKKyAqIGFzIHdlbGwgYXMgY29kZSBkZXJpdmVkIGZyb20gTmVYVFNURVAsIEJT
RCwgYW5kIG90aGVyIHByb2plY3RzLAorICogYnVpbHQgYXJvdW5kIHRoZSBNYWNoIGtlcm5lbC4K
KyAqIERhcndpbiBmb3JtcyB0aGUgY29yZSBzZXQgb2YgY29tcG9uZW50cyB1cG9uIHdoaWNoIE1h
YyBPUyBYLCBBcHBsZSBUViwgYW5kIGlPUyBhcmUgYmFzZWQuCisgKiAoT3JpZ2luYWwgZGVzY3Jp
cHRpb24gbW9kaWZpZWQgZnJvbSBXaWtpUGVkaWEuKQorICogQGludGVybmFsCisgKi8KKyNkZWZp
bmUgVV9QRl9EQVJXSU4gMzUwMAorLyoqIGlQaG9uZSBPUyAoaU9TKSBpcyBhIGRlcml2YXRpdmUg
b2YgTWFjIE9TIFguIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX0lQSE9ORSAzNTUwCisvKiog
UU5YIGlzIGEgY29tbWVyY2lhbCBVbml4LWxpa2UgcmVhbC10aW1lIG9wZXJhdGluZyBzeXN0ZW0g
cmVsYXRlZCB0byBCU0QuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX1FOWCAzNzAwCisvKiog
TGludXggaXMgYSBVbml4LWxpa2Ugb3BlcmF0aW5nIHN5c3RlbS4gQGludGVybmFsICovCisjZGVm
aW5lIFVfUEZfTElOVVggNDAwMAorLyoqIEFuZHJvaWQgaXMgYmFzZWQgb24gTGludXguIEBpbnRl
cm5hbCAqLworI2RlZmluZSBVX1BGX0FORFJPSUQgNDA1MAorLyoqICJDbGFzc2ljIiBNYWMgT1Mg
KDE5ODQtMjAwMSkgQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfQ0xBU1NJQ19NQUNPUyA4MDAw
CisvKiogei9PUyBpcyB0aGUgc3VjY2Vzc29yIHRvIE9TLzM5MCB3aGljaCB3YXMgdGhlIHN1Y2Nl
c3NvciB0byBNVlMuIEBpbnRlcm5hbCAqLworI2RlZmluZSBVX1BGX09TMzkwIDkwMDAKKy8qKiAi
SUJNIGkiIGlzIHRoZSBjdXJyZW50IG5hbWUgb2Ygd2hhdCB1c2VkIHRvIGJlIGk1L09TIGFuZCBl
YXJsaWVyIE9TLzQwMC4gQGludGVybmFsICovCisjZGVmaW5lIFVfUEZfT1M0MDAgOTQwMAorCisj
aWZkZWYgVV9QTEFURk9STQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIGRlZmluZWQoX19NSU5HVzMyX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9NSU5H
VworI2VsaWYgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JNIFVfUEZf
Q1lHV0lOCisjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5l
ZChXSU42NCkgfHwgZGVmaW5lZChfV0lONjQpCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9X
SU5ET1dTCisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKQorIyAgIGRlZmluZSBVX1BMQVRGT1JN
IFVfUEZfQU5EUk9JRAorICAgIC8qIEFuZHJvaWQgd2NoYXJfdCBzdXBwb3J0IGRlcGVuZHMgb24g
dGhlIEFQSSBsZXZlbC4gKi8KKyMgICBpbmNsdWRlIDxhbmRyb2lkL2FwaS1sZXZlbC5oPgorI2Vs
aWYgZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19saW51
eCkKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX0xJTlVYCisjZWxpZiBkZWZpbmVkKF9fQVBQ
TEVfXykgJiYgZGVmaW5lZChfX01BQ0hfXykKKyMgICBpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25h
bHMuaD4KKyMgICBpZiBkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmIFRBUkdFVF9PU19JUEhP
TkUgIC8qIHZhcmlhbnQgb2YgVEFSR0VUX09TX01BQyAqLworIyAgICAgICBkZWZpbmUgVV9QTEFU
Rk9STSBVX1BGX0lQSE9ORQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfUExBVEZPUk0gVV9Q
Rl9EQVJXSU4KKyMgICBlbmRpZgorI2VsaWYgZGVmaW5lZChCU0QpIHx8IGRlZmluZWQoX19GcmVl
QlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNE
X18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19NaXJCU0RfXykKKyMgICBk
ZWZpbmUgVV9QTEFURk9STSBVX1BGX0JTRAorI2VsaWYgZGVmaW5lZChzdW4pIHx8IGRlZmluZWQo
X19zdW4pCisgICAgLyogQ2hlY2sgZGVmaW5lZChfX1NWUjQpIHx8IGRlZmluZWQoX19zdnI0X18p
IHRvIGRpc3Rpbmd1aXNoIFNvbGFyaXMgZnJvbSBTdW5PUz8gKi8KKyMgICBkZWZpbmUgVV9QTEFU
Rk9STSBVX1BGX1NPTEFSSVMKKyMgICBpZiBkZWZpbmVkKF9fR05VQ19fKQorICAgICAgICAvKiBT
b2xhcmlzL0dDQyBuZWVkcyB0aGlzIGhlYWRlciBmaWxlIHRvIGdldCB0aGUgcHJvcGVyIGVuZGlh
bm5lc3MuIE5vcm1hbGx5LCB0aGlzCisgICAgICAgICAqIGhlYWRlciBmaWxlIGlzIGluY2x1ZGVk
IHdpdGggc3RkZGVmLmggYnV0IG9uIFNvbGFpcnMvR0NDLCB0aGUgR0NDIHZlcnNpb24gb2Ygc3Rk
ZGVmLmgKKyAgICAgICAgICogIGlzIGluY2x1ZGVkIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgdGhp
cyBoZWFkZXIgZmlsZS4KKyAgICAgICAgICovCisjICAgICAgIGluY2x1ZGUgPHN5cy9pc2FfZGVm
cy5oPgorIyAgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9BSVgpIHx8IGRlZmluZWQoX19UT1NfQUlY
X18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9BSVgKKyNlbGlmIGRlZmluZWQoX2hwdXgp
IHx8IGRlZmluZWQoaHB1eCkgfHwgZGVmaW5lZChfX2hwdXgpCisjICAgZGVmaW5lIFVfUExBVEZP
Uk0gVV9QRl9IUFVYCisjZWxpZiBkZWZpbmVkKHNnaSkgfHwgZGVmaW5lZChfX3NnaSkKKyMgICBk
ZWZpbmUgVV9QTEFURk9STSBVX1BGX0lSSVgKKyNlbGlmIGRlZmluZWQobWFjaW50b3NoKQorIyAg
IGRlZmluZSBVX1BMQVRGT1JNIFVfUEZfQ0xBU1NJQ19NQUNPUworI2VsaWYgZGVmaW5lZChfX1FO
WF9fKSB8fCBkZWZpbmVkKF9fUU5YTlRPX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9QRl9R
TlgKKyNlbGlmIGRlZmluZWQoX19UT1NfTVZTX18pCisjICAgZGVmaW5lIFVfUExBVEZPUk0gVV9Q
Rl9PUzM5MAorI2VsaWYgZGVmaW5lZChfX09TNDAwX18pIHx8IGRlZmluZWQoX19UT1NfT1M0MDBf
XykKKyMgICBkZWZpbmUgVV9QTEFURk9STSBVX1BGX09TNDAwCisjZWxzZQorIyAgIGRlZmluZSBV
X1BMQVRGT1JNIFVfUEZfVU5LTk9XTgogI2VuZGlmCiAKIC8qKgotICogRGVmaW5lIHdoYXQgc3Vw
cG9ydCBmb3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxlLgotICogICAgIElmIFVfSU9TVFJFQU1f
U09VUkNFIGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0O2lvc3RyZWFtJmd0OyBpcyBhdmFpbGFi
bGUKLSAqICgxOTk3NzExIGlzIHRoZSBkYXRlIHRoZSBJU08vSUVDIEMrKyBGRElTIHdhcyBwdWJs
aXNoZWQpLCBhbmQgdGhlbgotICogb25lIHNob3VsZCBxdWFsaWZ5IHN0cmVhbXMgdXNpbmcgdGhl
IHN0ZCBuYW1lc3BhY2UgaW4gSUNVIGhlYWRlcgotICogZmlsZXMuCi0gKiAgICAgSWYgVV9JT1NU
UkVBTV9TT1VSQ0UgaXMgc2V0IHRvIDE5ODUwNiwgdGhlbiAmbHQ7aW9zdHJlYW0uaCZndDsgaXMK
LSAqIGF2YWlsYWJsZSBpbnN0ZWFkICgxOTg1MDYgaXMgdGhlIGRhdGUgd2hlbiBTdHJvdXN0cnVw
IHB1Ymxpc2hlZAotICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5IGZvciBDKysiIGF0IHRo
ZSBzdW1tZXIgVVNFTklYIGNvbmZlcmVuY2UpLgotICogICAgIElmIFVfSU9TVFJFQU1fU09VUkNF
IGlzIDAsIHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCi0gKiBzdXBwb3J0
IGZvciB0aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCi0gKgorICogXGRl
ZiBDWUdXSU5NU1ZDCisgKiBEZWZpbmVkIGlmIHRoaXMgaXMgV2luZG93cyB3aXRoIEN5Z3dpbiwg
YnV0IHVzaW5nIE1TVkMgcmF0aGVyIHRoYW4gZ2NjLgorICogT3RoZXJ3aXNlIHVuZGVmaW5lZC4K
KyAqIEBpbnRlcm5hbAogICovCi0KLSNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKLSNkZWZpbmUg
VV9JT1NUUkVBTV9TT1VSQ0UgMTk5NzExCisvKiBDb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBp
cyBhbHJlYWR5IHNldCBpbiBtaC1jeWd3aW4tbXN2YworI2lmIFVfUExBVEZPUk0gPT0gVV9QRl9D
WUdXSU4gJiYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgQ1lHV0lOTVNWQwogI2VuZGlm
CisqLwogCiAvKioKLSAqIFxkZWYgVV9IQVZFX1NURF9TVFJJTkcKLSAqIERlZmluZSB3aGV0aGVy
IHRoZSBzdGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsgaGVhZGVyIGlzIGF2YWlsYWJs
ZS4KLSAqIEZvciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgdXNlIHBsYXRmb3JtLmggYW5kIGRvIG5v
dCBkZWZpbmUgdGhpcyBjb25zdGFudAotICogaW4gdGhlaXIgcGxhdGZvcm0tc3BlY2lmaWMgaGVh
ZGVycywgc3RkX3N0cmluZy5oIGRlZmF1bHRzCi0gKiBVX0hBVkVfU1REX1NUUklORyB0byAxLgor
ICogXGRlZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAqIERlZmluZXMgd2hldGhl
ciB0aGUgcGxhdGZvcm0gdXNlcyBvbmx5IHRoZSBXaW4zMiBBUEkuCisgKiBTZXQgdG8gMSBmb3Ig
V2luZG93cy9NU1ZDIGFuZCBNaW5HVyBidXQgbm90IEN5Z3dpbi4KICAqIEBpbnRlcm5hbAogICov
Ci0jaWZuZGVmIFVfSEFWRV9TVERfU1RSSU5HCi0jZGVmaW5lIFVfSEFWRV9TVERfU1RSSU5HIDEK
KyNpZmRlZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiAoVV9QRl9XSU5ET1dTIDw9IFVfUExBVEZPUk0gJiYg
VV9QTEFURk9STSA8PSBVX1BGX01JTkdXKSB8fCBkZWZpbmVkKENZR1dJTk1TVkMpCisjICAgZGVm
aW5lIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSSAxCisjZWxzZQorICAgIC8qIEN5Z3dp
biBpbXBsZW1lbnRzIFBPU0lYLiAqLworIyAgIGRlZmluZSBVX1BMQVRGT1JNX1VTRVNfT05MWV9X
SU4zMl9BUEkgMAogI2VuZGlmCiAKLS8qKiBAeyBEZXRlcm1pbmVzIHdoZXRoZXIgc3BlY2lmaWMg
dHlwZXMgYXJlIGF2YWlsYWJsZSAqLwotI2lmbmRlZiBVX0hBVkVfSU5UOF9UCi0jZGVmaW5lIFVf
SEFWRV9JTlQ4X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICog
RGVmaW5lcyB3aGV0aGVyIHRoZSBXaW4zMiBBUEkgaXMgYXZhaWxhYmxlIG9uIHRoZSBwbGF0Zm9y
bS4KKyAqIFNldCB0byAxIGZvciBXaW5kb3dzL01TVkMsIE1pbkdXIGFuZCBDeWd3aW4uCisgKiBA
aW50ZXJuYWwKKyAqLworI2lmZGVmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorICAgIC8qIFVz
ZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUEZfV0lORE9XUyA8PSBVX1BMQVRG
T1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9DWUdXSU4KKyMgICBkZWZpbmUgVV9QTEFURk9STV9I
QVNfV0lOMzJfQVBJIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQ
SSAwCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDhfVAotI2RlZmluZSBVX0hBVkVfVUlO
VDhfVCAwCisvKioKKyAqIFxkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgKiBEZWZp
bmVzIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGltcGxlbWVudHMgKG1vc3Qgb2YpIHRoZSBQT1NJWCBB
UEkuCisgKiBTZXQgdG8gMSBmb3IgQ3lnd2luIGFuZCBtb3N0IG90aGVyIHBsYXRmb3Jtcy4KKyAq
IEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09O
TFlfV0lOMzJfQVBJIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisjICAgZGVm
aW5lIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWCAwCisjZWxzZQorIyAgIGRlZmluZSBVX1BM
QVRGT1JNX0lNUExFTUVOVFNfUE9TSVggMQogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDE2
X1QKLSNkZWZpbmUgVV9IQVZFX0lOVDE2X1QgMQorLyoqCisgKiBcZGVmIFVfUExBVEZPUk1fSVNf
TElOVVhfQkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0gaXMgTGludXggb3Ig
b25lIG9mIGl0cyBkZXJpdmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9QTEFU
Rk9STV9JU19MSU5VWF9CQVNFRAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIFVfUEZfTElOVVggPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfQU5E
Uk9JRAorIyAgIGRlZmluZSBVX1BMQVRGT1JNX0lTX0xJTlVYX0JBU0VEIDEKKyNlbHNlCisjICAg
ZGVmaW5lIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQgMAogI2VuZGlmCiAKLSNpZm5kZWYgVV9I
QVZFX1VJTlQxNl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMTZfVCAwCisvKioKKyAqIFxkZWYgVV9Q
TEFURk9STV9JU19EQVJXSU5fQkFTRUQKKyAqIERlZmluZXMgd2hldGhlciB0aGUgcGxhdGZvcm0g
aXMgRGFyd2luIG9yIG9uZSBvZiBpdHMgZGVyaXZhdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLwor
I2lmZGVmIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VECisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgVV9QRl9EQVJXSU4gPD0gVV9QTEFURk9STSAmJiBVX1BMQVRG
T1JNIDw9IFVfUEZfSVBIT05FCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VE
IDEKKyNlbHNlCisjICAgZGVmaW5lIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIDAKICNlbmRp
ZgogCi0jaWZuZGVmIFVfSEFWRV9JTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9JTlQzMl9UIDEKKy8q
KgorICogXGRlZiBVX0hBVkVfU1RESU5UX0gKKyAqIERlZmluZXMgd2hldGhlciBzdGRpbnQuaCBp
cyBhdmFpbGFibGUuIEl0IGlzIGEgQzk5IHN0YW5kYXJkIGhlYWRlci4KKyAqIFdlIHVzZWQgdG8g
aW5jbHVkZSBpbnR0eXBlcy5oIHdoaWNoIGluY2x1ZGVzIHN0ZGludC5oIGJ1dCB3ZSB1c3VhbGx5
IGRvIG5vdCBuZWVkCisgKiB0aGUgYWRkaXRpb25hbCBkZWZpbml0aW9ucyBmcm9tIGludHR5cGVz
LmguCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9TVERJTlRfSAorICAgIC8qIFVz
ZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJ
TjMyX0FQSQorIyAgIGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBVX1BMQVRGT1JNID09IFVf
UEZfTUlOR1cgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPj0xNjAwKQorICAgICAg
ICAvKiBXaW5kb3dzIFZpc3VhbCBTdHVkaW8gOSBhbmQgYmVsb3cgZG8gbm90IGhhdmUgc3RkaW50
LmggJiBpbnR0eXBlcy5oLCBidXQgVlMgMjAxMCBhZGRzIHRoZW0uICovCisjICAgICAgIGRlZmlu
ZSBVX0hBVkVfU1RESU5UX0ggMQorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfSEFWRV9TVERJ
TlRfSCAwCisjICAgZW5kaWYKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisgICAg
LyogU29sYXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRlZmlu
ZSBVX0hBVkVfU1RESU5UX0ggMAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FJWCAmJiAhZGVm
aW5lZChfQUlYNTEpICYmIGRlZmluZWQoX1BPV0VSKQorICAgIC8qIFBQQyBBSVggPD0gNC4zIGhh
cyBpbnR0eXBlcy5oIGJ1dCBub3Qgc3RkaW50LmguICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERJ
TlRfSCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfU1RESU5UX0ggMQogI2VuZGlmCiAKLSNp
Zm5kZWYgVV9IQVZFX1VJTlQzMl9UCi0jZGVmaW5lIFVfSEFWRV9VSU5UMzJfVCAwCisvKioKKyAq
IFxkZWYgVV9IQVZFX0lOVFRZUEVTX0gKKyAqIERlZmluZXMgd2hldGhlciBpbnR0eXBlcy5oIGlz
IGF2YWlsYWJsZS4gSXQgaXMgYSBDOTkgc3RhbmRhcmQgaGVhZGVyLgorICogV2UgaW5jbHVkZSBp
bnR0eXBlcy5oIHdoZXJlIGl0IGlzIGF2YWlsYWJsZSBidXQgc3RkaW50LmggaXMgbm90LgorICog
QGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfSU5UVFlQRVNfSAorICAgIC8qIFVzZSB0aGUg
cHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9TT0xBUklTCisg
ICAgLyogU29sYXJpcyBoYXMgaW50dHlwZXMuaCBidXQgbm90IHN0ZGludC5oLiAqLworIyAgIGRl
ZmluZSBVX0hBVkVfSU5UVFlQRVNfSCAxCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQUlYICYm
ICFkZWZpbmVkKF9BSVg1MSkgJiYgZGVmaW5lZChfUE9XRVIpCisgICAgLyogUFBDIEFJWCA8PSA0
LjMgaGFzIGludHR5cGVzLmggYnV0IG5vdCBzdGRpbnQuaC4gKi8KKyMgICBkZWZpbmUgVV9IQVZF
X0lOVFRZUEVTX0ggMQorI2Vsc2UKKyAgICAvKiBNb3N0IHBsYXRmb3JtcyBoYXZlIGJvdGggaW50
dHlwZXMuaCBhbmQgc3RkaW50LmgsIG9yIG5laXRoZXIuICovCisjICAgZGVmaW5lIFVfSEFWRV9J
TlRUWVBFU19IIFVfSEFWRV9TVERJTlRfSAogI2VuZGlmCiAKLSNpZm5kZWYgVV9IQVZFX0lOVDY0
X1QKLSNkZWZpbmUgVV9IQVZFX0lOVDY0X1QgMQorLyoqCisgKiBcZGVmIFVfSU9TVFJFQU1fU09V
UkNFCisgKiBEZWZpbmVzIHdoYXQgc3VwcG9ydCBmb3IgQysrIHN0cmVhbXMgaXMgYXZhaWxhYmxl
LgorICoKKyAqIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIHNldCB0byAxOTk3MTEsIHRoZW4gJmx0
O2lvc3RyZWFtJmd0OyBpcyBhdmFpbGFibGUKKyAqICh0aGUgSVNPL0lFQyBDKysgRkRJUyB3YXMg
cHVibGlzaGVkIGluIE5vdmVtYmVyIDE5OTcpLCBhbmQgdGhlbgorICogb25lIHNob3VsZCBxdWFs
aWZ5IHN0cmVhbXMgdXNpbmcgdGhlIHN0ZCBuYW1lc3BhY2UgaW4gSUNVIGhlYWRlcgorICogZmls
ZXMuCisgKiBTdGFydGluZyB3aXRoIElDVSA0OSwgdGhpcyBpcyB0aGUgb25seSBzdXBwb3J0ZWQg
dmVyc2lvbi4KKyAqCisgKiBJZiBVX0lPU1RSRUFNX1NPVVJDRSBpcyBzZXQgdG8gMTk4NTA2LCB0
aGVuICZsdDtpb3N0cmVhbS5oJmd0OyBpcworICogYXZhaWxhYmxlIGluc3RlYWQgKGluIEp1bmUg
MTk4NSBTdHJvdXN0cnVwIHB1Ymxpc2hlZAorICogIkFuIEV4dGVuc2libGUgSS9PIEZhY2lsaXR5
IGZvciBDKysiIGF0IHRoZSBzdW1tZXIgVVNFTklYIGNvbmZlcmVuY2UpLgorICogU3RhcnRpbmcg
d2l0aCBJQ1UgNDksIHRoaXMgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGFueSBtb3JlLgorICoK
KyAqIElmIFVfSU9TVFJFQU1fU09VUkNFIGlzIDAgKG9yIGFueSB2YWx1ZSBsZXNzIHRoYW4gMTk5
NzExKSwKKyAqIHRoZW4gQysrIHN0cmVhbXMgYXJlIG5vdCBhdmFpbGFibGUgYW5kCisgKiBzdXBw
b3J0IGZvciB0aGVtIHdpbGwgYmUgc2lsZW50bHkgc3VwcHJlc3NlZCBpbiBJQ1UuCisgKgorICog
QGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9JT1NUUkVBTV9TT1VSQ0UKKyNkZWZpbmUgVV9JT1NU
UkVBTV9TT1VSQ0UgMTk5NzExCiAjZW5kaWYKIAotI2lmbmRlZiBVX0hBVkVfVUlOVDY0X1QKLSNk
ZWZpbmUgVV9IQVZFX1VJTlQ2NF9UIDAKKy8qKgorICogXGRlZiBVX0hBVkVfU1REX1NUUklORwor
ICogRGVmaW5lcyB3aGV0aGVyIHRoZSBzdGFuZGFyZCBDKysgKFNUTCkgJmx0O3N0cmluZyZndDsg
aGVhZGVyIGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NU
RF9TVFJJTkcKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQorIyAg
IGRlZmluZSBVX0hBVkVfU1REX1NUUklORyAxCiAjZW5kaWYKIAotLyoqIEB9ICovCi0KIC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8KIC8qKiBAeyBDb21waWxlciBhbmQgZW52aXJvbm1lbnQgZmVhdHVy
ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ki8KIAotLyogRGVmaW5lIHdoZXRoZXIgbmFtZXNwYWNlIGlzIHN1cHBvcnRlZCAqLwot
I2lmbmRlZiBVX0hBVkVfTkFNRVNQQUNFCi0jZGVmaW5lIFVfSEFWRV9OQU1FU1BBQ0UgMQotI2Vu
ZGlmCi0KLS8qIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtCi0gICBJ
dCdzIGRvbmUgdGhpcyB3YXkgaW4gY2FzZSBtdWx0aXBsZSBhcmNoaXRlY3R1cmVzIGFyZSBiZWlu
ZyBidWlsdCBhdCBvbmNlLgotICAgRm9yIGV4YW1wbGUsIERhcndpbiBzdXBwb3J0cyBmYXQgYmlu
YXJpZXMsIHdoaWNoIGNhbiBiZSBib3RoIFBQQyBhbmQgeDg2IGJhc2VkLiAqLwotI2lmIGRlZmlu
ZWQoQllURV9PUkRFUikgJiYgZGVmaW5lZChCSUdfRU5ESUFOKQotI2RlZmluZSBVX0lTX0JJR19F
TkRJQU4gKEJZVEVfT1JERVIgPT0gQklHX0VORElBTikKKy8qKgorICogXGRlZiBVX0dDQ19NQUpP
Ul9NSU5PUgorICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlzIGdjYyAodGVzdCBm
b3IgIT0gMCksCisgKiBhbmQgaWYgc28sIGNvbnRhaW5zIGl0cyBtYWpvciAodGltZXMgMTAwKSBh
bmQgbWlub3IgdmVyc2lvbiBudW1iZXJzLgorICogSWYgdGhlIGNvbXBpbGVyIGlzIG5vdCBnY2Ms
IHRoZW4gVV9HQ0NfTUFKT1JfTUlOT1IgPT0gMC4KKyAqCisgKiBGb3IgZXhhbXBsZSwgZm9yIHRl
c3RpbmcgZm9yIHdoZXRoZXIgd2UgaGF2ZSBnY2MsIGFuZCB3aGV0aGVyIGl0J3MgNC42IG9yIGhp
Z2hlciwKKyAqIHVzZSAiI2lmIFVfR0NDX01BSk9SX01JTk9SID49IDQwNiIuCisgKiBAaW50ZXJu
YWwKKyAqLworI2lmZGVmIF9fR05VQ19fCisjICAgZGVmaW5lIFVfR0NDX01BSk9SX01JTk9SIChf
X0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fKQogI2Vsc2UKLSNkZWZpbmUgVV9JU19CSUdf
RU5ESUFOIDEKKyMgICBkZWZpbmUgVV9HQ0NfTUFKT1JfTUlOT1IgMAogI2VuZGlmCiAKLS8qIDEg
b3IgMCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aHJlYWRzLiAgSWYgdW5kZWZpbmVkLCBkZWZhdWx0
IGlzOiBlbmFibGUgdGhyZWFkcy4gKi8KLSNpZm5kZWYgSUNVX1VTRV9USFJFQURTIAotI2RlZmlu
ZSBJQ1VfVVNFX1RIUkVBRFMgMQotI2VuZGlmCi0KLS8qIE9uIHN0cm9uZyBtZW1vcnkgbW9kZWwg
Q1BVcyAoZS5nLiB4ODYgQ1BVcyksIHdlIHVzZSBhIHNhZmUgJiBxdWljayBkb3VibGUgY2hlY2sg
bG9jay4gKi8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwg
ZGVmaW5lZChfX3g4Nl82NF9fKSkKLSNkZWZpbmUgVU1UWF9TVFJPTkdfTUVNT1JZX01PREVMIDEK
LSNlbmRpZgotCi0jaWZuZGVmIFVfREVCVUcKLSNkZWZpbmUgVV9ERUJVRyAwCi0jZW5kaWYKLQot
I2lmbmRlZiBVX1JFTEVBU0UKLSNkZWZpbmUgVV9SRUxFQVNFIDEKKy8qKgorICogXGRlZiBVX0lT
X0JJR19FTkRJQU4KKyAqIERldGVybWluZXMgdGhlIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3Jt
LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0lTX0JJR19FTkRJQU4KKyAgICAvKiBVc2Ug
dGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKEJZVEVfT1JERVIpICYmIGRl
ZmluZWQoQklHX0VORElBTikKKyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIChCWVRFX09SREVS
ID09IEJJR19FTkRJQU4pCisjZWxpZiBkZWZpbmVkKF9fQllURV9PUkRFUl9fKSAmJiBkZWZpbmVk
KF9fT1JERVJfQklHX0VORElBTl9fKQorICAgIC8qIGdjYyAqLworIyAgIGRlZmluZSBVX0lTX0JJ
R19FTkRJQU4gKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9fKQorI2VsaWYg
ZGVmaW5lZChfX0JJR19FTkRJQU5fXykgfHwgZGVmaW5lZChfQklHX0VORElBTikKKyMgICBkZWZp
bmUgVV9JU19CSUdfRU5ESUFOIDEKKyNlbGlmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pIHx8
IGRlZmluZWQoX0xJVFRMRV9FTkRJQU4pCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAwCisj
ZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAgfHwgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
IHx8IGRlZmluZWQoX19zMzkwX18pIHx8IGRlZmluZWQoX19zMzkweF9fKQorICAgIC8qIFRoZXNl
IHBsYXRmb3JtcyBkbyBub3QgYXBwZWFyIHRvIHByZWRlZmluZSBhbnkgZW5kaWFubmVzcyBtYWNy
b3MuICovCisjICAgZGVmaW5lIFVfSVNfQklHX0VORElBTiAxCisjZWxpZiBkZWZpbmVkKF9QQV9S
SVNDMV8wKSB8fCBkZWZpbmVkKF9QQV9SSVNDMV8xKSB8fCBkZWZpbmVkKF9QQV9SSVNDMl8wKQor
ICAgIC8qIEhQUEEgZG8gbm90IGFwcGVhciB0byBwcmVkZWZpbmUgYW55IGVuZGlhbm5lc3MgbWFj
cm9zLiAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2VsaWYgZGVmaW5lZChzcGFy
YykgfHwgZGVmaW5lZChfX3NwYXJjKSB8fCBkZWZpbmVkKF9fc3BhcmNfXykKKyAgICAvKiBTb21l
IHNwYXJjIGJhc2VkIHN5c3RlbXMgKGUuZy4gTGludXgpIGRvIG5vdCBwcmVkZWZpbmUgYW55IGVu
ZGlhbm5lc3MgbWFjcm9zLiAqLworIyAgIGRlZmluZSBVX0lTX0JJR19FTkRJQU4gMQorI2Vsc2UK
KyMgICBkZWZpbmUgVV9JU19CSUdfRU5ESUFOIDAKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hl
dGhlciB0byBkaXNhYmxlIHJlbmFtaW5nIG9yIG5vdC4gVGhpcyBvdmVycmlkZXMgdGhlCi0gICBz
ZXR0aW5nIGluIHVtYWNoaW5lLmggd2hpY2ggaXMgZm9yIGFsbCBwbGF0Zm9ybXMuICovCi0jaWZu
ZGVmIFVfRElTQUJMRV9SRU5BTUlORwotI2RlZmluZSBVX0RJU0FCTEVfUkVOQU1JTkcgMQorLyoq
CisgKiBcZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8g
b3ZlcnJpZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuCisgKiBAc3RhYmxlIElD
VSAyLjYKKyAqLworI2lmZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgZGVm
aW5lIFVfSEFWRV9QTEFDRU1FTlRfTkVXIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QTEFD
RU1FTlRfTkVXIDEKICNlbmRpZgogCi0vKiBEZXRlcm1pbmUgd2hldGhlciB0byBvdmVycmlkZSBu
ZXcgYW5kIGRlbGV0ZS4gKi8KLSNpZm5kZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgotI2Rl
ZmluZSBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OIDEKLSNlbmRpZgotLyogRGV0ZXJtaW5lIHdo
ZXRoZXIgdG8gb3ZlcnJpZGUgcGxhY2VtZW50IG5ldyBhbmQgZGVsZXRlIGZvciBTVEwuICovCi0j
aWZuZGVmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCi0jZGVmaW5lIFVfSEFWRV9QTEFDRU1FTlRfTkVX
IDEKKy8qKgorICogXGRlZiBVX0hBVkVfREVCVUdfTE9DQVRJT05fTkVXIAorICogRGVmaW5lIHRo
aXMgdG8gZGVmaW5lIHRoZSBNRkMgZGVidWcgdmVyc2lvbiBvZiB0aGUgb3BlcmF0b3IgbmV3Lgor
ICoKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCisjaWZkZWYgVV9IQVZFX0RFQlVHX0xPQ0FUSU9O
X05FVworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQo
X01TQ19WRVIpCisjICAgZGVmaW5lIFVfSEFWRV9ERUJVR19MT0NBVElPTl9ORVcgMQorI2Vsc2UK
KyMgICBkZWZpbmUgVV9IQVZFX0RFQlVHX0xPQ0FUSU9OX05FVyAwCiAjZW5kaWYKIAotLyogRGV0
ZXJtaW5lIHdoZXRoZXIgdG8gZW5hYmxlIHRyYWNpbmcuICovCi0jaWZuZGVmIFVfRU5BQkxFX1RS
QUNJTkcKLSNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAxCisvKiBDb21wYXRpYmlsaXR5IHdpdGgg
bm9uIGNsYW5nIGNvbXBpbGVycyAqLworI2lmbmRlZiBfX2hhc19hdHRyaWJ1dGUKKyMgICAgZGVm
aW5lIF9faGFzX2F0dHJpYnV0ZSh4KSAwCiAjZW5kaWYKIAogLyoqCi0gKiBXaGV0aGVyIHRvIGVu
YWJsZSBEeW5hbWljIGxvYWRpbmcgaW4gSUNVCisgKiBcZGVmIFVfTUFMTE9DX0FUVFIKKyAqIEF0
dHJpYnV0ZSB0byBtYXJrIGZ1bmN0aW9ucyBhcyBtYWxsb2MtbGlrZQogICogQGludGVybmFsCiAg
Ki8KLSNpZm5kZWYgVV9FTkFCTEVfRFlMT0FECi0jZGVmaW5lIFVfRU5BQkxFX0RZTE9BRCAxCisj
aWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18+PTMKKyMgICAgZGVmaW5lIFVfTUFMTE9D
X0FUVFIgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKQorI2Vsc2UKKyMgICAgZGVmaW5lIFVf
TUFMTE9DX0FUVFIKICNlbmRpZgogCiAvKioKLSAqIFdoZXRoZXIgdG8gdGVzdCBEeW5hbWljIGxv
YWRpbmcgYXMgYW4gT1MgY2FwYWJpbHR5CisgKiBcZGVmIFVfQUxMT0NfU0laRV9BVFRSCisgKiBB
dHRyaWJ1dGUgdG8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciBmb3Ig
bWFsbG9jLWxpa2UgZnVuY3Rpb25zCiAgKiBAaW50ZXJuYWwKICAqLwotI2lmbmRlZiBVX0NIRUNL
X0RZTE9BRAotI2RlZmluZSBVX0NIRUNLX0RZTE9BRCAxCi0jZW5kaWYKLQotCi0vKiogRG8gd2Ug
YWxsb3cgSUNVIHVzZXJzIHRvIHVzZSB0aGUgZHJhZnQgQVBJcyBieSBkZWZhdWx0PyAqLwotI2lm
bmRlZiBVX0RFRkFVTFRfU0hPV19EUkFGVAotI2RlZmluZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAx
CisjaWYgKGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09
IDQgJiYgX19HTlVDX01JTk9SX18gPj0gMykpKSB8fCBfX2hhc19hdHRyaWJ1dGUoYWxsb2Nfc2l6
ZSkKKyMgICBkZWZpbmUgVV9BTExPQ19TSVpFX0FUVFIoWCkgX19hdHRyaWJ1dGVfXyAoKGFsbG9j
X3NpemUoWCkpKQorIyAgIGRlZmluZSBVX0FMTE9DX1NJWkVfQVRUUjIoWCxZKSBfX2F0dHJpYnV0
ZV9fICgoYWxsb2Nfc2l6ZShYLFkpKSkKKyNlbHNlCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9B
VFRSKFgpCisjICAgZGVmaW5lIFVfQUxMT0NfU0laRV9BVFRSMihYLFkpCiAjZW5kaWYKIAogLyoq
IEB9ICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qKiBAeyBDaGFyYWN0ZXIgZGF0YSB0
eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisvKiogQHsgQ2hhcmFjdGVyIGRhdGEgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLSNp
ZiAoKGRlZmluZWQoT1MzOTApICYmICghZGVmaW5lZChfX0NIQVJTRVRfTElCKSB8fCAhX19DSEFS
U0VUX0xJQikpKSB8fCBkZWZpbmVkKE9TNDAwKQotIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZ
IDEKKy8qKgorICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4g
dGhlIHBsYXRmb3JtIGlzIGFuIEFTQ0lJIGJhc2VkIHBsYXRmb3JtLgorICogQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KKyNkZWZpbmUgVV9BU0NJSV9GQU1JTFkgMAorCisvKioKKyAqIFVfQ0hBUlNFVF9G
QU1JTFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBFQkNE
SUMgYmFzZWQgcGxhdGZvcm0uCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworI2RlZmluZSBVX0VC
Q0RJQ19GQU1JTFkgMQorCisvKioKKyAqIFxkZWYgVV9DSEFSU0VUX0ZBTUlMWQorICoKKyAqIDxw
PlRoZXNlIGRlZmluaXRpb25zIGFsbG93IHRvIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHRleHQK
KyAqIGluIHRoZSBjaGFyIGRhdGEgdHlwZSBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybSBhbmQg
dGhlIGNvbXBpbGVyLgorICogSXQgaXMgZW5vdWdoIHRvIGRldGVybWluZSB0aGUgY29kZSBwb2lu
dCB2YWx1ZXMgb2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiwKKyAqIHdoaWNoIGFyZSB0aGUgb25l
cyBzaGFyZWQgYnkgYWxsIGVuY29kaW5ncyB0aGF0IGFyZSBpbiB1c2UKKyAqIG9uIGEgZ2l2ZW4g
cGxhdGZvcm0uPC9wPgorICoKKyAqIDxwPlRob3NlICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgc2hv
dWxkIGJlIGFsbCB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UKKyAqIGxhdGluIGxldHRlcnMs
IHRoZSBkaWdpdHMsIHRoZSBzcGFjZSwgYW5kICJiYXNpYyBwdW5jdHVhdGlvbiIuCisgKiBBbHNv
LCAnXFxuJywgJ1xccicsICdcXHQnIHNob3VsZCBiZSBhdmFpbGFibGUuPC9wPgorICoKKyAqIDxw
PlRoZSBsaXN0IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgaXM6PGJyPgorICogXGNvZGUKKyAq
ICAgIEEtWiAgYS16ICAwLTkgIFNQQUNFICAiICAlICAmYW1wOyAgJyAgKCAgKSAgKiAgKyAgLCAg
LSAgLiAgLyAgOiAgOyAgPCAgPSAgPiAgPyAgXworICogXGVuZGNvZGUKKyAqIDxicj4KKyAqICg1
MiBsZXR0ZXJzICsgMTAgbnVtYmVycyArIDIwIHB1bmMvc3ltL3NwYWNlID0gODIgdG90YWwpPC9w
PgorICoKKyAqIDxwPlRoaXMgbWF0Y2hlcyB0aGUgSUJNIFN5bnRhY3RpYyBDaGFyYWN0ZXIgU2V0
IChDUyA2NDApLjwvcD4KKyAqCisgKiA8cD5JbiBvdGhlciB3b3JkcywgYWxsIHRoZSBncmFwaGlj
IGNoYXJhY3RlcnMgaW4gNy1iaXQgQVNDSUkgc2hvdWxkCisgKiBiZSBzYWZlbHkgYWNjZXNzaWJs
ZSBleGNlcHQgdGhlIGZvbGxvd2luZzo8L3A+CisgKgorICogXGNvZGUKKyAqICAgICdcJyA8YmFj
a3NsYXNoPgorICogICAgJ1snIDxsZWZ0IGJyYWNrZXQ+CisgKiAgICAnXScgPHJpZ2h0IGJyYWNr
ZXQ+CisgKiAgICAneycgPGxlZnQgYnJhY2U+CisgKiAgICAnfScgPHJpZ2h0IGJyYWNlPgorICog
ICAgJ14nIDxjaXJjdW1mbGV4PgorICogICAgJ34nIDx0aWxkZT4KKyAqICAgICchJyA8ZXhjbGFt
YXRpb24gbWFyaz4KKyAqICAgICcjJyA8bnVtYmVyIHNpZ24+CisgKiAgICAnfCcgPHZlcnRpY2Fs
IGxpbmU+CisgKiAgICAnJCcgPGRvbGxhciBzaWduPgorICogICAgJ0AnIDxjb21tZXJjaWFsIGF0
PgorICogICAgJ2AnIDxncmF2ZSBhY2NlbnQ+CisgKiBcZW5kY29kZQorICogQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KKyNpZmRlZiBVX0NIQVJTRVRfRkFNSUxZCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICghZGVmaW5l
ZChfX0NIQVJTRVRfTElCKSB8fCAhX19DSEFSU0VUX0xJQikKKyMgICBkZWZpbmUgVV9DSEFSU0VU
X0ZBTUlMWSBVX0VCQ0RJQ19GQU1JTFkKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMCAm
JiAhZGVmaW5lZChfX1VURjMyX18pCisjICAgZGVmaW5lIFVfQ0hBUlNFVF9GQU1JTFkgVV9FQkNE
SUNfRkFNSUxZCisjZWxzZQorIyAgIGRlZmluZSBVX0NIQVJTRVRfRkFNSUxZIFVfQVNDSUlfRkFN
SUxZCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfQ0hBUlNFVF9JU19VVEY4CisgKgorICogSGFy
ZGNvZGUgdGhlIGRlZmF1bHQgY2hhcnNldCB0byBVVEYtOC4KKyAqCisgKiBJZiB0aGlzIGlzIHNl
dCB0byAxLCB0aGVuCisgKiAtIElDVSB3aWxsIGFzc3VtZSB0aGF0IGFsbCBub24taW52YXJpYW50
IGNoYXIqLCBTdHJpbmdQaWVjZSwgc3RkOjpzdHJpbmcgZXRjLgorICogICBjb250YWluIFVURi04
IHRleHQsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgc3lzdGVtIEFQSSB1c2VzCisgKiAtIHNvbWUg
SUNVIGNvZGUgd2lsbCB1c2UgZmFzdCBmdW5jdGlvbnMgbGlrZSB1X3N0ckZyb21VVEY4KCkKKyAq
ICAgcmF0aGVyIHRoYW4gdGhlIG1vcmUgZ2VuZXJhbCBhbmQgbW9yZSBoZWF2eS13ZWlnaHQgY29u
dmVyc2lvbiBBUEkgKHVjbnYuaCkKKyAqIC0gdWNudl9nZXREZWZhdWx0TmFtZSgpIGFsd2F5cyBy
ZXR1cm5zICJVVEYtOCIKKyAqIC0gdWNudl9zZXREZWZhdWx0TmFtZSgpIGlzIGRpc2FibGVkIGFu
ZCB3aWxsIG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgY2hhcnNldAorICogLSBzdGF0aWMgYnVpbGRz
IG9mIElDVSBhcmUgc21hbGxlcgorICogLSBtb3JlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxl
IHdpdGggdGhlIFVDT05GSUdfTk9fQ09OVkVSU0lPTiBidWlsZC10aW1lCisgKiAgIGNvbmZpZ3Vy
YXRpb24gb3B0aW9uIChzZWUgdW5pY29kZS91Y29uZmlnLmgpCisgKiAtIHRoZSBVQ09ORklHX05P
X0NPTlZFUlNJT04gYnVpbGQgb3B0aW9uIGluIHVjb25maWcuaCBpcyBtb3JlIHVzYWJsZQorICoK
KyAqIEBzdGFibGUgSUNVIDQuMgorICogQHNlZSBVQ09ORklHX05PX0NPTlZFUlNJT04KKyAqLwor
I2lmZGVmIFVfQ0hBUlNFVF9JU19VVEY4CisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgfHwgVV9QTEFURk9STV9JU19E
QVJXSU5fQkFTRUQKKyMgICBkZWZpbmUgVV9DSEFSU0VUX0lTX1VURjggMQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9DSEFSU0VUX0lTX1VURjggMAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSovCi0vKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgd2NoYXIgc3VwcG9ydCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IEluZm9y
bWF0aW9uIGFib3V0IHdjaGFyIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWZuZGVmIFVfSEFWRV9XQ0hB
Ul9ICi0jZGVmaW5lIFVfSEFWRV9XQ0hBUl9IICAgICAgMQorLyoqCisgKiBcZGVmIFVfSEFWRV9X
Q0hBUl9ICisgKiBJbmRpY2F0ZXMgd2hldGhlciA8d2NoYXIuaD4gaXMgYXZhaWxhYmxlICgxKSBv
ciBub3QgKDApLiBTZXQgdG8gMSBieSBkZWZhdWx0LgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAor
ICovCisjaWZkZWYgVV9IQVZFX1dDSEFSX0gKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFs
dWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCAmJiBfX0FORFJPSURfQVBJ
X18gPCA5CisgICAgLyoKKyAgICAgKiBBbmRyb2lkIGJlZm9yZSBHaW5nZXJicmVhZCAoQW5kcm9p
ZCAyLjMsIEFQSSBsZXZlbCA5KSBkaWQgbm90IHN1cHBvcnQgd2NoYXJfdC4KKyAgICAgKiBUaGUg
dHlwZSBhbmQgaGVhZGVyIGV4aXN0ZWQsIGJ1dCB0aGUgbGlicmFyeSBmdW5jdGlvbnMgZGlkIG5v
dCB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAqIFRoZSBzaXplIG9mIHdjaGFyX3Qgd2FzIDEgYnV0
IEwieHl6IiBzdHJpbmcgbGl0ZXJhbHMgaGFkIDMyLWJpdCB1bml0cyBhbnl3YXkuCisgICAgICov
CisjICAgZGVmaW5lIFVfSEFWRV9XQ0hBUl9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9X
Q0hBUl9IIDEKICNlbmRpZgogCi0jaWZuZGVmIFVfU0laRU9GX1dDSEFSX1QKLSNkZWZpbmUgVV9T
SVpFT0ZfV0NIQVJfVCAgICA0CisvKioKKyAqIFxkZWYgVV9TSVpFT0ZfV0NIQVJfVAorICogVV9T
SVpFT0ZfV0NIQVJfVD09c2l6ZW9mKHdjaGFyX3QpCisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KKyNpZmRlZiBVX1NJWkVPRl9XQ0hBUl9UCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgKFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lEICYmIF9fQU5EUk9JRF9B
UElfXyA8IDkpIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9DTEFTU0lDX01BQ09TCisgICAgLyoKKyAg
ICAgKiBDbGFzc2ljIE1hYyBPUyBhbmQgTWFjIE9TIFggYmVmb3JlIDEwLjMgKFBhbnRoZXIpIGRp
ZCBub3Qgc3VwcG9ydCB3Y2hhcl90IG9yIHdzdHJpbmcuCisgICAgICogTmV3ZXIgTWFjIE9TIFgg
aGFzIHNpemUgNC4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAxCisjZWxp
ZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0NZR1dJTgor
IyAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9B
SVgKKyAgICAvKgorICAgICAqIEFJWCA2LjEgaW5mb3JtYXRpb24sIHNlY3Rpb24gIldpZGUgY2hh
cmFjdGVyIGRhdGEgcmVwcmVzZW50YXRpb24iOgorICAgICAqICIuLi4gdGhlIHdjaGFyX3QgZGF0
YXR5cGUgaXMgMzItYml0IGluIHRoZSA2NC1iaXQgZW52aXJvbm1lbnQgYW5kCisgICAgICogMTYt
Yml0IGluIHRoZSAzMi1iaXQgZW52aXJvbm1lbnQuIgorICAgICAqIGFuZAorICAgICAqICJBbGwg
bG9jYWxlcyB1c2UgVW5pY29kZSBmb3IgdGhlaXIgd2lkZSBjaGFyYWN0ZXIgY29kZSB2YWx1ZXMg
KHByb2Nlc3MgY29kZSksCisgICAgICogZXhjZXB0IHRoZSBJQk0tZXVjVFcgY29kZXNldC4iCisg
ICAgICovCisjICAgaWZkZWYgX182NEJJVF9fCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hB
Ul9UIDQKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9XQ0hBUl9UIDIKKyMgICBl
bmRpZgorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCisgICAgLyoKKyAgICAgKiB6L09T
IFYxUjExIGluZm9ybWF0aW9uIGNlbnRlciwgc2VjdGlvbiAiTFA2NCB8IElMUDMyIjoKKyAgICAg
KiAiSW4gMzEtYml0IG1vZGUsIHRoZSBzaXplIG9mIGxvbmcgYW5kIHBvaW50ZXJzIGlzIDQgYnl0
ZXMgYW5kIHRoZSBzaXplIG9mIHdjaGFyX3QgaXMgMiBieXRlcy4KKyAgICAgKiBVbmRlciBMUDY0
LCB0aGUgc2l6ZSBvZiBsb25nIGFuZCBwb2ludGVyIGlzIDggYnl0ZXMgYW5kIHRoZSBzaXplIG9m
IHdjaGFyX3QgaXMgNCBieXRlcy4iCisgICAgICovCisjICAgaWZkZWYgX0xQNjQKKyMgICAgICAg
ZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIFVfU0la
RU9GX1dDSEFSX1QgMgorIyAgIGVuZGlmCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAK
KyMgICBpZiBkZWZpbmVkKF9fVVRGMzJfXykKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxF
VFlQRSgqTE9DQUxFVVRGKSBpcyBzcGVjaWZpZWQuCisgICAgICAgICAqIFdpZGUtY2hhcmFjdGVy
IHN0cmluZ3MgYXJlIGluIFVURi0zMiwKKyAgICAgICAgICogbmFycm93LWNoYXJhY3RlciBzdHJp
bmdzIGFyZSBpbiBVVEYtOC4KKyAgICAgICAgICovCisjICAgICAgIGRlZmluZSBVX1NJWkVPRl9X
Q0hBUl9UIDQKKyMgICBlbGlmIGRlZmluZWQoX19VQ1MyX18pCisgICAgICAgIC8qCisgICAgICAg
ICAqIExPQ0FMRVRZUEUoKkxPQ0FMRVVDUzIpIGlzIHNwZWNpZmllZC4KKyAgICAgICAgICogV2lk
ZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gVUNTLTIsCisgICAgICAgICAqIG5hcnJvdy1jaGFy
YWN0ZXIgc3RyaW5ncyBhcmUgaW4gRUJDRElDLgorICAgICAgICAgKi8KKyMgICAgICAgZGVmaW5l
IFVfU0laRU9GX1dDSEFSX1QgMgorI2Vsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogTE9DQUxF
VFlQRSgqQ0xEKSBvciBMT0NBTEVUWVBFKCpMT0NBTEUpIGlzIHNwZWNpZmllZC4KKyAgICAgICAg
ICogV2lkZS1jaGFyYWN0ZXIgc3RyaW5ncyBhcmUgaW4gMTYtYml0IEVCQ0RJQywKKyAgICAgICAg
ICogbmFycm93LWNoYXJhY3RlciBzdHJpbmdzIGFyZSBpbiBFQkNESUMuCisgICAgICAgICAqLwor
IyAgICAgICBkZWZpbmUgVV9TSVpFT0ZfV0NIQVJfVCAyCisjICAgZW5kaWYKKyNlbHNlCisjICAg
ZGVmaW5lIFVfU0laRU9GX1dDSEFSX1QgNAogI2VuZGlmCiAKICNpZm5kZWYgVV9IQVZFX1dDU0NQ
WQotI2RlZmluZSBVX0hBVkVfV0NTQ1BZICAgICAgIDEKKyNkZWZpbmUgVV9IQVZFX1dDU0NQWSBV
X0hBVkVfV0NIQVJfSAogI2VuZGlmCiAKIC8qKiBAfSAqLwogCiAvKioKKyAqIFxkZWYgVV9IQVZF
X0NIQVIxNl9UCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNoYXIxNl90IHR5cGUgaXMgYXZhaWxh
YmxlIGZvciBVVEYtMTYKKyAqIGFuZCB1ImFiYyIgVVRGLTE2IHN0cmluZyBsaXRlcmFscyBhcmUg
c3VwcG9ydGVkLgorICogVGhpcyBpcyBhIG5ldyBzdGFuZGFyZCB0eXBlIGFuZCBzdGFuZGFyZCBz
dHJpbmcgbGl0ZXJhbCBzeW50YXggaW4gQysrMHgKKyAqIGJ1dCBoYXMgYmVlbiBhdmFpbGFibGUg
aW4gc29tZSBjb21waWxlcnMgYmVmb3JlLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hB
VkVfQ0hBUjE2X1QKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxzZQor
ICAgIC8qCisgICAgICogTm90ZXM6CisgICAgICogVmlzdWFsIFN0dWRpbyAxMCAoX01TQ19WRVI+
PTE2MDApIGRlZmluZXMgY2hhcjE2X3QgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9ydCB1ImFi
YyIgc3RyaW5nIGxpdGVyYWxzLgorICAgICAqIGdjYyA0LjQgZGVmaW5lcyB0aGUgX19DSEFSMTZf
VFlQRV9fIG1hY3JvIHRvIGEgdXNhYmxlIHR5cGUgYnV0CisgICAgICogZG9lcyBub3Qgc3VwcG9y
dCB1ImFiYyIgc3RyaW5nIGxpdGVyYWxzLgorICAgICAqIEMrKzExIGFuZCBDMTEgcmVxdWlyZSBz
dXBwb3J0IGZvciBVVEYtMTYgbGl0ZXJhbHMKKyAgICAgKi8KKyMgICBpZiAoZGVmaW5lZChfX2Nw
bHVzcGx1cykgJiYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkgfHwgKGRlZmluZWQoX19TVERDX1ZF
UlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMKQorIyAgICAgICBkZWZpbmUg
VV9IQVZFX0NIQVIxNl9UIDEKKyMgICBlbHNlCisjICAgICAgIGRlZmluZSBVX0hBVkVfQ0hBUjE2
X1QgMAorIyAgIGVuZGlmCisjZW5kaWYKKworLyoqCiAgKiBAewogICogXGRlZiBVX0RFQ0xBUkVf
VVRGMTYKLSAqIERvIG5vdCB1c2UgdGhpcyBtYWNyby4gVXNlIHRoZSBVTklDT0RFX1NUUklORyBv
ciBVX1NUUklOR19ERUNMIG1hY3JvcwotICogaW5zdGVhZC4KLSAqIEBpbnRlcm5hbAotICoKLSAq
IFxkZWYgVV9HTlVDX1VURjE2X1NUUklORworICogRG8gbm90IHVzZSB0aGlzIG1hY3JvIGJlY2F1
c2UgaXQgaXMgbm90IGRlZmluZWQgb24gYWxsIHBsYXRmb3Jtcy4KKyAqIFVzZSB0aGUgVU5JQ09E
RV9TVFJJTkcgb3IgVV9TVFJJTkdfREVDTCBtYWNyb3MgaW5zdGVhZC4KICAqIEBpbnRlcm5hbAog
ICovCi0jaWZuZGVmIFVfR05VQ19VVEYxNl9TVFJJTkcKLSNkZWZpbmUgVV9HTlVDX1VURjE2X1NU
UklORyAwCi0jZW5kaWYKLSNpZiAxIHx8IGRlZmluZWQoVV9DSEVDS19VVEYxNl9TVFJJTkcpCi0j
aWYgKGRlZmluZWQoX194bENfXykgJiYgZGVmaW5lZChfX0lCTV9VVEZfTElURVJBTCkgJiYgVV9T
SVpFT0ZfV0NIQVJfVCAhPSAyKSBcCisjaWZkZWYgVV9ERUNMQVJFX1VURjE2CisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9IQVZFX0NIQVIxNl9UIFwKKyAgICB8
fCAoZGVmaW5lZChfX3hsQ19fKSAmJiBkZWZpbmVkKF9fSUJNX1VURl9MSVRFUkFMKSAmJiBVX1NJ
WkVPRl9XQ0hBUl9UICE9IDIpIFwKICAgICB8fCAoZGVmaW5lZChfX0hQX2FDQykgJiYgX19IUF9h
Q0MgPj0gMDM1MDAwKSBcCi0gICAgfHwgKGRlZmluZWQoX19IUF9jYykgJiYgX19IUF9jYyA+PSAx
MTExMDYpIFwKLSAgICB8fCBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jZGVmaW5lIFVfREVDTEFSRV9V
VEYxNihzdHJpbmcpIHUgIyMgc3RyaW5nCi0jZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYg
X19TVU5QUk9fQ0MgPj0gMHg1NTApCi0vKiB8fCAoZGVmaW5lZChfX1NVTlBST19DKSAmJiBfX1NV
TlBST19DID49IDB4NTgwKSAqLwotLyogU3VuJ3MgQyBjb21waWxlciBoYXMgaXNzdWVzIHdpdGgg
dGhpcyBub3RhdGlvbiwgYW5kIGl0J3MgdW5yZWxpYWJsZS4gKi8KLSNkZWZpbmUgVV9ERUNMQVJF
X1VURjE2KHN0cmluZykgVSAjIyBzdHJpbmcKKyAgICB8fCAoZGVmaW5lZChfX0hQX2NjKSAmJiBf
X0hQX2NjID49IDExMTEwNikKKyMgICBkZWZpbmUgVV9ERUNMQVJFX1VURjE2KHN0cmluZykgdSAj
IyBzdHJpbmcKICNlbGlmIFVfU0laRU9GX1dDSEFSX1QgPT0gMiBcCi0gICAgJiYgKFVfQ0hBUlNF
VF9GQU1JTFkgPT0gMCB8fCAoKGRlZmluZWQoT1MzOTApIHx8IGRlZmluZWQoT1M0MDApKSAmJiBk
ZWZpbmVkKF9fVUNTMl9fKSkpCi0jZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwgIyMg
c3RyaW5nCi0jZW5kaWYKLSNlbmRpZgotCi0vKiogQH0gKi8KLQotLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLwotLyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IFBPU0lYIHN1cHBvcnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
LQotI2lmbmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAotI2RlZmluZSBVX0hBVkVfTkxf
TEFOR0lORk9fQ09ERVNFVCAgMQotI2VuZGlmCi0KLSNpZm5kZWYgVV9OTF9MQU5HSU5GT19DT0RF
U0VUCi0jZGVmaW5lIFVfTkxfTEFOR0lORk9fQ09ERVNFVCAgICAgICBDT0RFU0VUCi0jZW5kaWYK
LQotI2lmIDEKLSNkZWZpbmUgVV9UWlNFVCAgICAgICAgIHR6c2V0Ci0jZW5kaWYKLSNpZiAwCi0j
ZGVmaW5lIFVfVElNRVpPTkUgICAgICB0aW1lem9uZQotI2VuZGlmCi0jaWYgMQotI2RlZmluZSBV
X1RaTkFNRSAgICAgICAgdHpuYW1lCisgICAgJiYgKFVfQ0hBUlNFVF9GQU1JTFkgPT0gMCB8fCAo
VV9QRl9PUzM5MCA8PSBVX1BMQVRGT1JNICYmIFVfUExBVEZPUk0gPD0gVV9QRl9PUzQwMCAmJiBk
ZWZpbmVkKF9fVUNTMl9fKSkpCisjICAgZGVmaW5lIFVfREVDTEFSRV9VVEYxNihzdHJpbmcpIEwg
IyMgc3RyaW5nCisjZWxzZQorICAgIC8qIExlYXZlIFVfREVDTEFSRV9VVEYxNiB1bmRlZmluZWQu
IFNlZSB1bmlzdHIuaC4gKi8KICNlbmRpZgogCi0jZGVmaW5lIFVfSEFWRV9NTUFQICAgICAxCi0j
ZGVmaW5lIFVfSEFWRV9QT1BFTiAgICAxCi0KIC8qKiBAfSAqLwogCiAvKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCi0vKiogQHsgU3ltYm9sIGltcG9ydC1leHBvcnQgY29udHJvbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqIEB7IFN5bWJvbCBpbXBvcnQt
ZXhwb3J0IGNvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgMQotI2RlZmluZSBVX0VYUE9SVCBfX2F0
dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2lmZGVmIFVfRVhQT1JUCisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChVX1NUQVRJQ19J
TVBMRU1FTlRBVElPTikKKyMgICBkZWZpbmUgVV9FWFBPUlQKKyNlbGlmIGRlZmluZWQoX19HTlVD
X18pCisjICAgZGVmaW5lIFVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1
bHQiKSkpCiAjZWxpZiAoZGVmaW5lZChfX1NVTlBST19DQykgJiYgX19TVU5QUk9fQ0MgPj0gMHg1
NTApIFwKICAgIHx8IChkZWZpbmVkKF9fU1VOUFJPX0MpICYmIF9fU1VOUFJPX0MgPj0gMHg1NTAp
IAotI2RlZmluZSBVX0VYUE9SVCBfX2dsb2JhbAorIyAgIGRlZmluZSBVX0VYUE9SVCBfX2dsb2Jh
bAogLyojZWxpZiBkZWZpbmVkKF9fSFBfYUNDKSB8fCBkZWZpbmVkKF9fSFBfY2MpCi0jZGVmaW5l
IFVfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSovCisjICAgZGVmaW5lIFVfRVhQT1JUIF9f
ZGVjbHNwZWMoZGxsZXhwb3J0KSovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgIGRlZmlu
ZSBVX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKICNlbHNlCi0jZGVmaW5lIFVfRVhQT1JU
CisjICAgZGVmaW5lIFVfRVhQT1JUCiAjZW5kaWYKIAogLyogVV9DQUxMQ09OViBpcyByZWxlYXRl
ZCB0byBVX0VYUE9SVDIgKi8KLSNkZWZpbmUgVV9FWFBPUlQyCi0KLS8qIGN5Z3dpbiBuZWVkcyB0
byBleHBvcnQvaW1wb3J0IGRhdGEgKi8KLSNpZiBkZWZpbmVkKFVfQ1lHV0lOKSAmJiAhZGVmaW5l
ZChfX0dOVUNfXykKLSNkZWZpbmUgVV9JTVBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjaWZk
ZWYgVV9FWFBPUlQyCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
ZGVmaW5lZChfTVNDX1ZFUikKKyMgICBkZWZpbmUgVV9FWFBPUlQyIF9fY2RlY2wKICNlbHNlCi0j
ZGVmaW5lIFVfSU1QT1JUIAotI2VuZGlmCi0KLS8qIEB9ICovCi0KLS8qPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ki8KLS8qKiBAeyBDb2RlIGFsaWdubWVudCBhbmQgQyBmdW5jdGlvbiBpbmxpbmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
Ci0KLSNpZm5kZWYgVV9JTkxJTkUKLSMgICBpZmRlZiBfX2NwbHVzcGx1cwotIyAgICAgICBkZWZp
bmUgVV9JTkxJTkUgaW5saW5lCi0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9JTkxJTkUgX19p
bmxpbmVfXwotIyAgIGVuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBVX0FMSUdOX0NPREUKLSNkZWZp
bmUgVV9BTElHTl9DT0RFKG4pIAorIyAgIGRlZmluZSBVX0VYUE9SVDIKICNlbmRpZgogCi0vKiog
QH0gKi8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyoqIEB7IEdDQyBidWlsdCBpbiBmdW5j
dGlvbnMgZm9yIGF0b21pYyBtZW1vcnkgb3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAg
Ki8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBcZGVmIFVfSEFWRV9HQ0NfQVRP
TUlDUwotICogQGludGVybmFsCi0gKi8KLSNpZm5kZWYgVV9IQVZFX0dDQ19BVE9NSUNTCi0jZGVm
aW5lIFVfSEFWRV9HQ0NfQVRPTUlDUyAxCisjaWZkZWYgVV9JTVBPUlQKKyAgICAvKiBVc2UgdGhl
IHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorICAgIC8qIFdp
bmRvd3MgbmVlZHMgdG8gZXhwb3J0L2ltcG9ydCBkYXRhLiAqLworIyAgIGRlZmluZSBVX0lNUE9S
VCBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNlbHNlCisjICAgZGVmaW5lIFVfSU1QT1JUIAogI2Vu
ZGlmCiAKLS8qKiBAfSAqLwotCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0vKiogQHsgUHJvZ3Jh
bXMgdXNlZCBieSBJQ1UgY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCiAvKioKLSAqIFxkZWYgVV9N
QUtFCi0gKiBXaGF0IHByb2dyYW0gdG8gZXhlY3V0ZSB0byBydW4gJ21ha2UnCisgKiBcZGVmIFVf
Q0FMTENPTlYKKyAqIFNpbWlsYXIgdG8gVV9DREVDTF9CRUdJTi9VX0NERUNMX0VORCwgdGhpcyBx
dWFsaWZpZXIgaXMgbmVjZXNzYXJ5CisgKiBpbiBjYWxsYmFjayBmdW5jdGlvbiB0eXBlZGVmcyB0
byBtYWtlIHN1cmUgdGhhdCB0aGUgY2FsbGluZyBjb252ZW50aW9uCisgKiBpcyBjb21wYXRpYmxl
LgorICoKKyAqIFRoaXMgaXMgb25seSB1c2VkIGZvciBub24tSUNVLUFQSSBmdW5jdGlvbnMuCisg
KiBXaGVuIGEgZnVuY3Rpb24gaXMgYSBwdWJsaWMgSUNVIEFQSSwKKyAqIHlvdSBtdXN0IHVzZSB0
aGUgVV9DQVBJIGFuZCBVX0VYUE9SVDIgcXVhbGlmaWVycy4KKyAqIEBzdGFibGUgSUNVIDIuMAog
ICovCi0jaWZuZGVmIFVfTUFLRQotI2RlZmluZSBVX01BS0UgICIvdXNyL2Jpbi9nbnVtYWtlIgor
I2lmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyAg
ICBkZWZpbmUgVV9DQUxMQ09OViBfX2NkZWNsCisjZWxzZQorIyAgICBkZWZpbmUgVV9DQUxMQ09O
ViBVX0VYUE9SVDIKICNlbmRpZgogCi0vKiogQH0gKi8KLQotI2VuZGlmIC8qIENZR1dJTk1TVkMg
Ki8KLQotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCBy
ZW5hbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotLyoqCi0gKiBEZWZpbmUgdGhlIGxpYnJhcnkg
c3VmZml4IHdpdGggQyBzeW50YXguCi0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJf
U1VGRklYX0NfTkFNRSAKLS8qKgotICogRGVmaW5lIHRoZSBsaWJyYXJ5IHN1ZmZpeCBhcyBhIHN0
cmluZyB3aXRoIEMgc3ludGF4Ci0gKiBAaW50ZXJuYWwKLSAqLwotIyBkZWZpbmUgVV9MSUJfU1VG
RklYX0NfTkFNRV9TVFJJTkcgIiIKLS8qKgotICogMSBpZiBhIGN1c3RvbSBsaWJyYXJ5IHN1ZmZp
eCBpcyBzZXQKLSAqIEBpbnRlcm5hbAotICovCi0jIGRlZmluZSBVX0hBVkVfTElCX1NVRkZJWCAw
Ci0KLSNpZiBVX0hBVkVfTElCX1NVRkZJWAotIyBpZm5kZWYgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FCi0vKiBSZW5hbWluZyBwYXR0ZXJuOiAgICB1X3N0cmNweV80MV9zdWZmaXggKi8KLSMgIGRl
ZmluZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfICMjIDQ2ICMjIAotIyAg
ZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3IsIG1pbm9yKSBpY3VkdCMjIyNt
YWpvciMjbWlub3IjI19kYXQKLQotIyBlbmRpZgotI2VuZGlmCisvKiBAfSAqLwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3B0eXBlcy5oIGIvU291
cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5cGVzLmgKaW5kZXggMWYzNGQyZjg0ZTQxMGVm
NzkzMGE2NmVmNmU3NGNiNjRiY2JjNTgxZC4uYjdmNzExNjAzMjgyYzM2YzczMjIyMGU3YTk2Yzkx
MzNkZDAyNTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5
cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHR5cGVzLmgKQEAgLTEs
NyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChD
KSAxOTk3LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmln
aHQgKEMpIDE5OTctMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCkBAIC0xNyw0MCArMTcsNjkgQEAKICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog
Ki8KIAorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBEZWZpbml0aW9ucyBvZiBpbnRl
Z2VyIHR5cGVzIG9mIHZhcmlvdXMgd2lkdGhzCisgKi8KKwogI2lmbmRlZiBfUFRZUEVTX0gKICNk
ZWZpbmUgX1BUWVBFU19ICiAKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy8qKgorICogXGRlZiBf
X1NURENfTElNSVRfTUFDUk9TCisgKiBBY2NvcmRpbmcgdG8gdGhlIExpbnV4IHN0ZGludC5oLCB0
aGUgSVNPIEM5OSBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBpbiBDKysgaW1wbGVtZW50YXRpb25z
CisgKiBtYWNyb3MgbGlrZSBJTlQzMl9NSU4gYW5kIFVJTlRQVFJfTUFYIHNob3VsZCBvbmx5IGJl
IGRlZmluZWQgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQuCisgKiBXZSBuZWVkIHRvIGRlZmluZSBf
X1NURENfTElNSVRfTUFDUk9TIGJlZm9yZSBpbmNsdWRpbmcgc3RkaW50LmggaW4gQysrIGNvZGUK
KyAqIHRoYXQgdXNlcyBzdWNoIGxpbWl0IG1hY3Jvcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZu
ZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKKyNkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUworI2Vu
ZGlmCisKKy8qIE5VTEwsIHNpemVfdCwgd2NoYXJfdCAqLworI2luY2x1ZGUgPHN0ZGRlZi5oPgog
CisvKgorICogSWYgYWxsIGNvbXBpbGVycyBwcm92aWRlZCBhbGwgb2YgdGhlIEM5OSBoZWFkZXJz
IGFuZCB0eXBlcywKKyAqIHdlIHdvdWxkIGp1c3QgdW5jb25kaXRpb25hbGx5ICNpbmNsdWRlIDxz
dGRpbnQuaD4gaGVyZQorICogYW5kIG5vdCBuZWVkIGFueSBvZiB0aGUgc3R1ZmYgYWZ0ZXIgaW5j
bHVkaW5nIHBsYXRmb3JtLmguCisgKi8KKworLyogRmluZCBvdXQgaWYgd2UgaGF2ZSBzdGRpbnQu
aCBldGMuICovCiAjaW5jbHVkZSAidW5pY29kZS9wbGF0Zm9ybS5oIgogCiAvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCiAvKiBHZW5lcmljIGRhdGEgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CiAKLS8qIElmIHlvdXIgcGxhdGZvcm0gZG9lcyBub3QgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhl
YWRlciwgeW91IG1heQotICAgbmVlZCB0byBlZGl0IHRoZSB0eXBlZGVmcyBiZWxvdy4gKi8KLSNp
ZiBVX0hBVkVfSU5UVFlQRVNfSAorLyogSWYgeW91ciBwbGF0Zm9ybSBkb2VzIG5vdCBoYXZlIHRo
ZSA8c3RkaW50Lmg+IGhlYWRlciwgeW91IG1heQorICAgbmVlZCB0byBlZGl0IHRoZSB0eXBlZGVm
cyBpbiB0aGUgI2Vsc2Ugc2VjdGlvbiBiZWxvdy4KKyAgIFVzZSAjaWYuLi4jZWxzZS4uLiNlbmRp
ZiB3aXRoIHByZWRlZmluZWQgY29tcGlsZXIgbWFjcm9zIGlmIHBvc3NpYmxlLiAqLworI2lmIFVf
SEFWRV9TVERJTlRfSAorCisvKgorICogV2UgbW9zdGx5IG5lZWQgPHN0ZGludC5oPiAod2hpY2gg
ZGVmaW5lcyB0aGUgc3RhbmRhcmQgaW50ZWdlciB0eXBlcykgYnV0IG5vdCA8aW50dHlwZXMuaD4u
CisgKiA8aW50dHlwZXMuaD4gaW5jbHVkZXMgPHN0ZGludC5oPiBhbmQgYWRkcyB0aGUgcHJpbnRm
L3NjYW5mIGhlbHBlcnMgUFJJZDMyLCBTQ054MTYgZXRjLgorICogd2hpY2ggd2UgYWxtb3N0IG5l
dmVyIHVzZSwgcGx1cyBzdHVmZiBsaWtlIGltYXhhYnMoKSB3aGljaCB3ZSBuZXZlciB1c2UuCisg
Ki8KKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAotLyogYXV0b2NvbmYgMi4xMyBzb21ldGltZXMgY2Fu
J3QgcHJvcGVybHkgZmluZCB0aGUgZGF0YSB0eXBlcyBpbiA8aW50dHlwZXMuaD4gKi8KLS8qIG9z
LzM5MCBuZWVkcyA8aW50dHlwZXMuaD4sIGJ1dCBpdCBkb2Vzbid0IGhhdmUgaW50OF90LCBhbmQg
aXQgc29tZXRpbWVzICovCi0vKiBkb2Vzbid0IGhhdmUgdWludDhfdCBkZXBlbmRpbmcgb24gdGhl
IE9TIHZlcnNpb24uICovCi0vKiBTbyB3ZSBoYXZlIHRoaXMgd29yayBhcm91bmQuICovCi0jaWZk
ZWYgT1MzOTAKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAKIC8qIFRoZSBmZWF0dXJlcyBo
ZWFkZXIgaXMgbmVlZGVkIHRvIGdldCAodSlpbnQ2NF90IHNvbWV0aW1lcy4gKi8KICNpbmNsdWRl
IDxmZWF0dXJlcy5oPgotI2lmICEgVV9IQVZFX0lOVDhfVAotdHlwZWRlZiBzaWduZWQgY2hhciBp
bnQ4X3Q7Ci0jZW5kaWYKKy8qIHovT1MgaGFzIDxzdGRpbnQuaD4sIGJ1dCBzb21lIHZlcnNpb25z
IGFyZSBtaXNzaW5nIHVpbnQ4X3QgKEFQQVIgUEs2MjI0OCkuICovCiAjaWYgIWRlZmluZWQoX191
aW50OF90KQogI2RlZmluZSBfX3VpbnQ4X3QgMQogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4
X3Q7CiAjZW5kaWYKLSNlbmRpZiAvKiBPUzM5MCAqLworI2VuZGlmIC8qIFVfUExBVEZPUk0gPT0g
VV9QRl9PUzM5MCAqLworCisjZWxpZiBVX0hBVkVfSU5UVFlQRVNfSAogCi0jaW5jbHVkZSA8aW50
dHlwZXMuaD4KKyMgICBpbmNsdWRlIDxpbnR0eXBlcy5oPgogCi0jZWxzZSAvKiBVX0hBVkVfSU5U
VFlQRVNfSCAqLworI2Vsc2UgLyogbmVpdGhlciBVX0hBVkVfU1RESU5UX0ggbm9yIFVfSEFWRV9J
TlRUWVBFU19IICovCiAKICNpZiAhIFVfSEFWRV9JTlQ4X1QKIHR5cGVkZWYgc2lnbmVkIGNoYXIg
aW50OF90OwpAQCAtNzcsMTYgKzEwNiwyMSBAQCB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJf
dDsKICNlbmRpZgogCiAjaWYgISBVX0hBVkVfSU5UNjRfVAorI2lmZGVmIF9NU0NfVkVSCisgICAg
dHlwZWRlZiBzaWduZWQgX19pbnQ2NCBpbnQ2NF90OworI2Vsc2UKICAgICB0eXBlZGVmIHNpZ25l
ZCBsb25nIGxvbmcgaW50NjRfdDsKLS8qIGVsc2Ugd2UgbWF5IG5vdCBoYXZlIGEgNjQtYml0IHR5
cGUgKi8KKyNlbmRpZgogI2VuZGlmCiAKICNpZiAhIFVfSEFWRV9VSU5UNjRfVAorI2lmZGVmIF9N
U0NfVkVSCisgICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDY0IHVpbnQ2NF90OworI2Vsc2UKICAg
ICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRfdDsKLS8qIGVsc2Ugd2UgbWF5IG5v
dCBoYXZlIGEgNjQtYml0IHR5cGUgKi8KKyNlbmRpZgogI2VuZGlmCiAKLSNlbmRpZiAvKiBVX0hB
VkVfSU5UVFlQRVNfSCAqLworI2VuZGlmIC8qIFVfSEFWRV9TVERJTlRfSCAvIFVfSEFWRV9JTlRU
WVBFU19IICovCiAKICNlbmRpZiAvKiBfUFRZUEVTX0ggKi8KLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHV0aWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91
bmljb2RlL3B1dGlsLmgKaW5kZXggNzFkNWQyNjQzMDUyOWI2MGI3ZWE0YzRkODMwZGJjODYxNzUy
OTQ2NS4uNmZjN2U5Y2Q1YTYyYTU1OTQ2YWU2ZDc3ODdiZjI1ZDIzNjExMGExYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvcHV0aWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9pY3UvdW5pY29kZS9wdXRpbC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA5LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAg
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMzAsMTIg
KzMwLDYgQEAKICAgKiBcYnJpZWYgQyBBUEk6IFBsYXRmb3JtIFV0aWxpdGllcwogICAqLwogCi0v
KiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBvcnRzIElFRUUgNzU0IGZs
b2F0aW5nIHBvaW50LAotICAgdG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8KLSNpZm5kZWYgSUVFRV83
NTQKLSMgICBkZWZpbmUgSUVFRV83NTQgMQotI2VuZGlmCi0KIC8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LwogLyogUGxhdGZvcm0gdXRpbGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTkzLDQz
ICs4NywyMCBAQCBVX1NUQUJMRSBjb25zdCBjaGFyKiBVX0VYUE9SVDIgdV9nZXREYXRhRGlyZWN0
b3J5KHZvaWQpOwogICovCiBVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiB1X3NldERhdGFEaXJlY3Rv
cnkoY29uc3QgY2hhciAqZGlyZWN0b3J5KTsKIAotI2lmICFVX0NIQVJTRVRfSVNfVVRGOAotLyoq
Ci0gKiBQbGVhc2UgdXNlIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBpbnN0ZWFkLgotICogUmV0dXJu
IHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIGFuZCBsb2NhbGUuCi0gKiBU
aGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgpIG9uIFVuaXggcGxhdGZvcm1zLiBQbGVh
c2UgcmVhZCB0aGUKLSAqIHBsYXRmb3JtIGRvY3VtZW50YXRpb24gb24gc2V0bG9jYWxlKCkgYmVm
b3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqIEByZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBh
Z2UgZm9yIHRoaXMgcGxhdGZvcm0gCi0gKiBAaW50ZXJuYWwKLSAqLwotVV9JTlRFUk5BTCBjb25z
dCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdENvZGVwYWdlKHZvaWQpOwotI2VuZGlm
Ci0KLS8qKgotICogUGxlYXNlIHVzZSB1bG9jX2dldERlZmF1bHQoKSBpbnN0ZWFkLgotICogUmV0
dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcgYnkgcXVlcnlpbmcgdGhzIHN5c3RlbSwg
b3IKLSAqICAgICB6ZXJvIGlmIG9uZSBjYW5ub3QgYmUgZm91bmQuIAotICogVGhpcyBmdW5jdGlv
biBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhl
Ci0gKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24uCi0gKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcK
LSAqIEBpbnRlcm5hbAotICovCi1VX0lOVEVSTkFMIGNvbnN0IGNoYXIqICBVX0VYUE9SVDIgdXBy
dl9nZXREZWZhdWx0TG9jYWxlSUQodm9pZCk7Ci0KIC8qKgogICogQHsKICAqIEZpbGVzeXN0ZW0g
ZmlsZSBhbmQgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycy4KICAqIEV4YW1wbGU6ICcvJyBhbmQg
JzonIG9uIFVuaXgsICdcXCcgYW5kICc7JyBvbiBXaW5kb3dzLgogICogQHN0YWJsZSBJQ1UgMi4w
CiAgKi8KLSNpZmRlZiBYUF9NQUMKKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfQ0xBU1NJQ19NQUNP
UwogIyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIgJzonCiAjICAgZGVmaW5lIFVfRklMRV9BTFRf
U0VQX0NIQVIgJzonCiAjICAgZGVmaW5lIFVfUEFUSF9TRVBfQ0hBUiAnOycKICMgICBkZWZpbmUg
VV9GSUxFX1NFUF9TVFJJTkcgIjoiCiAjICAgZGVmaW5lIFVfRklMRV9BTFRfU0VQX1NUUklORyAi
OiIKICMgICBkZWZpbmUgVV9QQVRIX1NFUF9TVFJJTkcgIjsiCi0jZWxpZiBkZWZpbmVkKFdJTjMy
KSB8fCBkZWZpbmVkKE9TMikKKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQog
IyAgIGRlZmluZSBVX0ZJTEVfU0VQX0NIQVIgJ1xcJwogIyAgIGRlZmluZSBVX0ZJTEVfQUxUX1NF
UF9DSEFSICcvJwogIyAgIGRlZmluZSBVX1BBVEhfU0VQX0NIQVIgJzsnCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y2hhci5oIGIvU291cmNlL1dlYktpdC9tYWMv
aWN1L3VuaWNvZGUvdWNoYXIuaAppbmRleCA5M2FhNjYzMjA2YjJiNGM0ODIwYjgyY2ZjNjZjODRh
MmQwMGFlOWIyLi4xYTViNzFiNDYzZTQ4MzZlZTUxMzUyYmFhYzZiNGU0YzcyNjNmMzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y2hhci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VjaGFyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTMsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM5LDcgKzM5LDcgQEAgVV9DREVD
TF9CRUdJTgogICogQHNlZSB1X2dldFVuaWNvZGVWZXJzaW9uCiAgKiBAc3RhYmxlIElDVSAyLjAK
ICAqLwotI2RlZmluZSBVX1VOSUNPREVfVkVSU0lPTiAiNi4wIgorI2RlZmluZSBVX1VOSUNPREVf
VkVSU0lPTiAiNi4zIgogCiAvKioKICAqIFxmaWxlCkBAIC0xMzksMTkgKzEzOSw2IEBAIFVfQ0RF
Q0xfQkVHSU4KICAqLwogI2RlZmluZSBVX01BU0soeCkgKCh1aW50MzJfdCkxPDwoeCkpCiAKLS8q
Ci0gKiAhISBOb3RlOiBTZXZlcmFsIGNvbW1lbnRzIGluIHRoaXMgZmlsZSBhcmUgbWFjaGluZS1y
ZWFkIGJ5IHRoZQotICogZ2VucG5hbWUgdG9vbC4gIFRoZXNlIGNvbW1lbnRzIGRlc2NyaWJlIHRo
ZSBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuCi0gKiBpY3UgZW51bSBjb25zdGFudHMgYW5kIFVDRCBl
bnRpdGllcy4gIERvIG5vdCBkZWxldGUgdGhlbS4gIFVwZGF0ZQotICogdGhlc2UgY29tbWVudHMg
YXMgbmVlZGVkLgotICoKLSAqIEFueSBjb21tZW50IG9mIHRoZSBmb3JtICIvICpbbmFtZV0qIC8i
IChzcGFjZXMgYWRkZWQpIGlzIHN1Y2gKLSAqIGEgY29tbWVudC4KLSAqCi0gKiBUaGUgVV9KR18q
IGFuZCBVX0dDXypfTUFTSyBjb25zdGFudHMgYXJlIG1hdGNoZWQgYnkgdGhlaXIgc3ltYm9saWMK
LSAqIG5hbWUsIHdoaWNoIG11c3QgbWF0Y2ggUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LgotICov
Ci0KIC8qKgogICogU2VsZWN0aW9uIGNvbnN0YW50cyBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzLgog
ICogVGhlc2UgY29uc3RhbnRzIGFyZSB1c2VkIGluIGZ1bmN0aW9ucyBsaWtlIHVfaGFzQmluYXJ5
UHJvcGVydHkgdG8gc2VsZWN0CkBAIC0xNzIsOSArMTU5LDExIEBAIFVfQ0RFQ0xfQkVHSU4KICAq
IEBzdGFibGUgSUNVIDIuMQogICovCiB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKLSAgICAvKiAg
U2VlIG5vdGUgISEuICBDb21tZW50cyBvZiB0aGUgZm9ybSAiQmluYXJ5IHByb3BlcnR5IERhc2gi
LAotICAgICAgICAiRW51bWVyYXRlZCBwcm9wZXJ0eSBTY3JpcHQiLCAiRG91YmxlIHByb3BlcnR5
IE51bWVyaWNfVmFsdWUiLAotICAgICAgICBhbmQgIlN0cmluZyBwcm9wZXJ0eSBBZ2UiIGFyZSBy
ZWFkIGJ5IGdlbnBuYW1lLiAqLworICAgIC8qCisgICAgICogTm90ZTogVVByb3BlcnR5IGNvbnN0
YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGlu
ZXMgbGlrZQorICAgICAqICAgICBVQ0hBUl88VW5pY29kZSBwcm9wZXJ0eSBuYW1lPj08aW50ZWdl
cj4sCisgICAgICovCiAKICAgICAvKiAgTm90ZTogUGxhY2UgVUNIQVJfQUxQSEFCRVRJQyBiZWZv
cmUgVUNIQVJfQklOQVJZX1NUQVJUIHNvIHRoYXQKICAgICBkZWJ1Z2dlcnMgZGlzcGxheSBVQ0hB
Ul9BTFBIQUJFVElDIGFzIHRoZSBzeW1ib2xpYyBuYW1lIGZvciAwLApAQCAtNDkxLDggKzQ4MCwx
MyBAQCB0eXBlZGVmIGVudW0gVVByb3BlcnR5IHsKICAgICAgICAgKGh0dHA6Ly93d3cudW5pY29k
ZS5vcmcvcmVwb3J0cy90cjI5LykKICAgICAgICAgUmV0dXJucyBVV29yZEJyZWFrVmFsdWVzIHZh
bHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCiAgICAgVUNIQVJfV09SRF9CUkVBSz0weDEwMTQsCisg
ICAgLyoqIEVudW1lcmF0ZWQgcHJvcGVydHkgQmlkaV9QYWlyZWRfQnJhY2tldF9UeXBlIChuZXcg
aW4gVW5pY29kZSA2LjMpLgorICAgICAgICBVc2VkIGluIFVBWCAjOTogVW5pY29kZSBCaWRpcmVj
dGlvbmFsIEFsZ29yaXRobQorICAgICAgICAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRz
L3RyOS8pCisgICAgICAgIFJldHVybnMgVUJpZGlQYWlyZWRCcmFja2V0VHlwZSB2YWx1ZXMuIEBz
dGFibGUgSUNVIDUyICovCisgICAgVUNIQVJfQklESV9QQUlSRURfQlJBQ0tFVF9UWVBFPTB4MTAx
NSwKICAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgZW51bWVyYXRl
ZC9pbnRlZ2VyIFVuaWNvZGUgcHJvcGVydGllcy4gQHN0YWJsZSBJQ1UgMi4yICovCi0gICAgVUNI
QVJfSU5UX0xJTUlUPTB4MTAxNSwKKyAgICBVQ0hBUl9JTlRfTElNSVQ9MHgxMDE2LAogCiAgICAg
LyoqIEJpdG1hc2sgcHJvcGVydHkgR2VuZXJhbF9DYXRlZ29yeV9NYXNrLgogICAgICAgICBUaGlz
IGlzIHRoZSBHZW5lcmFsX0NhdGVnb3J5IHByb3BlcnR5IHJldHVybmVkIGFzIGEgYml0IG1hc2su
CkBAIC01MjcsOSArNTIxLDExIEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHkgewogICAgIC8qKiBT
dHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0
ckZvbGRDYXNlIGluIHVzdHJpbmcuaC4gQHN0YWJsZSBJQ1UgMi40ICovCiAgICAgVUNIQVJfQ0FT
RV9GT0xESU5HPTB4NDAwMiwKLSAgICAvKiogU3RyaW5nIHByb3BlcnR5IElTT19Db21tZW50Lgot
ICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldElTT0NvbW1lbnQuIEBzdGFibGUgSUNVIDIuNCAq
LworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKyAgICAvKiogRGVwcmVjYXRlZCBzdHJp
bmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICAgIENvcnJlc3BvbmRzIHRvIHVfZ2V0SVNP
Q29tbWVudC4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAgVUNIQVJfSVNPX0NPTU1FTlQ9MHg0
MDAzLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KICAgICAvKiogU3RyaW5n
IHByb3BlcnR5IExvd2VyY2FzZV9NYXBwaW5nLgogICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0
clRvTG93ZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElDVSAyLjQgKi8KICAgICBVQ0hBUl9MT1dF
UkNBU0VfTUFQUElORz0weDQwMDQsCkBAIC01NTEsMjkgKzU0NywzMyBAQCB0eXBlZGVmIGVudW0g
VVByb3BlcnR5IHsKICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9NYXBwaW5nLgog
ICAgICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVGl0bGUgaW4gdXN0cmluZy5oLiBAc3RhYmxl
IElDVSAyLjQgKi8KICAgICBVQ0hBUl9USVRMRUNBU0VfTUFQUElORz0weDQwMEEsCisjaWZuZGVm
IFVfSElERV9ERVBSRUNBVEVEX0FQSQogICAgIC8qKiBTdHJpbmcgcHJvcGVydHkgVW5pY29kZV8x
X05hbWUuCi0gICAgICAgIENvcnJlc3BvbmRzIHRvIHVfY2hhck5hbWUuIEBzdGFibGUgSUNVIDIu
NCAqLworICAgICAgICBUaGlzIHByb3BlcnR5IGlzIG9mIGxpdHRsZSBwcmFjdGljYWwgdmFsdWUu
CisgICAgICAgIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZyBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgQ29ycmVzcG9uZHMgdG8gdV9jaGFy
TmFtZShVX1VOSUNPREVfMTBfQ0hBUl9OQU1FKS4gQGRlcHJlY2F0ZWQgSUNVIDQ5ICovCiAgICAg
VUNIQVJfVU5JQ09ERV8xX05BTUU9MHg0MDBCLAorI2VuZGlmICAvKiBVX0hJREVfREVQUkVDQVRF
RF9BUEkgKi8KICAgICAvKiogU3RyaW5nIHByb3BlcnR5IFVwcGVyY2FzZV9NYXBwaW5nLgogICAg
ICAgICBDb3JyZXNwb25kcyB0byB1X3N0clRvVXBwZXIgaW4gdXN0cmluZy5oLiBAc3RhYmxlIElD
VSAyLjQgKi8KICAgICBVQ0hBUl9VUFBFUkNBU0VfTUFQUElORz0weDQwMEMsCisgICAgLyoqIFN0
cmluZyBwcm9wZXJ0eSBCaWRpX1BhaXJlZF9CcmFja2V0IChuZXcgaW4gVW5pY29kZSA2LjMpLgor
ICAgICAgICBDb3JyZXNwb25kcyB0byB1X2dldEJpZGlQYWlyZWRCcmFja2V0LiBAc3RhYmxlIElD
VSA1MiAqLworICAgIFVDSEFSX0JJRElfUEFJUkVEX0JSQUNLRVQ9MHg0MDBELAogICAgIC8qKiBP
bmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29kZSBwcm9wZXJ0
aWVzLiBAc3RhYmxlIElDVSAyLjQgKi8KLSAgICBVQ0hBUl9TVFJJTkdfTElNSVQ9MHg0MDBELAor
ICAgIFVDSEFSX1NUUklOR19MSU1JVD0weDQwMEUsCiAKLSAgICAvKiogUHJvdmlzaW9uYWwgcHJv
cGVydHkgU2NyaXB0X0V4dGVuc2lvbnMgKG5ldyBpbiBVbmljb2RlIDYuMCkuCi0gICAgICAgIEFz
IGEgcHJvdmlzaW9uYWwgcHJvcGVydHksIGl0IG1heSBiZSBtb2RpZmllZCBvciByZW1vdmVkCi0g
ICAgICAgIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRo
dXMgaW4gSUNVLgorICAgIC8qKiBNaXNjZWxsYW5lb3VzIHByb3BlcnR5IFNjcmlwdF9FeHRlbnNp
b25zIChuZXcgaW4gVW5pY29kZSA2LjApLgogICAgICAgICBTb21lIGNoYXJhY3RlcnMgYXJlIGNv
bW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAgICAgICAgRm9yIG1vcmUgaW5mb3Jt
YXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyNC8u
CiAgICAgICAgIENvcnJlc3BvbmRzIHRvIHVzY3JpcHRfaGFzU2NyaXB0IGFuZCB1c2NyaXB0X2dl
dFNjcmlwdEV4dGVuc2lvbnMgaW4gdXNjcmlwdC5oLgotICAgICAgICBAZHJhZnQgSUNVIDQuNiAq
LworICAgICAgICBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBVQ0hBUl9TQ1JJUFRfRVhURU5TSU9O
Uz0weDcwMDAsCi0gICAgLyoqIEZpcnN0IGNvbnN0YW50IGZvciBVbmljb2RlIHByb3BlcnRpZXMg
d2l0aCB1bnVzdWFsIHZhbHVlIHR5cGVzLiBAZHJhZnQgSUNVIDQuNiAqLworICAgIC8qKiBGaXJz
dCBjb25zdGFudCBmb3IgVW5pY29kZSBwcm9wZXJ0aWVzIHdpdGggdW51c3VhbCB2YWx1ZSB0eXBl
cy4gQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgVUNIQVJfT1RIRVJfUFJPUEVSVFlfU1RBUlQ9VUNI
QVJfU0NSSVBUX0VYVEVOU0lPTlMsCiAgICAgLyoqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29u
c3RhbnQgZm9yIFVuaWNvZGUgcHJvcGVydGllcyB3aXRoIHVudXN1YWwgdmFsdWUgdHlwZXMuCi0g
ICAgICogQGRyYWZ0IElDVSA0LjYgKi8KKyAgICAgKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICBV
Q0hBUl9PVEhFUl9QUk9QRVJUWV9MSU1JVD0weDcwMDEsCi0KICAgICAvKiogUmVwcmVzZW50cyBh
IG5vbmV4aXN0ZW50IG9yIGludmFsaWQgcHJvcGVydHkgb3IgcHJvcGVydHkgdmFsdWUuIEBzdGFi
bGUgSUNVIDIuNCAqLwogICAgIFVDSEFSX0lOVkFMSURfQ09ERSA9IC0xCiB9IFVQcm9wZXJ0eTsK
QEAgLTU4NSw3ICs1ODUsMTIgQEAgdHlwZWRlZiBlbnVtIFVQcm9wZXJ0eSB7CiAgKi8KIHR5cGVk
ZWYgZW51bSBVQ2hhckNhdGVnb3J5CiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMg
b2YgdGhlIGZvcm0gIkNuIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAq
IE5vdGU6IFVDaGFyQ2F0ZWdvcnkgY29uc3RhbnRzIGFuZCB0aGVpciBBUEkgY29tbWVudHMgYXJl
IHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIHBhaXJzIG9mIGxp
bmVzIGxpa2UKKyAgICAgKiAgICAgLyAqKiA8VW5pY29kZSAyLWxldHRlciBHZW5lcmFsX0NhdGVn
b3J5IHZhbHVlPiBjb21tZW50Li4uICogLworICAgICAqICAgICBVXzxbQS1aX10rPiA9IDxpbnRl
Z2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOb24tY2F0ZWdvcnkgZm9yIHVuYXNzaWduZWQgYW5k
IG5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludHMuIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfVU5B
U1NJR05FRCAgICAgICAgICAgICAgPSAwLApAQCAtNzcwLDcgKzc3NSwxMiBAQCB0eXBlZGVmIGVu
dW0gVUNoYXJDYXRlZ29yeQogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5cGVkZWYgZW51bSBV
Q2hhckRpcmVjdGlvbiB7Ci0gICAgLyoqIFNlZSBub3RlICEhLiAgQ29tbWVudHMgb2YgdGhlIGZv
cm0gIkVOIiBhcmUgcmVhZCBieSBnZW5wbmFtZS4gKi8KKyAgICAvKgorICAgICAqIE5vdGU6IFVD
aGFyRGlyZWN0aW9uIGNvbnN0YW50cyBhbmQgdGhlaXIgQVBJIGNvbW1lbnRzIGFyZSBwYXJzZWQg
YnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hlcyBwYWlycyBvZiBsaW5lcyBsaWtl
CisgICAgICogICAgIC8gKiogPFVuaWNvZGUgMS4uMy1sZXR0ZXIgQmlkaV9DbGFzcyB2YWx1ZT4g
Y29tbWVudC4uLiAqIC8KKyAgICAgKiAgICAgVV88W0EtWl9dKz4gPSA8aW50ZWdlcj4sCisgICAg
ICovCiAKICAgICAvKiogTCBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBVX0xFRlRfVE9fUklHSFQg
ICAgICAgICAgICAgICA9IDAsCkBAIC04MTAsMjEgKzgyMCw1NyBAQCB0eXBlZGVmIGVudW0gVUNo
YXJEaXJlY3Rpb24gewogICAgIFVfRElSX05PTl9TUEFDSU5HX01BUksgICAgICAgID0gMTcsCiAg
ICAgLyoqIEJOIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQk9VTkRBUllfTkVVVFJBTCAgICAg
ICAgICAgID0gMTgsCisgICAgLyoqIEZTSSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfRklSU1Rf
U1RST05HX0lTT0xBVEUgICAgICAgID0gMTksCisgICAgLyoqIExSSSBAc3RhYmxlIElDVSA1MiAq
LworICAgIFVfTEVGVF9UT19SSUdIVF9JU09MQVRFICAgICAgID0gMjAsCisgICAgLyoqIFJMSSBA
c3RhYmxlIElDVSA1MiAqLworICAgIFVfUklHSFRfVE9fTEVGVF9JU09MQVRFICAgICAgID0gMjEs
CisgICAgLyoqIFBESSBAc3RhYmxlIElDVSA1MiAqLworICAgIFVfUE9QX0RJUkVDVElPTkFMX0lT
T0xBVEUgICAgID0gMjIsCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVfQ0hBUl9E
SVJFQ1RJT05fQ09VTlQKIH0gVUNoYXJEaXJlY3Rpb247CiAKIC8qKgorICogQmlkaSBQYWlyZWQg
QnJhY2tldCBUeXBlIGNvbnN0YW50cy4KKyAqCisgKiBAc2VlIFVDSEFSX0JJRElfUEFJUkVEX0JS
QUNLRVRfVFlQRQorICogQHN0YWJsZSBJQ1UgNTIKKyAqLwordHlwZWRlZiBlbnVtIFVCaWRpUGFp
cmVkQnJhY2tldFR5cGUgeworICAgIC8qCisgICAgICogTm90ZTogVUJpZGlQYWlyZWRCcmFja2V0
VHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJzZXVjZC5weS4KKyAgICAgKiBJdCBt
YXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9CUFRfPFVuaWNvZGUgQmlkaV9QYWlyZWRf
QnJhY2tldF9UeXBlIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICAvKiogTm90IGEgcGFpcmVk
IGJyYWNrZXQuIEBzdGFibGUgSUNVIDUyICovCisgICAgVV9CUFRfTk9ORSwKKyAgICAvKiogT3Bl
biBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9PUEVOLAorICAg
IC8qKiBDbG9zZSBwYWlyZWQgYnJhY2tldC4gQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9D
TE9TRSwKKyAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICBVX0JQVF9DT1VOVCAvKiAzICov
Cit9IFVCaWRpUGFpcmVkQnJhY2tldFR5cGU7CisKKy8qKgogICogQ29uc3RhbnRzIGZvciBVbmlj
b2RlIGJsb2Nrcywgc2VlIHRoZSBVbmljb2RlIERhdGEgZmlsZSBCbG9ja3MudHh0CiAgKiBAc3Rh
YmxlIElDVSAyLjAKICAqLwogZW51bSBVQmxvY2tDb2RlIHsKKyAgICAvKgorICAgICAqIE5vdGU6
IFVCbG9ja0NvZGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAg
ICogSXQgbWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVCTE9DS188VW5pY29kZSBCbG9j
ayB2YWx1ZSBuYW1lPiA9IDxpbnRlZ2VyPiwKKyAgICAgKi8KIAogICAgIC8qKiBOZXcgTm9fQmxv
Y2sgdmFsdWUgaW4gVW5pY29kZSA0LiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICBVQkxPQ0tfTk9f
QkxPQ0sgPSAwLCAvKltub25lXSovIC8qIFNwZWNpYWwgcmFuZ2UgaW5kaWNhdGluZyBOb19CbG9j
ayAqLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAgIFVCTE9DS19CQVNJQ19MQVRJ
TiA9IDEsIC8qWzAwMDBdKi8gLypTZWUgbm90ZSAhISovCisgICAgVUJMT0NLX0JBU0lDX0xBVElO
ID0gMSwgLypbMDAwMF0qLwogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwogICAgIFVCTE9D
S19MQVRJTl8xX1NVUFBMRU1FTlQ9MiwgLypbMDA4MF0qLwpAQCAtMTA2MSw3ICsxMTA3LDcgQEAg
ZW51bSBVQmxvY2tDb2RlIHsKICAgICBVQkxPQ0tfTE9XX1NVUlJPR0FURVMgPTc3LCAvKltEQzAw
XSovCiAKICAgICAvKioKLSAgICAgKiBTYW1lIGFzIFVCTE9DS19QUklWQVRFX1VTRV9BUkVBLgor
ICAgICAqIFNhbWUgYXMgVUJMT0NLX1BSSVZBVEVfVVNFLgogICAgICAqIFVudGlsIFVuaWNvZGUg
My4xLjEsIHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSIsCiAg
ICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgogICAg
ICAqIFVuaWNvZGUgMy4yIHJlbmFtZXMgdGhlIGJsb2NrIGZvciB0aGUgQk1QIFBVQSB0byAiUHJp
dmF0ZSBVc2UgQXJlYSIgYW5kCkBAIC0xMDY5LDkgKzExMTUsOSBAQCBlbnVtIFVCbG9ja0NvZGUg
ewogICAgICAqCiAgICAgICogQHN0YWJsZSBJQ1UgMi4wCiAgICAgICovCi0gICAgVUJMT0NLX1BS
SVZBVEVfVVNFID0gNzgsCisgICAgVUJMT0NLX1BSSVZBVEVfVVNFX0FSRUEgPTc4LCAvKltFMDAw
XSovCiAgICAgLyoqCi0gICAgICogU2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0UuCisgICAgICog
U2FtZSBhcyBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQS4KICAgICAgKiBVbnRpbCBVbmljb2RlIDMu
MS4xLCB0aGUgY29ycmVzcG9uZGluZyBibG9jayBuYW1lIHdhcyAiUHJpdmF0ZSBVc2UiLAogICAg
ICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KICAgICAg
KiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZh
dGUgVXNlIEFyZWEiIGFuZApAQCAtMTA3OSw3ICsxMTI1LDcgQEAgZW51bSBVQmxvY2tDb2RlIHsK
ICAgICAgKgogICAgICAqIEBzdGFibGUgSUNVIDIuMAogICAgICAqLwotICAgIFVCTE9DS19QUklW
QVRFX1VTRV9BUkVBID1VQkxPQ0tfUFJJVkFURV9VU0UsIC8qW0UwMDBdKi8KKyAgICBVQkxPQ0tf
UFJJVkFURV9VU0UgPSBVQkxPQ0tfUFJJVkFURV9VU0VfQVJFQSwKIAogICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KICAgICBVQkxPQ0tfQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUyA9Nzks
IC8qW0Y5MDBdKi8KQEAgLTExMTEsMzMgKzExNTcsMzMgQEAgZW51bSBVQmxvY2tDb2RlIHsKICAg
ICAvKiBOZXcgYmxvY2tzIGluIFVuaWNvZGUgMy4xICovCiAKICAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCi0gICAgVUJMT0NLX09MRF9JVEFMSUMgPSA4OCAgLCAvKlsxMDMwMF0qLworICAgIFVC
TE9DS19PTERfSVRBTElDID0gODgsIC8qWzEwMzAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwotICAgIFVCTE9DS19HT1RISUMgPSA4OSAsIC8qWzEwMzMwXSovCisgICAgVUJMT0NLX0dP
VEhJQyA9IDg5LCAvKlsxMDMzMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBV
QkxPQ0tfREVTRVJFVCA9IDkwICwgLypbMTA0MDBdKi8KKyAgICBVQkxPQ0tfREVTRVJFVCA9IDkw
LCAvKlsxMDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfQlla
QU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxICwgLypbMUQwMDBdKi8KKyAgICBVQkxPQ0tfQlla
QU5USU5FX01VU0lDQUxfU1lNQk9MUyA9IDkxLCAvKlsxRDAwMF0qLwogICAgIC8qKiBAc3RhYmxl
IElDVSAyLjAgKi8KLSAgICBVQkxPQ0tfTVVTSUNBTF9TWU1CT0xTID0gOTIgLCAvKlsxRDEwMF0q
LworICAgIFVCTE9DS19NVVNJQ0FMX1NZTUJPTFMgPSA5MiwgLypbMUQxMDBdKi8KICAgICAvKiog
QHN0YWJsZSBJQ1UgMi4wICovCi0gICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNf
U1lNQk9MUyA9IDkzICAsIC8qWzFENDAwXSovCisgICAgVUJMT0NLX01BVEhFTUFUSUNBTF9BTFBI
QU5VTUVSSUNfU1lNQk9MUyA9IDkzLCAvKlsxRDQwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAy
LjAgKi8KLSAgICBVQkxPQ0tfQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQiAgPSA5
NCAsIC8qWzIwMDAwXSovCisgICAgVUJMT0NLX0NKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5T
SU9OX0IgID0gOTQsIC8qWzIwMDAwXSovCiAgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLwotICAg
IFVCTE9DS19DSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQgPSA5NSAsIC8q
WzJGODAwXSovCisgICAgVUJMT0NLX0NKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExF
TUVOVCA9IDk1LCAvKlsyRjgwMF0qLwogICAgIC8qKiBAc3RhYmxlIElDVSAyLjAgKi8KICAgICBV
QkxPQ0tfVEFHUyA9IDk2LCAvKltFMDAwMF0qLwogCiAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmlj
b2RlIDMuMiAqLwogCisgICAgLyoqIEBzdGFibGUgSUNVIDMuMCAgKi8KKyAgICBVQkxPQ0tfQ1lS
SUxMSUNfU1VQUExFTUVOVCA9IDk3LCAvKlswNTAwXSovCiAgICAgLyoqCiAgICAgICogVW5pY29k
ZSA0LjAuMSByZW5hbWVzIHRoZSAiQ3lyaWxsaWMgU3VwcGxlbWVudGFyeSIgYmxvY2sgdG8gIkN5
cmlsbGljIFN1cHBsZW1lbnQiLgogICAgICAqIEBzdGFibGUgSUNVIDIuMgogICAgICAqLwotICAg
IFVCTE9DS19DWVJJTExJQ19TVVBQTEVNRU5UQVJZID0gOTcsIAotICAgIC8qKiBAc3RhYmxlIElD
VSAzLjAgICovCi0gICAgVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQgPSBVQkxPQ0tfQ1lSSUxM
SUNfU1VQUExFTUVOVEFSWSwgLypbMDUwMF0qLworICAgIFVCTE9DS19DWVJJTExJQ19TVVBQTEVN
RU5UQVJZID0gVUJMT0NLX0NZUklMTElDX1NVUFBMRU1FTlQsIAogICAgIC8qKiBAc3RhYmxlIElD
VSAyLjIgKi8KICAgICBVQkxPQ0tfVEFHQUxPRyA9IDk4LCAvKlsxNzAwXSovCiAgICAgLyoqIEBz
dGFibGUgSUNVIDIuMiAqLwpAQCAtMTM4MSw4ICsxNDI3LDMzIEBAIGVudW0gVUJsb2NrQ29kZSB7
CiAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgIFVCTE9DS19DSktfVU5JRklFRF9JREVP
R1JBUEhTX0VYVEVOU0lPTl9EID0gMjA5LCAvKlsyQjc0MF0qLwogCi0gICAgLyoqIEBzdGFibGUg
SUNVIDIuMCAqLwotICAgIFVCTE9DS19DT1VOVCA9IDIxMCwKKyAgICAvKiBOZXcgYmxvY2tzIGlu
IFVuaWNvZGUgNi4xICovCisKKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tf
QVJBQklDX0VYVEVOREVEX0EgPSAyMTAsIC8qWzA4QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1Ug
NDkgKi8KKyAgICBVQkxPQ0tfQVJBQklDX01BVEhFTUFUSUNBTF9BTFBIQUJFVElDX1NZTUJPTFMg
PSAyMTEsIC8qWzFFRTAwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NL
X0NIQUtNQSA9IDIxMiwgLypbMTExMDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICBVQkxPQ0tfTUVFVEVJX01BWUVLX0VYVEVOU0lPTlMgPSAyMTMsIC8qW0FBRTBdKi8KKyAgICAv
KiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lUSUNfQ1VSU0lWRSA9IDIxNCwg
LypbMTA5QTBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfTUVST0lU
SUNfSElFUk9HTFlQSFMgPSAyMTUsIC8qWzEwOTgwXSovCisgICAgLyoqIEBzdGFibGUgSUNVIDQ5
ICovCisgICAgVUJMT0NLX01JQU8gPSAyMTYsIC8qWzE2RjAwXSovCisgICAgLyoqIEBzdGFibGUg
SUNVIDQ5ICovCisgICAgVUJMT0NLX1NIQVJBREEgPSAyMTcsIC8qWzExMTgwXSovCisgICAgLyoq
IEBzdGFibGUgSUNVIDQ5ICovCisgICAgVUJMT0NLX1NPUkFfU09NUEVORyA9IDIxOCwgLypbMTEw
RDBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAgICBVQkxPQ0tfU1VOREFORVNFX1NV
UFBMRU1FTlQgPSAyMTksIC8qWzFDQzBdKi8KKyAgICAvKiogQHN0YWJsZSBJQ1UgNDkgKi8KKyAg
ICBVQkxPQ0tfVEFLUkkgPSAyMjAsIC8qWzExNjgwXSovCisKKyAgICAvKiogQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgVUJMT0NLX0NPVU5UID0gMjIxLAogCiAgICAgLyoqIEBzdGFibGUgSUNVIDIu
MCAqLwogICAgIFVCTE9DS19JTlZBTElEX0NPREU9LTEKQEAgLTEzOTksNyArMTQ3MCwxMyBAQCB0
eXBlZGVmIGVudW0gVUJsb2NrQ29kZSBVQmxvY2tDb2RlOwogICogQHN0YWJsZSBJQ1UgMi4yCiAg
Ki8KIHR5cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewotICAgIFVfRUFfTkVVVFJBTCwgICAv
KltOXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICogTm90ZTogVUVhc3RBc2lhbldp
ZHRoIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1h
dGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0VBXzxVbmljb2RlIEVhc3RfQXNpYW5fV2lk
dGggdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfRUFfTkVVVFJBTCwgICAvKltOXSovCiAg
ICAgVV9FQV9BTUJJR1VPVVMsIC8qW0FdKi8KICAgICBVX0VBX0hBTEZXSURUSCwgLypbSF0qLwog
ICAgIFVfRUFfRlVMTFdJRFRILCAvKltGXSovCkBAIC0xNDA3LDEwICsxNDg0LDYgQEAgdHlwZWRl
ZiBlbnVtIFVFYXN0QXNpYW5XaWR0aCB7CiAgICAgVV9FQV9XSURFLCAgICAgIC8qW1ddKi8KICAg
ICBVX0VBX0NPVU5UCiB9IFVFYXN0QXNpYW5XaWR0aDsKLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBu
b3RlOgotICogS2VlcCBVRWFzdEFzaWFuV2lkdGggY29uc3RhbnQgdmFsdWVzIGluIHN5bmMgd2l0
aCBuYW1lcyBsaXN0IGluIGdlbnByb3BzL3Byb3BzMi5jLgotICovCiAKIC8qKgogICogU2VsZWN0
b3IgY29uc3RhbnRzIGZvciB1X2NoYXJOYW1lKCkuCkBAIC0xNDI0LDEwICsxNDk3LDIxIEBAIHR5
cGVkZWYgZW51bSBVRWFzdEFzaWFuV2lkdGggewogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KIHR5
cGVkZWYgZW51bSBVQ2hhck5hbWVDaG9pY2UgeworICAgIC8qKiBVbmljb2RlIGNoYXJhY3RlciBu
YW1lIChOYW1lIHByb3BlcnR5KS4gQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9VTklDT0RFX0NI
QVJfTkFNRSwKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJIAorICAgIC8qKgorICAgICAq
IFRoZSBVbmljb2RlXzFfTmFtZSBwcm9wZXJ0eSB2YWx1ZSB3aGljaCBpcyBvZiBsaXR0bGUgcHJh
Y3RpY2FsIHZhbHVlLgorICAgICAqIEJlZ2lubmluZyB3aXRoIElDVSA0OSwgSUNVIEFQSXMgcmV0
dXJuIGFuIGVtcHR5IHN0cmluZyBmb3IgdGhpcyBuYW1lIGNob2ljZS4KKyAgICAgKiBAZGVwcmVj
YXRlZCBJQ1UgNDkKKyAgICAgKi8KICAgICBVX1VOSUNPREVfMTBfQ0hBUl9OQU1FLAotICAgIFVf
RVhURU5ERURfQ0hBUl9OQU1FLAotICAgIFVfQ0hBUl9OQU1FX0FMSUFTLCAgICAgICAgICAvKio8
IENvcnJlY3RlZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8K
KyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisgICAgLyoqIFN0YW5kYXJkIG9y
IHN5bnRoZXRpYyBjaGFyYWN0ZXIgbmFtZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgVV9FWFRF
TkRFRF9DSEFSX05BTUUgPSBVX1VOSUNPREVfQ0hBUl9OQU1FKzIsCisgICAgLyoqIENvcnJlY3Rl
ZCBuYW1lIGZyb20gTmFtZUFsaWFzZXMudHh0LiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0NI
QVJfTkFNRV9BTElBUywKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi4wICovCiAgICAgVV9DSEFSX05B
TUVfQ0hPSUNFX0NPVU5UCiB9IFVDaGFyTmFtZUNob2ljZTsKIApAQCAtMTQ1Nyw3ICsxNTQxLDEz
IEBAIHR5cGVkZWYgZW51bSBVUHJvcGVydHlOYW1lQ2hvaWNlIHsKICAqIEBzdGFibGUgSUNVIDIu
MgogICovCiB0eXBlZGVmIGVudW0gVURlY29tcG9zaXRpb25UeXBlIHsKLSAgICBVX0RUX05PTkUs
ICAgICAgICAgICAgICAvKltub25lXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8qCisgICAgICog
Tm90ZTogVURlY29tcG9zaXRpb25UeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNl
dWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0RUXzxV
bmljb2RlIERlY29tcG9zaXRpb25fVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9E
VF9OT05FLCAgICAgICAgICAgICAgLypbbm9uZV0qLwogICAgIFVfRFRfQ0FOT05JQ0FMLCAgICAg
ICAgIC8qW2Nhbl0qLwogICAgIFVfRFRfQ09NUEFULCAgICAgICAgICAgIC8qW2NvbV0qLwogICAg
IFVfRFRfQ0lSQ0xFLCAgICAgICAgICAgIC8qW2VuY10qLwpAQCAtMTQ4NSw3ICsxNTc1LDEzIEBA
IHR5cGVkZWYgZW51bSBVRGVjb21wb3NpdGlvblR5cGUgewogICogQHN0YWJsZSBJQ1UgMi4yCiAg
Ki8KIHR5cGVkZWYgZW51bSBVSm9pbmluZ1R5cGUgewotICAgIFVfSlRfTk9OX0pPSU5JTkcsICAg
ICAgIC8qW1VdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSm9pbmlu
Z1R5cGUgY29uc3RhbnRzIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQg
bWF0Y2hlcyBsaW5lcyBsaWtlCisgICAgICogICAgIFVfSlRfPFVuaWNvZGUgSm9pbmluZ19UeXBl
IHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX0pUX05PTl9KT0lOSU5HLCAgICAgICAvKltV
XSovCiAgICAgVV9KVF9KT0lOX0NBVVNJTkcsICAgICAgLypbQ10qLwogICAgIFVfSlRfRFVBTF9K
T0lOSU5HLCAgICAgIC8qW0RdKi8KICAgICBVX0pUX0xFRlRfSk9JTklORywgICAgICAvKltMXSov
CkBAIC0xNTAxLDYgKzE1OTcsMTIgQEAgdHlwZWRlZiBlbnVtIFVKb2luaW5nVHlwZSB7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVKb2luaW5nR3JvdXAgeworICAgIC8q
CisgICAgICogTm90ZTogVUpvaW5pbmdHcm91cCBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVw
YXJzZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9K
R188VW5pY29kZSBKb2luaW5nX0dyb3VwIHZhbHVlIG5hbWU+CisgICAgICovCisKICAgICBVX0pH
X05PX0pPSU5JTkdfR1JPVVAsCiAgICAgVV9KR19BSU4sCiAgICAgVV9KR19BTEFQSCwKQEAgLTE1
NTksNiArMTY2MSw3IEBAIHR5cGVkZWYgZW51bSBVSm9pbmluZ0dyb3VwIHsKICAgICBVX0pHX0JV
UlVTSEFTS0lfWUVIX0JBUlJFRSwgLyoqPCBAc3RhYmxlIElDVSA0LjAgKi8KICAgICBVX0pHX0ZB
UlNJX1lFSCwgLyoqPCBAc3RhYmxlIElDVSA0LjQgKi8KICAgICBVX0pHX05ZQSwgICAgICAgLyoq
PCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBVX0pHX1JPSElOR1lBX1lFSCwgIC8qKjwgQHN0YWJs
ZSBJQ1UgNDkgKi8KICAgICBVX0pHX0NPVU5UCiB9IFVKb2luaW5nR3JvdXA7CiAKQEAgLTE1Njks
NyArMTY3MiwxMyBAQCB0eXBlZGVmIGVudW0gVUpvaW5pbmdHcm91cCB7CiAgKiBAc3RhYmxlIElD
VSAzLjQKICAqLwogdHlwZWRlZiBlbnVtIFVHcmFwaGVtZUNsdXN0ZXJCcmVhayB7Ci0gICAgVV9H
Q0JfT1RIRVIgPSAwLCAgICAgICAgICAgIC8qW1hYXSovIC8qU2VlIG5vdGUgISEqLworICAgIC8q
CisgICAgICogTm90ZTogVUdyYXBoZW1lQ2x1c3RlckJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2Vk
IGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAq
ICAgICBVX0dDQl88VW5pY29kZSBHcmFwaGVtZV9DbHVzdGVyX0JyZWFrIHZhbHVlIG5hbWU+Cisg
ICAgICovCisKKyAgICBVX0dDQl9PVEhFUiA9IDAsICAgICAgICAgICAgLypbWFhdKi8KICAgICBV
X0dDQl9DT05UUk9MID0gMSwgICAgICAgICAgLypbQ05dKi8KICAgICBVX0dDQl9DUiA9IDIsICAg
ICAgICAgICAgICAgLypbQ1JdKi8KICAgICBVX0dDQl9FWFRFTkQgPSAzLCAgICAgICAgICAgLypb
RVhdKi8KQEAgLTE1ODEsNyArMTY5MCw4IEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVy
QnJlYWsgewogICAgIFVfR0NCX1YgPSA5LCAgICAgICAgICAgICAgICAvKltWXSovCiAgICAgVV9H
Q0JfU1BBQ0lOR19NQVJLID0gMTAsICAgIC8qW1NNXSovIC8qIGZyb20gaGVyZSBvbjogbmV3IGlu
IFVuaWNvZGUgNS4xL0lDVSA0LjAgKi8KICAgICBVX0dDQl9QUkVQRU5EID0gMTEsICAgICAgICAg
LypbUFBdKi8KLSAgICBVX0dDQl9DT1VOVCA9IDEyCisgICAgVV9HQ0JfUkVHSU9OQUxfSU5ESUNB
VE9SID0gMTIsICAvKltSSV0qLyAvKiBuZXcgaW4gVW5pY29kZSA2LjIvSUNVIDUwICovCisgICAg
VV9HQ0JfQ09VTlQgPSAxMwogfSBVR3JhcGhlbWVDbHVzdGVyQnJlYWs7CiAKIC8qKgpAQCAtMTU5
Miw3ICsxNzAyLDEzIEBAIHR5cGVkZWYgZW51bSBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgewogICog
QHN0YWJsZSBJQ1UgMy40CiAgKi8KIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKLSAg
ICBVX1dCX09USEVSID0gMCwgICAgICAgICAgICAgLypbWFhdKi8gLypTZWUgbm90ZSAhISovCisg
ICAgLyoKKyAgICAgKiBOb3RlOiBVV29yZEJyZWFrVmFsdWVzIGNvbnN0YW50cyBhcmUgcGFyc2Vk
IGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAq
ICAgICBVX1dCXzxVbmljb2RlIFdvcmRfQnJlYWsgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAg
IFVfV0JfT1RIRVIgPSAwLCAgICAgICAgICAgICAvKltYWF0qLwogICAgIFVfV0JfQUxFVFRFUiA9
IDEsICAgICAgICAgICAvKltMRV0qLwogICAgIFVfV0JfRk9STUFUID0gMiwgICAgICAgICAgICAv
KltGT10qLwogICAgIFVfV0JfS0FUQUtBTkEgPSAzLCAgICAgICAgICAvKltLQV0qLwpAQCAtMTYw
NSw3ICsxNzIxLDExIEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAgICBVX1dC
X0xGID0gMTAsICAgICAgICAgICAgICAgLypbTEZdKi8KICAgICBVX1dCX01JRE5VTUxFVCA9MTEs
ICAgICAgICAgLypbTUJdKi8KICAgICBVX1dCX05FV0xJTkUgPTEyLCAgICAgICAgICAgLypbTkxd
Ki8KLSAgICBVX1dCX0NPVU5UID0gMTMKKyAgICBVX1dCX1JFR0lPTkFMX0lORElDQVRPUiA9IDEz
LCAgIC8qW1JJXSovIC8qIG5ldyBpbiBVbmljb2RlIDYuMi9JQ1UgNTAgKi8KKyAgICBVX1dCX0hF
QlJFV19MRVRURVIgPSAxNCwgICAgLypbSExdKi8gLyogZnJvbSBoZXJlIG9uOiBuZXcgaW4gVW5p
Y29kZSA2LjMvSUNVIDUyICovCisgICAgVV9XQl9TSU5HTEVfUVVPVEUgPSAxNSwgICAgIC8qW1NR
XSovCisgICAgVV9XQl9ET1VCTEVfUVVPVEUgPSAxNiwgICAgIC8qW0RRXSovCisgICAgVV9XQl9D
T1VOVCA9IDE3CiB9IFVXb3JkQnJlYWtWYWx1ZXM7CiAKIC8qKgpAQCAtMTYxNSw3ICsxNzM1LDEz
IEBAIHR5cGVkZWYgZW51bSBVV29yZEJyZWFrVmFsdWVzIHsKICAqIEBzdGFibGUgSUNVIDMuNAog
ICovCiB0eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewotICAgIFVfU0JfT1RIRVIgPSAwLCAg
ICAgICAgICAgICAvKltYWF0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgorICAgICAqIE5vdGU6
IFVTZW50ZW5jZUJyZWFrIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5Lgor
ICAgICAqIEl0IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX1NCXzxVbmljb2RlIFNl
bnRlbmNlX0JyZWFrIHZhbHVlIG5hbWU+CisgICAgICovCisKKyAgICBVX1NCX09USEVSID0gMCwg
ICAgICAgICAgICAgLypbWFhdKi8KICAgICBVX1NCX0FURVJNID0gMSwgICAgICAgICAgICAgLypb
QVRdKi8KICAgICBVX1NCX0NMT1NFID0gMiwgICAgICAgICAgICAgLypbQ0xdKi8KICAgICBVX1NC
X0ZPUk1BVCA9IDMsICAgICAgICAgICAgLypbRk9dKi8KQEAgLTE2NDAsNyArMTc2NiwxMyBAQCB0
eXBlZGVmIGVudW0gVVNlbnRlbmNlQnJlYWsgewogICogQHN0YWJsZSBJQ1UgMi4yCiAgKi8KIHR5
cGVkZWYgZW51bSBVTGluZUJyZWFrIHsKLSAgICBVX0xCX1VOS05PV04gPSAwLCAgICAgICAgICAg
LypbWFhdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVTGluZUJyZWFr
IGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0IG1hdGNo
ZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0xCXzxVbmljb2RlIExpbmVfQnJlYWsgdmFsdWUg
bmFtZT4KKyAgICAgKi8KKworICAgIFVfTEJfVU5LTk9XTiA9IDAsICAgICAgICAgICAvKltYWF0q
LwogICAgIFVfTEJfQU1CSUdVT1VTID0gMSwgICAgICAgICAvKltBSV0qLwogICAgIFVfTEJfQUxQ
SEFCRVRJQyA9IDIsICAgICAgICAvKltBTF0qLwogICAgIFVfTEJfQlJFQUtfQk9USCA9IDMsICAg
ICAgICAvKltCMl0qLwpAQCAtMTY1NSw5ICsxNzg3LDkgQEAgdHlwZWRlZiBlbnVtIFVMaW5lQnJl
YWsgewogICAgIFVfTEJfR0xVRSA9IDEyLCAgICAgICAgICAgICAgLypbR0xdKi8KICAgICBVX0xC
X0hZUEhFTiA9IDEzLCAgICAgICAgICAgIC8qW0hZXSovCiAgICAgVV9MQl9JREVPR1JBUEhJQyA9
IDE0LCAgICAgICAvKltJRF0qLwotICAgIFVfTEJfSU5TRVBFUkFCTEUgPSAxNSwKICAgICAvKiog
UmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5pY29kZSA0LjAu
MS9JQ1UgMy4wIEBzdGFibGUgSUNVIDMuMCAqLwotICAgIFVfTEJfSU5TRVBBUkFCTEU9VV9MQl9J
TlNFUEVSQUJMRSwvKltJTl0qLworICAgIFVfTEJfSU5TRVBBUkFCTEUgPSAxNSwgICAgICAgLypb
SU5dKi8KKyAgICBVX0xCX0lOU0VQRVJBQkxFID0gVV9MQl9JTlNFUEFSQUJMRSwKICAgICBVX0xC
X0lORklYX05VTUVSSUMgPSAxNiwgICAgIC8qW0lTXSovCiAgICAgVV9MQl9MSU5FX0ZFRUQgPSAx
NywgICAgICAgICAvKltMRl0qLwogICAgIFVfTEJfTk9OU1RBUlRFUiA9IDE4LCAgICAgICAgLypb
TlNdKi8KQEAgLTE2NzksNyArMTgxMSwxMCBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVhayB7CiAg
ICAgVV9MQl9KVCA9IDM0LCAgICAgICAgICAgICAgICAvKltKVF0qLwogICAgIFVfTEJfSlYgPSAz
NSwgICAgICAgICAgICAgICAgLypbSlZdKi8KICAgICBVX0xCX0NMT1NFX1BBUkVOVEhFU0lTID0g
MzYsIC8qW0NQXSovIC8qIG5ldyBpbiBVbmljb2RlIDUuMi9JQ1UgNC40ICovCi0gICAgVV9MQl9D
T1VOVCA9IDM3CisgICAgVV9MQl9DT05ESVRJT05BTF9KQVBBTkVTRV9TVEFSVEVSID0gMzcsLypb
Q0pdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLworICAgIFVfTEJfSEVCUkVXX0xF
VFRFUiA9IDM4LCAgICAgLypbSExdKi8gLyogbmV3IGluIFVuaWNvZGUgNi4xL0lDVSA0OSAqLwor
ICAgIFVfTEJfUkVHSU9OQUxfSU5ESUNBVE9SID0gMzksLypbUkldKi8gLyogbmV3IGluIFVuaWNv
ZGUgNi4yL0lDVSA1MCAqLworICAgIFVfTEJfQ09VTlQgPSA0MAogfSBVTGluZUJyZWFrOwogCiAv
KioKQEAgLTE2ODksNyArMTgyNCwxMyBAQCB0eXBlZGVmIGVudW0gVUxpbmVCcmVhayB7CiAgKiBA
c3RhYmxlIElDVSAyLjIKICAqLwogdHlwZWRlZiBlbnVtIFVOdW1lcmljVHlwZSB7Ci0gICAgVV9O
VF9OT05FLCAgICAgICAgICAgICAgLypbTm9uZV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAvKgor
ICAgICAqIE5vdGU6IFVOdW1lcmljVHlwZSBjb25zdGFudHMgYXJlIHBhcnNlZCBieSBwcmVwYXJz
ZXVjZC5weS4KKyAgICAgKiBJdCBtYXRjaGVzIGxpbmVzIGxpa2UKKyAgICAgKiAgICAgVV9OVF88
VW5pY29kZSBOdW1lcmljX1R5cGUgdmFsdWUgbmFtZT4KKyAgICAgKi8KKworICAgIFVfTlRfTk9O
RSwgICAgICAgICAgICAgIC8qW05vbmVdKi8KICAgICBVX05UX0RFQ0lNQUwsICAgICAgICAgICAv
KltkZV0qLwogICAgIFVfTlRfRElHSVQsICAgICAgICAgICAgIC8qW2RpXSovCiAgICAgVV9OVF9O
VU1FUklDLCAgICAgICAgICAgLypbbnVdKi8KQEAgLTE3MDMsNyArMTg0NCwxMyBAQCB0eXBlZGVm
IGVudW0gVU51bWVyaWNUeXBlIHsKICAqIEBzdGFibGUgSUNVIDIuNgogICovCiB0eXBlZGVmIGVu
dW0gVUhhbmd1bFN5bGxhYmxlVHlwZSB7Ci0gICAgVV9IU1RfTk9UX0FQUExJQ0FCTEUsICAgLypb
TkFdKi8gLypTZWUgbm90ZSAhISovCisgICAgLyoKKyAgICAgKiBOb3RlOiBVSGFuZ3VsU3lsbGFi
bGVUeXBlIGNvbnN0YW50cyBhcmUgcGFyc2VkIGJ5IHByZXBhcnNldWNkLnB5LgorICAgICAqIEl0
IG1hdGNoZXMgbGluZXMgbGlrZQorICAgICAqICAgICBVX0hTVF88VW5pY29kZSBIYW5ndWxfU3ls
bGFibGVfVHlwZSB2YWx1ZSBuYW1lPgorICAgICAqLworCisgICAgVV9IU1RfTk9UX0FQUExJQ0FC
TEUsICAgLypbTkFdKi8KICAgICBVX0hTVF9MRUFESU5HX0pBTU8sICAgICAvKltMXSovCiAgICAg
VV9IU1RfVk9XRUxfSkFNTywgICAgICAgLypbVl0qLwogICAgIFVfSFNUX1RSQUlMSU5HX0pBTU8s
ICAgIC8qW1RdKi8KQEAgLTE5MDYsNiArMjA1Myw4IEBAIHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1
ZShVUHJvcGVydHkgd2hpY2gpOwogICoKICAqIEZvciBjaGFyYWN0ZXJzIHdpdGhvdXQgYW55IG51
bWVyaWMgdmFsdWVzIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSwKICAqIHRoaXMg
ZnVuY3Rpb24gd2lsbCByZXR1cm4gVV9OT19OVU1FUklDX1ZBTFVFLgorICogTm90ZTogVGhpcyBp
cyBkaWZmZXJlbnQgZnJvbSB0aGUgVW5pY29kZSBTdGFuZGFyZCB3aGljaCBzcGVjaWZpZXMgTmFO
IGFzIHRoZSBkZWZhdWx0IHZhbHVlLgorICogKE5hTiBpcyBub3QgYXZhaWxhYmxlIG9uIGFsbCBw
bGF0Zm9ybXMuKQogICoKICAqIFNpbWlsYXIgdG8gamF2YS5sYW5nLkNoYXJhY3Rlci5nZXROdW1l
cmljVmFsdWUoKSwgYnV0IHVfZ2V0TnVtZXJpY1ZhbHVlKCkKICAqIGFsc28gc3VwcG9ydHMgbmVn
YXRpdmUgdmFsdWVzLCBsYXJnZSB2YWx1ZXMsIGFuZCBmcmFjdGlvbnMsCkBAIC0yMzc5LDcgKzI1
MjgsNyBAQCB1X2lzTWlycm9yZWQoVUNoYXIzMiBjKTsKICAqIGFzIHRoZSBtaXJyb3ItaW1hZ2Ug
b2YgdGhlIGRlZmF1bHQgZ2x5cGggb2YgdGhlIHNwZWNpZmllZAogICogY2hhcmFjdGVyLiBUaGlz
IGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tCiAgKiBjb2RlcGFnZXMg
d2l0aCB2aXN1YWwgb3JkZXIsIGFuZCBmb3IgZGlzcGxheXMgd2l0aG91dCBnbHlwaAotICogc2Vs
ZWNldGlvbiBjYXBhYmlsaXRpZXMuCisgKiBzZWxlY3Rpb24gY2FwYWJpbGl0aWVzLgogICoKICAq
IEBwYXJhbSBjIHRoZSBjb2RlIHBvaW50IHRvIGJlIG1hcHBlZAogICogQHJldHVybiBhbm90aGVy
IFVuaWNvZGUgY29kZSBwb2ludCB0aGF0IG1heSBzZXJ2ZSBhcyBhIG1pcnJvci1pbWFnZQpAQCAt
MjM5NCw2ICsyNTQzLDI1IEBAIFVfU1RBQkxFIFVDaGFyMzIgVV9FWFBPUlQyCiB1X2NoYXJNaXJy
b3IoVUNoYXIzMiBjKTsKIAogLyoqCisgKiBNYXBzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHRv
IGl0cyBwYWlyZWQgYnJhY2tldCBjaGFyYWN0ZXIuCisgKiBGb3IgQmlkaV9QYWlyZWRfQnJhY2tl
dF9UeXBlIT1Ob25lLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHVfY2hhck1pcnJvcigpLgorICogT3Ro
ZXJ3aXNlIGMgaXRzZWxmIGlzIHJldHVybmVkLgorICogU2VlIGh0dHA6Ly93d3cudW5pY29kZS5v
cmcvcmVwb3J0cy90cjkvCisgKgorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQgdG8gYmUgbWFw
cGVkCisgKiBAcmV0dXJuIHRoZSBwYWlyZWQgYnJhY2tldCBjb2RlIHBvaW50LAorICogICAgICAg
ICBvciBjIGl0c2VsZiBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcKKyAqICAgICAgICAgKEJp
ZGlfUGFpcmVkX0JyYWNrZXRfVHlwZT1Ob25lKQorICoKKyAqIEBzZWUgVUNIQVJfQklESV9QQUlS
RURfQlJBQ0tFVAorICogQHNlZSBVQ0hBUl9CSURJX1BBSVJFRF9CUkFDS0VUX1RZUEUKKyAqIEBz
ZWUgdV9jaGFyTWlycm9yCisgKiBAc3RhYmxlIElDVSA1MgorICovCitVX1NUQUJMRSBVQ2hhcjMy
IFVfRVhQT1JUMgordV9nZXRCaWRpUGFpcmVkQnJhY2tldChVQ2hhcjMyIGMpOworCisvKioKICAq
IFJldHVybnMgdGhlIGdlbmVyYWwgY2F0ZWdvcnkgdmFsdWUgZm9yIHRoZSBjb2RlIHBvaW50Lgog
ICoKICAqIFNhbWUgYXMgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlKCkuCkBAIC0yNTUzLDEz
ICsyNzIxLDExIEBAIHVfY2hhck5hbWUoVUNoYXIzMiBjb2RlLCBVQ2hhck5hbWVDaG9pY2UgbmFt
ZUNob2ljZSwKICAgICAgICAgICAgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckxlbmd0aCwK
ICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKKyNpZm5kZWYgVV9ISURFX0RF
UFJFQ0FURURfQVBJIAogLyoqCi0gKiBHZXQgdGhlIElTTyAxMDY0NiBjb21tZW50IGZvciBhIGNo
YXJhY3Rlci4KLSAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1hdGl2ZSBmaWVs
ZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKLSAqIERhdGFiYXNlIChVbmljb2RlRGF0YS50eHQg
ZmllbGQgMTEpIGFuZCBpcyBmcm9tIHRoZSBJU08gMTA2NDYgbmFtZXMgbGlzdC4KLSAqCi0gKiBO
b3RlOiBVbmljb2RlIDUuMiByZW1vdmVzIGFsbCBJU08gY29tbWVudCBkYXRhLCByZXN1bHRpbmcg
aW4gZW1wdHkgc3RyaW5ncwotICogcmV0dXJuZWQgZm9yIGFsbCBjaGFyYWN0ZXJzLgorICogUmV0
dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgKiBVc2VkIHRvIHJldHVybiB0aGUgSVNPIDEwNjQ2IGNv
bW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICogVGhlIFVuaWNvZGUgSVNPX0NvbW1lbnQgcHJvcGVy
dHkgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIHZhbHVlcy4KICAqCiAgKiBAcGFyYW0gYyBUaGUg
Y2hhcmFjdGVyIChjb2RlIHBvaW50KSBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBJU08gY29tbWVudC4K
ICAqICAgICAgICAgICAgIEl0IG11c3QgYmUgPGNvZGU+MDw9Yzw9MHgxMGZmZmY8L2NvZGU+LgpA
QCAtMjU3MCwxOCArMjczNiwxNSBAQCB1X2NoYXJOYW1lKFVDaGFyMzIgY29kZSwgVUNoYXJOYW1l
Q2hvaWNlIG5hbWVDaG9pY2UsCiAgKiBAcGFyYW0gcEVycm9yQ29kZSBQb2ludGVyIHRvIGEgVUVy
cm9yQ29kZSB2YXJpYWJsZTsKICAqICAgICAgICBjaGVjayBmb3IgPGNvZGU+VV9TVUNDRVNTKCk8
L2NvZGU+IGFmdGVyIDxjb2RlPnVfZ2V0SVNPQ29tbWVudCgpPC9jb2RlPgogICogICAgICAgIHJl
dHVybnMuCi0gKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIGNvbW1lbnQsIG9yIDAgaWYgdGhl
cmUgaXMgbm8gY29tbWVudCBmb3IgdGhpcyBjaGFyYWN0ZXIuCi0gKiAgICAgICAgIElmIHRoZSBk
ZXN0Q2FwYWNpdHkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGgsIHRoZW4gdGhl
IGJ1ZmZlcgotICogICAgICAgICBjb250YWlucyB0aGUgdHJ1bmNhdGVkIG5hbWUgYW5kIHRoZSBy
ZXR1cm5lZCBsZW5ndGggaW5kaWNhdGVzIHRoZSBmdWxsCi0gKiAgICAgICAgIGxlbmd0aCBvZiB0
aGUgbmFtZS4KLSAqICAgICAgICAgVGhlIGxlbmd0aCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB6ZXJv
LXRlcm1pbmF0aW9uLgorICogQHJldHVybiAwCiAgKgotICogQHN0YWJsZSBJQ1UgMi4yCisgKiBA
ZGVwcmVjYXRlZCBJQ1UgNDkKICAqLwogVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVfZ2V0
SVNPQ29tbWVudChVQ2hhcjMyIGMsCiAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJf
dCBkZXN0Q2FwYWNpdHksCiAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwogCiAvKioKICAqIEZpbmQgYSBV
bmljb2RlIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2RlIHBvaW50IHZh
bHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWNvbmZpZy5o
IGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWNvbmZpZy5oCmluZGV4IDdkMmQyNmU5
NTUyODE5YjA2ZTY0MTg2M2RiNzFjZmVmNGMwMTljYmMuLmJmYThlNzdiMGYxYTM1MjIwNzZmYzBh
NjY5MjU3ZDUzMjUyNGZkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmlj
b2RlL3Vjb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91Y29uZmln
LmgKQEAgLTEsNiArMSw2IEBACiAvKiAgCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgQ29weXJpZ2h0IChD
KSAyMDAyLTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmln
aHQgKEMpIDIwMDItMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKiAgIGZpbGUgbmFtZTogIHVjb25maWcuaApAQCAtMTgsOSArMTgsMTcgQEAKIAogLyohCiAg
KiBcZmlsZQotICogXGJyaWVmIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFydHMgb2YgSUNVIGxp
YnJhcnkgY29kZSBtb2R1bGVzLgorICogXGJyaWVmIFVzZXItY29uZmlndXJhYmxlIHNldHRpbmdz
CiAgKgotICogQWxsb3dzIHRvIGJ1aWxkIHBhcnRpYWwsIHNtYWxsZXIgbGlicmFyaWVzIGZvciBz
cGVjaWFsIHB1cnBvc2VzLgorICogTWlzY2VsbGFuZW91cyBzd2l0Y2hlczoKKyAqCisgKiBBIG51
bWJlciBvZiBtYWNyb3MgYWZmZWN0IGEgdmFyaWV0eSBvZiBtaW5vciBhc3BlY3RzIG9mIElDVS4K
KyAqIE1vc3Qgb2YgdGhlbSB1c2VkIHRvIGJlIGRlZmluZWQgZWxzZXdoZXJlIChlLmcuLCBpbiB1
dHlwZXMuaCBvciBwbGF0Zm9ybS5oKQorICogYW5kIG1vdmVkIGhlcmUgdG8gbWFrZSB0aGVtIGVh
c2llciB0byBmaW5kLgorICoKKyAqIFN3aXRjaGVzIGZvciBleGNsdWRpbmcgcGFydHMgb2YgSUNV
IGxpYnJhcnkgY29kZSBtb2R1bGVzOgorICoKKyAqIENoYW5naW5nIHRoZXNlIG1hY3JvcyBhbGxv
d3MgYnVpbGRpbmcgcGFydGlhbCwgc21hbGxlciBsaWJyYXJpZXMgZm9yIHNwZWNpYWwgcHVycG9z
ZXMuCiAgKiBCeSBkZWZhdWx0LCBhbGwgbW9kdWxlcyBhcmUgYnVpbHQuCiAgKiBUaGUgc3dpdGNo
ZXMgYXJlIGZhaXJseSBjb2Fyc2UsIGNvbnRyb2xsaW5nIGxhcmdlIG1vZHVsZXMuCiAgKiBCYXNp
YyBzZXJ2aWNlcyBjYW5ub3QgYmUgdHVybmVkIG9mZi4KQEAgLTM4LDE1ICs0NiwxNTMgQEAKIC8q
KgogICogSWYgdGhpcyBzd2l0Y2ggaXMgZGVmaW5lZCwgSUNVIHdpbGwgYXR0ZW1wdCB0byBsb2Fk
IGEgaGVhZGVyIGZpbGUgbmFtZWQgInVjb25maWdfbG9jYWwuaCIKICAqIHByaW9yIHRvIGRldGVy
bWluaW5nIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHVjb25maWcgdmFyaWFibGVzLgotICogCisgKgog
ICogQGludGVybmFsIElDVSA0LjAKLSAqIAogICovCiAjaWYgZGVmaW5lZChVQ09ORklHX1VTRV9M
T0NBTCkKICNpbmNsdWRlICJ1Y29uZmlnX2xvY2FsLmgiCiAjZW5kaWYKIAogLyoqCisgKiBcZGVm
IFVfREVCVUcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBpbmNsdWRlIGRlYnVnZ2luZyBjb2Rl
LgorICogQXV0b21hdGljYWxseSBzZXQgb24gV2luZG93cywgYnV0IG1vc3QgY29tcGlsZXJzIGRv
IG5vdCBoYXZlCisgKiByZWxhdGVkIHByZWRlZmluZWQgbWFjcm9zLgorICogQGludGVybmFsCisg
Ki8KKyNpZmRlZiBVX0RFQlVHCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgZGVmaW5lZChfREVCVUcpCisgICAgLyoKKyAgICAgKiBfREVCVUcgaXMgZGVmaW5lZCBi
eSBWaXN1YWwgU3R1ZGlvIGRlYnVnIGNvbXBpbGF0aW9uLgorICAgICAqIERvICpub3QqIHRlc3Qg
Zm9yIGl0cyBOREVCVUcgbWFjcm86IEl0IGlzIGFuIG9ydGhvZ29uYWwgbWFjcm8KKyAgICAgKiB3
aGljaCBkaXNhYmxlcyBhc3NlcnQoKS4KKyAgICAgKi8KKyMgICBkZWZpbmUgVV9ERUJVRyAxCisj
IGVsc2UKKyMgICBkZWZpbmUgVV9ERUJVRyAwCisjZW5kaWYKKworLyoqCisgKiBEZXRlcm1pbmVz
IHdoZXRlciB0byBlbmFibGUgYXV0byBjbGVhbnVwIG9mIGxpYnJhcmllcy4gCisgKiBAaW50ZXJu
YWwKKyAqLworI2lmbmRlZiBVQ0xOX05PX0FVVE9fQ0xFQU5VUAorI2RlZmluZSBVQ0xOX05PX0FV
VE9fQ0xFQU5VUCAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRElTQUJMRV9SRU5BTUlORwor
ICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGRpc2FibGUgcmVuYW1pbmcgb3Igbm90LgorICogQGlu
dGVybmFsCisgKi8KKyNpZm5kZWYgVV9ESVNBQkxFX1JFTkFNSU5HCisjZGVmaW5lIFVfRElTQUJM
RV9SRU5BTUlORyAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfTk9fREVGQVVMVF9JTkNMVURF
X1VURl9IRUFERVJTCisgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdXR5cGVzLmggaW5jbHVkZXMgdXRm
LmgsIHV0ZjguaCwgdXRmMTYuaCBhbmQgdXRmX29sZC5oLgorICogdXR5cGVzLmggaW5jbHVkZXMg
dGhvc2UgaGVhZGVycyBpZiB0aGlzIG1hY3JvIGlzIGRlZmluZWQgdG8gMC4KKyAqIE90aGVyd2lz
ZSwgZWFjaCB0aG9zZSBoZWFkZXJzIG11c3QgYmUgaW5jbHVkZWQgZXhwbGljaXRseSB3aGVuIHVz
aW5nIG9uZSBvZiB0aGVpciBtYWNyb3MuCisgKiBEZWZhdWx0cyB0byAwIGZvciBiYWNrd2FyZCBj
b21wYXRpYmlsaXR5LCBleGNlcHQgaW5zaWRlIElDVS4KKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8K
KyNpZmRlZiBVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUworICAgIC8qIFVzZSB0aGUg
cHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9DT01CSU5FRF9JTVBMRU1FTlRB
VElPTikgfHwgZGVmaW5lZChVX0NPTU1PTl9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0kx
OE5fSU1QTEVNRU5UQVRJT04pIHx8IFwKKyAgICAgIGRlZmluZWQoVV9JT19JTVBMRU1FTlRBVElP
TikgfHwgZGVmaW5lZChVX0xBWU9VVF9JTVBMRU1FTlRBVElPTikgfHwgZGVmaW5lZChVX0xBWU9V
VEVYX0lNUExFTUVOVEFUSU9OKSB8fCBcCisgICAgICBkZWZpbmVkKFVfVE9PTFVUSUxfSU1QTEVN
RU5UQVRJT04pCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIDEK
KyNlbHNlCisjICAgZGVmaW5lIFVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTIDAKKyNl
bmRpZgorCisvKioKKyAqIFxkZWYgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTgorICogRGV0ZXJt
aW5lcyB3aGV0aGVyIHRvIG92ZXJyaWRlIG5ldyBhbmQgZGVsZXRlLgorICogSUNVIGlzIG5vcm1h
bGx5IGJ1aWx0IHN1Y2ggdGhhdCBhbGwgb2YgaXRzIEMrKyBjbGFzc2VzLCB2aWEgdGhlaXIgVU1l
bW9yeSBiYXNlLAorICogb3ZlcnJpZGUgb3BlcmF0b3JzIG5ldyBhbmQgZGVsZXRlIHRvIHVzZSBp
dHMgaW50ZXJuYWwsIGN1c3RvbWl6YWJsZSwKKyAqIG5vbi1leGNlcHRpb24tdGhyb3dpbmcgbWVt
b3J5IGFsbG9jYXRpb24gZnVuY3Rpb25zLiAoRGVmYXVsdCB2YWx1ZSAxIGZvciB0aGlzIG1hY3Jv
LikKKyAqCisgKiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gdGhlIGFwcGxpY2F0
aW9uIGFuZCBpdHMgbGlicmFyaWVzIHVzZSBtdWx0aXBsZSBoZWFwcy4KKyAqIEZvciBleGFtcGxl
LCBvbiBXaW5kb3dzLCB0aGlzIGFsbG93cyB0aGUgSUNVIERMTCB0byBiZSB1c2VkIGJ5CisgKiBh
cHBsaWNhdGlvbnMgdGhhdCBzdGF0aWNhbGx5IGxpbmsgdGhlIEMgUnVudGltZSBsaWJyYXJ5Lgor
ICoKKyAqIEBzdGFibGUgSUNVIDIuMgorICovCisjaWZuZGVmIFVfT1ZFUlJJREVfQ1hYX0FMTE9D
QVRJT04KKyNkZWZpbmUgVV9PVkVSUklERV9DWFhfQUxMT0NBVElPTiAxCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVfRU5BQkxFX1RSQUNJTkcKKyAqIERldGVybWluZXMgd2hldGhlciB0byBlbmFi
bGUgdHJhY2luZy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX1RSQUNJTkcK
KyNkZWZpbmUgVV9FTkFCTEVfVFJBQ0lORyAwCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfRU5B
QkxFX0RZTE9BRAorICogV2hldGhlciB0byBlbmFibGUgRHluYW1pYyBsb2FkaW5nIGluIElDVS4K
KyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfRU5BQkxFX0RZTE9BRAorI2RlZmluZSBVX0VO
QUJMRV9EWUxPQUQgMQorI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0NIRUNLX0RZTE9BRAorICog
V2hldGhlciB0byB0ZXN0IER5bmFtaWMgbG9hZGluZyBhcyBhbiBPUyBjYXBhYmlsaXR5LgorICog
QGludGVybmFsCisgKi8KKyNpZm5kZWYgVV9DSEVDS19EWUxPQUQKKyNkZWZpbmUgVV9DSEVDS19E
WUxPQUQgMQorI2VuZGlmCisKKworLyoqCisgKiBcZGVmIFVfREVGQVVMVF9TSE9XX0RSQUZUCisg
KiBEbyB3ZSBhbGxvdyBJQ1UgdXNlcnMgdG8gdXNlIHRoZSBkcmFmdCBBUElzIGJ5IGRlZmF1bHQ/
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX0RFRkFVTFRfU0hPV19EUkFGVAorI2RlZmlu
ZSBVX0RFRkFVTFRfU0hPV19EUkFGVCAxCisjZW5kaWYKKworLyo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q
LworLyogQ3VzdG9tIGljdSBlbnRyeSBwb2ludCByZW5hbWluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisvKioK
KyAqIFxkZWYgVV9IQVZFX0xJQl9TVUZGSVgKKyAqIDEgaWYgYSBjdXN0b20gbGlicmFyeSBzdWZm
aXggaXMgc2V0LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfTElCX1NVRkZJWAor
ICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoVV9MSUJf
U1VGRklYX0NfTkFNRSkKKyMgICBkZWZpbmUgVV9IQVZFX0xJQl9TVUZGSVggMQorI2VuZGlmCisK
Ky8qKgorICogXGRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORworICogRGVmaW5lcyB0aGUg
bGlicmFyeSBzdWZmaXggYXMgYSBzdHJpbmcgd2l0aCBDIHN5bnRheC4KKyAqIEBpbnRlcm5hbAor
ICovCisjaWZkZWYgVV9MSUJfU1VGRklYX0NfTkFNRV9TVFJJTkcKKyAgICAvKiBVc2UgdGhlIHBy
ZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKFVfTElCX1NVRkZJWF9DX05BTUUpCisj
ICAgZGVmaW5lIFVfTElCX1NVRkZJWF9DX05BTUVfU1RSSU5HICNVX0xJQl9TVUZGSVhfQ19OQU1F
CisjZWxzZQorIyAgIGRlZmluZSBVX0xJQl9TVUZGSVhfQ19OQU1FX1NUUklORyAiIgorI2VuZGlm
CisKKy8qIGNvbW1vbi9pMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgogICogXGRlZiBVQ09ORklHX09OTFlf
Q09MTEFUSU9OCiAgKiBUaGlzIHN3aXRjaCB0dXJucyBvZmYgbW9kdWxlcyB0aGF0IGFyZSBub3Qg
bmVlZGVkIGZvciBjb2xsYXRpb24uCiAgKgpAQCAtMTQ2LDYgKzI5Miw5IEBACiAjICAgZGVmaW5l
IFVDT05GSUdfTk9fTk9STUFMSVpBVElPTiAwCiAjZWxpZiBVQ09ORklHX05PX05PUk1BTElaQVRJ
T04KICAgICAvKiBjb21tb24gbGlicmFyeSAqLworICAgIC8qIElDVSA1MCBDSksgZGljdGlvbmFy
eSBCcmVha0l0ZXJhdG9yIHVzZXMgbm9ybWFsaXphdGlvbiAqLworIyAgIGRlZmluZSBVQ09ORklH
X05PX0JSRUFLX0lURVJBVElPTiAxCisgICAgLyogSUROQSAoVVRTICM0NikgaXMgaW1wbGVtZW50
ZWQgdmlhIG5vcm1hbGl6YXRpb24gKi8KICMgICBkZWZpbmUgVUNPTkZJR19OT19JRE5BIDEKIAog
ICAgIC8qIGkxOG4gbGlicmFyeSAqLwpAQCAtMTc2LDYgKzMyNSwxNyBAQAogIyAgIGRlZmluZSBV
Q09ORklHX05PX0lETkEgMAogI2VuZGlmCiAKKy8qKgorICogXGRlZiBVQ09ORklHX01TR1BBVF9E
RUZBVUxUX0FQT1NUUk9QSEVfTU9ERQorICogRGV0ZXJtaW5lcyB0aGUgZGVmYXVsdCBVTWVzc2Fn
ZVBhdHRlcm5BcG9zdHJvcGhlTW9kZS4KKyAqIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhh
dCBlbnVtLgorICoKKyAqIEBzdGFibGUgSUNVIDQuOAorICovCisjaWZuZGVmIFVDT05GSUdfTVNH
UEFUX0RFRkFVTFRfQVBPU1RST1BIRV9NT0RFCisjICAgZGVmaW5lIFVDT05GSUdfTVNHUEFUX0RF
RkFVTFRfQVBPU1RST1BIRV9NT0RFIFVNU0dQQVRfQVBPU19ET1VCTEVfT1BUSU9OQUwKKyNlbmRp
ZgorCiAvKiBpMThuIGxpYnJhcnkgc3dpdGNoZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAvKioKQEAgLTIyOCw0ICszODgsMjUgQEAK
ICMgICBkZWZpbmUgVUNPTkZJR19OT19TRVJWSUNFIDEKICNlbmRpZgogCisvKioKKyAqIFxkZWYg
VUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQKKyAqIFRoaXMgc3dpdGNoIHR1cm5zIG9uIHRoZSAi
cGFyc2UgYWxsIGlucHV0IiBhdHRyaWJ1dGUuIEJpbmFyeSBpbmNvbXBhdGlibGUuCisgKgorICog
QGludGVybmFsCisgKi8KKyNpZm5kZWYgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQKKyMgICBk
ZWZpbmUgVUNPTkZJR19IQVZFX1BBUlNFQUxMSU5QVVQgMQorI2VuZGlmCisKKworLyoqCisgKiBc
ZGVmIFVDT05GSUdfRk9STUFUX0ZBU1RQQVRIU180OQorICogVGhpcyBzd2l0Y2ggdHVybnMgb24g
b3RoZXIgZm9ybWF0dGluZyBmYXN0cGF0aHMuIEJpbmFyeSBpbmNvbXBhdGlibGUgaW4gb2JqZWN0
IERlY2ltYWxGb3JtYXQgYW5kIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKgorICogQGludGVybmFs
CisgKi8KKyNpZm5kZWYgVUNPTkZJR19GT1JNQVRfRkFTVFBBVEhTXzQ5CisjICAgZGVmaW5lIFVD
T05GSUdfRk9STUFUX0ZBU1RQQVRIU180OSAxCisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aWRuYS5oIGIvU291cmNlL1dlYktpdC9t
YWMvaWN1L3VuaWNvZGUvdWlkbmEuaAppbmRleCAwNGI0MzlkOTcwZjQ1ODI0YWI5ZmU4YzdlZjQ3
NzEwNjMzNGVhZDFkLi4yZWZiMTMwZjk0ZTQzOThhOWU1YWMyNmE3YWRjNzEzNTMzMjI3ZDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aWRuYS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VpZG5hLmgKQEAgLTEsNyArMSw3IEBACiAvKgog
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcHlyaWdodCAoQykgMjAw
My0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAgKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCkBAIC00MiwxMiArNDIsMTQgQEAKIGVudW0gewogICAgIC8qKgogICAgICAqIERlZmF1
bHQgb3B0aW9ucyB2YWx1ZTogTm9uZSBvZiB0aGUgb3RoZXIgb3B0aW9ucyBhcmUgc2V0LgorICAg
ICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9yeSBtZXRob2RzLgogICAgICAq
IEBzdGFibGUgSUNVIDIuNgogICAgICAqLwogICAgIFVJRE5BX0RFRkFVTFQ9MCwKICAgICAvKioK
ICAgICAgKiBPcHRpb24gdG8gYWxsb3cgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBpbiBkb21haW4g
bmFtZXMgYW5kIGxhYmVscy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBV
VFM0NiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIgYW5k
IGZhY3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRo
ZSBVVFM0NiBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVVRTICM0NiBkaXNhbGxvd3MgdW5hc3Np
Z25lZCBjb2RlIHBvaW50cy4pCiAgICAgICogQHN0YWJsZSBJQ1UgMi42CiAgICAgICovCkBAIC01
Niw0NyArNTgsNjIgQEAgZW51bSB7CiAgICAgICogT3B0aW9uIHRvIGNoZWNrIHdoZXRoZXIgdGhl
IGlucHV0IGNvbmZvcm1zIHRvIHRoZSBTVEQzIEFTQ0lJIHJ1bGVzLAogICAgICAqIGZvciBleGFt
cGxlIHRoZSByZXN0cmljdGlvbiBvZiBsYWJlbHMgdG8gTERIIGNoYXJhY3RlcnMKICAgICAgKiAo
QVNDSUkgTGV0dGVycywgRGlnaXRzIGFuZCBIeXBoZW4tTWludXMpLgorICAgICAqIEZvciB1c2Ug
aW4gc3RhdGljIHdvcmtlciBhbmQgZmFjdG9yeSBtZXRob2RzLgogICAgICAqIEBzdGFibGUgSUNV
IDIuNgogICAgICAqLwogICAgIFVJRE5BX1VTRV9TVEQzX1JVTEVTPTIsCiAgICAgLyoqCiAgICAg
ICogSUROQSBvcHRpb24gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGlucHV0IGNvbmZvcm1zIHRv
IHRoZSBCaURpIHJ1bGVzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkgdGhlIElE
TkEyMDAzIGltcGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdvcmtlciBh
bmQgZmFjdG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkg
dGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChJRE5BMjAwMyBhbHdheXMgcGVy
Zm9ybXMgYSBCaURpIGNoZWNrLikKLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFi
bGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0NIRUNLX0JJREk9NCwKICAgICAvKioKICAg
ICAgKiBJRE5BIG9wdGlvbiB0byBjaGVjayBmb3Igd2hldGhlciB0aGUgaW5wdXQgY29uZm9ybXMg
dG8gdGhlIENPTlRFWFRKIHJ1bGVzLgotICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgYnkg
dGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgorICAgICAqIEZvciB1c2UgaW4gc3RhdGljIHdv
cmtlciBhbmQgZmFjdG9yeSBtZXRob2RzLgorICAgICAqIDxwPlRoaXMgb3B0aW9uIGlzIGlnbm9y
ZWQgYnkgdGhlIElETkEyMDAzIGltcGxlbWVudGF0aW9uLgogICAgICAqIChUaGUgQ09OVEVYVEog
Y2hlY2sgaXMgbmV3IGluIElETkEyMDA4LikKLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAq
IEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0NIRUNLX0NPTlRFWFRKPTgsCiAg
ICAgLyoqCiAgICAgICogSUROQSBvcHRpb24gZm9yIG5vbnRyYW5zaXRpb25hbCBwcm9jZXNzaW5n
IGluIFRvQVNDSUkoKS4KLSAgICAgKiBCeSBkZWZhdWx0LCBUb0FTQ0lJKCkgdXNlcyB0cmFuc2l0
aW9uYWwgcHJvY2Vzc2luZy4KLSAgICAgKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGJ5IHRoZSBJ
RE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRpYyB3b3JrZXIg
YW5kIGZhY3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5CeSBkZWZhdWx0LCBUb0FTQ0lJKCkgdXNl
cyB0cmFuc2l0aW9uYWwgcHJvY2Vzc2luZy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBpZ25v
cmVkIGJ5IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVGhpcyBpcyBvbmx5
IHJlbGV2YW50IGZvciBjb21wYXRpYmlsaXR5IG9mIG5ld2VyIElETkEgaW1wbGVtZW50YXRpb25z
IHdpdGggSUROQTIwMDMuKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJ
Q1UgNC42CiAgICAgICovCiAgICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX0FTQ0lJPTB4MTAs
CiAgICAgLyoqCiAgICAgICogSUROQSBvcHRpb24gZm9yIG5vbnRyYW5zaXRpb25hbCBwcm9jZXNz
aW5nIGluIFRvVW5pY29kZSgpLgotICAgICAqIEJ5IGRlZmF1bHQsIFRvVW5pY29kZSgpIHVzZXMg
dHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcuCi0gICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBi
eSB0aGUgSUROQTIwMDMgaW1wbGVtZW50YXRpb24uCisgICAgICogRm9yIHVzZSBpbiBzdGF0aWMg
d29ya2VyIGFuZCBmYWN0b3J5IG1ldGhvZHMuCisgICAgICogPHA+QnkgZGVmYXVsdCwgVG9Vbmlj
b2RlKCkgdXNlcyB0cmFuc2l0aW9uYWwgcHJvY2Vzc2luZy4KKyAgICAgKiA8cD5UaGlzIG9wdGlv
biBpcyBpZ25vcmVkIGJ5IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KICAgICAgKiAoVGhp
cyBpcyBvbmx5IHJlbGV2YW50IGZvciBjb21wYXRpYmlsaXR5IG9mIG5ld2VyIElETkEgaW1wbGVt
ZW50YXRpb25zIHdpdGggSUROQTIwMDMuKQotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICog
QHN0YWJsZSBJQ1UgNC42CiAgICAgICovCi0gICAgVUlETkFfTk9OVFJBTlNJVElPTkFMX1RPX1VO
SUNPREU9MHgyMAorICAgIFVJRE5BX05PTlRSQU5TSVRJT05BTF9UT19VTklDT0RFPTB4MjAsCisg
ICAgLyoqCisgICAgICogSUROQSBvcHRpb24gdG8gY2hlY2sgZm9yIHdoZXRoZXIgdGhlIGlucHV0
IGNvbmZvcm1zIHRvIHRoZSBDT05URVhUTyBydWxlcy4KKyAgICAgKiBGb3IgdXNlIGluIHN0YXRp
YyB3b3JrZXIgYW5kIGZhY3RvcnkgbWV0aG9kcy4KKyAgICAgKiA8cD5UaGlzIG9wdGlvbiBpcyBp
Z25vcmVkIGJ5IHRoZSBJRE5BMjAwMyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiAoVGhlIENPTlRF
WFRPIGNoZWNrIGlzIG5ldyBpbiBJRE5BMjAwOC4pCisgICAgICogPHA+VGhpcyBpcyBmb3IgdXNl
IGJ5IHJlZ2lzdHJpZXMgZm9yIElETkEyMDA4IGNvbmZvcm1hbmNlLgorICAgICAqIFVUUyAjNDYg
ZG9lcyBub3QgcmVxdWlyZSB0aGUgQ09OVEVYVE8gY2hlY2suCisgICAgICogQHN0YWJsZSBJQ1Ug
NDkKKyAgICAgKi8KKyAgICBVSUROQV9DSEVDS19DT05URVhUTz0weDQwCiB9OwogCiAvKioKICAq
IE9wYXF1ZSBDIHNlcnZpY2Ugb2JqZWN0IHR5cGUgZm9yIHRoZSBuZXcgSUROQSBBUEkuCi0gKiBA
ZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KIHN0cnVjdCBVSUROQTsKLXR5
cGVkZWYgc3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVSURO
QS4gQGRyYWZ0IElDVSA0LjYgKi8KK3R5cGVkZWYgc3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBD
IHR5cGVkZWYgZm9yIHN0cnVjdCBVSUROQS4gQHN0YWJsZSBJQ1UgNC42ICovCiAKIC8qKgogICog
UmV0dXJucyBhIFVJRE5BIGluc3RhbmNlIHdoaWNoIGltcGxlbWVudHMgVVRTICM0Ni4KQEAgLTEx
MywxNyArMTMwLDE3IEBAIHR5cGVkZWYgc3RydWN0IFVJRE5BIFVJRE5BOyAgLyoqPCBDIHR5cGVk
ZWYgZm9yIHN0cnVjdCBVSUROQS4gQGRyYWZ0IElDVSA0LjYgKi8KICAqICAgICAgICAgICAgICAg
ICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdp
dGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUgVXNlciBHdWlk
ZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIHRoZSBVVFMgIzQ2IFVJRE5BIGluc3RhbmNlLCBp
ZiBzdWNjZXNzZnVsCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8K
LVVfRFJBRlQgVUlETkEgKiBVX0VYUE9SVDIKK1VfU1RBQkxFIFVJRE5BICogVV9FWFBPUlQyCiB1
aWRuYV9vcGVuVVRTNDYodWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CiAKIC8qKgogICogQ2xvc2VzIGEgVUlETkEgaW5zdGFuY2UuCiAgKiBAcGFyYW0gaWRuYSBVSURO
QSBpbnN0YW5jZSB0byBiZSBjbG9zZWQKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElD
VSA0LjYKICAqLwotVV9EUkFGVCB2b2lkIFVfRVhQT1JUMgorVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIKIHVpZG5hX2Nsb3NlKFVJRE5BICppZG5hKTsKIAogI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJ
CkBAIC0xMzcsNyArMTU0LDcgQEAgVV9OQU1FU1BBQ0VfQkVHSU4KICAqCiAgKiBAc2VlIExvY2Fs
UG9pbnRlckJhc2UKICAqIEBzZWUgTG9jYWxQb2ludGVyCi0gKiBAZHJhZnQgSUNVIDQuNgorICog
QHN0YWJsZSBJQ1UgNC42CiAgKi8KIFVfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVJ
RE5BUG9pbnRlciwgVUlETkEsIHVpZG5hX2Nsb3NlKTsKIApAQCAtMTUzLDMyICsxNzAsMzEgQEAg
VV9OQU1FU1BBQ0VfRU5ECiAgKiBpbnQzMl90IGxlbmd0aCA9IHVpZG5hX25hbWVUb0FTQ0lJKC4u
LiwgJmluZm8sICZlcnJvckNvZGUpOwogICogaWYoVV9TVUNDRVNTKGVycm9yQ29kZSkgJiYgaW5m
by5lcnJvcnMhPTApIHsgLi4uIH0KICAqIFxlbmRjb2RlCi0gKiBAZHJhZnQgSUNVIDQuNgorICog
QHN0YWJsZSBJQ1UgNC42CiAgKi8KLXN0cnVjdCBVSUROQUluZm8gewotICAgIC8qKiBzaXplb2Yo
VUlETkFJbmZvKSBAZHJhZnQgSUNVIDQuNiAqLwordHlwZWRlZiBzdHJ1Y3QgVUlETkFJbmZvIHsK
KyAgICAvKiogc2l6ZW9mKFVJRE5BSW5mbykgQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgaW50MTZf
dCBzaXplOwogICAgIC8qKgogICAgICAqIFNldCB0byBUUlVFIGlmIHRyYW5zaXRpb25hbCBhbmQg
bm9udHJhbnNpdGlvbmFsIHByb2Nlc3NpbmcgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy4KICAg
ICAgKiBGb3IgZGV0YWlscyBzZWUgQysrIElETkFJbmZvOjppc1RyYW5zaXRpb25hbERpZmZlcmVu
dCgpLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAg
ICovCiAgICAgVUJvb2wgaXNUcmFuc2l0aW9uYWxEaWZmZXJlbnQ7CiAgICAgVUJvb2wgcmVzZXJ2
ZWRCMzsgIC8qKjwgUmVzZXJ2ZWQgZmllbGQsIGRvIG5vdCB1c2UuIEBpbnRlcm5hbCAqLwogICAg
IC8qKgogICAgICAqIEJpdCBzZXQgaW5kaWNhdGluZyBJRE5BIHByb2Nlc3NpbmcgZXJyb3JzLiAw
IGlmIG5vIGVycm9ycy4KICAgICAgKiBTZWUgVUlETkFfRVJST1JfLi4uIGNvbnN0YW50cy4KLSAg
ICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAg
IHVpbnQzMl90IGVycm9yczsKICAgICBpbnQzMl90IHJlc2VydmVkSTI7ICAvKio8IFJlc2VydmVk
IGZpZWxkLCBkbyBub3QgdXNlLiBAaW50ZXJuYWwgKi8KICAgICBpbnQzMl90IHJlc2VydmVkSTM7
ICAvKio8IFJlc2VydmVkIGZpZWxkLCBkbyBub3QgdXNlLiBAaW50ZXJuYWwgKi8KLX07Ci10eXBl
ZGVmIHN0cnVjdCBVSUROQUluZm8gVUlETkFJbmZvOworfSBVSUROQUluZm87CiAKIC8qKgogICog
U3RhdGljIGluaXRpYWxpemVyIGZvciBhIFVJRE5BSW5mbyBzdHJ1Y3QuCi0gKiBAZHJhZnQgSUNV
IDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KICNkZWZpbmUgVUlETkFfSU5GT19JTklUSUFM
SVpFUiB7IFwKICAgICAoaW50MTZfdClzaXplb2YoVUlETkFJbmZvKSwgXApAQCAtMjA2LDkgKzIy
Miw5IEBAIHR5cGVkZWYgc3RydWN0IFVJRE5BSW5mbyBVSUROQUluZm87CiAgKiAgICAgICAgICAg
ICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVz
ZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIg
R3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3Ro
Ci0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50
MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9sYWJlbFRv
QVNDSUkoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIg
KmxhYmVsLCBpbnQzMl90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwg
aW50MzJfdCBjYXBhY2l0eSwKQEAgLTIzMyw5ICsyNDksOSBAQCB1aWRuYV9sYWJlbFRvQVNDSUko
Y29uc3QgVUlETkEgKmlkbmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVj
ayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICog
QHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICog
QHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9sYWJlbFRvVW5pY29kZShjb25zdCBVSUROQSAqaWRu
YSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpsYWJlbCwgaW50MzJfdCBsZW5n
dGgsCiAgICAgICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBjYXBhY2l0eSwK
QEAgLTI2Miw5ICsyNzgsOSBAQCB1aWRuYV9sYWJlbFRvVW5pY29kZShjb25zdCBVSUROQSAqaWRu
YSwKICAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUo
KSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hh
aW5pbmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0
aW9uIHN0cmluZyBsZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYK
ICAqLwotVV9EUkFGVCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKIHVpZG5hX25hbWVUb0FTQ0lJKGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAg
ICAgY29uc3QgVUNoYXIgKm5hbWUsIGludDMyX3QgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAg
VUNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0yODksOSArMzA1LDkgQEAgdWlkbmFf
bmFtZVRvQVNDSUkoY29uc3QgVUlETkEgKmlkbmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVk
aWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAg
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRl
dGFpbHMuKQogICogQHJldHVybiBkZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQg
SUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9S
VDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCiB1aWRuYV9uYW1lVG9Vbmljb2RlKGNvbnN0
IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbmFtZSwgaW50
MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGNh
cGFjaXR5LApAQCAtMzE0LDkgKzMzMCw5IEBAIHVpZG5hX25hbWVUb1VuaWNvZGUoY29uc3QgVUlE
TkEgKmlkbmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9G
QUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBk
ZXN0aW5hdGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJ
Q1UgNC42CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3Qg
VV9FWFBPUlQyCiB1aWRuYV9sYWJlbFRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLCBpbnQzMl90IGxlbmd0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBA
IC0zMzcsOSArMzUzLDkgQEAgdWlkbmFfbGFiZWxUb0FTQ0lJX1VURjgoY29uc3QgVUlETkEgKmlk
bmEsCiAgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJF
KCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNo
YWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQogICogQHJldHVybiBkZXN0aW5h
dGlvbiBzdHJpbmcgbGVuZ3RoCi0gKiBAZHJhZnQgSUNVIDQuNgorICogQHN0YWJsZSBJQ1UgNC42
CiAgKi8KLVVfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK1VfU1RBQkxFIGludDMyX3QgVV9FWFBP
UlQyCiB1aWRuYV9sYWJlbFRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbGFiZWwsIGludDMyX3QgbGVuZ3RoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0z
NjAsOSArMzc2LDkgQEAgdWlkbmFfbGFiZWxUb1VuaWNvZGVVVEY4KGNvbnN0IFVJRE5BICppZG5h
LAogICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgp
IG9uIG91dHB1dCBvciB1c2Ugd2l0aAogICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFp
bmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKICAqIEByZXR1cm4gZGVzdGluYXRp
b24gc3RyaW5nIGxlbmd0aAotICogQGRyYWZ0IElDVSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgog
ICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQyCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JU
MgogdWlkbmFfbmFtZVRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgY2FwYWNpdHksCkBAIC0zODMsOSArMzk5
LDkgQEAgdWlkbmFfbmFtZVRvQVNDSUlfVVRGOChjb25zdCBVSUROQSAqaWRuYSwKICAqICAgICAg
ICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQg
b3IgdXNlIHdpdGgKICAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5pbmcuIChTZWUg
VXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCiAgKiBAcmV0dXJuIGRlc3RpbmF0aW9uIHN0cmluZyBs
ZW5ndGgKLSAqIEBkcmFmdCBJQ1UgNC42CisgKiBAc3RhYmxlIElDVSA0LjYKICAqLwotVV9EUkFG
VCBpbnQzMl90IFVfRVhQT1JUMgorVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKIHVpZG5hX25h
bWVUb1VuaWNvZGVVVEY4KGNvbnN0IFVJRE5BICppZG5hLAogICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqbmFtZSwgaW50MzJfdCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGNhcGFjaXR5LApAQCAtMzk5LDU4ICs0MTUsNTggQEAg
dWlkbmFfbmFtZVRvVW5pY29kZVVURjgoY29uc3QgVUlETkEgKmlkbmEsCiBlbnVtIHsKICAgICAv
KioKICAgICAgKiBBIG5vbi1maW5hbCBkb21haW4gbmFtZSBsYWJlbCAob3IgdGhlIHdob2xlIGRv
bWFpbiBuYW1lKSBpcyBlbXB0eS4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFi
bGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VSUk9SX0VNUFRZX0xBQkVMPTEsCiAgICAg
LyoqCiAgICAgICogQSBkb21haW4gbmFtZSBsYWJlbCBpcyBsb25nZXIgdGhhbiA2MyBieXRlcy4K
ICAgICAgKiAoU2VlIFNURDEzL1JGQzEwMzQgMy4xLiBOYW1lIHNwYWNlIHNwZWNpZmljYXRpb25z
IGFuZCB0ZXJtaW5vbG9neS4pCiAgICAgICogVGhpcyBpcyBvbmx5IGNoZWNrZWQgaW4gVG9BU0NJ
SSBvcGVyYXRpb25zLCBhbmQgb25seSBpZiB0aGUgb3V0cHV0IGxhYmVsIGlzIGFsbC1BU0NJSS4K
LSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwog
ICAgIFVJRE5BX0VSUk9SX0xBQkVMX1RPT19MT05HPTIsCiAgICAgLyoqCiAgICAgICogQSBkb21h
aW4gbmFtZSBpcyBsb25nZXIgdGhhbiAyNTUgYnl0ZXMgaW4gaXRzIHN0b3JhZ2UgZm9ybS4KICAg
ICAgKiAoU2VlIFNURDEzL1JGQzEwMzQgMy4xLiBOYW1lIHNwYWNlIHNwZWNpZmljYXRpb25zIGFu
ZCB0ZXJtaW5vbG9neS4pCiAgICAgICogVGhpcyBpcyBvbmx5IGNoZWNrZWQgaW4gVG9BU0NJSSBv
cGVyYXRpb25zLCBhbmQgb25seSBpZiB0aGUgb3V0cHV0IGRvbWFpbiBuYW1lIGlzIGFsbC1BU0NJ
SS4KLSAgICAgKiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAq
LwogICAgIFVJRE5BX0VSUk9SX0RPTUFJTl9OQU1FX1RPT19MT05HPTQsCiAgICAgLyoqCiAgICAg
ICogQSBsYWJlbCBzdGFydHMgd2l0aCBhIGh5cGhlbi1taW51cyAoJy0nKS4KLSAgICAgKiBAZHJh
ZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJRE5BX0VS
Uk9SX0xFQURJTkdfSFlQSEVOPTgsCiAgICAgLyoqCiAgICAgICogQSBsYWJlbCBlbmRzIHdpdGgg
YSBoeXBoZW4tbWludXMgKCctJykuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3Rh
YmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9UUkFJTElOR19IWVBIRU49MHgx
MCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIGNvbnRhaW5zIGh5cGhlbi1taW51cyAoJy0nKSBp
biB0aGUgdGhpcmQgYW5kIGZvdXJ0aCBwb3NpdGlvbnMuCi0gICAgICogQGRyYWZ0IElDVSA0LjYK
KyAgICAgKiBAc3RhYmxlIElDVSA0LjYKICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9IWVBIRU5f
M180PTB4MjAsCiAgICAgLyoqCiAgICAgICogQSBsYWJlbCBzdGFydHMgd2l0aCBhIGNvbWJpbmlu
ZyBtYXJrLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAg
ICAgICovCiAgICAgVUlETkFfRVJST1JfTEVBRElOR19DT01CSU5JTkdfTUFSSz0weDQwLAogICAg
IC8qKgogICAgICAqIEEgbGFiZWwgb3IgZG9tYWluIG5hbWUgY29udGFpbnMgZGlzYWxsb3dlZCBj
aGFyYWN0ZXJzLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42
CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfRElTQUxMT1dFRD0weDgwLAogICAgIC8qKgogICAg
ICAqIEEgbGFiZWwgc3RhcnRzIHdpdGggInhuLS0iIGJ1dCBkb2VzIG5vdCBjb250YWluIHZhbGlk
IFB1bnljb2RlLgogICAgICAqIFRoYXQgaXMsIGFuIHhuLS0gbGFiZWwgZmFpbGVkIFB1bnljb2Rl
IGRlY29kaW5nLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJsZSBJQ1UgNC42
CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfUFVOWUNPREU9MHgxMDAsCiAgICAgLyoqCiAgICAg
ICogQSBsYWJlbCBjb250YWlucyBhIGRvdD1mdWxsIHN0b3AuCiAgICAgICogVGhpcyBjYW4gb2Nj
dXIgaW4gYW4gaW5wdXQgc3RyaW5nIGZvciBhIHNpbmdsZS1sYWJlbCBmdW5jdGlvbi4KLSAgICAg
KiBAZHJhZnQgSUNVIDQuNgorICAgICAqIEBzdGFibGUgSUNVIDQuNgogICAgICAqLwogICAgIFVJ
RE5BX0VSUk9SX0xBQkVMX0hBU19ET1Q9MHgyMDAsCiAgICAgLyoqCkBAIC00NTksMTkgKzQ3NSwz
MiBAQCBlbnVtIHsKICAgICAgKiBzdHJpbmcgaGFkIHNldmVyZSB2YWxpZGF0aW9uIGVycm9ycy4g
Rm9yIGV4YW1wbGUsCiAgICAgICogaXQgbWlnaHQgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgYXJl
IG5vdCBhbGxvd2VkIGluIEFDRSBsYWJlbHMsCiAgICAgICogb3IgaXQgbWlnaHQgbm90IGJlIG5v
cm1hbGl6ZWQuCi0gICAgICogQGRyYWZ0IElDVSA0LjYKKyAgICAgKiBAc3RhYmxlIElDVSA0LjYK
ICAgICAgKi8KICAgICBVSUROQV9FUlJPUl9JTlZBTElEX0FDRV9MQUJFTD0weDQwMCwKICAgICAv
KioKICAgICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQgdGhlIElETkEgQmlEaSByZXF1aXJlbWVu
dHMgKGZvciByaWdodC10by1sZWZ0IGNoYXJhY3RlcnMpLgotICAgICAqIEBkcmFmdCBJQ1UgNC42
CisgICAgICogQHN0YWJsZSBJQ1UgNC42CiAgICAgICovCiAgICAgVUlETkFfRVJST1JfQklEST0w
eDgwMCwKICAgICAvKioKICAgICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQgdGhlIElETkEgQ09O
VEVYVEogcmVxdWlyZW1lbnRzLgotICAgICAqIEBkcmFmdCBJQ1UgNC42CisgICAgICogQHN0YWJs
ZSBJQ1UgNC42CisgICAgICovCisgICAgVUlETkFfRVJST1JfQ09OVEVYVEo9MHgxMDAwLAorICAg
IC8qKgorICAgICAqIEEgbGFiZWwgZG9lcyBub3QgbWVldCB0aGUgSUROQSBDT05URVhUTyByZXF1
aXJlbWVudHMgZm9yIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMuCisgICAgICogU29tZSBwdW5jdHVh
dGlvbiBjaGFyYWN0ZXJzICJXb3VsZCBvdGhlcndpc2UgaGF2ZSBiZWVuIERJU0FMTE9XRUQiCisg
ICAgICogYnV0IGFyZSBhbGxvd2VkIGluIGNlcnRhaW4gY29udGV4dHMuIChSRkMgNTg5MikKKyAg
ICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIFVJRE5BX0VSUk9SX0NPTlRFWFRPX1BV
TkNUVUFUSU9OPTB4MjAwMCwKKyAgICAvKioKKyAgICAgKiBBIGxhYmVsIGRvZXMgbm90IG1lZXQg
dGhlIElETkEgQ09OVEVYVE8gcmVxdWlyZW1lbnRzIGZvciBkaWdpdHMuCisgICAgICogQXJhYmlj
LUluZGljIERpZ2l0cyAoVSswNjZ4KSBtdXN0IG5vdCBiZSBtaXhlZCB3aXRoIEV4dGVuZGVkIEFy
YWJpYy1JbmRpYyBEaWdpdHMgKFUrMDZGeCkuCisgICAgICogQHN0YWJsZSBJQ1UgNDkKICAgICAg
Ki8KLSAgICBVSUROQV9FUlJPUl9DT05URVhUSj0weDEwMDAKKyAgICBVSUROQV9FUlJPUl9DT05U
RVhUT19ESUdJVFM9MHg0MDAwCiB9OwogCiAvKiBJRE5BMjAwMyBBUEkgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWl0ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL3VpdGVyLmgKaW5kZXggYjQ2OWUyNGU2MTY1M2Q3ZTZkMGJlOGM4
ZmE2N2ZmMjY1MWI1MWZhMy4uMGNkYjhmZmJlNWM4MTU0YWM5ZDkwOGY2MDViMGViMTZlYTViYjE5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdWl0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91aXRlci5oCkBAIC0xLDcgKzEsNyBAQAog
LyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAw
NiwyMDA5IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAxMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCkBAIC02NzMsNyArNjczLDcgQEAgdWl0ZXJfc2V0VVRGOChVQ2hhckl0ZXJhdG9yICpp
dGVyLCBjb25zdCBjaGFyICpzLCBpbnQzMl90IGxlbmd0aCk7CiAgKiBAc3RhYmxlIElDVSAyLjEK
ICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9y
KFVDaGFySXRlcmF0b3IgKml0ZXIsIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBDaGFyYWN0ZXJJdGVy
YXRvciAqY2hhckl0ZXIpOwordWl0ZXJfc2V0Q2hhcmFjdGVySXRlcmF0b3IoVUNoYXJJdGVyYXRv
ciAqaXRlciwgaWN1OjpDaGFyYWN0ZXJJdGVyYXRvciAqY2hhckl0ZXIpOwogCiAvKioKICAqIFNl
dCB1cCBhIFVDaGFySXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgQysrIFJlcGxhY2VhYmxlLgpA
QCAtNjk4LDcgKzY5OCw3IEBAIHVpdGVyX3NldENoYXJhY3Rlckl0ZXJhdG9yKFVDaGFySXRlcmF0
b3IgKml0ZXIsIFVfTkFNRVNQQUNFX1FVQUxJRklFUiBDaGFyYWN0ZXJJCiAgKiBAc3RhYmxlIElD
VSAyLjEKICAqLwogVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKLXVpdGVyX3NldFJlcGxhY2VhYmxl
KFVDaGFySXRlcmF0b3IgKml0ZXIsIGNvbnN0IFVfTkFNRVNQQUNFX1FVQUxJRklFUiBSZXBsYWNl
YWJsZSAqcmVwKTsKK3VpdGVyX3NldFJlcGxhY2VhYmxlKFVDaGFySXRlcmF0b3IgKml0ZXIsIGNv
bnN0IGljdTo6UmVwbGFjZWFibGUgKnJlcCk7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91bWFjaGluZS5oIGIvU291cmNlL1dlYktpdC9tYWMv
aWN1L3VuaWNvZGUvdW1hY2hpbmUuaAppbmRleCBhYmJkY2I3OWYxNjVhMzY5YWM3OGRlZTE3MzQ4
MDQyYmM2MWMyYTk2Li5kMTEwMmY0OTM2NTI3YzkyYjEzYmNhZjg0YzhhZWRjYTZlN2ZmNzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91bWFjaGluZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VtYWNoaW5lLmgKQEAgLTEsNyArMSw3IEBA
CiAvKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCi0qICAgQ29weXJpZ2h0IChDKSAxOTk5LTIw
MTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwogKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgogKgogKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCkBAIC00MSwxNiArNDEsNyBAQAogLyogd2hpY2ggYXJlIGNvbnRhaW5lZCBpbiB0aGUgcGxh
dGZvcm0tc3BlY2lmaWMgZmlsZSBwbGF0Zm9ybS5oICAgICAgICAgICAgICovCiAvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ki8KIAotI2lmIGRlZmluZWQoVV9QQUxNT1MpCi0jICAgaW5jbHVkZSAidW5pY29k
ZS9wcGFsbW9zLmgiCi0jZWxpZiAhZGVmaW5lZChfX01JTkdXMzJfXykgJiYgKGRlZmluZWQoV0lO
MzIpIHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjY0KSB8fCBkZWZpbmVkKF9XSU42
NCkpCi0jaWZkZWYgQ1lHV0lOTVNWQwotIyAgIGluY2x1ZGUgInVuaWNvZGUvcGxhdGZvcm0uaCIK
LSNlbmRpZgotIyAgIGluY2x1ZGUgInVuaWNvZGUvcHdpbjMyLmgiCi0jZWxzZQotIyAgIGluY2x1
ZGUgInVuaWNvZGUvcHR5cGVzLmgiIC8qIHBsYXRmb3JtLmggaXMgaW5jbHVkZWQgaW4gcHR5cGVz
LmggKi8KLSNlbmRpZgorI2luY2x1ZGUgInVuaWNvZGUvcHR5cGVzLmgiIC8qIHBsYXRmb3JtLmgg
aXMgaW5jbHVkZWQgaW4gcHR5cGVzLmggKi8KIAogLyoKICAqIEFOU0kgQyBoZWFkZXJzOgpAQCAt
NTksMTkgKzUwLDYgQEAKICNpbmNsdWRlIDxzdGRkZWYuaD4KIAogLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovCi0vKiBYUF9DUExVU1BMVVMgaXMgYSBjcm9zcy1wbGF0Zm9ybSBzeW1ib2wgd2hpY2ggc2hv
dWxkIGJlIGRlZmluZWQgd2hlbiAgICAgKi8KLS8qIHVzaW5nIEMrKy4gIEl0IHNob3VsZCBub3Qg
YmUgZGVmaW5lZCB3aGVuIGNvbXBpbGluZyB1bmRlciBDLiAgICAgICAgICAgICAqLwotLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSovCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotIyAgIGlmbmRlZiBYUF9DUExV
U1BMVVMKLSMgICAgICAgZGVmaW5lIFhQX0NQTFVTUExVUwotIyAgIGVuZGlmCi0jZWxzZQotIyAg
IHVuZGVmIFhQX0NQTFVTUExVUwotI2VuZGlmCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyog
Rm9yIEMgd3JhcHBlcnMsIHdlIHVzZSB0aGUgc3ltYm9sIFVfU1RBQkxFLiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KIC8qIFRoaXMgd29ya3MgcHJvcGVybHkgaWYgdGhlIGluY2x1
ZGVyIGlzIEMgb3IgQysrLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogRnVuY3Rpb25z
IGFyZSBkZWNsYXJlZCAgIFVfU1RBQkxFIHJldHVybi10eXBlIFVfRVhQT1JUMiBmdW5jdGlvbi1u
YW1lKCkuLi4gKi8KQEAgLTk1LDcgKzczLDcgQEAKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAK
LSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogIyAgIGRlZmluZSBVX0NG
VU5DIGV4dGVybiAiQyIKICMgICBkZWZpbmUgVV9DREVDTF9CRUdJTiBleHRlcm4gIkMiIHsKICMg
ICBkZWZpbmUgVV9DREVDTF9FTkQgICB9CkBAIC0xMDUsMjMgKzgzLDI2IEBACiAjICAgZGVmaW5l
IFVfQ0RFQ0xfRU5ECiAjZW5kaWYKIAorI2lmbmRlZiBVX0FUVFJJQlVURV9ERVBSRUNBVEVECiAv
KioKICAqIFxkZWYgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogICogIFRoaXMgaXMgdXNlZCBmb3Ig
R0NDIHNwZWNpZmljIGF0dHJpYnV0ZXMKICAqIEBpbnRlcm5hbAogICovCi0jaWYgZGVmaW5lZChf
X0dOVUNfXykgJiYgKF9fR05VQ19fID4gMyB8fCAoX19HTlVDX18gPT0gMyAmJiBfX0dOVUNfTUlO
T1JfXyA+PSAyKSkKKyNpZiBVX0dDQ19NQUpPUl9NSU5PUiA+PSAzMDIKICMgICAgZGVmaW5lIFVf
QVRUUklCVVRFX0RFUFJFQ0FURUQgX19hdHRyaWJ1dGVfXyAoKGRlcHJlY2F0ZWQpKQogLyoqCiAg
KiBcZGVmIFVfQVRUUklCVVRFX0RFUFJFQ0FURUQKICAqIFRoaXMgaXMgdXNlZCBmb3IgVmlzdWFs
IEMrKyBzcGVjaWZpYyBhdHRyaWJ1dGVzIAogICogQGludGVybmFsCiAgKi8KLSNlbGlmIGRlZmlu
ZWQoVV9XSU5ET1dTKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTQwMCkK
KyNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxNDAwKQogIyAgICBkZWZp
bmUgVV9BVFRSSUJVVEVfREVQUkVDQVRFRCBfX2RlY2xzcGVjKGRlcHJlY2F0ZWQpCiAjZWxzZQog
IyAgICBkZWZpbmUgVV9BVFRSSUJVVEVfREVQUkVDQVRFRAogI2VuZGlmCisjZW5kaWYKKwogLyoq
IFRoaXMgaXMgdXNlZCB0byBkZWNsYXJlIGEgZnVuY3Rpb24gYXMgYSBwdWJsaWMgSUNVIEMgQVBJ
IEBzdGFibGUgSUNVIDIuMCovCiAjZGVmaW5lIFVfQ0FQSSBVX0NGVU5DIFVfRVhQT1JUCiAvKiog
VGhpcyBpcyB1c2VkIHRvIGRlY2xhcmUgYSBmdW5jdGlvbiBhcyBhIHN0YWJsZSBwdWJsaWMgSUNV
IEMgQVBJKi8KQEAgLTIzNCwyNyArMjE1LDYgQEAgdHlwZWRlZiBpbnQ4X3QgVUJvb2w7CiAKIC8q
IHdjaGFyX3QtcmVsYXRlZCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqLwogCi0vKioKLSAqIFxkZWYgVV9IQVZFX1dDSEFSX0gKLSAqIElu
ZGljYXRlcyB3aGV0aGVyIDx3Y2hhci5oPiBpcyBhdmFpbGFibGUgKDEpIG9yIG5vdCAoMCkuIFNl
dCB0byAxIGJ5IGRlZmF1bHQuCi0gKgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNpZm5kZWYg
VV9IQVZFX1dDSEFSX0gKLSMgICBkZWZpbmUgVV9IQVZFX1dDSEFSX0ggMQotI2VuZGlmCi0KLS8q
KgotICogXGRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0gKiBVX1NJWkVPRl9XQ0hBUl9UPT1zaXplb2Yo
d2NoYXJfdCkgKDAgbWVhbnMgaXQgaXMgbm90IGRlZmluZWQgb3IgYXV0b2NvbmYgY291bGQgbm90
IHNldCBpdCkKLSAqCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2lmIFVfU0laRU9GX1dDSEFS
X1Q9PTAKLSMgICB1bmRlZiBVX1NJWkVPRl9XQ0hBUl9UCi0jICAgZGVmaW5lIFVfU0laRU9GX1dD
SEFSX1QgNAotI2VuZGlmCi0KIC8qCiAgKiBcZGVmIFVfV0NIQVJfSVNfVVRGMTYKICAqIERlZmlu
ZWQgaWYgd2NoYXJfdCB1c2VzIFVURi0xNi4KQEAgLTI3NSwxNCArMjM1LDE2IEBAIHR5cGVkZWYg
aW50OF90IFVCb29sOwogIyAgICAgICAgICAgZGVmaW5lICBVX1dDSEFSX0lTX1VURjMyCiAjICAg
ICAgIGVuZGlmCiAjICAgZWxpZiBkZWZpbmVkIF9fVUNTMl9fCi0jICAgICAgIGlmIChfX09TMzkw
X18gfHwgX19PUzQwMF9fKSAmJiAoVV9TSVpFT0ZfV0NIQVJfVD09MikKKyMgICAgICAgaWYgKFVf
UEZfT1MzOTAgPD0gVV9QTEFURk9STSAmJiBVX1BMQVRGT1JNIDw9IFVfUEZfT1M0MDApICYmIChV
X1NJWkVPRl9XQ0hBUl9UPT0yKQogIyAgICAgICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMTYK
ICMgICAgICAgZW5kaWYKLSMgICBlbGlmIGRlZmluZWQgX19VQ1M0X18KKyMgICBlbGlmIGRlZmlu
ZWQoX19VQ1M0X18pIHx8IChVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAgJiYgZGVmaW5lZChfX1VU
RjMyX18pKQogIyAgICAgICBpZiAoVV9TSVpFT0ZfV0NIQVJfVD09NCkKICMgICAgICAgICAgIGRl
ZmluZSBVX1dDSEFSX0lTX1VURjMyCiAjICAgICAgIGVuZGlmCi0jICAgZWxpZiBkZWZpbmVkKFVf
V0lORE9XUykKKyMgICBlbGlmIFVfUExBVEZPUk1fSVNfREFSV0lOX0JBU0VEIHx8IChVX1NJWkVP
Rl9XQ0hBUl9UPT00ICYmIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQpCisjICAgICAgIGRlZmlu
ZSBVX1dDSEFSX0lTX1VURjMyCisjICAgZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKICMg
ICAgICAgZGVmaW5lIFVfV0NIQVJfSVNfVVRGMTYKICMgICBlbmRpZgogI2VuZGlmCkBAIC0yOTQs
MjQgKzI1NiwyNCBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKIAogLyoqCiAgKiBcdmFyIFVDaGFy
Ci0gKiBEZWZpbmUgVUNoYXIgdG8gYmUgd2NoYXJfdCBpZiB0aGF0IGlzIDE2IGJpdHMgd2lkZTsg
YWx3YXlzIGFzc3VtZWQgdG8gYmUgdW5zaWduZWQuCi0gKiBJZiB3Y2hhcl90IGlzIG5vdCAxNiBi
aXRzIHdpZGUsIHRoZW4gZGVmaW5lIFVDaGFyIHRvIGJlIHVpbnQxNl90IG9yIGNoYXIxNl90IGJl
Y2F1c2UgR0NDID49NC40Ci0gKiBjYW4gaGFuZGxlIFVURjE2IHN0cmluZyBsaXRlcmFscy4KKyAq
IERlZmluZSBVQ2hhciB0byBiZSBVQ0hBUl9UWVBFLCBpZiB0aGF0IGlzICNkZWZpbmVkIChmb3Ig
ZXhhbXBsZSwgdG8gY2hhcjE2X3QpLAorICogb3Igd2NoYXJfdCBpZiB0aGF0IGlzIDE2IGJpdHMg
d2lkZTsgYWx3YXlzIGFzc3VtZWQgdG8gYmUgdW5zaWduZWQuCisgKiBJZiBuZWl0aGVyIGlzIGF2
YWlsYWJsZSwgdGhlbiBkZWZpbmUgVUNoYXIgdG8gYmUgdWludDE2X3QuCisgKgogICogVGhpcyBt
YWtlcyB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhciBwbGF0Zm9ybS1kZXBlbmRlbnQKICAqIGJ1dCBh
bGxvd3MgZGlyZWN0IHN0cmluZyB0eXBlIGNvbXBhdGliaWxpdHkgd2l0aCBwbGF0Zm9ybXMgd2l0
aAogICogMTYtYml0IHdjaGFyX3QgdHlwZXMuCiAgKgotICogQGRyYWZ0IElDVSA0LjQKKyAqIEBz
dGFibGUgSUNVIDQuNAogICovCi0KLS8qIERlZmluZSBVQ2hhciB0byBiZSBjb21wYXRpYmxlIHdp
dGggd2NoYXJfdCBpZiBwb3NzaWJsZS4gKi8KLSNpZiBVX1NJWkVPRl9XQ0hBUl9UPT0yCisjaWYg
ZGVmaW5lZChVQ0hBUl9UWVBFKQorICAgIHR5cGVkZWYgVUNIQVJfVFlQRSBVQ2hhcjsKKy8qIE5v
dCAjZWxpZiBVX0hBVkVfQ0hBUjE2X1QgLS0gYmVjYXVzZSB0aGF0IGlzIHR5cGUtaW5jb21wYXRp
YmxlIHdpdGggcHJlLUMrKzExIGNhbGxlcnMKKyAgICB0eXBlZGVmIGNoYXIxNl90IFVDaGFyOyAg
Ki8KKyNlbGlmIFVfU0laRU9GX1dDSEFSX1Q9PTIKICAgICB0eXBlZGVmIHdjaGFyX3QgVUNoYXI7
Ci0jZWxpZiBVX0dOVUNfVVRGMTZfU1RSSU5HCi0jaWYgZGVmaW5lZCBfR0NDXwotICAgIHR5cGVk
ZWYgX19DSEFSMTZfVFlQRV9fIGNoYXIxNl90OwotI2VuZGlmCi0gICAgdHlwZWRlZiBjaGFyMTZf
dCBVQ2hhcjsKKyNlbGlmIGRlZmluZWQoX19DSEFSMTZfVFlQRV9fKQorICAgIHR5cGVkZWYgX19D
SEFSMTZfVFlQRV9fIFVDaGFyOwogI2Vsc2UKICAgICB0eXBlZGVmIHVpbnQxNl90IFVDaGFyOwog
I2VuZGlmCkBAIC0zMzUsMzkgKzI5NywyNSBAQCB0eXBlZGVmIGludDhfdCBVQm9vbDsKICAqLwog
dHlwZWRlZiBpbnQzMl90IFVDaGFyMzI7CiAKLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotLyogVV9J
TkxJTkUgYW5kIFVfQUxJR05fQ09ERSAgIFNldCBkZWZhdWx0IHZhbHVlcyBpZiB0aGVzZSBhcmUg
bm90IGFscmVhZHkgICovCi0vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZC4g
IERlZmluaXRpb25zIG5vcm1hbGx5IGFyZSBpbiAgICAgICAgKi8KLS8qICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwbGF0Zm9ybS5oIG9yIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUgZm9yICAg
ICAqLwotLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBPUyBpbiB1c2UuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQotI2lm
bmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCi0KIC8qKgotICogXGRlZiBVX0FMSUdOX0NPREUKLSAq
IFRoaXMgaXMgdXNlZCB0byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUg
Ym91bmRhcnkuCi0gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZv
cm1hbmNlIHRlc3QgcmVzdWx0cy4KLSAqIEBpbnRlcm5hbAotICovCi0jaWZuZGVmIFVfQUxJR05f
Q09ERQotIyAgIGRlZmluZSBVX0FMSUdOX0NPREUobikKLSNlbmRpZgotCi0jZW5kaWYgLyogVV9I
SURFX0lOVEVSTkFMX0FQSSAqLwotCi0vKioKLSAqIFxkZWYgVV9JTkxJTkUKLSAqIFRoaXMgaXMg
dXNlZCB0byByZXF1ZXN0IGlubGluaW5nIG9mIGEgZnVuY3Rpb24sIG9uIHBsYXRmb3JtcyBhbmQg
bGFuZ3VhZ2VzIHdoaWNoIHN1cHBvcnQgaXQuCisgKiBUaGlzIHZhbHVlIGlzIGludGVuZGVkIGZv
ciBzZW50aW5lbCB2YWx1ZXMgZm9yIEFQSXMgdGhhdAorICogKHRha2Ugb3IpIHJldHVybiBzaW5n
bGUgY29kZSBwb2ludHMgKFVDaGFyMzIpLgorICogSXQgaXMgb3V0c2lkZSBvZiB0aGUgVW5pY29k
ZSBjb2RlIHBvaW50IHJhbmdlIDAuLjB4MTBmZmZmLgorICogCisgKiBGb3IgZXhhbXBsZSwgYSAi
ZG9uZSIgb3IgImVycm9yIiB2YWx1ZSBpbiBhIG5ldyBBUEkKKyAqIGNvdWxkIGJlIGluZGljYXRl
ZCB3aXRoIFVfU0VOVElORUwuCisgKgorICogSUNVIEFQSXMgZGVzaWduZWQgYmVmb3JlIElDVSAy
LjQgdXN1YWxseSBkZWZpbmUgc2VydmljZS1zcGVjaWZpYyAiZG9uZSIKKyAqIHZhbHVlcywgbW9z
dGx5IDB4ZmZmZi4KKyAqIFRob3NlIG1heSBuZWVkIHRvIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbQor
ICogYWN0dWFsIFUrZmZmZiB0ZXh0IGNvbnRlbnRzIGJ5IGNhbGxpbmcgZnVuY3Rpb25zIGxpa2UK
KyAqIENoYXJhY3Rlckl0ZXJhdG9yOjpoYXNOZXh0KCkgb3IgVW5pY29kZVN0cmluZzo6bGVuZ3Ro
KCkuCisgKgorICogQHJldHVybiAtMQorICogQHNlZSBVQ2hhcjMyCisgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwotIAotI2lmbmRlZiBVX0lOTElORQotIyAgIGlmZGVmIFhQX0NQTFVTUExVUwotIyAg
ICAgICBkZWZpbmUgVV9JTkxJTkUgaW5saW5lCi0jICAgZWxzZQotIyAgICAgICBkZWZpbmUgVV9J
TkxJTkUKLSMgICBlbmRpZgotI2VuZGlmCisjZGVmaW5lIFVfU0VOVElORUwgKC0xKQogCiAjaW5j
bHVkZSAidW5pY29kZS91cmVuYW1lLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L2ljdS91bmljb2RlL3Vub3JtMi5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdW5v
cm0yLmgKaW5kZXggYTUyMmI0NzM1YThkNmFjNGViZGEyZGFjYjA1MjQ5ZGI0YTJhMmYxYy4uNzE1
MmZjMTA5NDY2ZDA3YzUwYmJjYTVjOWRmN2I3N2MxOTk3ZjkwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdW5vcm0yLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
aWN1L3VuaWNvZGUvdW5vcm0yLmgKQEAgLTEsNyArMSw3IEBACiAvKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgogKgotKiAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMsIEludGVybmF0aW9u
YWwgQnVzaW5lc3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTExOSw2ICsxMTks
NzYgQEAgdHlwZWRlZiBzdHJ1Y3QgVU5vcm1hbGl6ZXIyIFVOb3JtYWxpemVyMjsgIC8qKjwgQyB0
eXBlZGVmIGZvciBzdHJ1Y3QgVU5vcm1hbGl6ZXIKICNpZiAhVUNPTkZJR19OT19OT1JNQUxJWkFU
SU9OCiAKIC8qKgorICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29k
ZSBORkMgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEws
ICJuZmMiLCBVTk9STTJfQ09NUE9TRSwgcEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9k
aWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QK
KyAqICAgICAgICAgICAgICAgICAgcGFzcyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0
aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hl
Y2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAq
IEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0
YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQy
Cit1bm9ybTJfZ2V0TkZDSW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgor
ICogUmV0dXJucyBhIFVOb3JtYWxpemVyMiBpbnN0YW5jZSBmb3IgVW5pY29kZSBORkQgbm9ybWFs
aXphdGlvbi4KKyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmMiLCBVTk9S
TTJfREVDT01QT1NFLCBwRXJyb3JDb2RlKS4KKyAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNp
bmdsZXRvbiBpbnN0YW5jZS4gRG8gbm90IGRlbGV0ZSBpdC4KKyAqIEBwYXJhbSBwRXJyb3JDb2Rl
IFN0YW5kYXJkIElDVSBlcnJvciBjb2RlLiBJdHMgaW5wdXQgdmFsdWUgbXVzdAorICogICAgICAg
ICAgICAgICAgICBwYXNzIHRoZSBVX1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlv
biByZXR1cm5zCisgKiAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9G
QUlMVVJFKCkgb24gb3V0cHV0IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICogQHJldHVybiB0
aGUgcmVxdWVzdGVkIE5vcm1hbGl6ZXIyLCBpZiBzdWNjZXNzZnVsCisgKiBAc3RhYmxlIElDVSA0
OQorICovCitVX1NUQUJMRSBjb25zdCBVTm9ybWFsaXplcjIgKiBVX0VYUE9SVDIKK3Vub3JtMl9n
ZXRORkRJbnN0YW5jZShVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5z
IGEgVU5vcm1hbGl6ZXIyIGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0Mgbm9ybWFsaXphdGlvbi4K
KyAqIFNhbWUgYXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0NPTVBP
U0UsIHBFcnJvckNvZGUpLgorICogUmV0dXJucyBhbiB1bm1vZGlmaWFibGUgc2luZ2xldG9uIGlu
c3RhbmNlLiBEbyBub3QgZGVsZXRlIGl0LgorICogQHBhcmFtIHBFcnJvckNvZGUgU3RhbmRhcmQg
SUNVIGVycm9yIGNvZGUuIEl0cyBpbnB1dCB2YWx1ZSBtdXN0CisgKiAgICAgICAgICAgICAgICAg
IHBhc3MgdGhlIFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMK
KyAqICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENoZWNrIGZvciBVX0ZBSUxVUkUoKSBv
biBvdXRwdXQgb3IgdXNlIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhaW5p
bmcuIChTZWUgVXNlciBHdWlkZSBmb3IgZGV0YWlscy4pCisgKiBAcmV0dXJuIHRoZSByZXF1ZXN0
ZWQgTm9ybWFsaXplcjIsIGlmIHN1Y2Nlc3NmdWwKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1Vf
U1RBQkxFIGNvbnN0IFVOb3JtYWxpemVyMiAqIFVfRVhQT1JUMgordW5vcm0yX2dldE5GS0NJbnN0
YW5jZShVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBSZXR1cm5zIGEgVU5vcm1h
bGl6ZXIyIGluc3RhbmNlIGZvciBVbmljb2RlIE5GS0Qgbm9ybWFsaXphdGlvbi4KKyAqIFNhbWUg
YXMgdW5vcm0yX2dldEluc3RhbmNlKE5VTEwsICJuZmtjIiwgVU5PUk0yX0RFQ09NUE9TRSwgcEVy
cm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFuY2Uu
IERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJy
b3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFzcyB0
aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAg
ICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91dHB1
dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNl
ZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBOb3Jt
YWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFCTEUg
Y29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLREluc3RhbmNlKFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFJldHVybnMgYSBVTm9ybWFsaXplcjIg
aW5zdGFuY2UgZm9yIFVuaWNvZGUgTkZLQ19DYXNlZm9sZCBub3JtYWxpemF0aW9uLgorICogU2Ft
ZSBhcyB1bm9ybTJfZ2V0SW5zdGFuY2UoTlVMTCwgIm5ma2NfY2YiLCBVTk9STTJfQ09NUE9TRSwg
cEVycm9yQ29kZSkuCisgKiBSZXR1cm5zIGFuIHVubW9kaWZpYWJsZSBzaW5nbGV0b24gaW5zdGFu
Y2UuIERvIG5vdCBkZWxldGUgaXQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1Ug
ZXJyb3IgY29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgcGFz
cyB0aGUgVV9TVUNDRVNTKCkgdGVzdCwgb3IgZWxzZSB0aGUgZnVuY3Rpb24gcmV0dXJucworICog
ICAgICAgICAgICAgICAgICBpbW1lZGlhdGVseS4gQ2hlY2sgZm9yIFVfRkFJTFVSRSgpIG9uIG91
dHB1dCBvciB1c2Ugd2l0aAorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4g
KFNlZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIHJlcXVlc3RlZCBO
b3JtYWxpemVyMiwgaWYgc3VjY2Vzc2Z1bAorICogQHN0YWJsZSBJQ1UgNDkKKyAqLworVV9TVEFC
TEUgY29uc3QgVU5vcm1hbGl6ZXIyICogVV9FWFBPUlQyCit1bm9ybTJfZ2V0TkZLQ0Nhc2Vmb2xk
SW5zdGFuY2UoVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgogICogUmV0dXJucyBhIFVO
b3JtYWxpemVyMiBpbnN0YW5jZSB3aGljaCB1c2VzIHRoZSBzcGVjaWZpZWQgZGF0YSBmaWxlCiAg
KiAocGFja2FnZU5hbWUvbmFtZSBzaW1pbGFyIHRvIHVjbnZfb3BlblBhY2thZ2UoKSBhbmQgdXJl
c19vcGVuKCkvUmVzb3VyY2VCdW5kbGUpCiAgKiBhbmQgd2hpY2ggY29tcG9zZXMgb3IgZGVjb21w
b3NlcyB0ZXh0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIG1vZGUuCkBAIC0yNjAsOCArMzMw
LDExIEBAIHVub3JtMl9hcHBlbmQoY29uc3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CiAKIC8qKgotICogR2V0cyB0aGUgZGVjb21w
b3NpdGlvbiBtYXBwaW5nIG9mIGMuIEVxdWl2YWxlbnQgdG8gdW5vcm0yX25vcm1hbGl6ZShzdHJp
bmcoYykpCi0gKiBvbiBhIFVOT1JNMl9ERUNPTVBPU0UgVU5vcm1hbGl6ZXIyIGluc3RhbmNlLCBi
dXQgbXVjaCBmYXN0ZXIuCisgKiBHZXRzIHRoZSBkZWNvbXBvc2l0aW9uIG1hcHBpbmcgb2YgYy4K
KyAqIFJvdWdobHkgZXF1aXZhbGVudCB0byBub3JtYWxpemluZyB0aGUgU3RyaW5nIGZvcm0gb2Yg
YworICogb24gYSBVTk9STTJfREVDT01QT1NFIFVOb3JtYWxpemVyMiBpbnN0YW5jZSwgYnV0IG11
Y2ggZmFzdGVyLCBhbmQgZXhjZXB0IHRoYXQgdGhpcyBmdW5jdGlvbgorICogcmV0dXJucyBhIG5l
Z2F0aXZlIHZhbHVlIGFuZCBkb2VzIG5vdCB3cml0ZSBhIHN0cmluZworICogaWYgYyBkb2VzIG5v
dCBoYXZlIGEgZGVjb21wb3NpdGlvbiBtYXBwaW5nIGluIHRoaXMgaW5zdGFuY2UncyBkYXRhLgog
ICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVuZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1h
bGl6ZXIyLgogICogQHBhcmFtIG5vcm0yIFVOb3JtYWxpemVyMiBpbnN0YW5jZQogICogQHBhcmFt
IGMgY29kZSBwb2ludApAQCAtMjczLDE0ICszNDYsNzggQEAgdW5vcm0yX2FwcGVuZChjb25zdCBV
Tm9ybWFsaXplcjIgKm5vcm0yLAogICogICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlbHkuIENo
ZWNrIGZvciBVX0ZBSUxVUkUoKSBvbiBvdXRwdXQgb3IgdXNlIHdpdGgKICAqICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQog
ICogQHJldHVybiB0aGUgbm9uLW5lZ2F0aXZlIGxlbmd0aCBvZiBjJ3MgZGVjb21wb3NpdGlvbiwg
aWYgdGhlcmUgaXMgb25lOyBvdGhlcndpc2UgYSBuZWdhdGl2ZSB2YWx1ZQotICogQGRyYWZ0IElD
VSA0LjYKKyAqIEBzdGFibGUgSUNVIDQuNgogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQy
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdW5vcm0yX2dldERlY29tcG9zaXRpb24oY29u
c3QgVU5vcm1hbGl6ZXIyICpub3JtMiwKICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIg
YywgVUNoYXIgKmRlY29tcG9zaXRpb24sIGludDMyX3QgY2FwYWNpdHksCiAgICAgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKIAogLyoqCisgKiBHZXRzIHRoZSBy
YXcgZGVjb21wb3NpdGlvbiBtYXBwaW5nIG9mIGMuCisgKgorICogVGhpcyBpcyBzaW1pbGFyIHRv
IHRoZSB1bm9ybTJfZ2V0RGVjb21wb3NpdGlvbigpIGZ1bmN0aW9uIGJ1dCByZXR1cm5zIHRoZQor
ICogcmF3IGRlY29tcG9zaXRpb24gbWFwcGluZyBhcyBzcGVjaWZpZWQgaW4gVW5pY29kZURhdGEu
dHh0IG9yCisgKiAoZm9yIGN1c3RvbSBkYXRhKSBpbiB0aGUgbWFwcGluZyBmaWxlcyBwcm9jZXNz
ZWQgYnkgdGhlIGdlbm5vcm0yIHRvb2wuCisgKiBCeSBjb250cmFzdCwgdW5vcm0yX2dldERlY29t
cG9zaXRpb24oKSByZXR1cm5zIHRoZSBwcm9jZXNzZWQsCisgKiByZWN1cnNpdmVseS1kZWNvbXBv
c2VkIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLgorICoKKyAqIFdoZW4gdXNlZCBvbiBhIHN0YW5k
YXJkIE5GS0MgTm9ybWFsaXplcjIgaW5zdGFuY2UsCisgKiB1bm9ybTJfZ2V0UmF3RGVjb21wb3Np
dGlvbigpIHJldHVybnMgdGhlIFVuaWNvZGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIChkbSkgcHJv
cGVydHkuCisgKgorICogV2hlbiB1c2VkIG9uIGEgc3RhbmRhcmQgTkZDIE5vcm1hbGl6ZXIyIGlu
c3RhbmNlLAorICogaXQgcmV0dXJucyB0aGUgRGVjb21wb3NpdGlvbl9NYXBwaW5nIG9ubHkgaWYg
dGhlIERlY29tcG9zaXRpb25fVHlwZSAoZHQpIGlzIENhbm9uaWNhbCAoQ2FuKTsKKyAqIGluIHRo
aXMgY2FzZSwgdGhlIHJlc3VsdCBjb250YWlucyBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHBvaW50
cyAoPTEuLjQgVUNoYXJzKS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGluZGVwZW5kZW50IG9m
IHRoZSBtb2RlIG9mIHRoZSBVTm9ybWFsaXplcjIuCisgKiBAcGFyYW0gbm9ybTIgVU5vcm1hbGl6
ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcGFyYW0gZGVjb21wb3Np
dGlvbiBTdHJpbmcgYnVmZmVyIHdoaWNoIHdpbGwgYmUgc2V0IHRvIGMncworICogICAgICAgICAg
ICAgICAgICAgICAgcmF3IGRlY29tcG9zaXRpb24gbWFwcGluZywgaWYgdGhlcmUgaXMgb25lLgor
ICogQHBhcmFtIGNhcGFjaXR5IG51bWJlciBvZiBVQ2hhcnMgdGhhdCBjYW4gYmUgd3JpdHRlbiB0
byBkZWNvbXBvc2l0aW9uCisgKiBAcGFyYW0gcEVycm9yQ29kZSBTdGFuZGFyZCBJQ1UgZXJyb3Ig
Y29kZS4gSXRzIGlucHV0IHZhbHVlIG11c3QKKyAqICAgICAgICAgICAgICAgICAgIHBhc3MgdGhl
IFVfU1VDQ0VTUygpIHRlc3QsIG9yIGVsc2UgdGhlIGZ1bmN0aW9uIHJldHVybnMKKyAqICAgICAg
ICAgICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0
IG9yIHVzZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFpbmluZy4gKFNl
ZSBVc2VyIEd1aWRlIGZvciBkZXRhaWxzLikKKyAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSBs
ZW5ndGggb2YgYydzIHJhdyBkZWNvbXBvc2l0aW9uLCBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lz
ZSBhIG5lZ2F0aXZlIHZhbHVlCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NUQUJMRSBpbnQz
Ml90IFVfRVhQT1JUMgordW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24oY29uc3QgVU5vcm1hbGl6
ZXIyICpub3JtMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyMzIgYywgVUNoYXIg
KmRlY29tcG9zaXRpb24sIGludDMyX3QgY2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBQZXJmb3JtcyBwYWlyd2lz
ZSBjb21wb3NpdGlvbiBvZiBhICYgYiBhbmQgcmV0dXJucyB0aGUgY29tcG9zaXRlIGlmIHRoZXJl
IGlzIG9uZS4KKyAqCisgKiBSZXR1cm5zIGEgY29tcG9zaXRlIGNvZGUgcG9pbnQgYyBvbmx5IGlm
IGMgaGFzIGEgdHdvLXdheSBtYXBwaW5nIHRvIGErYi4KKyAqIEluIHN0YW5kYXJkIFVuaWNvZGUg
bm9ybWFsaXphdGlvbiwgdGhpcyBtZWFucyB0aGF0CisgKiBjIGhhcyBhIGNhbm9uaWNhbCBkZWNv
bXBvc2l0aW9uIHRvIGErYgorICogYW5kIGMgZG9lcyBub3QgaGF2ZSB0aGUgRnVsbF9Db21wb3Np
dGlvbl9FeGNsdXNpb24gcHJvcGVydHkuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbmRlcGVu
ZGVudCBvZiB0aGUgbW9kZSBvZiB0aGUgVU5vcm1hbGl6ZXIyLgorICogQHBhcmFtIG5vcm0yIFVO
b3JtYWxpemVyMiBpbnN0YW5jZQorICogQHBhcmFtIGEgQSAobm9ybWFsaXphdGlvbiBzdGFydGVy
KSBjb2RlIHBvaW50LgorICogQHBhcmFtIGIgQW5vdGhlciBjb2RlIHBvaW50LgorICogQHJldHVy
biBUaGUgbm9uLW5lZ2F0aXZlIGNvbXBvc2l0ZSBjb2RlIHBvaW50IGlmIHRoZXJlIGlzIG9uZTsg
b3RoZXJ3aXNlIGEgbmVnYXRpdmUgdmFsdWUuCisgKiBAc3RhYmxlIElDVSA0OQorICovCitVX1NU
QUJMRSBVQ2hhcjMyIFVfRVhQT1JUMgordW5vcm0yX2NvbXBvc2VQYWlyKGNvbnN0IFVOb3JtYWxp
emVyMiAqbm9ybTIsIFVDaGFyMzIgYSwgVUNoYXIzMiBiKTsKKworLyoqCisgKiBHZXRzIHRoZSBj
b21iaW5pbmcgY2xhc3Mgb2YgYy4KKyAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVy
bnMgMAorICogYnV0IGFsbCBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRoZSBVbmlj
b2RlIENhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3MgdmFsdWUuCisgKiBAcGFyYW0gbm9ybTIgVU5v
cm1hbGl6ZXIyIGluc3RhbmNlCisgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgKiBAcmV0dXJuIGMn
cyBjb21iaW5pbmcgY2xhc3MKKyAqIEBzdGFibGUgSUNVIDQ5CisgKi8KK1VfU1RBQkxFIHVpbnQ4
X3QgVV9FWFBPUlQyCit1bm9ybTJfZ2V0Q29tYmluaW5nQ2xhc3MoY29uc3QgVU5vcm1hbGl6ZXIy
ICpub3JtMiwgVUNoYXIzMiBjKTsKKworLyoqCiAgKiBUZXN0cyBpZiB0aGUgc3RyaW5nIGlzIG5v
cm1hbGl6ZWQuCiAgKiBJbnRlcm5hbGx5LCBpbiBjYXNlcyB3aGVyZSB0aGUgcXVpY2tDaGVjaygp
IG1ldGhvZCB3b3VsZCByZXR1cm4gIm1heWJlIgogICogKHdoaWNoIGlzIG9ubHkgcG9zc2libGUg
Zm9yIHRoZSB0d28gQ09NUE9TRSBtb2RlcykgdGhpcyBtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VyZW5hbWUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2lj
dS91bmljb2RlL3VyZW5hbWUuaAppbmRleCA0NjhiZGJkMGY0NjkyNGRjMmVlOTMzNzQwOGU4Njcy
YTJlODY3YTQ5Li42YjFmNDkwOTg3NTA2OWI0ZDlmZWVmZGQ3NDgzZjVhMDNmYzUwNzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91cmVuYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXJlbmFtZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEz
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBA
IC05LDcgKzksNyBAQAogKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQogKiAgIGluZGVudGF0
aW9uOjQKICoKLSogICBDcmVhdGVkIGJ5OiBQZXJsIHNjcmlwdCB3cml0dGVuIGJ5IFZsYWRpbWly
IFdlaW5zdGVpbgorKiAgIENyZWF0ZWQgYnk6IFBlcmwgc2NyaXB0IHRvb2xzL2dlbnJlbi5wbCB3
cml0dGVuIGJ5IFZsYWRpbWlyIFdlaW5zdGVpbgogKgogKiAgQ29udGFpbnMgZGF0YSBmb3IgcmVu
YW1pbmcgSUNVIGV4cG9ydHMuCiAqICBHZXRzIGluY2x1ZGVkIGJ5IHVtYWNoaW5lLmgKQEAgLTIx
LDkgKzIxLDEzIEBACiAjaWZuZGVmIFVSRU5BTUVfSAogI2RlZmluZSBVUkVOQU1FX0gKIAotLyog
VW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byBkaXNhYmxlIHJlbmFtaW5nIG9uIHBsYXRm
b3JtcwotICAgdGhhdCBkbyBub3QgdXNlIEF1dG9jb25mLiAqLwotLyogI2RlZmluZSBVX0RJU0FC
TEVfUkVOQU1JTkcgMSAqLworLyogVV9ESVNBQkxFX1JFTkFNSU5HIGNhbiBiZSBkZWZpbmVkIGlu
IHRoZSBmb2xsb3dpbmcgd2F5czoKKyAqICAgLSB3aGVuIHJ1bm5pbmcgY29uZmlndXJlLCBlLmcu
CisgKiAgICAgICAgcnVuQ29uZmlndXJlSUNVIExpbnV4IC0tZGlzYWJsZS1yZW5hbWluZworICog
ICAtIGJ5IGNoYW5naW5nIHRoZSBkZWZhdWx0IHNldHRpbmcgb2YgVV9ESVNBQkxFX1JFTkFNSU5H
IGluIHVjb25maWcuaAorICovCisKKyNpbmNsdWRlICJ1bmljb2RlL3Vjb25maWcuaCIKIAogI2lm
ICFVX0RJU0FCTEVfUkVOQU1JTkcKIApAQCAtMzEsNiArMzUsNyBAQAogICAgdGhlIHBsYXRmb3Jt
IGEgY2hhbmNlIHRvIGRlZmluZSBpdCBmaXJzdC4KICAgIE5vcm1hbGx5IChpZiB1dHlwZXMuaCBv
ciB1bWFjaGluZS5oIHdhcyBpbmNsdWRlZCBmaXJzdCkgdGhpcyB3aWxsIG5vdCBiZSBuZWNlc3Nh
cnkgYXMgaXQgd2lsbCBhbHJlYWR5IGJlIGRlZmluZWQuCiAgKi8KKwogI2lmbmRlZiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUKICNpbmNsdWRlICJ1bmljb2RlL3VtYWNoaW5lLmgiCiAjZW5kaWYK
QEAgLTQ4LDE0ICs1Myw5IEBACiAKIC8qIEMgZXhwb3J0cyByZW5hbWluZyBkYXRhICovCiAKLSNk
ZWZpbmUgREVDUE9XRVJTIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShERUNQT1dFUlMpCi0jZGVm
aW5lIERFQ1NUSUNLWVRBQiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoREVDU1RJQ0tZVEFCKQot
I2RlZmluZSBMTm5uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMTm5uKQogI2RlZmluZSBUX0NT
dHJpbmdfaW50NjRUb1N0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX2lu
dDY0VG9TdHJpbmcpCiAjZGVmaW5lIFRfQ1N0cmluZ19pbnRlZ2VyVG9TdHJpbmcgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRfQ1N0cmluZ19pbnRlZ2VyVG9TdHJpbmcpCi0jZGVmaW5lIFRfQ1N0
cmluZ19zdHJpY21wIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NTdHJpbmdfc3RyaWNtcCkK
ICNkZWZpbmUgVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVF9DU3RyaW5nX3N0cmluZ1RvSW50ZWdlcikKLSNkZWZpbmUgVF9DU3RyaW5nX3N0cm5pY21w
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUX0NTdHJpbmdfc3RybmljbXApCiAjZGVmaW5lIFRf
Q1N0cmluZ190b0xvd2VyQ2FzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVF9DU3RyaW5nX3Rv
TG93ZXJDYXNlKQogI2RlZmluZSBUX0NTdHJpbmdfdG9VcHBlckNhc2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRfQ1N0cmluZ190b1VwcGVyQ2FzZSkKICNkZWZpbmUgVUNOVl9GUk9NX1VfQ0FM
TEJBQ0tfRVNDQVBFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVQ05WX0ZST01fVV9DQUxMQkFD
S19FU0NBUEUpCkBAIC03NSw2ICs3NSw3IEBACiAjZGVmaW5lIF9BU0NJSURhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKF9BU0NJSURhdGEpCiAjZGVmaW5lIF9Cb2N1MURhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKF9Cb2N1MURhdGEpCiAjZGVmaW5lIF9DRVNVOERhdGEgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKF9DRVNVOERhdGEpCisjZGVmaW5lIF9Db21wb3VuZFRleHREYXRhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfQ29tcG91bmRUZXh0RGF0YSkKICNkZWZpbmUgX0haRGF0
YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX0haRGF0YSkKICNkZWZpbmUgX0lNQVBEYXRhIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfSU1BUERhdGEpCiAjZGVmaW5lIF9JU0NJSURhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKF9JU0NJSURhdGEpCkBAIC0xMDIsMjEgKzEwMyw4IEBACiAj
ZGVmaW5lIF9VVEYzMkxFRGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoX1VURjMyTEVEYXRh
KQogI2RlZmluZSBfVVRGN0RhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKF9VVEY3RGF0YSkK
ICNkZWZpbmUgX1VURjhEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShfVVRGOERhdGEpCi0j
ZGVmaW5lIGJtc19jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX2Nsb3NlKQotI2Rl
ZmluZSBibXNfZW1wdHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19lbXB0eSkKLSNkZWZp
bmUgYm1zX2dldERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19nZXREYXRhKQotI2Rl
ZmluZSBibXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoYm1zX29wZW4pCi0jZGVmaW5l
IGJtc19zZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19zZWFyY2gpCi0jZGVmaW5l
IGJtc19zZXRUYXJnZXRTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGJtc19zZXRUYXJn
ZXRTdHJpbmcpCi0jZGVmaW5lIGJ1aWxkV1NDb25mdXNhYmxlRGF0YSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoYnVpbGRXU0NvbmZ1c2FibGVEYXRhKQogI2RlZmluZSBjbWVtb3J5X2NsZWFudXAg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGNtZW1vcnlfY2xlYW51cCkKICNkZWZpbmUgY21lbW9y
eV9pblVzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY21lbW9yeV9pblVzZSkKLSNkZWZpbmUg
ZDJ1dGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGQydXRhYmxlKQotI2RlZmluZSBkZWxl
dGVDRUxpc3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNFTGlzdCkKLSNkZWZpbmUg
ZGVsZXRlQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0ZUNoYXJzKQotI2RlZmlu
ZSBkZWxldGVDb2xsRGF0YUNhY2hlRW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKGRlbGV0
ZUNvbGxEYXRhQ2FjaGVFbnRyeSkKLSNkZWZpbmUgZGVsZXRlU3RyaW5nTGlzdCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoZGVsZXRlU3RyaW5nTGlzdCkKLSNkZWZpbmUgZGVsZXRlVW5pY29kZVN0
cmluZ0tleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoZGVsZXRlVW5pY29kZVN0cmluZ0tleSkK
ICNkZWZpbmUgaXpydWxlX2Nsb25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShpenJ1bGVfY2xv
bmUpCiAjZGVmaW5lIGl6cnVsZV9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoaXpydWxl
X2Nsb3NlKQogI2RlZmluZSBpenJ1bGVfZXF1YWxzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShp
enJ1bGVfZXF1YWxzKQpAQCAtMjEyLDggKzIwMCw2IEBACiAjZGVmaW5lIHJlc19sb2FkIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShyZXNfbG9hZCkKICNkZWZpbmUgcmVzX3JlYWQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHJlc19yZWFkKQogI2RlZmluZSByZXNfdW5sb2FkIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShyZXNfdW5sb2FkKQotI2RlZmluZSB0bXV0Zm10SGFzaFRhYmxlVmFsdWVD
b21wYXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh0bXV0Zm10SGFzaFRhYmxlVmFsdWVD
b21wYXJhdG9yKQotI2RlZmluZSB0cmllZGljdF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh0cmllZGljdF9zd2FwKQogI2RlZmluZSB1X1VDaGFyc1RvQ2hhcnMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfVUNoYXJzVG9DaGFycykKICNkZWZpbmUgdV9hdXN0cmNweSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodV9hdXN0cmNweSkKICNkZWZpbmUgdV9hdXN0cm5jcHkgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfYXVzdHJuY3B5KQpAQCAtMjM5LDYgKzIyNSw3IEBACiAjZGVmaW5l
IHVfZmVvZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZW9mKQogI2RlZmluZSB1X2ZmbHVz
aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZmx1c2gpCiAjZGVmaW5lIHVfZmdldENvbnZl
cnRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0Q29udmVydGVyKQorI2RlZmluZSB1
X2ZnZXROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldE51bWJlckZv
cm1hdCkKICNkZWZpbmUgdV9mZ2V0YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0YykK
ICNkZWZpbmUgdV9mZ2V0Y29kZXBhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZmdldGNv
ZGVwYWdlKQogI2RlZmluZSB1X2ZnZXRjeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9mZ2V0
Y3gpCkBAIC0yNjcsNiArMjU0LDcgQEAKICNkZWZpbmUgdV9mc2V0dHJhbnNsaXRlcmF0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnNldHRyYW5zbGl0ZXJhdG9yKQogI2RlZmluZSB1X2Zz
dHJvcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2ZzdHJvcGVuKQogI2RlZmluZSB1X2Z1
bmdldGMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZnVuZ2V0YykKKyNkZWZpbmUgdV9nZXRC
aWRpUGFpcmVkQnJhY2tldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRCaWRpUGFpcmVk
QnJhY2tldCkKICNkZWZpbmUgdV9nZXRDb21iaW5pbmdDbGFzcyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodV9nZXRDb21iaW5pbmdDbGFzcykKICNkZWZpbmUgdV9nZXREYXRhRGlyZWN0b3J5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldERhdGFEaXJlY3RvcnkpCiAjZGVmaW5lIHVfZ2V0
RGF0YVZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0RGF0YVZlcnNpb24pCkBA
IC0yNzYsNiArMjY0LDcgQEAKICNkZWZpbmUgdV9nZXRJbnRQcm9wZXJ0eU1heFZhbHVlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldEludFByb3BlcnR5TWF4VmFsdWUpCiAjZGVmaW5lIHVf
Z2V0SW50UHJvcGVydHlNaW5WYWx1ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRJbnRQ
cm9wZXJ0eU1pblZhbHVlKQogI2RlZmluZSB1X2dldEludFByb3BlcnR5VmFsdWUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfZ2V0SW50UHJvcGVydHlWYWx1ZSkKKyNkZWZpbmUgdV9nZXRNYWlu
UHJvcGVydGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9nZXRNYWluUHJvcGVydGllcykK
ICNkZWZpbmUgdV9nZXROdW1lcmljVmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0
TnVtZXJpY1ZhbHVlKQogI2RlZmluZSB1X2dldFByb3BlcnR5RW51bSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodV9nZXRQcm9wZXJ0eUVudW0pCiAjZGVmaW5lIHVfZ2V0UHJvcGVydHlOYW1lIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFByb3BlcnR5TmFtZSkKQEAgLTI4NCw5ICsyNzMs
OSBAQAogI2RlZmluZSB1X2dldFVuaWNvZGVQcm9wZXJ0aWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1X2dldFVuaWNvZGVQcm9wZXJ0aWVzKQogI2RlZmluZSB1X2dldFVuaWNvZGVWZXJzaW9u
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldFVuaWNvZGVWZXJzaW9uKQogI2RlZmluZSB1
X2dldFZlcnNpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfZ2V0VmVyc2lvbikKKyNkZWZp
bmUgdV9nZXRfc3Rkb3V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2dldF9zdGRvdXQpCiAj
ZGVmaW5lIHVfaGFzQmluYXJ5UHJvcGVydHkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaGFz
QmluYXJ5UHJvcGVydHkpCiAjZGVmaW5lIHVfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dV9pbml0KQotI2RlZmluZSB1X2lzRGF0YU9sZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
X2lzRGF0YU9sZGVyKQogI2RlZmluZSB1X2lzSURJZ25vcmFibGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVfaXNJRElnbm9yYWJsZSkKICNkZWZpbmUgdV9pc0lEUGFydCBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodV9pc0lEUGFydCkKICNkZWZpbmUgdV9pc0lEU3RhcnQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVfaXNJRFN0YXJ0KQpAQCAtMzE4LDcgKzMwNyw2IEBACiAjZGVmaW5lIHVf
aXN0aXRsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3RpdGxlKQogI2RlZmluZSB1X2lz
dXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfaXN1cHBlcikKICNkZWZpbmUgdV9pc3hk
aWdpdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9pc3hkaWdpdCkKLSNkZWZpbmUgdV9sZW5n
dGhPZklkZW50aWNhbExldmVsUnVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xlbmd0aE9m
SWRlbnRpY2FsTGV2ZWxSdW4pCiAjZGVmaW5lIHVfbG9jYnVuZF9jbG9zZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodV9sb2NidW5kX2Nsb3NlKQogI2RlZmluZSB1X2xvY2J1bmRfZ2V0TnVtYmVy
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X2xvY2J1bmRfZ2V0TnVtYmVyRm9ybWF0
KQogI2RlZmluZSB1X2xvY2J1bmRfaW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9sb2Ni
dW5kX2luaXQpCkBAIC0zMzQsNyArMzIyLDkgQEAKICNkZWZpbmUgdV9tZW1zZXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVfbWVtc2V0KQogI2RlZmluZSB1X3BhcnNlTWVzc2FnZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodV9wYXJzZU1lc3NhZ2UpCiAjZGVmaW5lIHVfcGFyc2VNZXNzYWdl
V2l0aEVycm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3BhcnNlTWVzc2FnZVdpdGhFcnJv
cikKKyNkZWZpbmUgdV9wcmludGYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJpbnRmKQog
I2RlZmluZSB1X3ByaW50Zl9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodV9wcmludGZf
cGFyc2UpCisjZGVmaW5lIHVfcHJpbnRmX3UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfcHJp
bnRmX3UpCiAjZGVmaW5lIHVfcmVsZWFzZURlZmF1bHRDb252ZXJ0ZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVfcmVsZWFzZURlZmF1bHRDb252ZXJ0ZXIpCiAjZGVmaW5lIHVfc2NhbmZfcGFy
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVfc2NhbmZfcGFyc2UpCiAjZGVmaW5lIHVfc2V0
QXRvbWljSW5jRGVjRnVuY3Rpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1X3NldEF0b21p
Y0luY0RlY0Z1bmN0aW9ucykKQEAgLTQ0Niw3ICs0MzYsMTAgQEAKICNkZWZpbmUgdWJpZGlfZ2V0
TWF4VmFsdWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldE1heFZhbHVlKQogI2Rl
ZmluZSB1YmlkaV9nZXRNZW1vcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldE1l
bW9yeSkKICNkZWZpbmUgdWJpZGlfZ2V0TWlycm9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
YmlkaV9nZXRNaXJyb3IpCisjZGVmaW5lIHViaWRpX2dldFBhaXJlZEJyYWNrZXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhaXJlZEJyYWNrZXQpCisjZGVmaW5lIHViaWRpX2dl
dFBhaXJlZEJyYWNrZXRUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYWly
ZWRCcmFja2V0VHlwZSkKICNkZWZpbmUgdWJpZGlfZ2V0UGFyYUxldmVsIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhTGV2ZWwpCisjZGVmaW5lIHViaWRpX2dldFBhcmFMZXZl
bEF0SW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX2dldFBhcmFMZXZlbEF0SW5k
ZXgpCiAjZGVmaW5lIHViaWRpX2dldFBhcmFncmFwaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWJpZGlfZ2V0UGFyYWdyYXBoKQogI2RlZmluZSB1YmlkaV9nZXRQYXJhZ3JhcGhCeUluZGV4IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1YmlkaV9nZXRQYXJhZ3JhcGhCeUluZGV4KQogI2RlZmlu
ZSB1YmlkaV9nZXRQcm9jZXNzZWRMZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRp
X2dldFByb2Nlc3NlZExlbmd0aCkKQEAgLTQ3MSw2ICs0NjQsNyBAQAogI2RlZmluZSB1YmlkaV9y
ZW9yZGVyTG9naWNhbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJpZGlfcmVvcmRlckxvZ2lj
YWwpCiAjZGVmaW5lIHViaWRpX3Jlb3JkZXJWaXN1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHViaWRpX3Jlb3JkZXJWaXN1YWwpCiAjZGVmaW5lIHViaWRpX3NldENsYXNzQ2FsbGJhY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldENsYXNzQ2FsbGJhY2spCisjZGVmaW5lIHVi
aWRpX3NldENvbnRleHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRpX3NldENvbnRleHQp
CiAjZGVmaW5lIHViaWRpX3NldEludmVyc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHViaWRp
X3NldEludmVyc2UpCiAjZGVmaW5lIHViaWRpX3NldExpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHViaWRpX3NldExpbmUpCiAjZGVmaW5lIHViaWRpX3NldFBhcmEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHViaWRpX3NldFBhcmEpCkBAIC00OTUsNiArNDg5LDcgQEAKICNkZWZpbmUgdWJy
a19vcGVuUnVsZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfb3BlblJ1bGVzKQogI2Rl
ZmluZSB1YnJrX3ByZWNlZGluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19wcmVjZWRp
bmcpCiAjZGVmaW5lIHVicmtfcHJldmlvdXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtf
cHJldmlvdXMpCisjZGVmaW5lIHVicmtfcmVmcmVzaFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1YnJrX3JlZnJlc2hVVGV4dCkKICNkZWZpbmUgdWJya19zYWZlQ2xvbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVicmtfc2FmZUNsb25lKQogI2RlZmluZSB1YnJrX3NldFRleHQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVicmtfc2V0VGV4dCkKICNkZWZpbmUgdWJya19zZXRVVGV4
dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWJya19zZXRVVGV4dCkKQEAgLTUxMyw2ICs1MDgs
NyBAQAogI2RlZmluZSB1Y2FsX2dldERTVFNhdmluZ3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjYWxfZ2V0RFNUU2F2aW5ncykKICNkZWZpbmUgdWNhbF9nZXREYXlPZldlZWtUeXBlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERheU9mV2Vla1R5cGUpCiAjZGVmaW5lIHVjYWxf
Z2V0RGVmYXVsdFRpbWVab25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldERlZmF1
bHRUaW1lWm9uZSkKKyNkZWZpbmUgdWNhbF9nZXRGaWVsZERpZmZlcmVuY2UgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYWxfZ2V0RmllbGREaWZmZXJlbmNlKQogI2RlZmluZSB1Y2FsX2dldEdy
ZWdvcmlhbkNoYW5nZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRHcmVnb3JpYW5D
aGFuZ2UpCiAjZGVmaW5lIHVjYWxfZ2V0S2V5d29yZFZhbHVlc0ZvckxvY2FsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxlKQogI2RlZmluZSB1
Y2FsX2dldExpbWl0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldExpbWl0KQpAQCAt
NTIxLDEzICs1MTcsMTggQEAKICNkZWZpbmUgdWNhbF9nZXROb3cgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYWxfZ2V0Tm93KQogI2RlZmluZSB1Y2FsX2dldFRaRGF0YVZlcnNpb24gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VFpEYXRhVmVyc2lvbikKICNkZWZpbmUgdWNhbF9n
ZXRUaW1lWm9uZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRp
bWVab25lRGlzcGxheU5hbWUpCisjZGVmaW5lIHVjYWxfZ2V0VGltZVpvbmVJRCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNhbF9nZXRUaW1lWm9uZUlEKQorI2RlZmluZSB1Y2FsX2dldFRpbWVa
b25lSURGb3JXaW5kb3dzSUQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYWxfZ2V0VGltZVpv
bmVJREZvcldpbmRvd3NJRCkKKyNkZWZpbmUgdWNhbF9nZXRUaW1lWm9uZVRyYW5zaXRpb25EYXRl
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFRpbWVab25lVHJhbnNpdGlvbkRhdGUp
CiAjZGVmaW5lIHVjYWxfZ2V0VHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9nZXRU
eXBlKQogI2RlZmluZSB1Y2FsX2dldFdlZWtlbmRUcmFuc2l0aW9uIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Y2FsX2dldFdlZWtlbmRUcmFuc2l0aW9uKQorI2RlZmluZSB1Y2FsX2dldFdpbmRv
d3NUaW1lWm9uZUlEIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX2dldFdpbmRvd3NUaW1l
Wm9uZUlEKQogI2RlZmluZSB1Y2FsX2luRGF5bGlnaHRUaW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1Y2FsX2luRGF5bGlnaHRUaW1lKQogI2RlZmluZSB1Y2FsX2lzU2V0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y2FsX2lzU2V0KQogI2RlZmluZSB1Y2FsX2lzV2Vla2VuZCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNhbF9pc1dlZWtlbmQpCiAjZGVmaW5lIHVjYWxfb3BlbiBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9vcGVuKQogI2RlZmluZSB1Y2FsX29wZW5Db3VudHJ5
VGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW5Db3VudHJ5VGltZVpv
bmVzKQorI2RlZmluZSB1Y2FsX29wZW5UaW1lWm9uZUlERW51bWVyYXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYWxfb3BlblRpbWVab25lSURFbnVtZXJhdGlvbikKICNkZWZpbmUgdWNh
bF9vcGVuVGltZVpvbmVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FsX29wZW5UaW1lWm9u
ZXMpCiAjZGVmaW5lIHVjYWxfcm9sbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9yb2xs
KQogI2RlZmluZSB1Y2FsX3NldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhbF9zZXQpCkBA
IC01NjAsNiArNTYxLDggQEAKICNkZWZpbmUgdWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvcikKICNkZWZpbmUg
dWNhc2VtYXBfZ2V0TG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1hcF9nZXRM
b2NhbGUpCiAjZGVmaW5lIHVjYXNlbWFwX2dldE9wdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjYXNlbWFwX2dldE9wdGlvbnMpCisjZGVmaW5lIHVjYXNlbWFwX2ludGVybmFsVVRGOFRv
VGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX2ludGVybmFsVVRGOFRvVGl0
bGUpCisjZGVmaW5lIHVjYXNlbWFwX21hcFVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
YXNlbWFwX21hcFVURjgpCiAjZGVmaW5lIHVjYXNlbWFwX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVjYXNlbWFwX29wZW4pCiAjZGVmaW5lIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3Ig
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IpCiAjZGVm
aW5lIHVjYXNlbWFwX3NldExvY2FsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBf
c2V0TG9jYWxlKQpAQCAtNTY5LDExICs1NzIsNiBAQAogI2RlZmluZSB1Y2FzZW1hcF91dGY4VG9M
b3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNhc2VtYXBfdXRmOFRvTG93ZXIpCiAjZGVm
aW5lIHVjYXNlbWFwX3V0ZjhUb1RpdGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2FzZW1h
cF91dGY4VG9UaXRsZSkKICNkZWZpbmUgdWNhc2VtYXBfdXRmOFRvVXBwZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjYXNlbWFwX3V0ZjhUb1VwcGVyKQotI2RlZmluZSB1Y2RfY2xvc2UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9jbG9zZSkKLSNkZWZpbmUgdWNkX2ZsdXNoQ2FjaGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9mbHVzaENhY2hlKQotI2RlZmluZSB1Y2RfZnJl
ZUNhY2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y2RfZnJlZUNhY2hlKQotI2RlZmluZSB1
Y2RfZ2V0Q29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9nZXRDb2xsYXRvcikK
LSNkZWZpbmUgdWNkX29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjZF9vcGVuKQogI2Rl
ZmluZSB1Y2hhcl9hZGRQcm9wZXJ0eVN0YXJ0cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNo
YXJfYWRkUHJvcGVydHlTdGFydHMpCiAjZGVmaW5lIHVjaGFyX3N3YXBOYW1lcyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNoYXJfc3dhcE5hbWVzKQogI2RlZmluZSB1Y2xuX2NsZWFudXBPbmUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbG5fY2xlYW51cE9uZSkKQEAgLTY1Niw2ICs2NTQs
NyBAQAogI2RlZmluZSB1Y252X2lvX3N0cmlwQVNDSUlGb3JDb21wYXJlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y252X2lvX3N0cmlwQVNDSUlGb3JDb21wYXJlKQogI2RlZmluZSB1Y252X2lv
X3N0cmlwRUJDRElDRm9yQ29tcGFyZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9pb19z
dHJpcEVCQ0RJQ0ZvckNvbXBhcmUpCiAjZGVmaW5lIHVjbnZfaXNBbWJpZ3VvdXMgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVjbnZfaXNBbWJpZ3VvdXMpCisjZGVmaW5lIHVjbnZfaXNGaXhlZFdp
ZHRoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2lzRml4ZWRXaWR0aCkKICNkZWZpbmUg
dWNudl9sb2FkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y252X2xvYWQpCiAjZGVmaW5lIHVj
bnZfbG9hZFNoYXJlZERhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjbnZfbG9hZFNoYXJl
ZERhdGEpCiAjZGVmaW5lIHVjbnZfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNudl9v
cGVuKQpAQCAtNjk3LDcgKzY5Niw2IEBACiAjZGVmaW5lIHVjb2xfY2FsY1NvcnRLZXkgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2FsY1NvcnRLZXkpCiAjZGVmaW5lIHVjb2xfY2FsY1Nv
cnRLZXlTaW1wbGVUZXJ0aWFyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jYWxjU29y
dEtleVNpbXBsZVRlcnRpYXJ5KQogI2RlZmluZSB1Y29sX2Nsb25lQmluYXJ5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2Nsb25lQmluYXJ5KQotI2RlZmluZSB1Y29sX2Nsb25lUnVsZURh
dGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfY2xvbmVSdWxlRGF0YSkKICNkZWZpbmUg
dWNvbF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9jbG9zZSkKICNkZWZpbmUg
dWNvbF9jbG9zZUVsZW1lbnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2Nsb3NlRWxl
bWVudHMpCiAjZGVmaW5lIHVjb2xfY291bnRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVjb2xfY291bnRBdmFpbGFibGUpCkBAIC03MTQsOSArNzEyLDExIEBACiAjZGVmaW5lIHVj
b2xfZ2V0QXZhaWxhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldEF2YWlsYWJs
ZSkKICNkZWZpbmUgdWNvbF9nZXRCb3VuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9n
ZXRCb3VuZCkKICNkZWZpbmUgdWNvbF9nZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDRVN0cmVuZ3RoRGlmZmVyZW5jZSkKKyNkZWZpbmUgdWNv
bF9nZXRDb2xsYXRpb25LZXkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0Q29sbGF0
aW9uS2V5KQogI2RlZmluZSB1Y29sX2dldENvbnRyYWN0aW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9nZXRDb250cmFjdGlvbnMpCiAjZGVmaW5lIHVjb2xfZ2V0Q29udHJhY3Rpb25z
QW5kRXhwYW5zaW9ucyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRDb250cmFjdGlv
bnNBbmRFeHBhbnNpb25zKQogI2RlZmluZSB1Y29sX2dldERpc3BsYXlOYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1Y29sX2dldERpc3BsYXlOYW1lKQorI2RlZmluZSB1Y29sX2dldEVxdWl2
YWxlbnRSZW9yZGVyQ29kZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RXF1aXZh
bGVudFJlb3JkZXJDb2RlcykKICNkZWZpbmUgdWNvbF9nZXRGaXJzdENFIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y29sX2dldEZpcnN0Q0UpCiAjZGVmaW5lIHVjb2xfZ2V0RnVuY3Rpb25hbEVx
dWl2YWxlbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0RnVuY3Rpb25hbEVxdWl2
YWxlbnQpCiAjZGVmaW5lIHVjb2xfZ2V0S2V5d29yZFZhbHVlcyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWNvbF9nZXRLZXl3b3JkVmFsdWVzKQpAQCAtNzM1LDggKzczNSw2IEBACiAjZGVmaW5l
IHVjb2xfZ2V0UnVsZXNFeCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRSdWxlc0V4
KQogI2RlZmluZSB1Y29sX2dldFNob3J0RGVmaW5pdGlvblN0cmluZyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9nZXRTaG9ydERlZmluaXRpb25TdHJpbmcpCiAjZGVmaW5lIHVjb2xfZ2V0
U29ydEtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5KQotI2RlZmlu
ZSB1Y29sX2dldFNvcnRLZXlTaXplIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX2dldFNv
cnRLZXlTaXplKQotI2RlZmluZSB1Y29sX2dldFNvcnRLZXlXaXRoQWxsb2NhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRTb3J0S2V5V2l0aEFsbG9jYXRpb24pCiAjZGVmaW5l
IHVjb2xfZ2V0U3RyZW5ndGggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfZ2V0U3RyZW5n
dGgpCiAjZGVmaW5lIHVjb2xfZ2V0VGFpbG9yZWRTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjb2xfZ2V0VGFpbG9yZWRTZXQpCiAjZGVmaW5lIHVjb2xfZ2V0VUNBVmVyc2lvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNvbF9nZXRVQ0FWZXJzaW9uKQpAQCAtNzg4LDYgKzc4Niw3IEBA
CiAjZGVmaW5lIHVjb2xfc2V0VmFyaWFibGVUb3AgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVj
b2xfc2V0VmFyaWFibGVUb3ApCiAjZGVmaW5lIHVjb2xfc3RyY29sbCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNvbF9zdHJjb2xsKQogI2RlZmluZSB1Y29sX3N0cmNvbGxJdGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGxJdGVyKQorI2RlZmluZSB1Y29sX3N0cmNvbGxV
VEY4IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N0cmNvbGxVVEY4KQogI2RlZmluZSB1
Y29sX3N3YXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xfc3dhcCkKICNkZWZpbmUgdWNv
bF9zd2FwQmluYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y29sX3N3YXBCaW5hcnkpCiAj
ZGVmaW5lIHVjb2xfc3dhcEludmVyc2VVQ0EgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjb2xf
c3dhcEludmVyc2VVQ0EpCkBAIC04MDUsMTIgKzgwNCwxNCBAQAogI2RlZmluZSB1Y3NkZXRfZW5h
YmxlSW5wdXRGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9lbmFibGVJbnB1
dEZpbHRlcikKICNkZWZpbmUgdWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X2dldEFsbERldGVjdGFibGVDaGFyc2V0cykKICNkZWZp
bmUgdWNzZGV0X2dldENvbmZpZGVuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9n
ZXRDb25maWRlbmNlKQorI2RlZmluZSB1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3NkZXRfZ2V0RGV0ZWN0YWJsZUNoYXJzZXRzKQogI2RlZmlu
ZSB1Y3NkZXRfZ2V0TGFuZ3VhZ2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9nZXRM
YW5ndWFnZSkKICNkZWZpbmUgdWNzZGV0X2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVjc2RldF9nZXROYW1lKQogI2RlZmluZSB1Y3NkZXRfZ2V0VUNoYXJzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1Y3NkZXRfZ2V0VUNoYXJzKQogI2RlZmluZSB1Y3NkZXRfaXNJbnB1dEZpbHRl
ckVuYWJsZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2RldF9pc0lucHV0RmlsdGVyRW5h
YmxlZCkKICNkZWZpbmUgdWNzZGV0X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjc2Rl
dF9vcGVuKQogI2RlZmluZSB1Y3NkZXRfc2V0RGVjbGFyZWRFbmNvZGluZyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWNzZGV0X3NldERlY2xhcmVkRW5jb2RpbmcpCisjZGVmaW5lIHVjc2RldF9z
ZXREZXRlY3RhYmxlQ2hhcnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWNzZGV0X3NldERl
dGVjdGFibGVDaGFyc2V0KQogI2RlZmluZSB1Y3NkZXRfc2V0VGV4dCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWNzZGV0X3NldFRleHQpCiAjZGVmaW5lIHVjdXJyX2NvdW50Q3VycmVuY2llcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWN1cnJfY291bnRDdXJyZW5jaWVzKQogI2RlZmluZSB1
Y3Vycl9mb3JMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2ZvckxvY2FsZSkK
QEAgLTgxOCw4ICs4MTksMTAgQEAKICNkZWZpbmUgdWN1cnJfZ2V0RGVmYXVsdEZyYWN0aW9uRGln
aXRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9nZXREZWZhdWx0RnJhY3Rpb25EaWdp
dHMpCiAjZGVmaW5lIHVjdXJyX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVjdXJyX2dldEtleXdvcmRWYWx1ZXNGb3JMb2NhbGUpCiAjZGVmaW5lIHVj
dXJyX2dldE5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldE5hbWUpCisjZGVm
aW5lIHVjdXJyX2dldE51bWVyaWNDb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9n
ZXROdW1lcmljQ29kZSkKICNkZWZpbmUgdWN1cnJfZ2V0UGx1cmFsTmFtZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWN1cnJfZ2V0UGx1cmFsTmFtZSkKICNkZWZpbmUgdWN1cnJfZ2V0Um91bmRp
bmdJbmNyZW1lbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX2dldFJvdW5kaW5nSW5j
cmVtZW50KQorI2RlZmluZSB1Y3Vycl9pc0F2YWlsYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWN1cnJfaXNBdmFpbGFibGUpCiAjZGVmaW5lIHVjdXJyX29wZW5JU09DdXJyZW5jaWVzIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl9vcGVuSVNPQ3VycmVuY2llcykKICNkZWZpbmUg
dWN1cnJfcmVnaXN0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVjdXJyX3JlZ2lzdGVyKQog
I2RlZmluZSB1Y3Vycl91bnJlZ2lzdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Y3Vycl91
bnJlZ2lzdGVyKQpAQCAtODMzLDYgKzgzNiw3IEBACiAjZGVmaW5lIHVkYXRfZ2V0MkRpZ2l0WWVh
clN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X2dldDJEaWdpdFllYXJTdGFydCkK
ICNkZWZpbmUgdWRhdF9nZXRBdmFpbGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRf
Z2V0QXZhaWxhYmxlKQogI2RlZmluZSB1ZGF0X2dldENhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1ZGF0X2dldENhbGVuZGFyKQorI2RlZmluZSB1ZGF0X2dldENvbnRleHQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0Q29udGV4dCkKICNkZWZpbmUgdWRhdF9nZXRMb2Nh
bGVCeVR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfZ2V0TG9jYWxlQnlUeXBlKQog
I2RlZmluZSB1ZGF0X2dldE51bWJlckZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRh
dF9nZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVkYXRfZ2V0U3ltYm9scyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodWRhdF9nZXRTeW1ib2xzKQpAQCAtODQwLDggKzg0NCwxMCBAQAogI2RlZmlu
ZSB1ZGF0X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfb3BlbikKICNkZWZpbmUg
dWRhdF9wYXJzZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9wYXJzZSkKICNkZWZpbmUg
dWRhdF9wYXJzZUNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3BhcnNlQ2Fs
ZW5kYXIpCisjZGVmaW5lIHVkYXRfcmVnaXN0ZXJPcGVuZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVkYXRfcmVnaXN0ZXJPcGVuZXIpCiAjZGVmaW5lIHVkYXRfc2V0MkRpZ2l0WWVhclN0YXJ0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZGF0X3NldDJEaWdpdFllYXJTdGFydCkKICNkZWZp
bmUgdWRhdF9zZXRDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRDYWxl
bmRhcikKKyNkZWZpbmUgdWRhdF9zZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
ZGF0X3NldENvbnRleHQpCiAjZGVmaW5lIHVkYXRfc2V0TGVuaWVudCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWRhdF9zZXRMZW5pZW50KQogI2RlZmluZSB1ZGF0X3NldE51bWJlckZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXROdW1iZXJGb3JtYXQpCiAjZGVmaW5lIHVk
YXRfc2V0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF9zZXRTeW1ib2xzKQpA
QCAtODQ5LDYgKzg1NSw3IEBACiAjZGVmaW5lIHVkYXRfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1ZGF0X3RvUGF0dGVybikKICNkZWZpbmUgdWRhdF90b1BhdHRlcm5SZWxhdGl2
ZURhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRfdG9QYXR0ZXJuUmVsYXRpdmVEYXRl
KQogI2RlZmluZSB1ZGF0X3RvUGF0dGVyblJlbGF0aXZlVGltZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdF90b1BhdHRlcm5SZWxhdGl2ZVRpbWUpCisjZGVmaW5lIHVkYXRfdW5yZWdpc3Rl
ck9wZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWRhdF91bnJlZ2lzdGVyT3BlbmVyKQog
I2RlZmluZSB1ZGF0YV9jaGVja0NvbW1vbkRhdGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRhX2NoZWNrQ29tbW9uRGF0YSkKICNkZWZpbmUgdWRhdGFfY2xvc2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVkYXRhX2Nsb3NlKQogI2RlZmluZSB1ZGF0YV9jbG9zZVN3YXBwZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVkYXRhX2Nsb3NlU3dhcHBlcikKQEAgLTg5MiwxMiArODk5LDE3
IEBACiAjZGVmaW5lIHVkYXRwZ19zZXRBcHBlbmRJdGVtTmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWRhdHBnX3NldEFwcGVuZEl0ZW1OYW1lKQogI2RlZmluZSB1ZGF0cGdfc2V0RGF0ZVRp
bWVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkYXRwZ19zZXREYXRlVGltZUZvcm1h
dCkKICNkZWZpbmUgdWRhdHBnX3NldERlY2ltYWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVk
YXRwZ19zZXREZWNpbWFsKQorI2RlZmluZSB1ZGljdF9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1ZGljdF9zd2FwKQorI2RlZmluZSB1ZHRpdHZmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVkdGl0dmZtdF9jbG9zZSkKKyNkZWZpbmUgdWR0aXR2Zm10X2Zvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWR0aXR2Zm10X2Zvcm1hdCkKKyNkZWZpbmUgdWR0aXR2Zm10
X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVkdGl0dmZtdF9vcGVuKQogI2RlZmluZSB1
ZW51bV9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fY2xvc2UpCiAjZGVmaW5l
IHVlbnVtX2NvdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV9jb3VudCkKICNkZWZp
bmUgdWVudW1fbmV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fbmV4dCkKICNkZWZp
bmUgdWVudW1fbmV4dERlZmF1bHQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVlbnVtX25leHRE
ZWZhdWx0KQogI2RlZmluZSB1ZW51bV9vcGVuQ2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3BlbkNoYXJTdHJpbmdzRW51bWVyYXRpb24pCiAjZGVm
aW5lIHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVlbnVtX29wZW5Gcm9tU3RyaW5nRW51bWVyYXRpb24pCisjZGVmaW5lIHVlbnVtX29wZW5V
Q2hhclN0cmluZ3NFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWVudW1fb3Bl
blVDaGFyU3RyaW5nc0VudW1lcmF0aW9uKQogI2RlZmluZSB1ZW51bV9yZXNldCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodWVudW1fcmVzZXQpCiAjZGVmaW5lIHVlbnVtX3VuZXh0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91bmV4dCkKICNkZWZpbmUgdWVudW1fdW5leHREZWZhdWx0
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1ZW51bV91bmV4dERlZmF1bHQpCkBAIC05MDgsMzQg
KzkyMCw0OSBAQAogI2RlZmluZSB1ZmlsZV9nZXRjaCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWZpbGVfZ2V0Y2gpCiAjZGVmaW5lIHVmaWxlX2dldGNoMzIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKHVmaWxlX2dldGNoMzIpCiAjZGVmaW5lIHVmbXRfNjR0b3UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVmbXRfNjR0b3UpCisjZGVmaW5lIHVmbXRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVmbXRfY2xvc2UpCiAjZGVmaW5lIHVmbXRfZGVmYXVsdENQVG9Vbmljb2RlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2RlZmF1bHRDUFRvVW5pY29kZSkKICNkZWZpbmUgdWZt
dF9kaWdpdHZhbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2RpZ2l0dmFsdWUpCisj
ZGVmaW5lIHVmbXRfZ2V0QXJyYXlJdGVtQnlJbmRleCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dWZtdF9nZXRBcnJheUl0ZW1CeUluZGV4KQorI2RlZmluZSB1Zm10X2dldEFycmF5TGVuZ3RoIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X2dldEFycmF5TGVuZ3RoKQorI2RlZmluZSB1Zm10
X2dldERhdGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0RGF0ZSkKKyNkZWZpbmUg
dWZtdF9nZXREZWNOdW1DaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9nZXREZWNO
dW1DaGFycykKKyNkZWZpbmUgdWZtdF9nZXREb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVmbXRfZ2V0RG91YmxlKQorI2RlZmluZSB1Zm10X2dldEludDY0IFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1Zm10X2dldEludDY0KQorI2RlZmluZSB1Zm10X2dldExvbmcgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVmbXRfZ2V0TG9uZykKKyNkZWZpbmUgdWZtdF9nZXRPYmplY3QgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0T2JqZWN0KQorI2RlZmluZSB1Zm10X2dldFR5cGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0VHlwZSkKKyNkZWZpbmUgdWZtdF9nZXRV
Q2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfZ2V0VUNoYXJzKQorI2RlZmluZSB1
Zm10X2lzTnVtZXJpYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9pc051bWVyaWMpCiAj
ZGVmaW5lIHVmbXRfaXNkaWdpdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF9pc2RpZ2l0
KQorI2RlZmluZSB1Zm10X29wZW4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfb3BlbikK
ICNkZWZpbmUgdWZtdF9wdG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Zm10X3B0b3UpCiAj
ZGVmaW5lIHVmbXRfdXRvNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVmbXRfdXRvNjQpCiAj
ZGVmaW5lIHVmbXRfdXRvcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWZtdF91dG9wKQorI2Rl
ZmluZSB1Z2VuZGVyX2dldEluc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1Z2VuZGVy
X2dldEluc3RhbmNlKQorI2RlZmluZSB1Z2VuZGVyX2dldExpc3RHZW5kZXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVnZW5kZXJfZ2V0TGlzdEdlbmRlcikKICNkZWZpbmUgdWhhc2hfY2xvc2Ug
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2Nsb3NlKQogI2RlZmluZSB1aGFzaF9jb21w
YXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9j
b21wYXJlQ2FzZWxlc3NVbmljb2RlU3RyaW5nKQogI2RlZmluZSB1aGFzaF9jb21wYXJlQ2hhcnMg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2NvbXBhcmVDaGFycykKICNkZWZpbmUgdWhh
c2hfY29tcGFyZUlDaGFycyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfY29tcGFyZUlD
aGFycykKICNkZWZpbmUgdWhhc2hfY29tcGFyZUxvbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2NvbXBhcmVMb25nKQorI2RlZmluZSB1aGFzaF9jb21wYXJlU2NyaXB0U2V0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlU2NyaXB0U2V0KQogI2RlZmluZSB1aGFz
aF9jb21wYXJlVUNoYXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb21wYXJlVUNo
YXJzKQogI2RlZmluZSB1aGFzaF9jb21wYXJlVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodWhhc2hfY29tcGFyZVVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2NvdW50
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9jb3VudCkKICNkZWZpbmUgdWhhc2hfZGVs
ZXRlSGFzaHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9kZWxldGVIYXNodGFi
bGUpCi0jZGVmaW5lIHVoYXNoX2RlbGV0ZVVPYmplY3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVoYXNoX2RlbGV0ZVVPYmplY3QpCi0jZGVmaW5lIHVoYXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2RlbGV0ZVVuaWNvZGVTdHJpbmcpCisjZGVm
aW5lIHVoYXNoX2RlbGV0ZVNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hf
ZGVsZXRlU2NyaXB0U2V0KQogI2RlZmluZSB1aGFzaF9lcXVhbHMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVoYXNoX2VxdWFscykKKyNkZWZpbmUgdWhhc2hfZXF1YWxzU2NyaXB0U2V0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9lcXVhbHNTY3JpcHRTZXQpCiAjZGVmaW5lIHVoYXNo
X2ZpbmQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2ZpbmQpCi0jZGVmaW5lIHVoYXNo
X2ZyZWVCbG9jayBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZnJlZUJsb2NrKQogI2Rl
ZmluZSB1aGFzaF9nZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2dldCkKICNkZWZp
bmUgdWhhc2hfZ2V0aSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfZ2V0aSkKICNkZWZp
bmUgdWhhc2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWhhc2hfaGFzaENhc2VsZXNzVW5pY29kZVN0cmluZykKICNkZWZpbmUgdWhhc2hfaGFzaENo
YXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9oYXNoQ2hhcnMpCiAjZGVmaW5lIHVo
YXNoX2hhc2hJQ2hhcnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hJQ2hhcnMp
CiAjZGVmaW5lIHVoYXNoX2hhc2hMb25nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1aGFzaF9o
YXNoTG9uZykKKyNkZWZpbmUgdWhhc2hfaGFzaFNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWhhc2hfaGFzaFNjcmlwdFNldCkKICNkZWZpbmUgdWhhc2hfaGFzaFVDaGFycyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodWhhc2hfaGFzaFVDaGFycykKLSNkZWZpbmUgdWhhc2hfaGFz
aFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVoYXNoX2hhc2hVQ2hhcnNOKQogI2Rl
ZmluZSB1aGFzaF9oYXNoVW5pY29kZVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWhh
c2hfaGFzaFVuaWNvZGVTdHJpbmcpCiAjZGVmaW5lIHVoYXNoX2lnZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVoYXNoX2lnZXQpCiAjZGVmaW5lIHVoYXNoX2lnZXRpIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1aGFzaF9pZ2V0aSkKQEAgLTk4NSw2ICsxMDEyLDcgQEAKICNkZWZpbmUgdWl0
ZXJfc2V0VVRGMTZCRSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0VVRGMTZCRSkK
ICNkZWZpbmUgdWl0ZXJfc2V0VVRGOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWl0ZXJfc2V0
VVRGOCkKICNkZWZpbmUgdWxkbl9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9j
bG9zZSkKKyNkZWZpbmUgdWxkbl9nZXRDb250ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
bGRuX2dldENvbnRleHQpCiAjZGVmaW5lIHVsZG5fZ2V0RGlhbGVjdEhhbmRsaW5nIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bGRuX2dldERpYWxlY3RIYW5kbGluZykKICNkZWZpbmUgdWxkbl9n
ZXRMb2NhbGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fZ2V0TG9jYWxlKQogI2RlZmlu
ZSB1bGRuX2tleURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bGRuX2tleURp
c3BsYXlOYW1lKQpAQCAtOTkyLDYgKzEwMjAsNyBAQAogI2RlZmluZSB1bGRuX2xhbmd1YWdlRGlz
cGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fbGFuZ3VhZ2VEaXNwbGF5TmFt
ZSkKICNkZWZpbmUgdWxkbl9sb2NhbGVEaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodWxkbl9sb2NhbGVEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9vcGVuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bGRuX29wZW4pCisjZGVmaW5lIHVsZG5fb3BlbkZvckNvbnRleHQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fb3BlbkZvckNvbnRleHQpCiAjZGVmaW5lIHVsZG5f
cmVnaW9uRGlzcGxheU5hbWUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVsZG5fcmVnaW9uRGlz
cGxheU5hbWUpCiAjZGVmaW5lIHVsZG5fc2NyaXB0Q29kZURpc3BsYXlOYW1lIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bGRuX3NjcmlwdENvZGVEaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxkbl9z
Y3JpcHREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxkbl9zY3JpcHREaXNw
bGF5TmFtZSkKQEAgLTEwMjgsNiArMTA1Nyw3IEBACiAjZGVmaW5lIHVsb2NfZ2V0RGlzcGxheUxh
bmd1YWdlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlMYW5ndWFnZSkK
ICNkZWZpbmUgdWxvY19nZXREaXNwbGF5TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxv
Y19nZXREaXNwbGF5TmFtZSkKICNkZWZpbmUgdWxvY19nZXREaXNwbGF5U2NyaXB0IFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlTY3JpcHQpCisjZGVmaW5lIHVsb2NfZ2V0
RGlzcGxheVNjcmlwdEluQ29udGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodWxvY19nZXRE
aXNwbGF5U2NyaXB0SW5Db250ZXh0KQogI2RlZmluZSB1bG9jX2dldERpc3BsYXlWYXJpYW50IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldERpc3BsYXlWYXJpYW50KQogI2RlZmluZSB1
bG9jX2dldElTTzNDb3VudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bG9jX2dldElTTzND
b3VudHJ5KQogI2RlZmluZSB1bG9jX2dldElTTzNMYW5ndWFnZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodWxvY19nZXRJU08zTGFuZ3VhZ2UpCkBAIC0xMDc1LDE4ICsxMTA1LDIxIEBACiAjZGVm
aW5lIHVtc2dfdG9QYXR0ZXJuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3RvUGF0dGVy
bikKICNkZWZpbmUgdW1zZ192Zm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNnX3Zm
b3JtYXQpCiAjZGVmaW5lIHVtc2dfdnBhcnNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXNn
X3ZwYXJzZSkKLSNkZWZpbmUgdW10eF9hdG9taWNfZGVjIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bXR4X2F0b21pY19kZWMpCi0jZGVmaW5lIHVtdHhfYXRvbWljX2luYyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW10eF9hdG9taWNfaW5jKQotI2RlZmluZSB1bXR4X2NsZWFudXAgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfY2xlYW51cCkKLSNkZWZpbmUgdW10eF9kZXN0cm95IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bXR4X2Rlc3Ryb3kpCi0jZGVmaW5lIHVtdHhfaW5pdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW10eF9pbml0KQogI2RlZmluZSB1bXR4X2xvY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfbG9jaykKICNkZWZpbmUgdW10eF91bmxvY2sgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVtdHhfdW5sb2NrKQogI2RlZmluZSB1bmlzZXRfZ2V0VW5p
Y29kZTMySW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVuaXNldF9nZXRVbmljb2Rl
MzJJbnN0YW5jZSkKICNkZWZpbmUgdW5vcm0yX2FwcGVuZCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodW5vcm0yX2FwcGVuZCkKICNkZWZpbmUgdW5vcm0yX2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1bm9ybTJfY2xvc2UpCisjZGVmaW5lIHVub3JtMl9jb21wb3NlUGFpciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2NvbXBvc2VQYWlyKQorI2RlZmluZSB1bm9ybTJfZ2V0
Q29tYmluaW5nQ2xhc3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRDb21iaW5p
bmdDbGFzcykKICNkZWZpbmUgdW5vcm0yX2dldERlY29tcG9zaXRpb24gVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVub3JtMl9nZXREZWNvbXBvc2l0aW9uKQogI2RlZmluZSB1bm9ybTJfZ2V0SW5z
dGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRJbnN0YW5jZSkKKyNkZWZp
bmUgdW5vcm0yX2dldE5GQ0luc3RhbmNlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bm9ybTJf
Z2V0TkZDSW5zdGFuY2UpCisjZGVmaW5lIHVub3JtMl9nZXRORkRJbnN0YW5jZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GREluc3RhbmNlKQorI2RlZmluZSB1bm9ybTJfZ2V0
TkZLQ0Nhc2Vmb2xkSW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRO
RktDQ2FzZWZvbGRJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldE5GS0NJbnN0YW5jZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5GS0NJbnN0YW5jZSkKKyNkZWZpbmUgdW5v
cm0yX2dldE5GS0RJbnN0YW5jZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2dldE5G
S0RJbnN0YW5jZSkKKyNkZWZpbmUgdW5vcm0yX2dldFJhd0RlY29tcG9zaXRpb24gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVub3JtMl9nZXRSYXdEZWNvbXBvc2l0aW9uKQogI2RlZmluZSB1bm9y
bTJfaGFzQm91bmRhcnlBZnRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0Jv
dW5kYXJ5QWZ0ZXIpCiAjZGVmaW5lIHVub3JtMl9oYXNCb3VuZGFyeUJlZm9yZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm0yX2hhc0JvdW5kYXJ5QmVmb3JlKQogI2RlZmluZSB1bm9ybTJf
aXNJbmVydCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW5vcm0yX2lzSW5lcnQpCkBAIC0xMTAw
LDcgKzExMzMsNyBAQAogI2RlZmluZSB1bm9ybV9jbG9zZUl0ZXIgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVub3JtX2Nsb3NlSXRlcikKICNkZWZpbmUgdW5vcm1fY29tcGFyZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodW5vcm1fY29tcGFyZSkKICNkZWZpbmUgdW5vcm1fY29uY2F0ZW5hdGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2NvbmNhdGVuYXRlKQotI2RlZmluZSB1bm9y
bV9nZXRGQ0RUcmllSW5kZXggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2dldEZDRFRy
aWVJbmRleCkKKyNkZWZpbmUgdW5vcm1fZ2V0RkNEMTYgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtX2dldEZDRDE2KQogI2RlZmluZSB1bm9ybV9nZXRRdWlja0NoZWNrIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bm9ybV9nZXRRdWlja0NoZWNrKQogI2RlZmluZSB1bm9ybV9pc05vcm1h
bGl6ZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVub3JtX2lzTm9ybWFsaXplZCkKICNkZWZp
bmUgdW5vcm1faXNOb3JtYWxpemVkV2l0aE9wdGlvbnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVub3JtX2lzTm9ybWFsaXplZFdpdGhPcHRpb25zKQpAQCAtMTEyMCw2ICsxMTUzLDcgQEAKICNk
ZWZpbmUgdW51bV9mb3JtYXREb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZm9y
bWF0RG91YmxlKQogI2RlZmluZSB1bnVtX2Zvcm1hdERvdWJsZUN1cnJlbmN5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdERvdWJsZUN1cnJlbmN5KQogI2RlZmluZSB1bnVtX2Zv
cm1hdEludDY0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX2Zvcm1hdEludDY0KQorI2Rl
ZmluZSB1bnVtX2Zvcm1hdFVGb3JtYXR0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51
bV9mb3JtYXRVRm9ybWF0dGFibGUpCiAjZGVmaW5lIHVudW1fZ2V0QXR0cmlidXRlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1bnVtX2dldEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9nZXRBdmFp
bGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fZ2V0QXZhaWxhYmxlKQogI2RlZmlu
ZSB1bnVtX2dldERvdWJsZUF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9n
ZXREb3VibGVBdHRyaWJ1dGUpCkBAIC0xMTMyLDExICsxMTY2LDI0IEBACiAjZGVmaW5lIHVudW1f
cGFyc2VEb3VibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VEb3VibGUpCiAj
ZGVmaW5lIHVudW1fcGFyc2VEb3VibGVDdXJyZW5jeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dW51bV9wYXJzZURvdWJsZUN1cnJlbmN5KQogI2RlZmluZSB1bnVtX3BhcnNlSW50NjQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVudW1fcGFyc2VJbnQ2NCkKKyNkZWZpbmUgdW51bV9wYXJzZVRv
VUZvcm1hdHRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtX3BhcnNlVG9VRm9ybWF0
dGFibGUpCiAjZGVmaW5lIHVudW1fc2V0QXR0cmlidXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1bnVtX3NldEF0dHJpYnV0ZSkKICNkZWZpbmUgdW51bV9zZXREb3VibGVBdHRyaWJ1dGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1fc2V0RG91YmxlQXR0cmlidXRlKQogI2RlZmluZSB1
bnVtX3NldFN5bWJvbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bV9zZXRTeW1ib2wpCiAj
ZGVmaW5lIHVudW1fc2V0VGV4dEF0dHJpYnV0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51
bV9zZXRUZXh0QXR0cmlidXRlKQogI2RlZmluZSB1bnVtX3RvUGF0dGVybiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodW51bV90b1BhdHRlcm4pCisjZGVmaW5lIHVudW1zeXNfY2xvc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfY2xvc2UpCisjZGVmaW5lIHVudW1zeXNfZ2V0RGVz
Y3JpcHRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfZ2V0RGVzY3JpcHRpb24p
CisjZGVmaW5lIHVudW1zeXNfZ2V0TmFtZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodW51bXN5
c19nZXROYW1lKQorI2RlZmluZSB1bnVtc3lzX2dldFJhZGl4IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1bnVtc3lzX2dldFJhZGl4KQorI2RlZmluZSB1bnVtc3lzX2lzQWxnb3JpdGhtaWMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVudW1zeXNfaXNBbGdvcml0aG1pYykKKyNkZWZpbmUgdW51
bXN5c19vcGVuIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW4pCisjZGVmaW5l
IHVudW1zeXNfb3BlbkF2YWlsYWJsZU5hbWVzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVt
c3lzX29wZW5BdmFpbGFibGVOYW1lcykKKyNkZWZpbmUgdW51bXN5c19vcGVuQnlOYW1lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1bnVtc3lzX29wZW5CeU5hbWUpCisjZGVmaW5lIHVwbHJ1bGVz
X2Nsb3NlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGxydWxlc19jbG9zZSkKKyNkZWZpbmUg
dXBscnVsZXNfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBscnVsZXNfb3BlbikKKyNk
ZWZpbmUgdXBscnVsZXNfb3BlbkZvclR5cGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwbHJ1
bGVzX29wZW5Gb3JUeXBlKQorI2RlZmluZSB1cGxydWxlc19zZWxlY3QgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwbHJ1bGVzX3NlbGVjdCkKICNkZWZpbmUgdXBsdWdfY2xvc2VMaWJyYXJ5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19jbG9zZUxpYnJhcnkpCiAjZGVmaW5lIHVwbHVn
X2ZpbmRMaWJyYXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19maW5kTGlicmFyeSkK
ICNkZWZpbmUgdXBsdWdfZ2V0Q29uZmlndXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBsdWdfZ2V0Q29uZmlndXJhdGlvbikKQEAgLTExNjAsMTIgKzEyMDcsMTIgQEAKICNkZWZpbmUg
dXBsdWdfc2V0UGx1Z0xldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVn
TGV2ZWwpCiAjZGVmaW5lIHVwbHVnX3NldFBsdWdOYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cGx1Z19zZXRQbHVnTmFtZSkKICNkZWZpbmUgdXBsdWdfc2V0UGx1Z05vVW5sb2FkIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cGx1Z19zZXRQbHVnTm9VbmxvYWQpCi0jZGVmaW5lIHVwbmFt
ZV9zd2FwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cG5hbWVfc3dhcCkKICNkZWZpbmUgdXBy
b3BzX2dldFNvdXJjZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXByb3BzX2dldFNvdXJjZSkK
ICNkZWZpbmUgdXByb3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJvcHN2ZWNfYWRkUHJvcGVydHlTdGFydHMpCiAjZGVmaW5lIHVwcnZfYWVzdHJuY3B5
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2Flc3RybmNweSkKICNkZWZpbmUgdXBydl9h
c2NpaUZyb21FYmNkaWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfYXNjaWlGcm9tRWJj
ZGljKQogI2RlZmluZSB1cHJ2X2FzY2lpdG9sb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXBydl9hc2NpaXRvbG93ZXIpCisjZGVmaW5lIHVwcnZfY2FsbG9jIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2NhbGxvYykKICNkZWZpbmUgdXBydl9jZWlsIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2NlaWwpCiAjZGVmaW5lIHVwcnZfY250dGFiX2FkZENvbnRyYWN0aW9uIFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2NudHRhYl9hZGRDb250cmFjdGlvbikKICNkZWZp
bmUgdXBydl9jbnR0YWJfY2hhbmdlQ29udHJhY3Rpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfY250dGFiX2NoYW5nZUNvbnRyYWN0aW9uKQpAQCAtMTIwMiw3ICsxMjQ5LDYgQEAKICNk
ZWZpbmUgdXBydl9kZWNDb250ZXh0U2V0U3RhdHVzRnJvbVN0cmluZ1F1aWV0IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNGcm9tU3RyaW5nUXVpZXQpCiAj
ZGVmaW5lIHVwcnZfZGVjQ29udGV4dFNldFN0YXR1c1F1aWV0IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X2RlY0NvbnRleHRTZXRTdGF0dXNRdWlldCkKICNkZWZpbmUgdXBydl9kZWNDb250
ZXh0U3RhdHVzVG9TdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGVjQ29udGV4
dFN0YXR1c1RvU3RyaW5nKQotI2RlZmluZSB1cHJ2X2RlY0NvbnRleHRUZXN0RW5kaWFuIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY0NvbnRleHRUZXN0RW5kaWFuKQogI2RlZmluZSB1
cHJ2X2RlY0NvbnRleHRUZXN0U2F2ZWRTdGF0dXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfZGVjQ29udGV4dFRlc3RTYXZlZFN0YXR1cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0VGVz
dFN0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWNDb250ZXh0VGVzdFN0YXR1
cykKICNkZWZpbmUgdXBydl9kZWNDb250ZXh0WmVyb1N0YXR1cyBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXBydl9kZWNDb250ZXh0WmVyb1N0YXR1cykKQEAgLTEyNjgsMTIgKzEzMTQsMTQgQEAK
ICNkZWZpbmUgdXBydl9kZWNOdW1iZXJWZXJzaW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2RlY051bWJlclZlcnNpb24pCiAjZGVmaW5lIHVwcnZfZGVjTnVtYmVyWG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclhvcikKICNkZWZpbmUgdXBydl9kZWNOdW1i
ZXJaZXJvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2RlY051bWJlclplcm8pCisjZGVm
aW5lIHVwcnZfZGVsZXRlVU9iamVjdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kZWxl
dGVVT2JqZWN0KQogI2RlZmluZSB1cHJ2X2RlbGV0ZV9jb2xsSXRlcmF0ZSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXBydl9kZWxldGVfY29sbEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfZGxfY2xv
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfZGxfY2xvc2UpCiAjZGVmaW5lIHVwcnZf
ZGxfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9vcGVuKQotI2RlZmluZSB1
cHJ2X2RsX3N5bSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbF9zeW0pCisjZGVmaW5l
IHVwcnZfZGxzeW1fZnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9kbHN5bV9mdW5j
KQogI2RlZmluZSB1cHJ2X2Vhc3RybmNweSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9l
YXN0cm5jcHkpCiAjZGVmaW5lIHVwcnZfZWJjZGljRnJvbUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X2ViY2RpY0Zyb21Bc2NpaSkKKyNkZWZpbmUgdXBydl9lYmNkaWNUb0xvd2Vy
Y2FzZUFzY2lpIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2ViY2RpY1RvTG93ZXJjYXNl
QXNjaWkpCiAjZGVmaW5lIHVwcnZfZWJjZGljdG9sb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUodXBydl9lYmNkaWN0b2xvd2VyKQogI2RlZmluZSB1cHJ2X2ZhYnMgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfZmFicykKICNkZWZpbmUgdXBydl9mbG9vciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUodXBydl9mbG9vcikKQEAgLTEyOTUsMTMgKzEzNDMsMTMgQEAKICNkZWZpbmUgdXBy
dl9pbml0X2NvbGxJdGVyYXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2luaXRfY29s
bEl0ZXJhdGUpCiAjZGVmaW5lIHVwcnZfaW5pdF9wY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfaW5pdF9wY2UpCiAjZGVmaW5lIHVwcnZfaW50MzJDb21wYXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X2ludDMyQ29tcGFyYXRvcikKKyNkZWZpbmUgdXBydl9pc0FTQ0lJ
TGV0dGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X2lzQVNDSUlMZXR0ZXIpCiAjZGVm
aW5lIHVwcnZfaXNJbmZpbml0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0luZmlu
aXRlKQogI2RlZmluZSB1cHJ2X2lzSW52YXJpYW50U3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X2lzSW52YXJpYW50U3RyaW5nKQogI2RlZmluZSB1cHJ2X2lzSW52YXJpYW50VVN0
cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9pc0ludmFyaWFudFVTdHJpbmcpCiAj
ZGVmaW5lIHVwcnZfaXNOYU4gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNOYU4pCiAj
ZGVmaW5lIHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2lzTmVnYXRpdmVJbmZpbml0eSkKICNkZWZpbmUgdXBydl9pc1Bvc2l0aXZlSW5maW5pdHkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5KQotI2RlZmlu
ZSB1cHJ2X2lzUnVsZVdoaXRlU3BhY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfaXNS
dWxlV2hpdGVTcGFjZSkKICNkZWZpbmUgdXBydl9pdG91IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1cHJ2X2l0b3UpCiAjZGVmaW5lIHVwcnZfbG9nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cHJ2X2xvZykKICNkZWZpbmUgdXBydl9tYWxsb2MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfbWFsbG9jKQpAQCAtMTMxMiw3ICsxMzYwLDYgQEAKICNkZWZpbmUgdXBydl9taW4gVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbWluKQogI2RlZmluZSB1cHJ2X21vZGYgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVwcnZfbW9kZikKICNkZWZpbmUgdXBydl9uZXdfY29sbEl0ZXJhdGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfbmV3X2NvbGxJdGVyYXRlKQotI2RlZmluZSB1
cHJ2X29wZW5SdWxlV2hpdGVTcGFjZVNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9v
cGVuUnVsZVdoaXRlU3BhY2VTZXQpCiAjZGVmaW5lIHVwcnZfcGFyc2VDdXJyZW5jeSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXBydl9wYXJzZUN1cnJlbmN5KQogI2RlZmluZSB1cHJ2X3BhdGhJ
c0Fic29sdXRlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cHJ2X3BhdGhJc0Fic29sdXRlKQog
I2RlZmluZSB1cHJ2X3BvdyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl9wb3cpCkBAIC0x
MzIwLDkgKzEzNjcsMTIgQEAKICNkZWZpbmUgdXBydl9yZWFsbG9jIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1cHJ2X3JlYWxsb2MpCiAjZGVmaW5lIHVwcnZfcm91bmQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfcm91bmQpCiAjZGVmaW5lIHVwcnZfc29ydEFycmF5IFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cHJ2X3NvcnRBcnJheSkKKyNkZWZpbmUgdXBydl9zdGFibGVCaW5hcnlT
ZWFyY2ggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3RhYmxlQmluYXJ5U2VhcmNoKQog
I2RlZmluZSB1cHJ2X3N0ckNvbXBhcmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3Ry
Q29tcGFyZSkKICNkZWZpbmUgdXBydl9zdHJkdXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVw
cnZfc3RyZHVwKQorI2RlZmluZSB1cHJ2X3N0cmljbXAgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVwcnZfc3RyaWNtcCkKICNkZWZpbmUgdXBydl9zdHJuZHVwIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cHJ2X3N0cm5kdXApCisjZGVmaW5lIHVwcnZfc3RybmljbXAgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVwcnZfc3RybmljbXApCiAjZGVmaW5lIHVwcnZfc3ludGF4RXJyb3IgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfc3ludGF4RXJyb3IpCiAjZGVmaW5lIHVwcnZfdGltZXpv
bmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVwcnZfdGltZXpvbmUpCiAjZGVmaW5lIHVwcnZf
dG91cHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXBydl90b3VwcGVyKQpAQCAtMTM4Niw2
ICsxNDM2LDcgQEAKICNkZWZpbmUgdXJlZ2V4X29wZW5VVGV4dCBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXJlZ2V4X29wZW5VVGV4dCkKICNkZWZpbmUgdXJlZ2V4X3BhdHRlcm4gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVyZWdleF9wYXR0ZXJuKQogI2RlZmluZSB1cmVnZXhfcGF0dGVyblVU
ZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcGF0dGVyblVUZXh0KQorI2RlZmlu
ZSB1cmVnZXhfcmVmcmVzaFVUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVm
cmVzaFVUZXh0KQogI2RlZmluZSB1cmVnZXhfcmVnaW9uRW5kIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnZXhfcmVnaW9uRW5kKQogI2RlZmluZSB1cmVnZXhfcmVnaW9uRW5kNjQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF9yZWdpb25FbmQ2NCkKICNkZWZpbmUgdXJlZ2V4X3Jl
Z2lvblN0YXJ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnZXhfcmVnaW9uU3RhcnQpCkBA
IC0xNDE0LDYgKzE0NjUsMTkgQEAKICNkZWZpbmUgdXJlZ2V4X3VzZUFuY2hvcmluZ0JvdW5kcyBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2V4X3VzZUFuY2hvcmluZ0JvdW5kcykKICNkZWZp
bmUgdXJlZ2V4X3VzZVRyYW5zcGFyZW50Qm91bmRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnZXhfdXNlVHJhbnNwYXJlbnRCb3VuZHMpCiAjZGVmaW5lIHVyZWdleF91dGV4dF91bmVzY2Fw
ZV9jaGFyQXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdleF91dGV4dF91bmVzY2FwZV9j
aGFyQXQpCisjZGVmaW5lIHVyZWdpb25fYXJlRXF1YWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHVyZWdpb25fYXJlRXF1YWwpCisjZGVmaW5lIHVyZWdpb25fY29udGFpbnMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVyZWdpb25fY29udGFpbnMpCisjZGVmaW5lIHVyZWdpb25fZ2V0QXZhaWxh
YmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldEF2YWlsYWJsZSkKKyNkZWZp
bmUgdXJlZ2lvbl9nZXRDb250YWluZWRSZWdpb25zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
cmVnaW9uX2dldENvbnRhaW5lZFJlZ2lvbnMpCisjZGVmaW5lIHVyZWdpb25fZ2V0Q29udGFpbmVk
UmVnaW9uc09mVHlwZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlZ2lvbl9nZXRDb250YWlu
ZWRSZWdpb25zT2ZUeXBlKQorI2RlZmluZSB1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb24gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0Q29udGFpbmluZ1JlZ2lvbikKKyNkZWZp
bmUgdXJlZ2lvbl9nZXRDb250YWluaW5nUmVnaW9uT2ZUeXBlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1cmVnaW9uX2dldENvbnRhaW5pbmdSZWdpb25PZlR5cGUpCisjZGVmaW5lIHVyZWdpb25f
Z2V0TnVtZXJpY0NvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZWdpb25fZ2V0TnVtZXJp
Y0NvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UHJlZmVycmVkVmFsdWVzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1cmVnaW9uX2dldFByZWZlcnJlZFZhbHVlcykKKyNkZWZpbmUgdXJlZ2lvbl9n
ZXRSZWdpb25Db2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFJlZ2lvbkNv
ZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVnaW9uRnJvbUNvZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVyZWdpb25fZ2V0UmVnaW9uRnJvbUNvZGUpCisjZGVmaW5lIHVyZWdpb25fZ2V0UmVn
aW9uRnJvbU51bWVyaWNDb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFJl
Z2lvbkZyb21OdW1lcmljQ29kZSkKKyNkZWZpbmUgdXJlZ2lvbl9nZXRUeXBlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRSh1cmVnaW9uX2dldFR5cGUpCiAjZGVmaW5lIHVyZXNfY2xvc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY2xvc2UpCiAjZGVmaW5lIHVyZXNfY29weVJlc2IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVyZXNfY29weVJlc2IpCiAjZGVmaW5lIHVyZXNfY291bnRB
cnJheUl0ZW1zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX2NvdW50QXJyYXlJdGVtcykK
QEAgLTE0NTcsMTMgKzE1MjEsMTkgQEAKICNkZWZpbmUgdXJlc19vcGVuVSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXJlc19vcGVuVSkKICNkZWZpbmUgdXJlc19yZXNldEl0ZXJhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1cmVzX3Jlc2V0SXRlcmF0b3IpCiAjZGVmaW5lIHVyZXNfc3dh
cCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXJlc19zd2FwKQorI2RlZmluZSB1c2NyaXB0X2Jy
ZWFrc0JldHdlZW5MZXR0ZXJzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2JyZWFr
c0JldHdlZW5MZXR0ZXJzKQogI2RlZmluZSB1c2NyaXB0X2Nsb3NlUnVuIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRSh1c2NyaXB0X2Nsb3NlUnVuKQogI2RlZmluZSB1c2NyaXB0X2dldENvZGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfZ2V0Q29kZSkKICNkZWZpbmUgdXNjcmlwdF9n
ZXROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldE5hbWUpCisjZGVmaW5l
IHVzY3JpcHRfZ2V0U2FtcGxlU3RyaW5nIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0
X2dldFNhbXBsZVN0cmluZykKKyNkZWZpbmUgdXNjcmlwdF9nZXRTYW1wbGVVbmljb2RlU3RyaW5n
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcp
CiAjZGVmaW5lIHVzY3JpcHRfZ2V0U2NyaXB0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2Ny
aXB0X2dldFNjcmlwdCkKICNkZWZpbmUgdXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25zIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dldFNjcmlwdEV4dGVuc2lvbnMpCiAjZGVmaW5l
IHVzY3JpcHRfZ2V0U2hvcnROYW1lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2dl
dFNob3J0TmFtZSkKKyNkZWZpbmUgdXNjcmlwdF9nZXRVc2FnZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXNjcmlwdF9nZXRVc2FnZSkKICNkZWZpbmUgdXNjcmlwdF9oYXNTY3JpcHQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfaGFzU2NyaXB0KQorI2RlZmluZSB1c2NyaXB0X2lz
Q2FzZWQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfaXNDYXNlZCkKKyNkZWZpbmUg
dXNjcmlwdF9pc1JpZ2h0VG9MZWZ0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c2NyaXB0X2lz
UmlnaHRUb0xlZnQpCiAjZGVmaW5lIHVzY3JpcHRfbmV4dFJ1biBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUodXNjcmlwdF9uZXh0UnVuKQogI2RlZmluZSB1c2NyaXB0X29wZW5SdW4gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKHVzY3JpcHRfb3BlblJ1bikKICNkZWZpbmUgdXNjcmlwdF9yZXNldFJ1
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNjcmlwdF9yZXNldFJ1bikKQEAgLTE1NjcsNiAr
MTYzNywxMSBAQAogI2RlZmluZSB1c3Bvb2ZfZ2V0QWxsb3dlZExvY2FsZXMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRBbGxvd2VkTG9jYWxlcykKICNkZWZpbmUgdXNwb29mX2dl
dEFsbG93ZWRVbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0QWxs
b3dlZFVuaWNvZGVTZXQpCiAjZGVmaW5lIHVzcG9vZl9nZXRDaGVja3MgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKHVzcG9vZl9nZXRDaGVja3MpCisjZGVmaW5lIHVzcG9vZl9nZXRJbmNsdXNpb25T
ZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRJbmNsdXNpb25TZXQpCisjZGVm
aW5lIHVzcG9vZl9nZXRJbmNsdXNpb25Vbmljb2RlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh1c3Bvb2ZfZ2V0SW5jbHVzaW9uVW5pY29kZVNldCkKKyNkZWZpbmUgdXNwb29mX2dldFJlY29t
bWVuZGVkU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0UmVjb21tZW5kZWRT
ZXQpCisjZGVmaW5lIHVzcG9vZl9nZXRSZWNvbW1lbmRlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRSZWNvbW1lbmRlZFVuaWNvZGVTZXQpCisjZGVmaW5lIHVz
cG9vZl9nZXRSZXN0cmljdGlvbkxldmVsIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2Zf
Z2V0UmVzdHJpY3Rpb25MZXZlbCkKICNkZWZpbmUgdXNwb29mX2dldFNrZWxldG9uIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRSh1c3Bvb2ZfZ2V0U2tlbGV0b24pCiAjZGVmaW5lIHVzcG9vZl9nZXRT
a2VsZXRvblVURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVU
RjgpCiAjZGVmaW5lIHVzcG9vZl9nZXRTa2VsZXRvblVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKHVzcG9vZl9nZXRTa2VsZXRvblVuaWNvZGVTdHJpbmcpCkBAIC0xNTc4LDIz
ICsxNjUzLDI1IEBACiAjZGVmaW5lIHVzcG9vZl9zZXRBbGxvd2VkTG9jYWxlcyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXNwb29mX3NldEFsbG93ZWRMb2NhbGVzKQogI2RlZmluZSB1c3Bvb2Zf
c2V0QWxsb3dlZFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRB
bGxvd2VkVW5pY29kZVNldCkKICNkZWZpbmUgdXNwb29mX3NldENoZWNrcyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUodXNwb29mX3NldENoZWNrcykKKyNkZWZpbmUgdXNwb29mX3NldFJlc3RyaWN0
aW9uTGV2ZWwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzcG9vZl9zZXRSZXN0cmljdGlvbkxl
dmVsKQogI2RlZmluZSB1c3Bvb2Zfc3dhcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwb29m
X3N3YXApCiAjZGVmaW5lIHVzcHJlcF9jbG9zZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNw
cmVwX2Nsb3NlKQogI2RlZmluZSB1c3ByZXBfb3BlbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
dXNwcmVwX29wZW4pCiAjZGVmaW5lIHVzcHJlcF9vcGVuQnlUeXBlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRSh1c3ByZXBfb3BlbkJ5VHlwZSkKICNkZWZpbmUgdXNwcmVwX3ByZXBhcmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKHVzcHJlcF9wcmVwYXJlKQogI2RlZmluZSB1c3ByZXBfc3dhcCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXNwcmVwX3N3YXApCi0jZGVmaW5lIHVzdHJfZm9sZENh
c2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfZm9sZENhc2UpCi0jZGVmaW5lIHVzdHJf
dG9Mb3dlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cl90b0xvd2VyKQotI2RlZmluZSB1
c3RyX3RvVGl0bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJfdG9UaXRsZSkKLSNkZWZp
bmUgdXN0cl90b1VwcGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX3RvVXBwZXIpCi0j
ZGVmaW5lIHV0ZXh0X2Nhc2VDb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9j
YXNlQ29tcGFyZSkKLSNkZWZpbmUgdXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY2FzZUNvbXBhcmVOYXRpdmVMaW1pdCkKKyNkZWZpbmUg
dXN0cl9oYXNoQ2hhcnNOIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyX2hhc2hDaGFyc04p
CisjZGVmaW5lIHVzdHJfaGFzaElDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJf
aGFzaElDaGFyc04pCisjZGVmaW5lIHVzdHJfaGFzaFVDaGFyc04gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzdHJfaGFzaFVDaGFyc04pCisjZGVmaW5lIHVzdHJjYXNlX2ludGVybmFsRm9sZCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2VfaW50ZXJuYWxGb2xkKQorI2RlZmluZSB1
c3RyY2FzZV9pbnRlcm5hbFRvTG93ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNl
X2ludGVybmFsVG9Mb3dlcikKKyNkZWZpbmUgdXN0cmNhc2VfaW50ZXJuYWxUb1RpdGxlIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh1c3RyY2FzZV9pbnRlcm5hbFRvVGl0bGUpCisjZGVmaW5lIHVz
dHJjYXNlX2ludGVybmFsVG9VcHBlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXN0cmNhc2Vf
aW50ZXJuYWxUb1VwcGVyKQorI2RlZmluZSB1c3RyY2FzZV9tYXAgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKHVzdHJjYXNlX21hcCkKKyNkZWZpbmUgdXN0cmNhc2Vfc2V0VGVtcENhc2VNYXBMb2Nh
bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHVzdHJjYXNlX3NldFRlbXBDYXNlTWFwTG9jYWxl
KQogI2RlZmluZSB1dGV4dF9jaGFyMzJBdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRf
Y2hhcjMyQXQpCiAjZGVmaW5lIHV0ZXh0X2Nsb25lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1
dGV4dF9jbG9uZSkKICNkZWZpbmUgdXRleHRfY2xvc2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KHV0ZXh0X2Nsb3NlKQotI2RlZmluZSB1dGV4dF9jb21wYXJlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRSh1dGV4dF9jb21wYXJlKQotI2RlZmluZSB1dGV4dF9jb21wYXJlTmF0aXZlTGltaXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0ZXh0X2NvbXBhcmVOYXRpdmVMaW1pdCkKICNkZWZpbmUg
dXRleHRfY29weSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfY29weSkKICNkZWZpbmUg
dXRleHRfY3VycmVudDMyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh1dGV4dF9jdXJyZW50MzIp
CiAjZGVmaW5lIHV0ZXh0X2VxdWFscyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUodXRleHRfZXF1
YWxzKQpAQCAtMTc0Myw0OTkgKzE4MjAsNiBAQAogI2RlZmluZSB6dHJhbnNfc2V0VGltZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5zX3NldFRpbWUpCiAjZGVmaW5lIHp0cmFuc19zZXRU
byBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoenRyYW5zX3NldFRvKQogCi0KLS8qIEMrKyBjbGFz
cyBuYW1lcyByZW5hbWluZyBkZWZpbmVzICovCi0KLSNpZmRlZiBYUF9DUExVU1BMVVMKLSNpZiAh
VV9IQVZFX05BTUVTUEFDRQotCi0jZGVmaW5lIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24gVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24pCi0jZGVmaW5l
IEFsdGVybmF0ZVN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShB
bHRlcm5hdGVTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQW5jaG9yVGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEFuY2hvclRhYmxlKQotI2RlZmluZSBBbmRDb25zdHJhaW50IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShBbmRDb25zdHJhaW50KQotI2RlZmluZSBBbm51YWxUaW1l
Wm9uZVJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFubnVhbFRpbWVab25lUnVsZSkKLSNk
ZWZpbmUgQW55VHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFueVRyYW5z
bGl0ZXJhdG9yKQotI2RlZmluZSBBcmFiaWNPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQXJhYmljT3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEFyYWJp
Y1NoYXBpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEFyYWJpY1NoYXBpbmcpCi0jZGVmaW5l
IEFyZ0V4dHJhY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQXJnRXh0cmFjdG9yKQotI2Rl
ZmluZSBCTVBTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJNUFNldCkKLSNkZWZpbmUgQmFj
a3dhcmRVVHJpZTJTdHJpbmdJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFja3dh
cmRVVHJpZTJTdHJpbmdJdGVyYXRvcikKLSNkZWZpbmUgQmFkQ2hhcmFjdGVyVGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEJhZENoYXJhY3RlclRhYmxlKQotI2RlZmluZSBCYXNpY0NhbGVu
ZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQmFzaWNDYWxlbmRhckZhY3Rvcnkp
Ci0jZGVmaW5lIEJhc2ljVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEJhc2ljVGlt
ZVpvbmUpCi0jZGVmaW5lIEJpbmFyeVNlYXJjaExvb2t1cFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShCaW5hcnlTZWFyY2hMb29rdXBUYWJsZSkKLSNkZWZpbmUgQm95ZXJNb29yZVNlYXJj
aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQm95ZXJNb29yZVNlYXJjaCkKLSNkZWZpbmUgQnJl
YWtJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnJlYWtJdGVyYXRvcikKLSNkZWZp
bmUgQnJlYWtUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnJlYWtUcmFu
c2xpdGVyYXRvcikKLSNkZWZpbmUgQnVkZGhpc3RDYWxlbmRhciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQnVkZGhpc3RDYWxlbmRhcikKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZUhvcml6b250
YWxOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShCdWlsZENvbXBhY3RUcmllSG9yaXpvbnRh
bE5vZGUpCi0jZGVmaW5lIEJ1aWxkQ29tcGFjdFRyaWVOb2RlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShCdWlsZENvbXBhY3RUcmllTm9kZSkKLSNkZWZpbmUgQnVpbGRDb21wYWN0VHJpZVZlcnRp
Y2FsTm9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQnVpbGRDb21wYWN0VHJpZVZlcnRpY2Fs
Tm9kZSkKLSNkZWZpbmUgQnVpbGRlclNjcmlwdFNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
QnVpbGRlclNjcmlwdFNldCkKLSNkZWZpbmUgQnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKEJ5dGVTaW5rKQotI2RlZmluZSBDRUJ1ZmZlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q0VCdWZmZXIpCi0jZGVmaW5lIENFQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENF
Q2FsZW5kYXIpCi0jZGVmaW5lIENFTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VMaXN0
KQotI2RlZmluZSBDRVRvU3RyaW5nc01hcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ0VUb1N0
cmluZ3NNYXApCi0jZGVmaW5lIENGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDRmFj
dG9yeSkKLSNkZWZpbmUgQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENhbGVuZGFy
KQotI2RlZmluZSBDYWxlbmRhckFzdHJvbm9tZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENh
bGVuZGFyQXN0cm9ub21lcikKLSNkZWZpbmUgQ2FsZW5kYXJDYWNoZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2FsZW5kYXJDYWNoZSkKLSNkZWZpbmUgQ2FsZW5kYXJEYXRhIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDYWxlbmRhckRhdGEpCi0jZGVmaW5lIENhbGVuZGFyU2VydmljZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2FsZW5kYXJTZXJ2aWNlKQotI2RlZmluZSBDYW5vbkl0ZXJE
YXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRhKQotI2RlZmluZSBDYW5v
bkl0ZXJEYXRhU2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbkl0ZXJEYXRh
U2luZ2xldG9uKQotI2RlZmluZSBDYW5vbk1hcmtGaWx0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENhbm9uTWFya0ZpbHRlcikKLSNkZWZpbmUgQ2Fub25TaGFwaW5nIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDYW5vblNoYXBpbmcpCi0jZGVmaW5lIENhbm9uaWNhbEl0ZXJhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShDYW5vbmljYWxJdGVyYXRvcikKLSNkZWZpbmUgQ2FzZU1hcFRy
YW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDYXNlTWFwVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIENoYWluaW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhaW5pbmdDb250ZXh0dWFsU3Vic3RpdHV0aW9u
Rm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25G
b3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYWluaW5nQ29udGV4dHVh
bFN1YnN0aXR1dGlvbkZvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgQ2hhaW5pbmdDb250ZXh0dWFs
U3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFp
bmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25Gb3JtYXQzU3VidGFibGUpCi0jZGVmaW5lIENoYWlu
aW5nQ29udGV4dHVhbFN1YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFpbmluZ0NvbnRleHR1YWxTdWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ2hhclN0
cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhclN0cmluZykKLSNkZWZpbmUgQ2hhclN1
YnN0aXR1dGlvbkZpbHRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhclN1YnN0aXR1dGlv
bkZpbHRlcikKLSNkZWZpbmUgQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENoYXJhY3Rlckl0ZXJhdG9yKQotI2RlZmluZSBDaGFyYWN0ZXJOb2RlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyYWN0ZXJOb2RlKQotI2RlZmluZSBDaGFyc2V0RGV0ZWN0b3IgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXREZXRlY3RvcikKLSNkZWZpbmUgQ2hhcnNldE1h
dGNoIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0TWF0Y2gpCi0jZGVmaW5lIENoYXJz
ZXRSZWNvZ18yMDIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfMjAyMikK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJDTiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzIwMjJDTikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzIwMjJKUCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJKUCkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
XzIwMjJLUiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzIwMjJLUikKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nXzg4NTlfMSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9kYSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9kYSkKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfMV9kZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlf
MV9kZSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9lbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9lbikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
MV9lcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9lcykKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9mciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hh
cnNldFJlY29nXzg4NTlfMV9mcikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9pdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9pdCkKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfMV9ubCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfMV9ubCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9ubyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9ubykKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfMV9wdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMV9w
dCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMV9zdiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfMV9zdikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMiBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMikKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfMl9jcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfMl9jcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9odSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9odSkKLSNkZWZpbmUgQ2hhcnNldFJlY29n
Xzg4NTlfMl9wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfMl9w
bCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfMl9ybyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nXzg4NTlfMl9ybykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNSkKLSNkZWZpbmUgQ2hh
cnNldFJlY29nXzg4NTlfNV9ydSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
Xzg4NTlfNV9ydSkKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNikKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlf
Nl9hciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfNl9hcikKLSNk
ZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfNyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNl
dFJlY29nXzg4NTlfNykKLSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfN19lbCBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfN19lbCkKLSNkZWZpbmUgQ2hhcnNldFJl
Y29nXzg4NTlfOCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nXzg4NTlfOCkK
LSNkZWZpbmUgQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfODg1OV84X0lfaGUpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5Xzhf
aGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzhfaGUpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ184ODU5XzkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRS
ZWNvZ184ODU5XzkpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ184ODU5XzlfdHIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ184ODU5XzlfdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z19JQk00MjBfYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00MjBf
YXIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjBfYXJfbHRyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDIwX2FyX2x0cikKLSNkZWZpbmUgQ2hhcnNldFJlY29n
X0lCTTQyMF9hcl9ydGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19JQk00
MjBfYXJfcnRsKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfSUJNNDI0X2hlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0X2hlKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
SUJNNDI0X2hlX2x0ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0lCTTQy
NF9oZV9sdHIpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19JQk00MjRfaGVfcnRsIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfSUJNNDI0X2hlX3J0bCkKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nX0tPSThfUiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX0tPSThf
UikKLSNkZWZpbmUgQ2hhcnNldFJlY29nX1VURjggVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENo
YXJzZXRSZWNvZ19VVEY4KQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzE2X0JFIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzE2X0JFKQotI2RlZmluZSBDaGFyc2V0
UmVjb2dfVVRGXzE2X0xFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRG
XzE2X0xFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0JF
IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfVVRGXzMyX0JFKQotI2RlZmlu
ZSBDaGFyc2V0UmVjb2dfVVRGXzMyX0xFIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0
UmVjb2dfVVRGXzMyX0xFKQotI2RlZmluZSBDaGFyc2V0UmVjb2dfVW5pY29kZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX1VuaWNvZGUpCi0jZGVmaW5lIENoYXJzZXRSZWNv
Z19iaWc1IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfYmlnNSkKLSNkZWZp
bmUgQ2hhcnNldFJlY29nX2V1YyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29n
X2V1YykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19qcCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ2hhcnNldFJlY29nX2V1Y19qcCkKLSNkZWZpbmUgQ2hhcnNldFJlY29nX2V1Y19rciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX2V1Y19rcikKLSNkZWZpbmUgQ2hhcnNl
dFJlY29nX2diXzE4MDMwIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVjb2dfZ2Jf
MTgwMzApCi0jZGVmaW5lIENoYXJzZXRSZWNvZ19tYmNzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDaGFyc2V0UmVjb2dfbWJjcykKLSNkZWZpbmUgQ2hhcnNldFJlY29nX3NiY3MgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ19zYmNzKQotI2RlZmluZSBDaGFyc2V0UmVjb2df
c2ppcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2hhcnNldFJlY29nX3NqaXMpCi0jZGVmaW5l
IENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJz
ZXRSZWNvZ193aW5kb3dzXzEyNTEpCi0jZGVmaW5lIENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENoYXJzZXRSZWNvZ193aW5kb3dzXzEyNTYpCi0jZGVm
aW5lIENoYXJzZXRSZWNvZ25pemVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaGFyc2V0UmVj
b2duaXplcikKLSNkZWZpbmUgQ2hlY2tlZEFycmF5Qnl0ZVNpbmsgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENoZWNrZWRBcnJheUJ5dGVTaW5rKQotI2RlZmluZSBDaGluZXNlQ2FsZW5kYXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKENoaW5lc2VDYWxlbmRhcikKLSNkZWZpbmUgQ2hvaWNlRm9y
bWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDaG9pY2VGb3JtYXQpCi0jZGVmaW5lIENsYXNz
RGVmRm9ybWF0MVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDbGFzc0RlZkZvcm1hdDFU
YWJsZSkKLSNkZWZpbmUgQ2xhc3NEZWZGb3JtYXQyVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKENsYXNzRGVmRm9ybWF0MlRhYmxlKQotI2RlZmluZSBDbGFzc0RlZmluaXRpb25UYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xhc3NEZWZpbml0aW9uVGFibGUpCi0jZGVmaW5lIENs
b2NrTWF0aCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ2xvY2tNYXRoKQotI2RlZmluZSBDb2xs
RGF0YSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGEpCi0jZGVmaW5lIENvbGxEYXRh
Q2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbGxEYXRhQ2FjaGUpCi0jZGVmaW5lIENv
bGxEYXRhQ2FjaGVFbnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbERhdGFDYWNoZUVu
dHJ5KQotI2RlZmluZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcikKLSNkZWZpbmUgQ29sbGF0aW9uS2V5IFVf
SUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb2xsYXRpb25LZXkpCi0jZGVmaW5lIENvbGxhdGlvbkxv
Y2FsZUxpc3RFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29sbGF0aW9uTG9j
YWxlTGlzdEVudW1lcmF0aW9uKQotI2RlZmluZSBDb2xsYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoQ29sbGF0b3IpCi0jZGVmaW5lIENvbGxhdG9yRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoQ29sbGF0b3JGYWN0b3J5KQotI2RlZmluZSBDb21wYWN0VHJpZURpY3Rpb25hcnkg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBhY3RUcmllRGljdGlvbmFyeSkKLSNkZWZpbmUg
Q29tcGFjdFRyaWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29tcGFjdFRy
aWVFbnVtZXJhdGlvbikKLSNkZWZpbmUgQ29tcG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShDb21wb3NlTm9ybWFsaXplcjIpCi0jZGVmaW5lIENvbXBvdW5kVHJhbnNsaXRl
cmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbXBvdW5kVHJhbnNsaXRlcmF0b3IpCi0j
ZGVmaW5lIENvbmZ1c2FibGVkYXRhQnVpbGRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ29u
ZnVzYWJsZWRhdGFCdWlsZGVyKQotI2RlZmluZSBDb250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Q
cm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxHbHlwaFN1YnN0aXR1
dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgQ29udGV4dHVhbFN1YnN0aXR1dGlvbkJhc2UgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxTdWJzdGl0dXRpb25CYXNlKQotI2RlZmluZSBD
b250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MVN1YnRhYmxlKQotI2RlZmluZSBDb250
ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShDb250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0
dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShD
b250ZXh0dWFsU3Vic3RpdHV0aW9uRm9ybWF0M1N1YnRhYmxlKQotI2RlZmluZSBDb250ZXh0dWFs
U3Vic3RpdHV0aW9uU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKENvbnRleHR1YWxT
dWJzdGl0dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgQ29wdGljQ2FsZW5kYXIgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKENvcHRpY0NhbGVuZGFyKQotI2RlZmluZSBDb3ZlcmFnZUZvcm1hdDFUYWJs
ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ292ZXJhZ2VGb3JtYXQxVGFibGUpCi0jZGVmaW5l
IENvdmVyYWdlRm9ybWF0MlRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShDb3ZlcmFnZUZv
cm1hdDJUYWJsZSkKLSNkZWZpbmUgQ292ZXJhZ2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoQ292ZXJhZ2VUYWJsZSkKLSNkZWZpbmUgQ3VycmVuY3lBbW91bnQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEN1cnJlbmN5QW1vdW50KQotI2RlZmluZSBDdXJyZW5jeUZvcm1hdCBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lGb3JtYXQpCi0jZGVmaW5lIEN1cnJlbmN5UGx1cmFs
SW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoQ3VycmVuY3lQbHVyYWxJbmZvKQotI2RlZmlu
ZSBDdXJyZW5jeVVuaXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEN1cnJlbmN5VW5pdCkKLSNk
ZWZpbmUgQ3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
Q3Vyc2l2ZUF0dGFjaG1lbnRTdWJ0YWJsZSkKLSNkZWZpbmUgRFRSZWR1bmRhbnRFbnVtZXJhdGlv
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRFRSZWR1bmRhbnRFbnVtZXJhdGlvbikKLSNkZWZp
bmUgRFRTa2VsZXRvbkVudW1lcmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEVFNrZWxl
dG9uRW51bWVyYXRpb24pCi0jZGVmaW5lIERhdGVGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKERhdGVGb3JtYXQpCi0jZGVmaW5lIERhdGVGb3JtYXRTeW1ib2xzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShEYXRlRm9ybWF0U3ltYm9scykKLSNkZWZpbmUgRGF0ZUludGVydmFsIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWwpCi0jZGVmaW5lIERhdGVJbnRlcnZhbEZv
cm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZUludGVydmFsRm9ybWF0KQotI2RlZmlu
ZSBEYXRlSW50ZXJ2YWxJbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEYXRlSW50ZXJ2YWxJ
bmZvKQotI2RlZmluZSBEYXRlVGltZU1hdGNoZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERh
dGVUaW1lTWF0Y2hlcikKLSNkZWZpbmUgRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IpCi0jZGVmaW5lIERhdGVU
aW1lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGF0ZVRpbWVSdWxlKQotI2RlZmluZSBE
ZWNpbWFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEZWNpbWFsRm9ybWF0KQotI2Rl
ZmluZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVjaW1h
bEZvcm1hdFN5bWJvbHMpCi0jZGVmaW5lIERlY29tcG9zZU5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShEZWNvbXBvc2VOb3JtYWxpemVyMikKLSNkZWZpbmUgRGVmYXVsdENhbGVu
ZGFyRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRGVmYXVsdENhbGVuZGFyRmFjdG9y
eSkKLSNkZWZpbmUgRGVmYXVsdENoYXJNYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERl
ZmF1bHRDaGFyTWFwcGVyKQotI2RlZmluZSBEZXZpY2VUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRGV2aWNlVGFibGUpCi0jZGVmaW5lIERpY3Rpb25hcnlCcmVha0VuZ2luZSBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoRGljdGlvbmFyeUJyZWFrRW5naW5lKQotI2RlZmluZSBEaWdpdExp
c3QgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKERpZ2l0TGlzdCkKLSNkZWZpbmUgRGlzdGFuY2VJ
bmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShEaXN0YW5jZUluZm8pCi0jZGVmaW5lIEVudW1U
b09mZnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRW51bVRvT2Zmc2V0KQotI2RlZmluZSBF
cnJvckNvZGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEVycm9yQ29kZSkKLSNkZWZpbmUgRXNj
YXBlVHJhbnNsaXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEVzY2FwZVRyYW5zbGl0
ZXJhdG9yKQotI2RlZmluZSBFdGhpb3BpY0NhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShFdGhpb3BpY0NhbGVuZGFyKQotI2RlZmluZSBFdmVudExpc3RlbmVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShFdmVudExpc3RlbmVyKQotI2RlZmluZSBFeHRlbnNpb25TdWJ0YWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoRXh0ZW5zaW9uU3VidGFibGUpCi0jZGVmaW5lIEZDRE5vcm1h
bGl6ZXIyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGQ0ROb3JtYWxpemVyMikKLSNkZWZpbmUg
RkNEVHJpZVNpbmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRkNEVHJpZVNpbmdsZXRv
bikKLSNkZWZpbmUgRmVhdHVyZUxpc3RUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoRmVh
dHVyZUxpc3RUYWJsZSkKLSNkZWZpbmUgRmllbGRQb3NpdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoRmllbGRQb3NpdGlvbikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkhhbmRsZXIgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25IYW5kbGVyKQotI2RlZmluZSBGaWVsZFBv
c2l0aW9uSXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZpZWxkUG9zaXRpb25JdGVy
YXRvcikKLSNkZWZpbmUgRmllbGRQb3NpdGlvbkl0ZXJhdG9ySGFuZGxlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRmllbGRQb3NpdGlvbkl0ZXJhdG9ySGFuZGxlcikKLSNkZWZpbmUgRmllbGRQ
b3NpdGlvbk9ubHlIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGaWVsZFBvc2l0aW9u
T25seUhhbmRsZXIpCi0jZGVmaW5lIEZpbHRlcmVkTm9ybWFsaXplcjIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKEZpbHRlcmVkTm9ybWFsaXplcjIpCi0jZGVmaW5lIEZvbnRSdW5zIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShGb250UnVucykKLSNkZWZpbmUgRm9ybWF0IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShGb3JtYXQpCi0jZGVmaW5lIEZvcm1hdDFBbmNob3JUYWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoRm9ybWF0MUFuY2hvclRhYmxlKQotI2RlZmluZSBGb3JtYXQyQW5jaG9y
VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdDJBbmNob3JUYWJsZSkKLSNkZWZp
bmUgRm9ybWF0M0FuY2hvclRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGb3JtYXQzQW5j
aG9yVGFibGUpCi0jZGVmaW5lIEZvcm1hdE5hbWVFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoRm9ybWF0TmFtZUVudW1lcmF0aW9uKQotI2RlZmluZSBGb3JtYXRQYXJzZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdFBhcnNlcikKLSNkZWZpbmUgRm9ybWF0dGFibGUg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcm1hdHRhYmxlKQotI2RlZmluZSBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvcikKLSNkZWZpbmUgRm9yd2FyZFVUcmllMlN0cmluZ0l0ZXJhdG9yIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShGb3J3YXJkVVRyaWUyU3RyaW5nSXRlcmF0b3IpCi0jZGVmaW5lIEZyYWN0
aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShGcmFjdGlvbmFs
UGFydFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgRnVuY3Rpb25SZXBsYWNlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoRnVuY3Rpb25SZXBsYWNlcikKLSNkZWZpbmUgR0RFRk1hcmtGaWx0ZXIgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEdERUZNYXJrRmlsdGVyKQotI2RlZmluZSBHWExheW91dEVu
Z2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR1hMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEds
eXBoRGVmaW5pdGlvblRhYmxlSGVhZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlwaERl
ZmluaXRpb25UYWJsZUhlYWRlcikKLSNkZWZpbmUgR2x5cGhJdGVyYXRvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoR2x5cGhJdGVyYXRvcikKLSNkZWZpbmUgR2x5cGhMb29rdXBUYWJsZUhlYWRl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhMb29rdXBUYWJsZUhlYWRlcikKLSNkZWZp
bmUgR2x5cGhQb3NpdGlvbkFkanVzdG1lbnRzIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShHbHlw
aFBvc2l0aW9uQWRqdXN0bWVudHMpCi0jZGVmaW5lIEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9j
ZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoUG9zaXRpb25pbmdMb29rdXBQcm9j
ZXNzb3IpCi0jZGVmaW5lIEdseXBoUG9zaXRpb25pbmdUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoR2x5cGhQb3NpdGlvbmluZ1RhYmxlSGVhZGVyKQotI2RlZmluZSBHbHlwaFN1
YnN0aXR1dGlvbkxvb2t1cFByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoR2x5cGhT
dWJzdGl0dXRpb25Mb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIEdseXBoU3Vic3RpdHV0aW9uVGFi
bGVIZWFkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEdseXBoU3Vic3RpdHV0aW9uVGFibGVI
ZWFkZXIpCi0jZGVmaW5lIEdvb2RTdWZmaXhUYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
R29vZFN1ZmZpeFRhYmxlKQotI2RlZmluZSBHcmVnbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
R3JlZ28pCi0jZGVmaW5lIEdyZWdvcmlhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShHcmVnb3JpYW5DYWxlbmRhcikKLSNkZWZpbmUgSGFuT3BlblR5cGVMYXlvdXRFbmdpbmUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKEhhbk9wZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBI
YW5ndWxPcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSGFuZ3Vs
T3BlblR5cGVMYXlvdXRFbmdpbmUpCi0jZGVmaW5lIEhlYnJld0NhbGVuZGFyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShIZWJyZXdDYWxlbmRhcikKLSNkZWZpbmUgSUNVQnJlYWtJdGVyYXRvckZh
Y3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5KQot
I2RlZmluZSBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
SUNVQnJlYWtJdGVyYXRvclNlcnZpY2UpCi0jZGVmaW5lIElDVUNvbGxhdG9yRmFjdG9yeSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVQ29sbGF0b3JGYWN0b3J5KQotI2RlZmluZSBJQ1VDb2xs
YXRvclNlcnZpY2UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVUNvbGxhdG9yU2VydmljZSkK
LSNkZWZpbmUgSUNVRGF0YVRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VEYXRhVGFi
bGUpCi0jZGVmaW5lIElDVUxhbmd1YWdlQnJlYWtGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShJQ1VMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZpbmUgSUNVTG9jYWxlU2VydmljZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVTG9jYWxlU2VydmljZSkKLSNkZWZpbmUgSUNVTm90
aWZpZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVU5vdGlmaWVyKQotI2RlZmluZSBJQ1VO
dW1iZXJGb3JtYXRGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJQ1VOdW1iZXJGb3Jt
YXRGYWN0b3J5KQotI2RlZmluZSBJQ1VOdW1iZXJGb3JtYXRTZXJ2aWNlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShJQ1VOdW1iZXJGb3JtYXRTZXJ2aWNlKQotI2RlZmluZSBJQ1VSZXNvdXJjZUJ1
bmRsZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElDVVJlc291cmNlQnVuZGxlRmFj
dG9yeSkKLSNkZWZpbmUgSUNVU2VydmljZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSUNVU2Vy
dmljZSkKLSNkZWZpbmUgSUNVU2VydmljZUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KElDVVNlcnZpY2VGYWN0b3J5KQotI2RlZmluZSBJQ1VTZXJ2aWNlS2V5IFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShJQ1VTZXJ2aWNlS2V5KQotI2RlZmluZSBJQ1VfVXRpbGl0eSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoSUNVX1V0aWxpdHkpCi0jZGVmaW5lIElETkEgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKElETkEpCi0jZGVmaW5lIEluZGlhbkNhbGVuZGFyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShJbmRpYW5DYWxlbmRhcikKLSNkZWZpbmUgSW5kaWNDbGFzc1RhYmxlIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShJbmRpY0NsYXNzVGFibGUpCi0jZGVmaW5lIEluZGljT3BlblR5cGVM
YXlvdXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljT3BlblR5cGVMYXlvdXRF
bmdpbmUpCi0jZGVmaW5lIEluZGljUmVhcnJhbmdlbWVudFByb2Nlc3NvciBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoSW5kaWNSZWFycmFuZ2VtZW50UHJvY2Vzc29yKQotI2RlZmluZSBJbmRpY1Jl
b3JkZXJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEluZGljUmVvcmRlcmluZykKLSNkZWZp
bmUgSW5pdGlhbFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoSW5pdGlhbFRp
bWVab25lUnVsZSkKLSNkZWZpbmUgSW5wdXRUZXh0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJ
bnB1dFRleHQpCi0jZGVmaW5lIEludGVncmFsUGFydFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uKQotI2RlZmluZSBJc2xhbWljQ2Fs
ZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKElzbGFtaWNDYWxlbmRhcikKLSNkZWZpbmUg
SXRlcmF0ZWRDaGFyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShJdGVyYXRlZENoYXIpCi0jZGVm
aW5lIEphcGFuZXNlQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEphcGFuZXNlQ2Fs
ZW5kYXIpCi0jZGVmaW5lIEtlcm5UYWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2VyblRh
YmxlKQotI2RlZmluZSBLZXl3b3JkRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KEtleXdvcmRFbnVtZXJhdGlvbikKLSNkZWZpbmUgS2htZXJDbGFzc1RhYmxlIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShLaG1lckNsYXNzVGFibGUpCi0jZGVmaW5lIEtobWVyT3BlblR5cGVMYXlv
dXRFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKEtobWVyT3BlblR5cGVMYXlvdXRFbmdp
bmUpCi0jZGVmaW5lIEtobWVyUmVvcmRlcmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoS2ht
ZXJSZW9yZGVyaW5nKQotI2RlZmluZSBMRUNoYXJNYXBwZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKExFQ2hhck1hcHBlcikKLSNkZWZpbmUgTEVGb250SW5zdGFuY2UgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExFRm9udEluc3RhbmNlKQotI2RlZmluZSBMRUdseXBoRmlsdGVyIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShMRUdseXBoRmlsdGVyKQotI2RlZmluZSBMRUdseXBoU3RvcmFnZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVHbHlwaFN0b3JhZ2UpCi0jZGVmaW5lIExFSW5zZXJ0
aW9uQ2FsbGJhY2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExFSW5zZXJ0aW9uQ2FsbGJhY2sp
Ci0jZGVmaW5lIExFSW5zZXJ0aW9uTGlzdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTEVJbnNl
cnRpb25MaXN0KQotI2RlZmluZSBMWFV0aWxpdGllcyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TFhVdGlsaXRpZXMpCi0jZGVmaW5lIExhbmd1YWdlQnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKExhbmd1YWdlQnJlYWtFbmdpbmUpCi0jZGVmaW5lIExhbmd1YWdlQnJlYWtGYWN0
b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYW5ndWFnZUJyZWFrRmFjdG9yeSkKLSNkZWZp
bmUgTGF5b3V0RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMYXlvdXRFbmdpbmUpCi0j
ZGVmaW5lIExpZ2F0dXJlU3Vic3RpdHV0aW9uUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMaWdhdHVyZVN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUgTGlnYXR1cmVTdWJz
dGl0dXRpb25TdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTGlnYXR1cmVTdWJzdGl0
dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgTG9jRGF0YVBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTG9jRGF0YVBhcnNlcikKLSNkZWZpbmUgTG9jYWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShMb2NhbGUpCi0jZGVmaW5lIExvY2FsZUJhc2VkIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShMb2NhbGVCYXNlZCkKLSNkZWZpbmUgTG9jYWxlRGlzcGxheU5hbWVzIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShMb2NhbGVEaXNwbGF5TmFtZXMpCi0jZGVmaW5lIExvY2FsZURpc3BsYXlOYW1l
c0ltcGwgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvY2FsZURpc3BsYXlOYW1lc0ltcGwpCi0j
ZGVmaW5lIExvY2FsZUtleSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTG9jYWxlS2V5KQotI2Rl
ZmluZSBMb2NhbGVLZXlGYWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2NhbGVLZXlG
YWN0b3J5KQotI2RlZmluZSBMb2NhbGVSdW5zIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb2Nh
bGVSdW5zKQotI2RlZmluZSBMb2NhbGVVdGlsaXR5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShM
b2NhbGVVdGlsaXR5KQotI2RlZmluZSBMb2NhbGl6YXRpb25JbmZvIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShMb2NhbGl6YXRpb25JbmZvKQotI2RlZmluZSBMb29rdXBMaXN0VGFibGUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cExpc3RUYWJsZSkKLSNkZWZpbmUgTG9va3VwUHJvY2Vz
c29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBQcm9jZXNzb3IpCi0jZGVmaW5lIExv
b2t1cFN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShMb29rdXBTdWJ0YWJsZSkKLSNk
ZWZpbmUgTG9va3VwVGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKExvb2t1cFRhYmxlKQot
I2RlZmluZSBMb3dlcmNhc2VUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE1QcmVGaXh1cHMgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKE1QcmVGaXh1cHMpCi0jZGVmaW5lIE1hcmtBcnJheSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTWFya0FycmF5KQotI2RlZmluZSBNYXJrVG9CYXNlUG9zaXRpb25pbmdTdWJ0
YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWFya1RvQmFzZVBvc2l0aW9uaW5nU3VidGFi
bGUpCi0jZGVmaW5lIE1hcmtUb0xpZ2F0dXJlUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoTWFya1RvTGlnYXR1cmVQb3NpdGlvbmluZ1N1YnRhYmxlKQotI2RlZmlu
ZSBNYXJrVG9NYXJrUG9zaXRpb25pbmdTdWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
TWFya1RvTWFya1Bvc2l0aW9uaW5nU3VidGFibGUpCi0jZGVmaW5lIE1lYXN1cmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE1lYXN1cmUpCi0jZGVmaW5lIE1lYXN1cmVGb3JtYXQgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKE1lYXN1cmVGb3JtYXQpCi0jZGVmaW5lIE1lYXN1cmVVbml0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShNZWFzdXJlVW5pdCkKLSNkZWZpbmUgTWVzc2FnZUZvcm1hdCBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTWVzc2FnZUZvcm1hdCkKLSNkZWZpbmUgTWVzc2FnZUZv
cm1hdEFkYXB0ZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE1lc3NhZ2VGb3JtYXRBZGFwdGVy
KQotI2RlZmluZSBNb2R1bHVzU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShN
b2R1bHVzU3Vic3RpdHV0aW9uKQotI2RlZmluZSBNb29uUmlzZVNldENvb3JkRnVuYyBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoTW9vblJpc2VTZXRDb29yZEZ1bmMpCi0jZGVmaW5lIE1vb25UaW1l
QW5nbGVGdW5jIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNb29uVGltZUFuZ2xlRnVuYykKLSNk
ZWZpbmUgTW9ycGhTdWJ0YWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTW9ycGhT
dWJ0YWJsZUhlYWRlcikKLSNkZWZpbmUgTW9ycGhUYWJsZUhlYWRlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoTW9ycGhUYWJsZUhlYWRlcikKLSNkZWZpbmUgTXVsdGlwbGVTdWJzdGl0dXRpb25T
dWJ0YWJsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTXVsdGlwbGVTdWJzdGl0dXRpb25TdWJ0
YWJsZSkKLSNkZWZpbmUgTXVsdGlwbGllclN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTXVsdGlwbGllclN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTXV0YWJsZVRyaWVEaWN0aW9u
YXJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShNdXRhYmxlVHJpZURpY3Rpb25hcnkpCi0jZGVm
aW5lIE11dGFibGVUcmllRW51bWVyYXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE11dGFi
bGVUcmllRW51bWVyYXRpb24pCi0jZGVmaW5lIE5GRmFjdG9yeSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoTkZGYWN0b3J5KQotI2RlZmluZSBORktEQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShORktEQnVmZmVyKQotI2RlZmluZSBORlJ1bGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KE5GUnVsZSkKLSNkZWZpbmUgTkZSdWxlU2V0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShORlJ1
bGVTZXQpCi0jZGVmaW5lIE5GU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShO
RlN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTkdyYW1QYXJzZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKE5HcmFtUGFyc2VyKQotI2RlZmluZSBOYW1lVG9FbnVtIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShOYW1lVG9FbnVtKQotI2RlZmluZSBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKQotI2RlZmluZSBO
b25Db250ZXh0dWFsR2x5cGhTdWJzdGl0dXRpb25Qcm9jZXNzb3IgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKE5vbkNvbnRleHR1YWxHbHlwaFN1YnN0aXR1dGlvblByb2Nlc3NvcikKLSNkZWZpbmUg
Tm9uQ29udGlndW91c0VudW1Ub09mZnNldCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9uQ29u
dGlndW91c0VudW1Ub09mZnNldCkKLSNkZWZpbmUgTm9vcE5vcm1hbGl6ZXIyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShOb29wTm9ybWFsaXplcjIpCi0jZGVmaW5lIE5vcm0yQWxsTW9kZXMgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm0yQWxsTW9kZXMpCi0jZGVmaW5lIE5vcm1hbGl6YXRp
b25UcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXphdGlvblRy
YW5zbGl0ZXJhdG9yKQotI2RlZmluZSBOb3JtYWxpemVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShOb3JtYWxpemVyKQotI2RlZmluZSBOb3JtYWxpemVyMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoTm9ybWFsaXplcjIpCi0jZGVmaW5lIE5vcm1hbGl6ZXIyRmFjdG9yeSBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoTm9ybWFsaXplcjJGYWN0b3J5KQotI2RlZmluZSBOb3JtYWxpemVyMkltcGwg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE5vcm1hbGl6ZXIySW1wbCkKLSNkZWZpbmUgTm9ybWFs
aXplcjJXaXRoSW1wbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTm9ybWFsaXplcjJXaXRoSW1w
bCkKLSNkZWZpbmUgTnVsbFN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVs
bFN1YnN0aXR1dGlvbikKLSNkZWZpbmUgTnVsbFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShOdWxsVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIE51bWJlckZvcm1hdCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoTnVtYmVyRm9ybWF0KQotI2RlZmluZSBOdW1iZXJGb3JtYXRG
YWN0b3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShOdW1iZXJGb3JtYXRGYWN0b3J5KQotI2Rl
ZmluZSBOdW1iZXJpbmdTeXN0ZW0gVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE51bWJlcmluZ1N5
c3RlbSkKLSNkZWZpbmUgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShOdW1lcmF0b3JTdWJzdGl0dXRpb24pCi0jZGVmaW5lIE9sc29uVGltZVpvbmUgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKE9sc29uVGltZVpvbmUpCi0jZGVmaW5lIE9wZW5UeXBlTGF5b3V0
RW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShPcGVuVHlwZUxheW91dEVuZ2luZSkKLSNk
ZWZpbmUgT3BlblR5cGVVdGlsaXRpZXMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKE9wZW5UeXBl
VXRpbGl0aWVzKQotI2RlZmluZSBPckNvbnN0cmFpbnQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KE9yQ29uc3RyYWludCkKLSNkZWZpbmUgUENFQnVmZmVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShQQ0VCdWZmZXIpCi0jZGVmaW5lIFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUGFpclBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlKQotI2Rl
ZmluZSBQYWlyUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFBhaXJQb3NpdGlvbmluZ0Zvcm1hdDJTdWJ0YWJsZSkKLSNkZWZpbmUgUGFpclBvc2l0aW9u
aW5nU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBhaXJQb3NpdGlvbmluZ1N1YnRh
YmxlKQotI2RlZmluZSBQYXJhZ3JhcGhMYXlvdXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBh
cmFncmFwaExheW91dCkKLSNkZWZpbmUgUGFyc2VEYXRhIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShQYXJzZURhdGEpCi0jZGVmaW5lIFBhcnNlUG9zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFBhcnNlUG9zaXRpb24pCi0jZGVmaW5lIFBhdHRlcm5NYXAgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFBhdHRlcm5NYXApCi0jZGVmaW5lIFBhdHRlcm5NYXBJdGVyYXRvciBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUGF0dGVybk1hcEl0ZXJhdG9yKQotI2RlZmluZSBQZXJzaWFuQ2FsZW5k
YXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFBlcnNpYW5DYWxlbmRhcikKLSNkZWZpbmUgUGx1
cmFsRm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShQbHVyYWxGb3JtYXQpCi0jZGVmaW5l
IFBsdXJhbEtleXdvcmRFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUGx1cmFs
S2V5d29yZEVudW1lcmF0aW9uKQotI2RlZmluZSBQbHVyYWxSdWxlcyBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUGx1cmFsUnVsZXMpCi0jZGVmaW5lIFByb3BlcnR5QWxpYXNlcyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUHJvcGVydHlBbGlhc2VzKQotI2RlZmluZSBQdG5FbGVtIFVfSUNVX0VO
VFJZX1BPSU5UX1JFTkFNRShQdG5FbGVtKQotI2RlZmluZSBQdG5Ta2VsZXRvbiBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoUHRuU2tlbGV0b24pCi0jZGVmaW5lIFF1YW50aWZpZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFF1YW50aWZpZXIpCi0jZGVmaW5lIFJCQklEYXRhV3JhcHBlciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSURhdGFXcmFwcGVyKQotI2RlZmluZSBSQkJJTm9kZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSU5vZGUpCi0jZGVmaW5lIFJCQklSdWxlQnVpbGRl
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUkJCSVJ1bGVCdWlsZGVyKQotI2RlZmluZSBSQkJJ
UnVsZVNjYW5uZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklSdWxlU2Nhbm5lcikKLSNk
ZWZpbmUgUkJCSVNldEJ1aWxkZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTZXRCdWls
ZGVyKQotI2RlZmluZSBSQkJJU3RhdGVEZXNjcmlwdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShSQkJJU3RhdGVEZXNjcmlwdG9yKQotI2RlZmluZSBSQkJJU3ltYm9sVGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFJCQklTeW1ib2xUYWJsZSkKLSNkZWZpbmUgUkJCSVN5bWJvbFRhYmxl
RW50cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJCQklTeW1ib2xUYWJsZUVudHJ5KQotI2Rl
ZmluZSBSQkJJVGFibGVCdWlsZGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSQkJJVGFibGVC
dWlsZGVyKQotI2RlZmluZSBSQ0VCdWZmZXIgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJDRUJ1
ZmZlcikKLSNkZWZpbmUgUmFuZ2VEZXNjcmlwdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShS
YW5nZURlc2NyaXB0b3IpCi0jZGVmaW5lIFJlZ2V4Q29tcGlsZSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUmVnZXhDb21waWxlKQotI2RlZmluZSBSZWdleE1hdGNoZXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJlZ2V4TWF0Y2hlcikKLSNkZWZpbmUgUmVnZXhQYXR0ZXJuIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShSZWdleFBhdHRlcm4pCi0jZGVmaW5lIFJlZ2V4U3RhdGljU2V0cyBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVnZXhTdGF0aWNTZXRzKQotI2RlZmluZSBSZWd1bGFyRXhw
cmVzc2lvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVndWxhckV4cHJlc3Npb24pCi0jZGVm
aW5lIFJlbGF0aXZlRGF0ZUZvcm1hdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUmVsYXRpdmVE
YXRlRm9ybWF0KQotI2RlZmluZSBSZW1vdmVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoUmVtb3ZlVHJhbnNsaXRlcmF0b3IpCi0jZGVmaW5lIFJlb3JkZXJpbmdCdWZmZXIg
VV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJlb3JkZXJpbmdCdWZmZXIpCi0jZGVmaW5lIFJlcGxh
Y2VhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXBsYWNlYWJsZSkKLSNkZWZpbmUgUmVw
bGFjZWFibGVHbHVlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXBsYWNlYWJsZUdsdWUpCi0j
ZGVmaW5lIFJlc291cmNlQnVuZGxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShSZXNvdXJjZUJ1
bmRsZSkKLSNkZWZpbmUgUmlzZVNldENvb3JkRnVuYyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
UmlzZVNldENvb3JkRnVuYykKLSNkZWZpbmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBVX0lDVV9F
TlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikKLSNkZWZpbmUgUnVsZUJh
c2VkQ29sbGF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZENvbGxhdG9yKQot
I2RlZmluZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFJ1
bGVCYXNlZE51bWJlckZvcm1hdCkKLSNkZWZpbmUgUnVsZUJhc2VkVGltZVpvbmUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFJ1bGVCYXNlZFRpbWVab25lKQotI2RlZmluZSBSdWxlQmFzZWRUcmFu
c2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUJhc2VkVHJhbnNsaXRlcmF0
b3IpCi0jZGVmaW5lIFJ1bGVDaGFpbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoUnVsZUNoYWlu
KQotI2RlZmluZSBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgUnVsZUhhbGYgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFJ1bGVIYWxmKQotI2RlZmluZSBSdWxlUGFyc2VyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShSdWxlUGFyc2VyKQotI2RlZmluZSBSdW5BcnJheSBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoUnVuQXJyYXkpCi0jZGVmaW5lIFNQVVN0cmluZyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoU1BVU3RyaW5nKQotI2RlZmluZSBTUFVTdHJpbmdQb29sIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTUFVTdHJpbmdQb29sKQotI2RlZmluZSBTYWZlWm9uZVN0cmluZ0Zvcm1hdFB0ciBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU2FmZVpvbmVTdHJpbmdGb3JtYXRQdHIpCi0jZGVmaW5lIFNh
bWVWYWx1ZVN1YnN0aXR1dGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2FtZVZhbHVlU3Vi
c3RpdHV0aW9uKQotI2RlZmluZSBTY3JpcHRMaXN0VGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFNjcmlwdExpc3RUYWJsZSkKLSNkZWZpbmUgU2NyaXB0UnVuSXRlcmF0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNjcmlwdFJ1bkl0ZXJhdG9yKQotI2RlZmluZSBTY3JpcHRTZXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFNldCkKLSNkZWZpbmUgU2NyaXB0VGFibGUgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNjcmlwdFRhYmxlKQotI2RlZmluZSBTZWFyY2hJdGVyYXRv
ciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VhcmNoSXRlcmF0b3IpCi0jZGVmaW5lIFNlZ21l
bnRBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VnbWVudEFycmF5UHJv
Y2Vzc29yKQotI2RlZmluZSBTZWdtZW50U2luZ2xlUHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShTZWdtZW50U2luZ2xlUHJvY2Vzc29yKQotI2RlZmluZSBTZWxlY3RGb3JtYXQgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNlbGVjdEZvcm1hdCkKLSNkZWZpbmUgU2VydmljZUVudW1l
cmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTZXJ2aWNlRW51bWVyYXRpb24pCi0jZGVm
aW5lIFNlcnZpY2VMaXN0ZW5lciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2VydmljZUxpc3Rl
bmVyKQotI2RlZmluZSBTaW1wbGVBcnJheVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoU2ltcGxlQXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFNpbXBsZURhdGVGb3JtYXQgVV9JQ1Vf
RU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZURhdGVGb3JtYXQpCi0jZGVmaW5lIFNpbXBsZUZhY3Rv
cnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBs
ZUxvY2FsZUtleUZhY3RvcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNpbXBsZUxvY2FsZUtl
eUZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkpCi0jZGVmaW5lIFNpbXBsZVNp
bmdsZXRvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlU2luZ2xldG9uKQotI2RlZmlu
ZSBTaW1wbGVUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU2ltcGxlVGltZVpvbmUp
Ci0jZGVmaW5lIFNpbmdsZVBvc2l0aW9uaW5nRm9ybWF0MVN1YnRhYmxlIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmluZ0Zvcm1hdDFTdWJ0YWJsZSkKLSNkZWZpbmUgU2lu
Z2xlUG9zaXRpb25pbmdGb3JtYXQyU3VidGFibGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFNp
bmdsZVBvc2l0aW9uaW5nRm9ybWF0MlN1YnRhYmxlKQotI2RlZmluZSBTaW5nbGVQb3NpdGlvbmlu
Z1N1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVQb3NpdGlvbmluZ1N1YnRh
YmxlKQotI2RlZmluZSBTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQxU3VidGFibGUgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFNpbmdsZVN1YnN0aXR1dGlvbkZvcm1hdDFTdWJ0YWJsZSkKLSNkZWZp
bmUgU2luZ2xlU3Vic3RpdHV0aW9uRm9ybWF0MlN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTaW5nbGVTdWJzdGl0dXRpb25Gb3JtYXQyU3VidGFibGUpCi0jZGVmaW5lIFNpbmdsZVN1
YnN0aXR1dGlvblN1YnRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTaW5nbGVTdWJzdGl0
dXRpb25TdWJ0YWJsZSkKLSNkZWZpbmUgU2luZ2xlVGFibGVQcm9jZXNzb3IgVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFNpbmdsZVRhYmxlUHJvY2Vzc29yKQotI2RlZmluZSBTcG9vZkRhdGEgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFNwb29mRGF0YSkKLSNkZWZpbmUgU3Bvb2ZJbXBsIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShTcG9vZkltcGwpCi0jZGVmaW5lIFN0YXRlVGFibGVQcm9jZXNz
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN0YXRlVGFibGVQcm9jZXNzb3IpCi0jZGVmaW5l
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcikKLSNkZWZpbmUgU3RyaW5nRW51bWVyYXRpb24gVV9JQ1VfRU5UUllf
UE9JTlRfUkVOQU1FKFN0cmluZ0VudW1lcmF0aW9uKQotI2RlZmluZSBTdHJpbmdMaXN0IFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdMaXN0KQotI2RlZmluZSBTdHJpbmdMb2NhbGl6YXRp
b25JbmZvIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdMb2NhbGl6YXRpb25JbmZvKQot
I2RlZmluZSBTdHJpbmdNYXRjaGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdNYXRj
aGVyKQotI2RlZmluZSBTdHJpbmdQYWlyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShTdHJpbmdQ
YWlyKQotI2RlZmluZSBTdHJpbmdQaWVjZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3RyaW5n
UGllY2UpCi0jZGVmaW5lIFN0cmluZ1JlcGxhY2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
dHJpbmdSZXBsYWNlcikKLSNkZWZpbmUgU3RyaW5nU2VhcmNoIFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShTdHJpbmdTZWFyY2gpCi0jZGVmaW5lIFN0cmluZ1RvQ0VzTWFwIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShTdHJpbmdUb0NFc01hcCkKLSNkZWZpbmUgU3R5bGVSdW5zIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShTdHlsZVJ1bnMpCi0jZGVmaW5lIFN1YnN0aXR1dGlvbkxvb2t1cCBVX0lD
VV9FTlRSWV9QT0lOVF9SRU5BTUUoU3Vic3RpdHV0aW9uTG9va3VwKQotI2RlZmluZSBTdWJ0YWJs
ZVByb2Nlc3NvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoU3VidGFibGVQcm9jZXNzb3IpCi0j
ZGVmaW5lIFN1blRpbWVBbmdsZUZ1bmMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFN1blRpbWVB
bmdsZUZ1bmMpCi0jZGVmaW5lIFN5bWJvbFRhYmxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShT
eW1ib2xUYWJsZSkKLSNkZWZpbmUgVFpFbnVtZXJhdGlvbiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5B
TUUoVFpFbnVtZXJhdGlvbikKLSNkZWZpbmUgVGFpd2FuQ2FsZW5kYXIgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRhaXdhbkNhbGVuZGFyKQotI2RlZmluZSBUYXJnZXQgVV9JQ1VfRU5UUllfUE9J
TlRfUkVOQU1FKFRhcmdldCkKLSNkZWZpbmUgVGVybmFyeU5vZGUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRlcm5hcnlOb2RlKQotI2RlZmluZSBUZXh0VHJpZU1hcCBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVGV4dFRyaWVNYXApCi0jZGVmaW5lIFRleHRUcmllTWFwU2VhcmNoUmVzdWx0SGFu
ZGxlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGV4dFRyaWVNYXBTZWFyY2hSZXN1bHRIYW5k
bGVyKQotI2RlZmluZSBUaGFpQnJlYWtFbmdpbmUgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRo
YWlCcmVha0VuZ2luZSkKLSNkZWZpbmUgVGhhaUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVGhhaUxheW91dEVuZ2luZSkKLSNkZWZpbmUgVGhhaVNoYXBpbmcgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRoYWlTaGFwaW5nKQotI2RlZmluZSBUaWJldGFuQ2xhc3NUYWJsZSBV
X0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbkNsYXNzVGFibGUpCi0jZGVmaW5lIFRpYmV0
YW5PcGVuVHlwZUxheW91dEVuZ2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGliZXRhbk9w
ZW5UeXBlTGF5b3V0RW5naW5lKQotI2RlZmluZSBUaWJldGFuUmVvcmRlcmluZyBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVGliZXRhblJlb3JkZXJpbmcpCi0jZGVmaW5lIFRpbWVBcnJheVRpbWVa
b25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZUFycmF5VGltZVpvbmVSdWxlKQot
I2RlZmluZSBUaW1lVW5pdCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGltZVVuaXQpCi0jZGVm
aW5lIFRpbWVVbml0QW1vdW50IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUaW1lVW5pdEFtb3Vu
dCkKLSNkZWZpbmUgVGltZVVuaXRGb3JtYXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpbWVV
bml0Rm9ybWF0KQotI2RlZmluZSBUaW1lWm9uZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGlt
ZVpvbmUpCi0jZGVmaW5lIFRpbWVab25lUnVsZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVGlt
ZVpvbmVSdWxlKQotI2RlZmluZSBUaW1lWm9uZVRyYW5zaXRpb24gVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFRpbWVab25lVHJhbnNpdGlvbikKLSNkZWZpbmUgVGl0bGVjYXNlVHJhbnNsaXRlcmF0
b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKQotI2Rl
ZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xp
dGVyYXRpb25SdWxlKQotI2RlZmluZSBUcmFuc2xpdGVyYXRpb25SdWxlRGF0YSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0aW9uUnVsZURhdGEpCi0jZGVmaW5lIFRyYW5zbGl0
ZXJhdGlvblJ1bGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdGlvblJ1
bGVTZXQpCi0jZGVmaW5lIFRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShU
cmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JBbGlhcyBVX0lDVV9FTlRSWV9Q
T0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JBbGlhcykKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JF
bnRyeSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNsaXRlcmF0b3JFbnRyeSkKLSNkZWZp
bmUgVHJhbnNsaXRlcmF0b3JJRFBhcnNlciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVHJhbnNs
aXRlcmF0b3JJRFBhcnNlcikKLSNkZWZpbmUgVHJhbnNsaXRlcmF0b3JQYXJzZXIgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRyYW5zbGl0ZXJhdG9yUGFyc2VyKQotI2RlZmluZSBUcmFuc2xpdGVy
YXRvclJlZ2lzdHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmFuc2xpdGVyYXRvclJlZ2lz
dHJ5KQotI2RlZmluZSBUcmFuc2xpdGVyYXRvclNwZWMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFRyYW5zbGl0ZXJhdG9yU3BlYykKLSNkZWZpbmUgVHJpU3RhdGVTaW5nbGV0b24gVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFRyaVN0YXRlU2luZ2xldG9uKQotI2RlZmluZSBUcmllV29yZERpY3Rp
b25hcnkgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFRyaWVXb3JkRGljdGlvbmFyeSkKLSNkZWZp
bmUgVHJpbW1lZEFycmF5UHJvY2Vzc29yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShUcmltbWVk
QXJyYXlQcm9jZXNzb3IpCi0jZGVmaW5lIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgVV9JQ1VfRU5U
UllfUE9JTlRfUkVOQU1FKFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IpCi0jZGVmaW5lIFVDb2xsYXRp
b25QQ0UgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVDb2xsYXRpb25QQ0UpCi0jZGVmaW5lIFVE
YXRhUGF0aEl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVRGF0YVBhdGhJdGVyYXRv
cikKLSNkZWZpbmUgVUxvY1J1bnMgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVMb2NSdW5zKQot
I2RlZmluZSBVTWVtb3J5IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVTWVtb3J5KQotI2RlZmlu
ZSBVT2JqZWN0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVT2JqZWN0KQotI2RlZmluZSBVU3Rh
Y2sgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVTdGFjaykKLSNkZWZpbmUgVVN0cmluZ0VudW1l
cmF0aW9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVU3RyaW5nRW51bWVyYXRpb24pCi0jZGVm
aW5lIFVUUzQ2IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVFM0NikKLSNkZWZpbmUgVVRyaWUy
U2luZ2xldG9uIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVVHJpZTJTaW5nbGV0b24pCi0jZGVm
aW5lIFVWZWN0b3IgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3IpCi0jZGVmaW5lIFVW
ZWN0b3IzMiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVVZlY3RvcjMyKQotI2RlZmluZSBVVmVj
dG9yNjQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVWZWN0b3I2NCkKLSNkZWZpbmUgVW5lc2Nh
cGVUcmFuc2xpdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5lc2NhcGVUcmFuc2xp
dGVyYXRvcikKLSNkZWZpbmUgVW5oYW5kbGVkRW5naW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RShVbmhhbmRsZWRFbmdpbmUpCi0jZGVmaW5lIFVuaWNvZGVBcmFiaWNPcGVuVHlwZUxheW91dEVu
Z2luZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZUFyYWJpY09wZW5UeXBlTGF5b3V0
RW5naW5lKQotI2RlZmluZSBVbmljb2RlRmlsdGVyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShV
bmljb2RlRmlsdGVyKQotI2RlZmluZSBVbmljb2RlRnVuY3RvciBVX0lDVV9FTlRSWV9QT0lOVF9S
RU5BTUUoVW5pY29kZUZ1bmN0b3IpCi0jZGVmaW5lIFVuaWNvZGVNYXRjaGVyIFVfSUNVX0VOVFJZ
X1BPSU5UX1JFTkFNRShVbmljb2RlTWF0Y2hlcikKLSNkZWZpbmUgVW5pY29kZU5hbWVUcmFuc2xp
dGVyYXRvciBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRv
cikKLSNkZWZpbmUgVW5pY29kZVJlcGxhY2VyIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShVbmlj
b2RlUmVwbGFjZXIpCi0jZGVmaW5lIFVuaWNvZGVTZXQgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1F
KFVuaWNvZGVTZXQpCi0jZGVmaW5lIFVuaWNvZGVTZXRJdGVyYXRvciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVW5pY29kZVNldEl0ZXJhdG9yKQotI2RlZmluZSBVbmljb2RlU2V0U3RyaW5nU3Bh
biBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoVW5pY29kZVNldFN0cmluZ1NwYW4pCi0jZGVmaW5l
IFVuaWNvZGVTdHJpbmcgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFVuaWNvZGVTdHJpbmcpCi0j
ZGVmaW5lIFVwcGVyY2FzZVRyYW5zbGl0ZXJhdG9yIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShV
cHBlcmNhc2VUcmFuc2xpdGVyYXRvcikKLSNkZWZpbmUgVlRaUmVhZGVyIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShWVFpSZWFkZXIpCi0jZGVmaW5lIFZUWldyaXRlciBVX0lDVV9FTlRSWV9QT0lO
VF9SRU5BTUUoVlRaV3JpdGVyKQotI2RlZmluZSBWVGltZVpvbmUgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFZUaW1lWm9uZSkKLSNkZWZpbmUgVmFsdWVSZWNvcmQgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFZhbHVlUmVjb3JkKQotI2RlZmluZSBWYWx1ZVJ1bnMgVV9JQ1VfRU5UUllfUE9JTlRf
UkVOQU1FKFZhbHVlUnVucykKLSNkZWZpbmUgWlNGQ2FjaGUgVV9JQ1VfRU5UUllfUE9JTlRfUkVO
QU1FKFpTRkNhY2hlKQotI2RlZmluZSBaU0ZDYWNoZUVudHJ5IFVfSUNVX0VOVFJZX1BPSU5UX1JF
TkFNRShaU0ZDYWNoZUVudHJ5KQotI2RlZmluZSBaU0ZTdHJpbmdQb29sIFVfSUNVX0VOVFJZX1BP
SU5UX1JFTkFNRShaU0ZTdHJpbmdQb29sKQotI2RlZmluZSBaU0ZTdHJpbmdQb29sQ2h1bmsgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKFpTRlN0cmluZ1Bvb2xDaHVuaykKLSNkZWZpbmUgWm9uZU1l
dGEgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVNZXRhKQotI2RlZmluZSBab25lU3RyaW5n
Rm9ybWF0IFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRShab25lU3RyaW5nRm9ybWF0KQotI2RlZmlu
ZSBab25lU3RyaW5nSW5mbyBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoWm9uZVN0cmluZ0luZm8p
Ci0jZGVmaW5lIFpvbmVTdHJpbmdTZWFyY2hSZXN1bHRIYW5kbGVyIFVfSUNVX0VOVFJZX1BPSU5U
X1JFTkFNRShab25lU3RyaW5nU2VhcmNoUmVzdWx0SGFuZGxlcikKLSNkZWZpbmUgWm9uZVN0cmlu
Z3MgVV9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKFpvbmVTdHJpbmdzKQotI2RlZmluZSBjb2xsSXRl
cmF0ZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoY29sbEl0ZXJhdGUpCi0jZGVmaW5lIGxvY2Fs
ZV9zZXRfZGVmYXVsdF9pbnRlcm5hbCBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUobG9jYWxlX3Nl
dF9kZWZhdWx0X2ludGVybmFsKQotI2RlZmluZSB1dGlsNjRfZnJvbURvdWJsZSBVX0lDVV9FTlRS
WV9QT0lOVF9SRU5BTUUodXRpbDY0X2Zyb21Eb3VibGUpCi0jZGVmaW5lIHV0aWw2NF9wb3cgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2NF9wb3cpCi0jZGVmaW5lIHV0aWw2NF90b3UgVV9J
Q1VfRU5UUllfUE9JTlRfUkVOQU1FKHV0aWw2NF90b3UpCi0KLSNlbmRpZgotI2VuZGlmCi0KICNl
bmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2Rl
L3VzY3JpcHQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VzY3JpcHQuaAppbmRl
eCBlZTIxYzc0MGQxNmE2ZTY0ZTk0NDI0YTJlYTdkNjkwNjRjZjE4ZTQ3Li41NzI1NWM0Zjk4NDRh
ZmFiNTNmZmMxOGEzMWFkNzllOGUyZTM0MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9pY3UvdW5pY29kZS91c2NyaXB0LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNv
ZGUvdXNjcmlwdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgIENv
cHlyaWdodCAoQykgMTk5Ny0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisg
KiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKICAqCkBAIC00NCwxODIgKzQ0LDM2OSBAQAogICogQHN0YWJsZSBJQ1Ug
Mi4yCiAgKi8KIHR5cGVkZWYgZW51bSBVU2NyaXB0Q29kZSB7CisgICAgLyoKKyAgICAgKiBOb3Rl
OiBVU2NyaXB0Q29kZSBjb25zdGFudHMgYW5kIHRoZWlyIElTTyBzY3JpcHQgY29kZSBjb21tZW50
cworICAgICAqIGFyZSBwYXJzZWQgYnkgcHJlcGFyc2V1Y2QucHkuCisgICAgICogSXQgbWF0Y2hl
cyBsaW5lcyBsaWtlCisgICAgICogICAgIFVTQ1JJUFRfPFVuaWNvZGUgU2NyaXB0IHZhbHVlIG5h
bWU+ID0gPGludGVnZXI+LCAgLyAqIDxJU08gc2NyaXB0IGNvZGU+ICogLworICAgICAqLworCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0lOVkFMSURfQ09ERSA9
IC0xLAorICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9DT01NT04g
ICAgICAgPSAgMCwgIC8qIFp5eXkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KICAg
ICAgIFVTQ1JJUFRfSU5IRVJJVEVEICAgID0gIDEsICAvKiBaaW5oICovIC8qICJDb2RlIGZvciBp
bmhlcml0ZWQgc2NyaXB0IiwgZm9yIG5vbi1zcGFjaW5nIGNvbWJpbmluZyBtYXJrczsgYWxzbyBR
YWFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0FSQUJJ
QyAgICAgICA9ICAyLCAgLyogQXJhYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9BUk1FTklBTiAgICAgPSAgMywgIC8qIEFybW4gKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQkVOR0FMSSAgICAgID0gIDQsICAvKiBC
ZW5nICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0JPUE9N
T0ZPICAgICA9ICA1LCAgLyogQm9wbyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9DSEVST0tFRSAgICAgPSAgNiwgIC8qIENoZXIgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQ09QVElDICAgICAgID0gIDcsICAvKiBD
b3B0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0NZUklM
TElDICAgICA9ICA4LCAgLyogQ3lybCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9ERVNFUkVUICAgICAgPSAgOSwgIC8qIERzcnQgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfREVWQU5BR0FSSSAgID0gMTAsICAvKiBE
ZXZhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0VUSElP
UElDICAgICA9IDExLCAgLyogRXRoaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9HRU9SR0lBTiAgICAgPSAxMiwgIC8qIEdlb3IgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR09USElDICAgICAgID0gMTMsICAvKiBH
b3RoICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0dSRUVL
ICAgICAgICA9IDE0LCAgLyogR3JlayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9HVUpBUkFUSSAgICAgPSAxNSwgIC8qIEd1anIgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfR1VSTVVLSEkgICAgID0gMTYsICAvKiBH
dXJ1ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0hBTiAg
ICAgICAgICA9IDE3LCAgLyogSGFuaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9IQU5HVUwgICAgICAgPSAxOCwgIC8qIEhhbmcgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfSEVCUkVXICAgICAgID0gMTksICAvKiBI
ZWJyICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0hJUkFH
QU5BICAgICA9IDIwLCAgLyogSGlyYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9LQU5OQURBICAgICAgPSAyMSwgIC8qIEtuZGEgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfS0FUQUtBTkEgICAgID0gMjIsICAvKiBL
YW5hICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX0tITUVS
ICAgICAgICA9IDIzLCAgLyogS2htciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9MQU8gICAgICAgICAgPSAyNCwgIC8qIExhb28gKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTEFUSU4gICAgICAgID0gMjUsICAvKiBM
YXRuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX01BTEFZ
QUxBTSAgICA9IDI2LCAgLyogTWx5bSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9NT05HT0xJQU4gICAgPSAyNywgIC8qIE1vbmcgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfTVlBTk1BUiAgICAgID0gMjgsICAvKiBN
eW1yICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX09HSEFN
ICAgICAgICA9IDI5LCAgLyogT2dhbSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9PTERfSVRBTElDICAgPSAzMCwgIC8qIEl0YWwgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfT1JJWUEgICAgICAgID0gMzEsICAvKiBP
cnlhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1JVTklD
ICAgICAgICA9IDMyLCAgLyogUnVuciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9TSU5IQUxBICAgICAgPSAzMywgIC8qIFNpbmggKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfU1lSSUFDICAgICAgID0gMzQsICAvKiBT
eXJjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBTUlM
ICAgICAgICA9IDM1LCAgLyogVGFtbCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9URUxVR1UgICAgICAgPSAzNiwgIC8qIFRlbHUgKi8KKyAgICAgIC8qKiBA
c3RhYmxlIElDVSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfVEhBQU5BICAgICAgID0gMzcsICAvKiBU
aGFhICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RIQUkg
ICAgICAgICA9IDM4LCAgLyogVGhhaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwog
ICAgICAgVVNDUklQVF9USUJFVEFOICAgICAgPSAzOSwgIC8qIFRpYnQgKi8KICAgICAgIC8qKiBD
YW5hZGlhbl9BYm9yaWdpbmFsIHNjcmlwdC4gQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NS
SVBUX0NBTkFESUFOX0FCT1JJR0lOQUwgPSA0MCwgIC8qIENhbnMgKi8KICAgICAgIC8qKiBDYW5h
ZGlhbl9BYm9yaWdpbmFsIHNjcmlwdCAoYWxpYXMpLiBAc3RhYmxlIElDVSAyLjIgKi8KICAgICAg
IFVTQ1JJUFRfVUNBUyAgICAgICAgID0gVVNDUklQVF9DQU5BRElBTl9BQk9SSUdJTkFMLAorICAg
ICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVNDUklQVF9ZSSAgICAgICAgICAgPSA0
MSwgIC8qIFlpaWkgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHRzIGluIFVuaWNvZGUgMy4yICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBR0FMT0cgICAgICA9
IDQyLCAgLyogVGdsZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDIuMiAqLwogICAgICAgVVND
UklQVF9IQU5VTk9PICAgICAgPSA0MywgIC8qIEhhbm8gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSAyLjIgKi8KICAgICAgIFVTQ1JJUFRfQlVISUQgICAgICAgID0gNDQsICAvKiBCdWhkICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMi4yICovCiAgICAgICBVU0NSSVBUX1RBR0JBTldBICAgICA9
IDQ1LCAgLyogVGFnYiAqLwogCi0gICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQgQHN0
YWJsZSBJQ1UgMi42ICovCisgICAgICAvKiBOZXcgc2NyaXB0cyBpbiBVbmljb2RlIDQgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfQlJBSUxMRSAgICAgID0g
NDYsICAvKiBCcmFpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NS
SVBUX0NZUFJJT1QgICAgICA9IDQ3LCAgLyogQ3BydCAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuNiAqLwogICAgICAgVVNDUklQVF9MSU1CVSAgICAgICAgPSA0OCwgIC8qIExpbWIgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfTElORUFSX0IgICAgID0g
NDksICAvKiBMaW5iICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NS
SVBUX09TTUFOWUEgICAgICA9IDUwLCAgLyogT3NtYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDIuNiAqLwogICAgICAgVVNDUklQVF9TSEFWSUFOICAgICAgPSA1MSwgIC8qIFNoYXcgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSAyLjYgKi8KICAgICAgIFVTQ1JJUFRfVEFJX0xFICAgICAgID0g
NTIsICAvKiBUYWxlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMi42ICovCiAgICAgICBVU0NS
SVBUX1VHQVJJVElDICAgICA9IDUzLCAgLyogVWdhciAqLwogCiAgICAgICAvKiogTmV3IHNjcmlw
dCBjb2RlIGluIFVuaWNvZGUgNC4wLjEgQHN0YWJsZSBJQ1UgMy4wICovCiAgICAgICBVU0NSSVBU
X0tBVEFLQU5BX09SX0hJUkFHQU5BID0gNTQsLypIcmt0ICovCiAKLSAgICAgIC8qIE5ldyBzY3Jp
cHRzIGluIFVuaWNvZGUgNC4xIEBzdGFibGUgSUNVIDMuNCAqLworICAgICAgLyogTmV3IHNjcmlw
dHMgaW4gVW5pY29kZSA0LjEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAg
IFVTQ1JJUFRfQlVHSU5FU0UgICAgICA9IDU1LCAvKiBCdWdpICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX0dMQUdPTElUSUMgICAgPSA1NiwgLyogR2xhZyAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQVF9LSEFST1NIVEhJ
ICAgID0gNTcsIC8qIEtoYXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAg
IFVTQ1JJUFRfU1lMT1RJX05BR1JJICA9IDU4LCAvKiBTeWxvICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy40ICovCiAgICAgICBVU0NSSVBUX05FV19UQUlfTFVFICAgPSA1OSwgLyogVGFsdSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNCAqLwogICAgICAgVVNDUklQVF9USUZJTkFHSCAg
ICAgID0gNjAsIC8qIFRmbmcgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjQgKi8KICAgICAg
IFVTQ1JJUFRfT0xEX1BFUlNJQU4gICA9IDYxLCAvKiBYcGVvICovCiAKLSAgICAgIC8qIE5ldyBz
Y3JpcHQgY29kZXMgZnJvbSBJU08gMTU5MjQgQHN0YWJsZSBJQ1UgMy42ICovCisgICAgICAvKiBO
ZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My42ICovCiAgICAgICBVU0NSSVBUX0JBTElORVNFICAgICAgICAgICAgICAgICAgICAgID0gNjIs
IC8qIEJhbGkgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRf
QkFUQUsgICAgICAgICAgICAgICAgICAgICAgICAgPSA2MywgLyogQmF0ayAqLworICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9CTElTU1lNQk9MUyAgICAgICAgICAg
ICAgICAgICA9IDY0LCAvKiBCbGlzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAg
ICAgICBVU0NSSVBUX0JSQUhNSSAgICAgICAgICAgICAgICAgICAgICAgID0gNjUsIC8qIEJyYWgg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ0hBTSAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSA2NiwgLyogQ2hhbSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9DSVJUSCAgICAgICAgICAgICAgICAgICAgICAgICA9
IDY3LCAvKiBDaXJ0ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NS
SVBUX09MRF9DSFVSQ0hfU0xBVk9OSUNfQ1lSSUxMSUMgID0gNjgsIC8qIEN5cnMgKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfREVNT1RJQ19FR1lQVElBTiAg
ICAgICAgICAgICAgPSA2OSwgLyogRWd5ZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAq
LwogICAgICAgVVNDUklQVF9ISUVSQVRJQ19FR1lQVElBTiAgICAgICAgICAgICA9IDcwLCAvKiBF
Z3loICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0VHWVBU
SUFOX0hJRVJPR0xZUEhTICAgICAgICAgID0gNzEsIC8qIEVneXAgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfS0hVVFNVUkkgICAgICAgICAgICAgICAgICAg
ICAgPSA3MiwgLyogR2VvayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9TSU1QTElGSUVEX0hBTiAgICAgICAgICAgICAgICA9IDczLCAvKiBIYW5zICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1RSQURJVElPTkFMX0hB
TiAgICAgICAgICAgICAgID0gNzQsIC8qIEhhbnQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjYgKi8KICAgICAgIFVTQ1JJUFRfUEFIQVdIX0hNT05HICAgICAgICAgICAgICAgICAgPSA3NSwg
LyogSG1uZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9P
TERfSFVOR0FSSUFOICAgICAgICAgICAgICAgICA9IDc2LCAvKiBIdW5nICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX0hBUkFQUEFOX0lORFVTICAgICAgICAg
ICAgICAgID0gNzcsIC8qIEluZHMgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAg
ICAgIFVTQ1JJUFRfSkFWQU5FU0UgICAgICAgICAgICAgICAgICAgICAgPSA3OCwgLyogSmF2YSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9LQVlBSF9MSSAg
ICAgICAgICAgICAgICAgICAgICA9IDc5LCAvKiBLYWxpICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgMy42ICovCiAgICAgICBVU0NSSVBUX0xBVElOX0ZSQUtUVVIgICAgICAgICAgICAgICAgID0g
ODAsIC8qIExhdGYgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJ
UFRfTEFUSU5fR0FFTElDICAgICAgICAgICAgICAgICAgPSA4MSwgLyogTGF0ZyAqLworICAgICAg
LyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9MRVBDSEEgICAgICAgICAgICAg
ICAgICAgICAgICA9IDgyLCAvKiBMZXBjICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICov
CiAgICAgICBVU0NSSVBUX0xJTkVBUl9BICAgICAgICAgICAgICAgICAgICAgID0gODMsIC8qIExp
bmEgKi8KICAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTUFOREFJ
QyAgICAgICAgICAgICAgICAgICAgICAgPSA4NCwgLyogTWFuZCAqLwogICAgICAgLyoqIEBzdGFi
bGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9NQU5EQUVBTiAgICAgICAgICAgICAgICAgICAg
ICA9IFVTQ1JJUFRfTUFOREFJQywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAg
IFVTQ1JJUFRfTUFZQU5fSElFUk9HTFlQSFMgICAgICAgICAgICAgPSA4NSwgLyogTWF5YSAqLwog
ICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9NRVJPSVRJQ19ISUVS
T0dMWVBIUyAgICAgICAgICA9IDg2LCAvKiBNZXJvICovCiAgICAgICAvKiogQHN0YWJsZSBJQ1Ug
My42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElDICAgICAgICAgICAgICAgICAgICAgID0gVVND
UklQVF9NRVJPSVRJQ19ISUVST0dMWVBIUywKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8K
ICAgICAgIFVTQ1JJUFRfTktPICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA4NywgLyogTmtv
byAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9PUktIT04g
ICAgICAgICAgICAgICAgICAgICAgICA9IDg4LCAvKiBPcmtoICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX09MRF9QRVJNSUMgICAgICAgICAgICAgICAgICAg
ID0gODksIC8qIFBlcm0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVT
Q1JJUFRfUEhBR1NfUEEgICAgICAgICAgICAgICAgICAgICAgPSA5MCwgLyogUGhhZyAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9QSE9FTklDSUFOICAgICAg
ICAgICAgICAgICAgICA9IDkxLCAvKiBQaG54ICovCi0gICAgICBVU0NSSVBUX1BIT05FVElDX1BP
TExBUkQgICAgICAgICAgICAgID0gOTIsIC8qIFBscmQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSA1MiAqLworICAgICAgVVNDUklQVF9NSUFPICAgICAgICAgICAgICAgICAgICAgICAgICA9IDky
LCAvKiBQbHJkICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCisgICAgICBVU0NSSVBU
X1BIT05FVElDX1BPTExBUkQgICAgICAgICAgICAgID0gVVNDUklQVF9NSUFPLAorICAgICAgLyoq
IEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9ST05HT1JPTkdPICAgICAgICAgICAg
ICAgICAgICA9IDkzLCAvKiBSb3JvICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAg
ICAgICBVU0NSSVBUX1NBUkFUSSAgICAgICAgICAgICAgICAgICAgICAgID0gOTQsIC8qIFNhcmEg
Ki8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfRVNUUkFOR0VM
T19TWVJJQUMgICAgICAgICAgICAgPSA5NSwgLyogU3lyZSAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuNiAqLwogICAgICAgVVNDUklQVF9XRVNURVJOX1NZUklBQyAgICAgICAgICAgICAgICA9
IDk2LCAvKiBTeXJqICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NS
SVBUX0VBU1RFUk5fU1lSSUFDICAgICAgICAgICAgICAgID0gOTcsIC8qIFN5cm4gKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfVEVOR1dBUiAgICAgICAgICAg
ICAgICAgICAgICAgPSA5OCwgLyogVGVuZyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAq
LwogICAgICAgVVNDUklQVF9WQUkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDk5LCAvKiBW
YWlpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1ZJU0lC
TEVfU1BFRUNIICAgICAgICAgICAgICAgID0gMTAwLC8qIFZpc3AgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjYgKi8KICAgICAgIFVTQ1JJUFRfQ1VORUlGT1JNICAgICAgICAgICAgICAgICAg
ICAgPSAxMDEsLyogWHN1eCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuNiAqLwogICAgICAg
VVNDUklQVF9VTldSSVRURU5fTEFOR1VBR0VTICAgICAgICAgICA9IDEwMiwvKiBaeHh4ICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy42ICovCiAgICAgICBVU0NSSVBUX1VOS05PV04gICAgICAg
ICAgICAgICAgICAgICAgID0gMTAzLC8qIFp6enogKi8gLyogVW5rbm93bj0iQ29kZSBmb3IgdW5j
b2RlZCBzY3JpcHQiLCBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyAqLwogCi0gICAgICAvKiBO
ZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDMuOCAqLworICAgICAg
LyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBzdGFibGUg
SUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9DQVJJQU4gICAgICAgICAgICAgICAgICAgICAgICA9
IDEwNCwvKiBDYXJpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NS
SVBUX0pBUEFORVNFICAgICAgICAgICAgICAgICAgICAgID0gMTA1LC8qIEpwYW4gKi8KKyAgICAg
IC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfTEFOTkEgICAgICAgICAgICAg
ICAgICAgICAgICAgPSAxMDYsLyogTGFuYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAq
LwogICAgICAgVVNDUklQVF9MWUNJQU4gICAgICAgICAgICAgICAgICAgICAgICA9IDEwNywvKiBM
eWNpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX0xZRElB
TiAgICAgICAgICAgICAgICAgICAgICAgID0gMTA4LC8qIEx5ZGkgKi8KKyAgICAgIC8qKiBAc3Rh
YmxlIElDVSAzLjggKi8KICAgICAgIFVTQ1JJUFRfT0xfQ0hJS0kgICAgICAgICAgICAgICAgICAg
ICAgPSAxMDksLyogT2xjayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAg
VVNDUklQVF9SRUpBTkcgICAgICAgICAgICAgICAgICAgICAgICA9IDExMCwvKiBSam5nICovCisg
ICAgICAvKiogQHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX1NBVVJBU0hUUkEgICAg
ICAgICAgICAgICAgICAgID0gMTExLC8qIFNhdXIgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAz
LjggKi8KICAgICAgIFVTQ1JJUFRfU0lHTl9XUklUSU5HICAgICAgICAgICAgICAgICAgPSAxMTIs
LyogU2dudyAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDMuOCAqLwogICAgICAgVVNDUklQVF9T
VU5EQU5FU0UgICAgICAgICAgICAgICAgICAgICA9IDExMywvKiBTdW5kICovCisgICAgICAvKiog
QHN0YWJsZSBJQ1UgMy44ICovCiAgICAgICBVU0NSSVBUX01PT04gICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMTE0LC8qIE1vb24gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSAzLjggKi8KICAg
ICAgIFVTQ1JJUFRfTUVJVEVJX01BWUVLICAgICAgICAgICAgICAgICAgPSAxMTUsLyogTXRlaSAq
LwogCi0gICAgICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNV
IDQuMCAqLworICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAg
ICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9JTVBFUklBTF9BUkFNQUlD
ICAgICAgICAgICAgICA9IDExNiwvKiBBcm1pICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4w
ICovCiAgICAgICBVU0NSSVBUX0FWRVNUQU4gICAgICAgICAgICAgICAgICAgICAgID0gMTE3LC8q
IEF2c3QgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQ0hB
S01BICAgICAgICAgICAgICAgICAgICAgICAgPSAxMTgsLyogQ2FrbSAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuMCAqLwogICAgICAgVVNDUklQVF9LT1JFQU4gICAgICAgICAgICAgICAgICAg
ICAgICA9IDExOSwvKiBLb3JlICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAg
ICBVU0NSSVBUX0tBSVRISSAgICAgICAgICAgICAgICAgICAgICAgID0gMTIwLC8qIEt0aGkgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfTUFOSUNIQUVBTiAg
ICAgICAgICAgICAgICAgICAgPSAxMjEsLyogTWFuaSAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuMCAqLwogICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBSExBVkkgICAgICAgICA9IDEy
MiwvKiBQaGxpICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBU
X1BTQUxURVJfUEFITEFWSSAgICAgICAgICAgICAgID0gMTIzLC8qIFBobHAgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfQk9PS19QQUhMQVZJICAgICAgICAg
ICAgICAgICAgPSAxMjQsLyogUGhsdiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwog
ICAgICAgVVNDUklQVF9JTlNDUklQVElPTkFMX1BBUlRISUFOICAgICAgICA9IDEyNSwvKiBQcnRp
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1NBTUFSSVRB
TiAgICAgICAgICAgICAgICAgICAgID0gMTI2LC8qIFNhbXIgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjAgKi8KICAgICAgIFVTQ1JJUFRfVEFJX1ZJRVQgICAgICAgICAgICAgICAgICAgICAg
PSAxMjcsLyogVGF2dCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuMCAqLwogICAgICAgVVND
UklQVF9NQVRIRU1BVElDQUxfTk9UQVRJT04gICAgICAgICA9IDEyOCwvKiBabXRoICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC4wICovCiAgICAgICBVU0NSSVBUX1NZTUJPTFMgICAgICAgICAg
ICAgICAgICAgICAgID0gMTI5LC8qIFpzeW0gKi8KIAotICAgICAgLyogTmV3IHNjcmlwdCBjb2Rl
cyBmcm9tIElTTyAxNTkyNCBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICAgIC8qIE5ldyBzY3JpcHQg
Y29kZXMgZnJvbSBJU08gMTU5MjQgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAg
ICAgIFVTQ1JJUFRfQkFNVU0gICAgICAgICAgICAgICAgICAgICAgICAgPSAxMzAsLyogQmFtdSAq
LworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNCAqLwogICAgICAgVVNDUklQVF9MSVNVICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDEzMSwvKiBMaXN1ICovCisgICAgICAvKiogQHN0YWJsZSBJ
Q1UgNC40ICovCiAgICAgICBVU0NSSVBUX05BS0hJX0dFQkEgICAgICAgICAgICAgICAgICAgID0g
MTMyLC8qIE5rZ2IgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjQgKi8KICAgICAgIFVTQ1JJ
UFRfT0xEX1NPVVRIX0FSQUJJQU4gICAgICAgICAgICAgPSAxMzMsLyogU2FyYiAqLwogCi0gICAg
ICAvKiBOZXcgc2NyaXB0IGNvZGVzIGZyb20gSVNPIDE1OTI0IEBzdGFibGUgSUNVIDQuNiAqLwor
ICAgICAgLyogTmV3IHNjcmlwdCBjb2RlcyBmcm9tIElTTyAxNTkyNCAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9CQVNTQV9WQUggICAgICAgICAgICAgICAg
ICAgICA9IDEzNCwvKiBCYXNzICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAg
ICBVU0NSSVBUX0RVUExPWUFOX1NIT1JUQU5EICAgICAgICAgICAgID0gMTM1LC8qIER1cGwgKi8K
KyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfRUxCQVNBTiAgICAg
ICAgICAgICAgICAgICAgICAgPSAxMzYsLyogRWxiYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNV
IDQuNiAqLwogICAgICAgVVNDUklQVF9HUkFOVEhBICAgICAgICAgICAgICAgICAgICAgICA9IDEz
NywvKiBHcmFuICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBU
X0tQRUxMRSAgICAgICAgICAgICAgICAgICAgICAgID0gMTM4LC8qIEtwZWwgKi8KKyAgICAgIC8q
KiBAc3RhYmxlIElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfTE9NQSAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxMzksLyogTG9tYSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwog
ICAgICAgVVNDUklQVF9NRU5ERSAgICAgICAgICAgICAgICAgICAgICAgICA9IDE0MCwvKiBNZW5k
ICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX01FUk9JVElD
X0NVUlNJVkUgICAgICAgICAgICAgID0gMTQxLC8qIE1lcmMgKi8KKyAgICAgIC8qKiBAc3RhYmxl
IElDVSA0LjYgKi8KICAgICAgIFVTQ1JJUFRfT0xEX05PUlRIX0FSQUJJQU4gICAgICAgICAgICAg
PSAxNDIsLyogTmFyYiAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVND
UklQVF9OQUJBVEFFQU4gICAgICAgICAgICAgICAgICAgICA9IDE0MywvKiBOYmF0ICovCisgICAg
ICAvKiogQHN0YWJsZSBJQ1UgNC42ICovCiAgICAgICBVU0NSSVBUX1BBTE1ZUkVORSAgICAgICAg
ICAgICAgICAgICAgID0gMTQ0LC8qIFBhbG0gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjYg
Ki8KICAgICAgIFVTQ1JJUFRfU0lOREhJICAgICAgICAgICAgICAgICAgICAgICAgPSAxNDUsLyog
U2luZCAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuNiAqLwogICAgICAgVVNDUklQVF9XQVJB
TkdfQ0lUSSAgICAgICAgICAgICAgICAgICA9IDE0NiwvKiBXYXJhICovCiAKKyAgICAgIC8qKiBA
c3RhYmxlIElDVSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfQUZBS0EgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxNDcsLyogQWZhayAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAg
ICAgVVNDUklQVF9KVVJDSEVOICAgICAgICAgICAgICAgICAgICAgICA9IDE0OCwvKiBKdXJjICov
CisgICAgICAvKiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX01STyAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMTQ5LC8qIE1yb28gKi8KKyAgICAgIC8qKiBAc3RhYmxlIElD
VSA0LjggKi8KKyAgICAgIFVTQ1JJUFRfTlVTSFUgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
NTAsLyogTnNodSAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQ
VF9TSEFSQURBICAgICAgICAgICAgICAgICAgICAgICA9IDE1MSwvKiBTaHJkICovCisgICAgICAv
KiogQHN0YWJsZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1NPUkFfU09NUEVORyAgICAgICAg
ICAgICAgICAgID0gMTUyLC8qIFNvcmEgKi8KKyAgICAgIC8qKiBAc3RhYmxlIElDVSA0LjggKi8K
KyAgICAgIFVTQ1JJUFRfVEFLUkkgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNTMsLyogVGFr
ciAqLworICAgICAgLyoqIEBzdGFibGUgSUNVIDQuOCAqLworICAgICAgVVNDUklQVF9UQU5HVVQg
ICAgICAgICAgICAgICAgICAgICAgICA9IDE1NCwvKiBUYW5nICovCisgICAgICAvKiogQHN0YWJs
ZSBJQ1UgNC44ICovCisgICAgICBVU0NSSVBUX1dPTEVBSSAgICAgICAgICAgICAgICAgICAgICAg
ID0gMTU1LC8qIFdvbGUgKi8KKworICAgICAgLyoqIEBzdGFibGUgSUNVIDQ5ICovCisgICAgICBV
U0NSSVBUX0FOQVRPTElBTl9ISUVST0dMWVBIUyAgICAgICAgID0gMTU2LC8qIEhsdXcgKi8KKyAg
ICAgIC8qKiBAc3RhYmxlIElDVSA0OSAqLworICAgICAgVVNDUklQVF9LSE9KS0kgICAgICAgICAg
ICAgICAgICAgICAgICA9IDE1NywvKiBLaG9qICovCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNDkg
Ki8KKyAgICAgIFVTQ1JJUFRfVElSSFVUQSAgICAgICAgICAgICAgICAgICAgICAgPSAxNTgsLyog
VGlyaCAqLworCisgICAgICAvKiogQHN0YWJsZSBJQ1UgNTIgKi8KKyAgICAgIFVTQ1JJUFRfQ0FV
Q0FTSUFOX0FMQkFOSUFOICAgICAgICAgICAgPSAxNTksLyogQWdoYiAqLworICAgICAgLyoqIEBz
dGFibGUgSUNVIDUyICovCisgICAgICBVU0NSSVBUX01BSEFKQU5JICAgICAgICAgICAgICAgICAg
ICAgID0gMTYwLC8qIE1haGogKi8KKwogICAgICAgLyogUHJpdmF0ZSB1c2UgY29kZXMgZnJvbSBR
YWFhIC0gUWFieCBhcmUgbm90IHN1cHBvcnRlZCAqLwotICAgICAgVVNDUklQVF9DT0RFX0xJTUlU
ICAgID0gMTQ3CisKKyAgICAgIC8qKiBAc3RhYmxlIElDVSAyLjIgKi8KKyAgICAgIFVTQ1JJUFRf
Q09ERV9MSU1JVCAgICA9IDE2MQogfSBVU2NyaXB0Q29kZTsKIAogLyoqCkBAIC0yNzcsOSArNDY0
LDkgQEAgVV9TVEFCTEUgVVNjcmlwdENvZGUgIFVfRVhQT1JUMgogdXNjcmlwdF9nZXRTY3JpcHQo
VUNoYXIzMiBjb2RlcG9pbnQsIFVFcnJvckNvZGUgKmVycik7CiAKIC8qKgotICogSXMgY29kZSBw
b2ludCBjIHVzZWQgaW4gc2NyaXB0IHNjPwotICogVGhhdCBpcywgZG9lcyBjb2RlIHBvaW50IGMg
aGF2ZSB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLAotICogb3IgZG8gY29kZSBwb2ludCBj
J3MgU2NyaXB0X0V4dGVuc2lvbnMgaW5jbHVkZSBzY3JpcHQgY29kZSBzYz8KKyAqIERvIHRoZSBT
Y3JpcHRfRXh0ZW5zaW9ucyBvZiBjb2RlIHBvaW50IGMgY29udGFpbiBzY3JpcHQgc2M/CisgKiBJ
ZiBjIGRvZXMgbm90IGhhdmUgZXhwbGljaXQgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhpcyB0
ZXN0cyB3aGV0aGVyCisgKiBjIGhhcyB0aGUgU2NyaXB0IHByb3BlcnR5IHZhbHVlIHNjLgogICoK
ICAqIFNvbWUgY2hhcmFjdGVycyBhcmUgY29tbW9ubHkgdXNlZCBpbiBtdWx0aXBsZSBzY3JpcHRz
LgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzI0OiBodHRwOi8vd3d3LnVuaWNv
ZGUub3JnL3JlcG9ydHMvdHIyNC8uCkBAIC0yODgsMTUgKzQ3NSwyMiBAQCB1c2NyaXB0X2dldFNj
cmlwdChVQ2hhcjMyIGNvZGVwb2ludCwgVUVycm9yQ29kZSAqZXJyKTsKICAqIGluIGZ1dHVyZSB2
ZXJzaW9ucyBvZiB0aGUgVW5pY29kZSBTdGFuZGFyZCwgYW5kIHRodXMgaW4gSUNVLgogICogQHBh
cmFtIGMgY29kZSBwb2ludAogICogQHBhcmFtIHNjIHNjcmlwdCBjb2RlCi0gKiBAcmV0dXJuIFRS
VUUgaWYgU2NyaXB0KGMpPT1zYyBvciBzYyBpcyBpbiBTY3JpcHRfRXh0ZW5zaW9ucyhjKQotICog
QGRyYWZ0IElDVSA0LjYKKyAqIEByZXR1cm4gVFJVRSBpZiBzYyBpcyBpbiBTY3JpcHRfRXh0ZW5z
aW9ucyhjKQorICogQHN0YWJsZSBJQ1UgNDkKICAqLwotVV9EUkFGVCBVQm9vbCBVX0VYUE9SVDIK
K1VfU1RBQkxFIFVCb29sIFVfRVhQT1JUMgogdXNjcmlwdF9oYXNTY3JpcHQoVUNoYXIzMiBjLCBV
U2NyaXB0Q29kZSBzYyk7CiAKIC8qKgogICogV3JpdGVzIGNvZGUgcG9pbnQgYydzIFNjcmlwdF9F
eHRlbnNpb25zIGFzIGEgbGlzdCBvZiBVU2NyaXB0Q29kZSB2YWx1ZXMKLSAqIHRvIHRoZSBvdXRw
dXQgc2NyaXB0cyBhcnJheS4KKyAqIHRvIHRoZSBvdXRwdXQgc2NyaXB0cyBhcnJheSBhbmQgcmV0
dXJucyB0aGUgbnVtYmVyIG9mIHNjcmlwdCBjb2Rlcy4KKyAqIC0gSWYgYyBkb2VzIGhhdmUgU2Ny
aXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIFNjcmlwdCBwcm9wZXJ0eSB2YWx1ZQorICogICAobm9y
bWFsbHkgQ29tbW9uIG9yIEluaGVyaXRlZCkgaXMgbm90IGluY2x1ZGVkLgorICogLSBJZiBjIGRv
ZXMgbm90IGhhdmUgU2NyaXB0X0V4dGVuc2lvbnMsIHRoZW4gdGhlIG9uZSBTY3JpcHQgY29kZSBp
cyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYXJyYXkuCisgKiAtIElmIGMgaXMgbm90IGEgdmFsaWQg
Y29kZSBwb2ludCwgdGhlbiB0aGUgb25lIFVTQ1JJUFRfVU5LTk9XTiBjb2RlIGlzIHdyaXR0ZW4u
CisgKiBJbiBvdGhlciB3b3JkcywgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyAxLAorICogdGhlbiB0
aGUgb3V0cHV0IGFycmF5IGNvbnRhaW5zIGV4YWN0bHkgYydzIHNpbmdsZSBTY3JpcHQgY29kZS4K
KyAqIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgbj49MiwgdGhlbiB0aGUgb3V0cHV0IGFycmF5IGNv
bnRhaW5zIGMncyBuIFNjcmlwdF9FeHRlbnNpb25zIHNjcmlwdCBjb2Rlcy4KICAqCiAgKiBTb21l
IGNoYXJhY3RlcnMgYXJlIGNvbW1vbmx5IHVzZWQgaW4gbXVsdGlwbGUgc2NyaXB0cy4KICAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVUFYICMyNDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9y
ZXBvcnRzL3RyMjQvLgpAQCAtMzE0LDEzICs1MDgsMTIwIEBAIHVzY3JpcHRfaGFzU2NyaXB0KFVD
aGFyMzIgYywgVVNjcmlwdENvZGUgc2MpOwogICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBV
X1NVQ0NFU1MoKSB0ZXN0LCBvciBlbHNlIHRoZSBmdW5jdGlvbiByZXR1cm5zCiAgKiAgICAgICAg
ICAgICAgICAgIGltbWVkaWF0ZWx5LiBDaGVjayBmb3IgVV9GQUlMVVJFKCkgb24gb3V0cHV0IG9y
IHVzZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYWluaW5nLiAoU2VlIFVz
ZXIgR3VpZGUgZm9yIGRldGFpbHMuKQotICogQHJldHVybiBudW1iZXIgb2Ygc2NyaXB0IGNvZGVz
IGluIGMncyBTY3JpcHRfRXh0ZW5zaW9ucywKKyAqIEByZXR1cm4gbnVtYmVyIG9mIHNjcmlwdCBj
b2RlcyBpbiBjJ3MgU2NyaXB0X0V4dGVuc2lvbnMsIG9yIDEgZm9yIHRoZSBzaW5nbGUgU2NyaXB0
IHZhbHVlLAogICogICAgICAgICB3cml0dGVuIHRvIHNjcmlwdHMgdW5sZXNzIFVfQlVGRkVSX09W
RVJGTE9XX0VSUk9SIGluZGljYXRlcyBpbnN1ZmZpY2llbnQgY2FwYWNpdHkKLSAqIEBkcmFmdCBJ
Q1UgNC42CisgKiBAc3RhYmxlIElDVSA0OQogICovCi1VX0RSQUZUIGludDMyX3QgVV9FWFBPUlQy
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgogdXNjcmlwdF9nZXRTY3JpcHRFeHRlbnNpb25z
KFVDaGFyMzIgYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU2NyaXB0Q29kZSAqc2Ny
aXB0cywgaW50MzJfdCBjYXBhY2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICplcnJvckNvZGUpOworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKworLyoqCisgKiBT
Y3JpcHQgdXNhZ2UgY29uc3RhbnRzLgorICogU2VlIFVBWCAjMzEgVW5pY29kZSBJZGVudGlmaWVy
IGFuZCBQYXR0ZXJuIFN5bnRheC4KKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90
cjMxLyNUYWJsZV9DYW5kaWRhdGVfQ2hhcmFjdGVyc19mb3JfRXhjbHVzaW9uX2Zyb21fSWRlbnRp
ZmllcnMKKyAqCisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK3R5cGVkZWYgZW51bSBVU2NyaXB0VXNh
Z2UgeworICAgIC8qKiBOb3QgZW5jb2RlZCBpbiBVbmljb2RlLiBAZHJhZnQgSUNVIDUxICovCisg
ICAgVVNDUklQVF9VU0FHRV9OT1RfRU5DT0RFRCwKKyAgICAvKiogVW5rbm93biBzY3JpcHQgdXNh
Z2UuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1VOS05PV04sCisgICAgLyoq
IENhbmRpZGF0ZSBmb3IgRXhjbHVzaW9uIGZyb20gSWRlbnRpZmllcnMuIEBkcmFmdCBJQ1UgNTEg
Ki8KKyAgICBVU0NSSVBUX1VTQUdFX0VYQ0xVREVELAorICAgIC8qKiBMaW1pdGVkIFVzZSBzY3Jp
cHQuIEBkcmFmdCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX0xJTUlURURfVVNFLAorICAg
IC8qKiBBc3BpcmF0aW9uYWwgVXNlIHNjcmlwdC4gQGRyYWZ0IElDVSA1MSAqLworICAgIFVTQ1JJ
UFRfVVNBR0VfQVNQSVJBVElPTkFMLAorICAgIC8qKiBSZWNvbW1lbmRlZCBzY3JpcHQuIEBkcmFm
dCBJQ1UgNTEgKi8KKyAgICBVU0NSSVBUX1VTQUdFX1JFQ09NTUVOREVECit9IFVTY3JpcHRVc2Fn
ZTsKKworLyoqCisgKiBXcml0ZXMgdGhlIHNjcmlwdCBzYW1wbGUgY2hhcmFjdGVyIHN0cmluZy4K
KyAqIFRoaXMgc3RyaW5nIG5vcm1hbGx5IGNvbnNpc3RzIG9mIG9uZSBjb2RlIHBvaW50IGJ1dCBt
aWdodCBiZSBsb25nZXIuCisgKiBUaGUgc3RyaW5nIGlzIGVtcHR5IGlmIHRoZSBzY3JpcHQgaXMg
bm90IGVuY29kZWQuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICogQHBhcmFt
IGRlc3Qgb3V0cHV0IHN0cmluZyBhcnJheQorICogQHBhcmFtIGNhcGFjaXR5IG51bWJlciBvZiBV
Q2hhcnMgaW4gdGhlIGRlc3QgYXJyYXkKKyAqIEBwYXJhbSBwRXJyb3JDb2RlIHN0YW5kYXJkIElD
VSBpbi9vdXQgZXJyb3IgY29kZSwgbXVzdCBwYXNzIFVfU1VDQ0VTUygpIG9uIGlucHV0CisgKiBA
cmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoLCBldmVuIGlmIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9S
CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgaW50MzJfdCBVX0VYUE9SVDIKK3VzY3Jp
cHRfZ2V0U2FtcGxlU3RyaW5nKFVTY3JpcHRDb2RlIHNjcmlwdCwgVUNoYXIgKmRlc3QsIGludDMy
X3QgY2FwYWNpdHksIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgVV9TSE9XX0NQTFVT
UExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KK2NsYXNzIFVuaWNvZGVTdHJpbmc7CitVX05B
TUVTUEFDRV9FTkQKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzY3JpcHQgc2FtcGxlIGNoYXJhY3Rl
ciBzdHJpbmcuCisgKiBUaGlzIHN0cmluZyBub3JtYWxseSBjb25zaXN0cyBvZiBvbmUgY29kZSBw
b2ludCBidXQgbWlnaHQgYmUgbG9uZ2VyLgorICogVGhlIHN0cmluZyBpcyBlbXB0eSBpZiB0aGUg
c2NyaXB0IGlzIG5vdCBlbmNvZGVkLgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUK
KyAqIEByZXR1cm4gdGhlIHNhbXBsZSBjaGFyYWN0ZXIgc3RyaW5nCisgKiBAZHJhZnQgSUNVIDUx
CisgKi8KK1VfQ09NTU9OX0FQSSBpY3U6OlVuaWNvZGVTdHJpbmcgVV9FWFBPUlQyCit1c2NyaXB0
X2dldFNhbXBsZVVuaWNvZGVTdHJpbmcoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworI2VuZGlmCisK
Ky8qKgorICogUmV0dXJucyB0aGUgc2NyaXB0IHVzYWdlIGFjY29yZGluZyB0byBVQVggIzMxIFVu
aWNvZGUgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXguCisgKiBSZXR1cm5zIFVTQ1JJUFRf
VVNBR0VfTk9UX0VOQ09ERUQgaWYgdGhlIHNjcmlwdCBpcyBub3QgZW5jb2RlZCBpbiBVbmljb2Rl
LgorICoKKyAqIEBwYXJhbSBzY3JpcHQgc2NyaXB0IGNvZGUKKyAqIEByZXR1cm4gc2NyaXB0IHVz
YWdlCisgKiBAc2VlIFVTY3JpcHRVc2FnZQorICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZU
IFVTY3JpcHRVc2FnZSBVX0VYUE9SVDIKK3VzY3JpcHRfZ2V0VXNhZ2UoVVNjcmlwdENvZGUgc2Ny
aXB0KTsKKworLyoqCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyB3cml0dGVuIHJp
Z2h0LXRvLWxlZnQuCisgKiBGb3IgZXhhbXBsZSwgQXJhYiBhbmQgSGVici4KKyAqCisgKiBAcGFy
YW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyBy
aWdodC10by1sZWZ0CisgKiBAZHJhZnQgSUNVIDUxCisgKi8KK1VfRFJBRlQgVUJvb2wgVV9FWFBP
UlQyCit1c2NyaXB0X2lzUmlnaHRUb0xlZnQoVVNjcmlwdENvZGUgc2NyaXB0KTsKKworLyoqCisg
KiBSZXR1cm5zIFRSVUUgaWYgdGhlIHNjcmlwdCBhbGxvd3MgbGluZSBicmVha3MgYmV0d2VlbiBs
ZXR0ZXJzIChleGNsdWRpbmcgaHlwaGVuYXRpb24pLgorICogU3VjaCBhIHNjcmlwdCB0eXBpY2Fs
bHkgcmVxdWlyZXMgZGljdGlvbmFyeS1iYXNlZCBsaW5lIGJyZWFraW5nLgorICogRm9yIGV4YW1w
bGUsIEhhbmkgYW5kIFRoYWkuCisgKgorICogQHBhcmFtIHNjcmlwdCBzY3JpcHQgY29kZQorICog
QHJldHVybiBUUlVFIGlmIHRoZSBzY3JpcHQgYWxsb3dzIGxpbmUgYnJlYWtzIGJldHdlZW4gbGV0
dGVycworICogQGRyYWZ0IElDVSA1MQorICovCitVX0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNj
cmlwdF9icmVha3NCZXR3ZWVuTGV0dGVycyhVU2NyaXB0Q29kZSBzY3JpcHQpOworCisvKioKKyAq
IFJldHVybnMgVFJVRSBpZiBpbiBtb2Rlcm4gKG9yIG1vc3QgcmVjZW50KSB1c2FnZSBvZiB0aGUg
c2NyaXB0IGNhc2UgZGlzdGluY3Rpb25zIGFyZSBjdXN0b21hcnkuCisgKiBGb3IgZXhhbXBsZSwg
TGF0biBhbmQgQ3lybC4KKyAqCisgKiBAcGFyYW0gc2NyaXB0IHNjcmlwdCBjb2RlCisgKiBAcmV0
dXJuIFRSVUUgaWYgdGhlIHNjcmlwdCBpcyBjYXNlZAorICogQGRyYWZ0IElDVSA1MQorICovCitV
X0RSQUZUIFVCb29sIFVfRVhQT1JUMgordXNjcmlwdF9pc0Nhc2VkKFVTY3JpcHRDb2RlIHNjcmlw
dCk7CisKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLwogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3VzdHJpbmcuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL2ljdS91bmljb2RlL3VzdHJpbmcuaAppbmRleCAyZWUxNmU5OWNmM2MwMDdhYjc1ZWMx
ZjZiZDQxYzE1YWVhZDkyOTUyLi5kMmVhMzFjNjc0N2Y4ZjFjMWViMDM3MGUyODQzYzNmNjQ0OThi
MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91c3RyaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXN0cmluZy5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKLSogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxMCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDEy
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC0yMCw5ICsy
MCwxNCBAQAogI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vp
dGVyLmgiCiAKLS8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9UaXRsZSgpIHRvIGF2
b2lkIGluY2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4xKi8KKy8qKgorICog
XGRlZiBVQlJLX1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCisgKiBAaW50ZXJuYWwgCisgKi8KKwog
I2lmbmRlZiBVQlJLX1RZUEVERUZfVUJSRUFLX0lURVJBVE9SCiAjICAgZGVmaW5lIFVCUktfVFlQ
RURFRl9VQlJFQUtfSVRFUkFUT1IKKy8qKiBTaW1wbGUgZGVjbGFyYXRpb24gZm9yIHVfc3RyVG9U
aXRsZSgpIHRvIGF2b2lkIGluY2x1ZGluZyB1bmljb2RlL3VicmsuaC4gQHN0YWJsZSBJQ1UgMi4x
Ki8KICAgICB0eXBlZGVmIHN0cnVjdCBVQnJlYWtJdGVyYXRvciBVQnJlYWtJdGVyYXRvcjsKICNl
bmRpZgogCkBAIC0xNDYsOCArMTUxLDggQEAgdV9zdHJjYXQoVUNoYXIgICAgICpkc3QsCiAgKiBJ
ZiA8Y29kZT5uJmx0Oz0wPC9jb2RlPiB0aGVuIGRzdCBpcyBub3QgbW9kaWZpZWQuCiAgKgogICog
QHBhcmFtIGRzdCBUaGUgZGVzdGluYXRpb24gc3RyaW5nLgotICogQHBhcmFtIHNyYyBUaGUgc291
cmNlIHN0cmluZy4KLSAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJz
IHRvIGFwcGVuZC4KKyAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxM
L2ludmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hh
cmFjdGVycyB0byBhcHBlbmQ7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRv
IDxjb2RlPmRzdDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNTUwLDkgKzU1
NSw5IEBAIHVfc3RyQ2FzZUNvbXBhcmUoY29uc3QgVUNoYXIgKnMxLCBpbnQzMl90IGxlbmd0aDEs
CiAgKiBDb21wYXJlIHR3byB1c3RyaW5ncyBmb3IgYml0d2lzZSBlcXVhbGl0eS4gCiAgKiBDb21w
YXJlcyBhdCBtb3N0IDxjb2RlPm48L2NvZGU+IGNoYXJhY3RlcnMuCiAgKgotICogQHBhcmFtIHVj
czEgQSBzdHJpbmcgdG8gY29tcGFyZS4KLSAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBh
cmUuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBjb21w
YXJlLgorICogQHBhcmFtIHVjczEgQSBzdHJpbmcgdG8gY29tcGFyZSAoY2FuIGJlIE5VTEwvaW52
YWxpZCBpZiBuPD0wKS4KKyAqIEBwYXJhbSB1Y3MyIEEgc3RyaW5nIHRvIGNvbXBhcmUgKGNhbiBi
ZSBOVUxML2ludmFsaWQgaWYgbjw9MCkuCisgKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIg
b2YgY2hhcmFjdGVycyB0byBjb21wYXJlOyBhbHdheXMgcmV0dXJucyAwIGlmIG48PTAuCiAgKiBA
cmV0dXJuIDAgaWYgPGNvZGU+czE8L2NvZGU+IGFuZCA8Y29kZT5zMjwvY29kZT4gYXJlIGJpdHdp
c2UgZXF1YWw7IGEgbmVnYXRpdmUKICAqIHZhbHVlIGlmIDxjb2RlPnMxPC9jb2RlPiBpcyBiaXR3
aXNlIGxlc3MgdGhhbiA8Y29kZT5zMjwvY29kZT47IGEgcG9zaXRpdmUKICAqIHZhbHVlIGlmIDxj
b2RlPnMxPC9jb2RlPiBpcyBiaXR3aXNlIGdyZWF0ZXIgdGhhbiA8Y29kZT5zMjwvY29kZT4uCkBA
IC02NjcsOCArNjcyLDggQEAgdV9zdHJjcHkoVUNoYXIgICAgICpkc3QsCiAgKiBpZiB0aGUgbGVu
Z3RoIG9mIDxjb2RlPnNyYzwvY29kZT4gaXMgbGVzcyB0aGFuIDxjb2RlPm48L2NvZGU+LgogICoK
ICAqIEBwYXJhbSBkc3QgVGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KLSAqIEBwYXJhbSBzcmMgVGhl
IHNvdXJjZSBzdHJpbmcuCi0gKiBAcGFyYW0gbiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFj
dGVycyB0byBjb3B5LgorICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5V
TEwvaW52YWxpZCBpZiBuPD0wKS4KKyAqIEBwYXJhbSBuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBj
aGFyYWN0ZXJzIHRvIGNvcHk7IG5vLW9wIGlmIDw9MC4KICAqIEByZXR1cm4gQSBwb2ludGVyIHRv
IDxjb2RlPmRzdDwvY29kZT4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwpAQCAtNzQyLDggKzc0
Nyw4IEBAIFVfU1RBQkxFIGNoYXIqIFVfRVhQT1JUMiB1X2F1c3RybmNweShjaGFyICpkc3QsCiAv
KioKICAqIFN5bm9ueW0gZm9yIG1lbWNweSgpLCBidXQgd2l0aCBVQ2hhcnMgb25seS4KICAqIEBw
YXJhbSBkZXN0IFRoZSBkZXN0aW5hdGlvbiBzdHJpbmcKLSAqIEBwYXJhbSBzcmMgVGhlIHNvdXJj
ZSBzdHJpbmcKLSAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gY29w
eQorICogQHBhcmFtIHNyYyBUaGUgc291cmNlIHN0cmluZyAoY2FuIGJlIE5VTEwvaW52YWxpZCBp
ZiBjb3VudDw9MCkKKyAqIEBwYXJhbSBjb3VudCBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8g
Y29weTsgbm8tb3AgaWYgPD0wCiAgKiBAcmV0dXJuIEEgcG9pbnRlciB0byA8Y29kZT5kZXN0PC9j
b2RlPgogICogQHN0YWJsZSBJQ1UgMi4wCiAgKi8KQEAgLTc1Myw4ICs3NTgsOCBAQCB1X21lbWNw
eShVQ2hhciAqZGVzdCwgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBjb3VudCk7CiAvKioKICAq
IFN5bm9ueW0gZm9yIG1lbW1vdmUoKSwgYnV0IHdpdGggVUNoYXJzIG9ubHkuCiAgKiBAcGFyYW0g
ZGVzdCBUaGUgZGVzdGluYXRpb24gc3RyaW5nCi0gKiBAcGFyYW0gc3JjIFRoZSBzb3VyY2Ugc3Ry
aW5nCi0gKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmUKKyAq
IEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBzdHJpbmcgKGNhbiBiZSBOVUxML2ludmFsaWQgaWYgY291
bnQ8PTApCisgKiBAcGFyYW0gY291bnQgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIG1vdmU7
IG5vLW9wIGlmIDw9MAogICogQHJldHVybiBBIHBvaW50ZXIgdG8gPGNvZGU+ZGVzdDwvY29kZT4K
ICAqIEBzdGFibGUgSUNVIDIuMAogICovCkBAIC05MTgsNyArOTIzLDcgQEAgdV9tZW1yY2hyMzIo
Y29uc3QgVUNoYXIgKnMsIFVDaGFyMzIgYywgaW50MzJfdCBjb3VudCk7CiAgKiAgICB9CiAgKiA8
L3ByZT4KICAqIAotICogTm90ZSB0aGF0IHRoZSBtYWNyb3Mgd2lsbCBOT1QgY29uc2lzdGVudGx5
IHdvcmsgaWYgdGhlaXIgYXJndW1lbnQgaXMgYW5vdGhlciAjZGVmaW5lLiAKKyAqIE5vdGUgdGhh
dCB0aGUgbWFjcm9zIHdpbGwgTk9UIGNvbnNpc3RlbnRseSB3b3JrIGlmIHRoZWlyIGFyZ3VtZW50
IGlzIGFub3RoZXIgPGNvZGU+I2RlZmluZTwvY29kZT4uIAogICogIFRoZSBmb2xsb3dpbmcgd2ls
bCBub3Qgd29yayBvbiBhbGwgcGxhdGZvcm1zLCBkb24ndCB1c2UgaXQuCiAgKiAKICAqIDxwcmU+
CkBAIC05MzQsNyArOTM5LDcgQEAgdV9tZW1yY2hyMzIoY29uc3QgVUNoYXIgKnMsIFVDaGFyMzIg
YywgaW50MzJfdCBjb3VudCk7CiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwogI2lmIGRlZmluZWQo
VV9ERUNMQVJFX1VURjE2KQotIyAgIGRlZmluZSBVX1NUUklOR19ERUNMKHZhciwgY3MsIGxlbmd0
aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3RoKSsxXT1VX0RFQ0xBUkVfVVRGMTYoY3Mp
CisjICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3Qg
VUNoYXIgKnZhcj0oY29uc3QgVUNoYXIgKilVX0RFQ0xBUkVfVVRGMTYoY3MpCiAgICAgLyoqQHN0
YWJsZSBJQ1UgMi4wICovCiAjICAgZGVmaW5lIFVfU1RSSU5HX0lOSVQodmFyLCBjcywgbGVuZ3Ro
KQogI2VsaWYgVV9TSVpFT0ZfV0NIQVJfVD09VV9TSVpFT0ZfVUNIQVIgJiYgKFVfQ0hBUlNFVF9G
QU1JTFk9PVVfQVNDSUlfRkFNSUxZIHx8IChVX1NJWkVPRl9VQ0hBUiA9PSAyICYmIGRlZmluZWQo
VV9XQ0hBUl9JU19VVEYxNikpKQpAQCAtOTQyLDcgKzk0Nyw3IEBAIHVfbWVtcmNocjMyKGNvbnN0
IFVDaGFyICpzLCBVQ2hhcjMyIGMsIGludDMyX3QgY291bnQpOwogICAgIC8qKkBzdGFibGUgSUNV
IDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19JTklUKHZhciwgY3MsIGxlbmd0aCkKICNlbGlm
IFVfU0laRU9GX1VDSEFSPT0xICYmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCi0j
ICAgZGVmaW5lIFVfU1RSSU5HX0RFQ0wodmFyLCBjcywgbGVuZ3RoKSBzdGF0aWMgY29uc3QgVUNo
YXIgdmFyWyhsZW5ndGgpKzFdPXsgKGNvbnN0IFVDaGFyICopY3MgfQorIyAgIGRlZmluZSBVX1NU
UklOR19ERUNMKHZhciwgY3MsIGxlbmd0aCkgc3RhdGljIGNvbnN0IFVDaGFyIHZhclsobGVuZ3Ro
KSsxXT1jcwogICAgIC8qKkBzdGFibGUgSUNVIDIuMCAqLwogIyAgIGRlZmluZSBVX1NUUklOR19J
TklUKHZhciwgY3MsIGxlbmd0aCkKICNlbHNlCkBAIC0xMTU0LDEwICsxMTU5LDEyIEBAIHVfc3Ry
VG9UaXRsZShVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCiAjZW5kaWYKIAogLyoq
Ci0gKiBDYXNlLWZvbGQgdGhlIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuCisgKiBDYXNlLWZvbGRz
IHRoZSBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLgorICoKICAqIENhc2UtZm9sZGluZyBpcyBsb2Nh
bGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKICAqIGJ1dCB0aGVyZSBp
cyBhbiBvcHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZv
ciBkb3R0ZWQgSQotICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnSScgaW4g
Q2FzZUZvbGRpbmcudHh0LgorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAn
VCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKICAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBv
ciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgogICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRo
ZSBkZXN0aW5hdGlvbiBidWZmZXIgYXJlIGFsbG93ZWQgdG8gb3ZlcmxhcC4KICAqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dGYuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL2ljdS91bmljb2RlL3V0Zi5oCmluZGV4IGY3OTQ3OTkzNWQ0YTFkNmIxYmVmY2Q0MDVjZDA0
ZjUyMzgxYjkzZTcuLmY1OTU0ZmU5ZmU2OTk4OTNiZDMxOGUyNDc3MjkyNmMxNzVhMjBjNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0Zi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0Zi5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDExLCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0y
MiwxNSArMjIsMjAgQEAKICAqIGEgc3Vycm9nYXRlIG9yIGEgbm9uLWNoYXJhY3RlciBldGMuCiAg
KgogICogVGhlIFVDaGFyIGFuZCBVQ2hhcjMyIGRhdGEgdHlwZXMgZm9yIFVuaWNvZGUgY29kZSB1
bml0cyBhbmQgY29kZSBwb2ludHMKLSAqIGFyZSBkZWZpbmVkIGluIHVtYWNoaW5lcy5oIGJlY2F1
c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCisgKiBhcmUgZGVmaW5lZCBpbiB1bWFj
aGluZS5oIGJlY2F1c2UgdGhleSBjYW4gYmUgbWFjaGluZS1kZXBlbmRlbnQuCiAgKgotICogdXRm
LmggaXMgaW5jbHVkZWQgYnkgdXR5cGVzLmggYW5kIGl0c2VsZiBpbmNsdWRlcyB1dGY4LmggYW5k
IHV0ZjE2LmggYWZ0ZXIgc29tZQotICogY29tbW9uIGRlZmluaXRpb25zLiBUaG9zZSBmaWxlcyBk
ZWZpbmUgbWFjcm9zIGZvciBlZmZpY2llbnRseSBnZXR0aW5nIGNvZGUgcG9pbnRzCisgKiBJZiBV
X05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyBpcyAwIHRoZW4gdXRmLmggaXMgaW5jbHVk
ZWQgYnkgdXR5cGVzLmgKKyAqIGFuZCBpdHNlbGYgaW5jbHVkZXMgdXRmOC5oIGFuZCB1dGYxNi5o
IGFmdGVyIHNvbWUKKyAqIGNvbW1vbiBkZWZpbml0aW9ucy4KKyAqIElmIFVfTk9fREVGQVVMVF9J
TkNMVURFX1VURl9IRUFERVJTIGlzIDEgdGhlbiBlYWNoIG9mIHRoZXNlIGhlYWRlcnMgbXVzdCBi
ZQorICogaW5jbHVkZWQgZXhwbGljaXRseSBpZiB0aGVpciBkZWZpbml0aW9ucyBhcmUgdXNlZC4K
KyAqCisgKiB1dGY4LmggYW5kIHV0ZjE2LmggZGVmaW5lIG1hY3JvcyBmb3IgZWZmaWNpZW50bHkg
Z2V0dGluZyBjb2RlIHBvaW50cwogICogaW4gYW5kIG91dCBvZiBVVEYtOC8xNiBzdHJpbmdzLgog
ICogdXRmMTYuaCBtYWNyb3MgaGF2ZSAiVTE2XyIgcHJlZml4ZXMuCiAgKiB1dGY4LmggZGVmaW5l
cyBzaW1pbGFyIG1hY3JvcyB3aXRoICJVOF8iIHByZWZpeGVzIGZvciBVVEYtOCBzdHJpbmcgaGFu
ZGxpbmcuCiAgKgotICogSUNVIHByb2Nlc3NlcyAxNi1iaXQgVW5pY29kZSBzdHJpbmdzLgorICog
SUNVIG1vc3RseSBwcm9jZXNzZXMgMTYtYml0IFVuaWNvZGUgc3RyaW5ncy4KICAqIE1vc3Qgb2Yg
dGhlIHRpbWUsIHN1Y2ggc3RyaW5ncyBhcmUgd2VsbC1mb3JtZWQgVVRGLTE2LgogICogU2luZ2xl
LCB1bnBhaXJlZCBzdXJyb2dhdGVzIG11c3QgYmUgaGFuZGxlZCBhcyB3ZWxsLCBhbmQgYXJlIHRy
ZWF0ZWQgaW4gSUNVCiAgKiBsaWtlIHJlZ3VsYXIgY29kZSBwb2ludHMgd2hlcmUgcG9zc2libGUu
CkBAIC00MiwxNSArNDcsMTYgQEAKICAqIElDVSBmdW5jdGlvbnMgaGFuZGxlIHN1cHBsZW1lbnRh
cnkgY29kZSBwb2ludHMgKFUrMTAwMDAuLlUrMTBmZmZmKQogICogYnV0IGFyZSBvcHRpbWl6ZWQg
Zm9yIHRoZSBtdWNoIG1vcmUgZnJlcXVlbnRseSBvY2N1cnJpbmcgQk1QIGNvZGUgcG9pbnRzLgog
ICoKLSAqIHV0Zi5oIGRlZmluZXMgVUNoYXIgdG8gYmUgYW4gdW5zaWduZWQgMTYtYml0IGludGVn
ZXIuIElmIHRoaXMgbWF0Y2hlcyB3Y2hhcl90LCB0aGVuCi0gKiBVQ2hhciBpcyBkZWZpbmVkIHRv
IGJlIGV4YWN0bHkgd2NoYXJfdCwgb3RoZXJ3aXNlIHVpbnQxNl90LgorICogdW1hY2hpbmUuaCBk
ZWZpbmVzIFVDaGFyIHRvIGJlIGFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgorICogV2hlcmUg
YXZhaWxhYmxlLCBVQ2hhciBpcyBkZWZpbmVkIHRvIGJlIGEgY2hhcjE2X3QKKyAqIG9yIGEgd2No
YXJfdCAoaWYgdGhhdCBpcyBhbiB1bnNpZ25lZCAxNi1iaXQgdHlwZSksIG90aGVyd2lzZSB1aW50
MTZfdC4KICAqCiAgKiBVQ2hhcjMyIGlzIGRlZmluZWQgdG8gYmUgYSBzaWduZWQgMzItYml0IGlu
dGVnZXIgKGludDMyX3QpLCBsYXJnZSBlbm91Z2ggZm9yIGEgMjEtYml0CiAgKiBVbmljb2RlIGNv
ZGUgcG9pbnQgKFVuaWNvZGUgc2NhbGFyIHZhbHVlLCAwLi4weDEwZmZmZikuCiAgKiBCZWZvcmUg
SUNVIDIuNCwgdGhlIGRlZmluaXRpb24gb2YgVUNoYXIzMiB3YXMgc2ltaWxhcmx5IHBsYXRmb3Jt
LWRlcGVuZGVudCBhcwogICogdGhlIGRlZmluaXRpb24gb2YgVUNoYXIuIEZvciBkZXRhaWxzIHNl
ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgVUNoYXIzMiBpdHNlbGYuCiAgKgotICogdXRmLmggYWxz
byBkZWZpbmVzIGEgc21hbGwgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBzaW5nbGUgVW5pY29kZSBj
b2RlIHBvaW50cy4KKyAqIHV0Zi5oIGRlZmluZXMgYSBzbWFsbCBudW1iZXIgb2YgQyBtYWNyb3Mg
Zm9yIHNpbmdsZSBVbmljb2RlIGNvZGUgcG9pbnRzLgogICogVGhlc2UgYXJlIHNpbXBsZSBjaGVj
a3MgZm9yIHN1cnJvZ2F0ZXMgYW5kIG5vbi1jaGFyYWN0ZXJzLgogICogRm9yIGFjdHVhbCBVbmlj
b2RlIGNoYXJhY3RlciBwcm9wZXJ0aWVzIHNlZSB1Y2hhci5oLgogICoKQEAgLTU5LDkgKzY1LDYg
QEAKICAqIFRoZSBtYWNyb3Mgd2lsbCBkZXRlY3QgaWYgYSBzdXJyb2dhdGUgY29kZSB1bml0IGlz
IHVucGFpcmVkCiAgKiAobGVhZCB1bml0IHdpdGhvdXQgdHJhaWwgdW5pdCBvciB2aWNlIHZlcnNh
KSBhbmQganVzdCByZXR1cm4gdGhlIHVuaXQgaXRzZWxmCiAgKiBhcyB0aGUgY29kZSBwb2ludC4K
LSAqIChJdCBpcyBhbiBhY2NpZGVudGFsIHByb3BlcnR5IG9mIFVuaWNvZGUgYW5kIFVURi0xNiB0
aGF0IGFsbAotICogbWFsZm9ybWVkIHNlcXVlbmNlcyBjYW4gYmUgZXhwcmVzc2VkIHVuYW1iaWd1
b3VzbHkgd2l0aCBhIGRpc3RpbmN0IHN1YnJhbmdlCi0gKiBvZiBVbmljb2RlIGNvZGUgcG9pbnRz
LikKICAqCiAgKiBUaGUgcmVndWxhciAic2FmZSIgbWFjcm9zIHJlcXVpcmUgdGhhdCB0aGUgaW5p
dGlhbCwgcGFzc2VkLWluIHN0cmluZyBpbmRleAogICogaXMgd2l0aGluIGJvdW5kcy4gVGhleSBv
bmx5IGNoZWNrIHRoZSBpbmRleCB3aGVuIHRoZXkgcmVhZCBtb3JlIHRoYW4gb25lCkBAIC05NSw3
ICs5OCw3IEBACiAgKiBjb2RlIHBvaW50IHZhbHVlcyAoMC4uVSsxMGZmZmYpLiBUaGV5IGFyZSBp
bmRpY2F0ZWQgd2l0aCBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4KICAqCiAgKiBGb3IgbW9yZSBp
bmZvcm1hdGlvbiBzZWUgdGhlIElDVSBVc2VyIEd1aWRlIFN0cmluZ3MgY2hhcHRlcgotICogKGh0
dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCkuCisgKiAoaHR0cDov
L3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvc3RyaW5ncykuCiAgKgogICogPGVtPlVzYWdlOjwv
ZW0+CiAgKiBJQ1UgY29kaW5nIGd1aWRlbGluZXMgZm9yIGlmKCkgc3RhdGVtZW50cyBzaG91bGQg
YmUgZm9sbG93ZWQgd2hlbiB1c2luZyB0aGVzZSBtYWNyb3MuCkBAIC0xMDgsMzIgKzExMSwxMiBA
QAogI2lmbmRlZiBfX1VURl9IX18KICNkZWZpbmUgX19VVEZfSF9fCiAKLSNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW1hY2hpbmUuaCIKIC8qIGluY2x1ZGUg
dGhlIHV0ZlhYLmggYWZ0ZXIgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyAqLwogCiAvKiBzaW5n
bGUtY29kZSBwb2ludCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLwogCiAvKioKLSAqIFRoaXMgdmFsdWUgaXMgaW50ZW5kZWQgZm9yIHNl
bnRpbmVsIHZhbHVlcyBmb3IgQVBJcyB0aGF0Ci0gKiAodGFrZSBvcikgcmV0dXJuIHNpbmdsZSBj
b2RlIHBvaW50cyAoVUNoYXIzMikuCi0gKiBJdCBpcyBvdXRzaWRlIG9mIHRoZSBVbmljb2RlIGNv
ZGUgcG9pbnQgcmFuZ2UgMC4uMHgxMGZmZmYuCi0gKiAKLSAqIEZvciBleGFtcGxlLCBhICJkb25l
IiBvciAiZXJyb3IiIHZhbHVlIGluIGEgbmV3IEFQSQotICogY291bGQgYmUgaW5kaWNhdGVkIHdp
dGggVV9TRU5USU5FTC4KLSAqCi0gKiBJQ1UgQVBJcyBkZXNpZ25lZCBiZWZvcmUgSUNVIDIuNCB1
c3VhbGx5IGRlZmluZSBzZXJ2aWNlLXNwZWNpZmljICJkb25lIgotICogdmFsdWVzLCBtb3N0bHkg
MHhmZmZmLgotICogVGhvc2UgbWF5IG5lZWQgdG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tCi0gKiBh
Y3R1YWwgVStmZmZmIHRleHQgY29udGVudHMgYnkgY2FsbGluZyBmdW5jdGlvbnMgbGlrZQotICog
Q2hhcmFjdGVySXRlcmF0b3I6Omhhc05leHQoKSBvciBVbmljb2RlU3RyaW5nOjpsZW5ndGgoKS4K
LSAqCi0gKiBAcmV0dXJuIC0xCi0gKiBAc2VlIFVDaGFyMzIKLSAqIEBzdGFibGUgSUNVIDIuNAot
ICovCi0jZGVmaW5lIFVfU0VOVElORUwgKC0xKQotCi0vKioKICAqIElzIHRoaXMgY29kZSBwb2lu
dCBhIFVuaWNvZGUgbm9uY2hhcmFjdGVyPwogICogQHBhcmFtIGMgMzItYml0IGNvZGUgcG9pbnQK
ICAqIEByZXR1cm4gVFJVRSBvciBGQUxTRQpAQCAtMjI3LDEwICsyMTAsMTQgQEAKIAogLyogaW5j
bHVkZSB0aGUgdXRmWFguaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKi8KIAorI2lmICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVS
UworCiAjaW5jbHVkZSAidW5pY29kZS91dGY4LmgiCiAjaW5jbHVkZSAidW5pY29kZS91dGYxNi5o
IgogCiAvKiB1dGZfb2xkLmggY29udGFpbnMgZGVwcmVjYXRlZCwgcHJlLUlDVSAyLjQgZGVmaW5p
dGlvbnMgKi8KICNpbmNsdWRlICJ1bmljb2RlL3V0Zl9vbGQuaCIKIAotI2VuZGlmCisjZW5kaWYg
IC8qICFVX05PX0RFRkFVTFRfSU5DTFVERV9VVEZfSEVBREVSUyAqLworCisjZW5kaWYgIC8qIF9f
VVRGX0hfXyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXRm
MTYuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0ZjE2LmgKaW5kZXggNTA3OWMx
MTQ2YjNkMzQ3MjMwY2Q2OThhMGUxMzk2ODk3ZTQ4NDVhZC4uYmRkODhhOGI5YzRmMDBlYTBkZjI3
MmFjMDJmNjk2N2VmNjEwODliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3Vu
aWNvZGUvdXRmMTYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dGYxNi5o
CkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcHlyaWdodCAoQykgMTk5OS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCkBAIC0xOSwxMSArMTksOSBAQAogICogXGJyaWVmIEMgQVBJ
OiAxNi1iaXQgVW5pY29kZSBoYW5kbGluZyBtYWNyb3MKICAqIAogICogVGhpcyBmaWxlIGRlZmlu
ZXMgbWFjcm9zIHRvIGRlYWwgd2l0aCAxNi1iaXQgVW5pY29kZSAoVVRGLTE2KSBjb2RlIHVuaXRz
IGFuZCBzdHJpbmdzLgotICogdXRmMTYuaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmlj
b2RlL3VtYWNoaW5lLmgKLSAqIGFuZCBzb21lIGNvbW1vbiBkZWZpbml0aW9ucy4KICAqCiAgKiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgdXRmLmggYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBTdHJp
bmdzIGNoYXB0ZXIKLSAqIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9zdHJpbmdz
Lmh0bWwpLgorICogKGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL3N0cmluZ3MpLgog
ICoKICAqIDxlbT5Vc2FnZTo8L2VtPgogICogSUNVIGNvZGluZyBndWlkZWxpbmVzIGZvciBpZigp
IHN0YXRlbWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIHdoZW4gdXNpbmcgdGhlc2UgbWFjcm9zLgpA
QCAtMzQsNyArMzIsNyBAQAogI2lmbmRlZiBfX1VURjE2X0hfXwogI2RlZmluZSBfX1VURjE2X0hf
XwogCi0vKiB1dGYuaCBtdXN0IGJlIGluY2x1ZGVkIGZpcnN0LiAqLworI2luY2x1ZGUgInVuaWNv
ZGUvdW1hY2hpbmUuaCIKICNpZm5kZWYgX19VVEZfSF9fCiAjICAgaW5jbHVkZSAidW5pY29kZS91
dGYuaCIKICNlbmRpZgpAQCAtMTgyLDYgKzE4MCw5IEBACiAgKiBUaGUgb2Zmc2V0IG1heSBwb2lu
dCB0byBlaXRoZXIgdGhlIGxlYWQgb3IgdHJhaWwgc3Vycm9nYXRlIHVuaXQKICAqIGZvciBhIHN1
cHBsZW1lbnRhcnkgY29kZSBwb2ludCwgaW4gd2hpY2ggY2FzZSB0aGUgbWFjcm8gd2lsbCByZWFk
CiAgKiB0aGUgYWRqYWNlbnQgbWF0Y2hpbmcgc3Vycm9nYXRlIGFzIHdlbGwuCisgKgorICogVGhl
IGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoK
ICAqIElmIHRoZSBvZmZzZXQgcG9pbnRzIHRvIGEgc2luZ2xlLCB1bnBhaXJlZCBzdXJyb2dhdGUs
IHRoZW4gdGhhdCBpdHNlbGYKICAqIHdpbGwgYmUgcmV0dXJuZWQgYXMgdGhlIGNvZGUgcG9pbnQu
CiAgKiBJdGVyYXRpb24gdGhyb3VnaCBhIHN0cmluZyBpcyBtb3JlIGVmZmljaWVudCB3aXRoIFUx
Nl9ORVhUX1VOU0FGRSBvciBVMTZfTkVYVC4KQEAgLTE5OSw3ICsyMDAsNyBAQAogICAgIGlmKFUx
Nl9JU19TVVJST0dBVEUoYykpIHsgXAogICAgICAgICB1aW50MTZfdCBfX2MyOyBcCiAgICAgICAg
IGlmKFUxNl9JU19TVVJST0dBVEVfTEVBRChjKSkgeyBcCi0gICAgICAgICAgICBpZigoaSkrMTwo
bGVuZ3RoKSAmJiBVMTZfSVNfVFJBSUwoX19jMj0ocylbKGkpKzFdKSkgeyBcCisgICAgICAgICAg
ICBpZigoaSkrMSE9KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKSsxXSkpIHsg
XAogICAgICAgICAgICAgICAgIChjKT1VMTZfR0VUX1NVUFBMRU1FTlRBUlkoKGMpLCBfX2MyKTsg
XAogICAgICAgICAgICAgfSBcCiAgICAgICAgIH0gZWxzZSB7IFwKQEAgLTI0NCw2ICsyNDUsOCBA
QAogICogKFBvc3QtaW5jcmVtZW50aW5nIGZvcndhcmQgaXRlcmF0aW9uLikKICAqICJTYWZlIiBt
YWNybywgaGFuZGxlcyB1bnBhaXJlZCBzdXJyb2dhdGVzIGFuZCBjaGVja3MgZm9yIHN0cmluZyBi
b3VuZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10
ZXJtaW5hdGVkIHN0cmluZy4KKyAqCiAgKiBUaGUgb2Zmc2V0IG1heSBwb2ludCB0byB0aGUgbGVh
ZCBzdXJyb2dhdGUgdW5pdAogICogZm9yIGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50LCBpbiB3
aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQKICAqIHRoZSBmb2xsb3dpbmcgdHJhaWwgc3Vy
cm9nYXRlIGFzIHdlbGwuCkBAIC0yNjIsNyArMjY1LDcgQEAKICAgICAoYyk9KHMpWyhpKSsrXTsg
XAogICAgIGlmKFUxNl9JU19MRUFEKGMpKSB7IFwKICAgICAgICAgdWludDE2X3QgX19jMjsgXAot
ICAgICAgICBpZigoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKF9fYzI9KHMpWyhpKV0pKSB7
IFwKKyAgICAgICAgaWYoKGkpIT0obGVuZ3RoKSAmJiBVMTZfSVNfVFJBSUwoX19jMj0ocylbKGkp
XSkpIHsgXAogICAgICAgICAgICAgKysoaSk7IFwKICAgICAgICAgICAgIChjKT1VMTZfR0VUX1NV
UFBMRU1FTlRBUlkoKGMpLCBfX2MyKTsgXAogICAgICAgICB9IFwKQEAgLTM0MCw2ICszNDMsOCBA
QAogICogKFBvc3QtaW5jcmVtZW50aW5nIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGhh
bmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmll
cy4KICAqCisgKiBUaGUgbGVuZ3RoIGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRl
ZCBzdHJpbmcuCisgKgogICogQHBhcmFtIHMgY29uc3QgVUNoYXIgKiBzdHJpbmcKICAqIEBwYXJh
bSBpIHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKICAqIEBwYXJhbSBsZW5ndGggc3Ry
aW5nIGxlbmd0aApAQCAtMzQ3LDcgKzM1Miw3IEBACiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwog
I2RlZmluZSBVMTZfRldEXzEocywgaSwgbGVuZ3RoKSB7IFwKLSAgICBpZihVMTZfSVNfTEVBRCgo
cylbKGkpKytdKSAmJiAoaSk8KGxlbmd0aCkgJiYgVTE2X0lTX1RSQUlMKChzKVtpXSkpIHsgXAor
ICAgIGlmKFUxNl9JU19MRUFEKChzKVsoaSkrK10pICYmIChpKSE9KGxlbmd0aCkgJiYgVTE2X0lT
X1RSQUlMKChzKVtpXSkpIHsgXAogICAgICAgICArKyhpKTsgXAogICAgIH0gXAogfQpAQCAtMzc4
LDE2ICszODMsMTggQEAKICAqIChQb3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNh
ZmUiIG1hY3JvLCBoYW5kbGVzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgYW5kIGNoZWNrcyBmb3Igc3Ry
aW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEg
TlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IFVDaGFyICogc3Ry
aW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFy
YW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNl
dCwgbXVzdCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5n
dGgKICAqIEBwYXJhbSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBza2lwCiAgKiBAc2VlIFUx
Nl9GV0RfTl9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9GV0Rf
TihzLCBpLCBsZW5ndGgsIG4pIHsgXAogICAgIGludDMyX3QgX19OPShuKTsgXAotICAgIHdoaWxl
KF9fTj4wICYmIChpKTwobGVuZ3RoKSkgeyBcCisgICAgd2hpbGUoX19OPjAgJiYgKChpKTwobGVu
Z3RoKSB8fCAoKGxlbmd0aCk8MCAmJiAocylbaV0hPTApKSkgeyBcCiAgICAgICAgIFUxNl9GV0Rf
MShzLCBpLCBsZW5ndGgpOyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBcCkBAIC01OTgsMTUg
KzYwNSwxNyBAQAogICogVGhlIGlucHV0IG9mZnNldCBtYXkgYmUgdGhlIHNhbWUgYXMgdGhlIHN0
cmluZyBsZW5ndGguCiAgKiAiU2FmZSIgbWFjcm8sIGhhbmRsZXMgdW5wYWlyZWQgc3Vycm9nYXRl
cyBhbmQgY2hlY2tzIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3RoIGNh
biBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogQHBhcmFt
IHMgY29uc3QgVUNoYXIgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcg
b2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBzdGFydDw9aTw9
bGVuZ3RoCi0gKiBAcGFyYW0gbGVuZ3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBzdGFydCBp
bnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGlu
dDMyX3Qgc3RyaW5nIG9mZnNldCwgc3RhcnQ8PWk8PWxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBp
bnQzMl90IHN0cmluZyBsZW5ndGgKICAqIEBzZWUgVTE2X1NFVF9DUF9MSU1JVF9VTlNBRkUKICAq
IEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFUxNl9TRVRfQ1BfTElNSVQocywgc3RhcnQs
IGksIGxlbmd0aCkgeyBcCi0gICAgaWYoKHN0YXJ0KTwoaSkgJiYgKGkpPChsZW5ndGgpICYmIFUx
Nl9JU19MRUFEKChzKVsoaSktMV0pICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKKyAgICBp
Zigoc3RhcnQpPChpKSAmJiAoKGkpPChsZW5ndGgpIHx8IChsZW5ndGgpPDApICYmIFUxNl9JU19M
RUFEKChzKVsoaSktMV0pICYmIFUxNl9JU19UUkFJTCgocylbaV0pKSB7IFwKICAgICAgICAgKyso
aSk7IFwKICAgICB9IFwKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmlj
b2RlL3V0ZjguaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0ZjguaAppbmRleCA2
NDA1Nzk1YTVhMWM1MzY5ODg0NmQxMTAxNTY5OWI2MWMzMTAyMjI0Li4yMWU1ZjNkMDQ3OTA1MzE1
NWYyOTRjNDI4ODRmNDI3NGRhNTQ0ZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9p
Y3UvdW5pY29kZS91dGY4LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXRm
OC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKLSogICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAq
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xOSwxMSArMTksOSBAQAogICogXGJyaWVmIEMg
QVBJOiA4LWJpdCBVbmljb2RlIGhhbmRsaW5nIG1hY3JvcwogICogCiAgKiBUaGlzIGZpbGUgZGVm
aW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIDgtYml0IFVuaWNvZGUgKFVURi04KSBjb2RlIHVuaXRz
IChieXRlcykgYW5kIHN0cmluZ3MuCi0gKiB1dGY4LmggaXMgaW5jbHVkZWQgYnkgdXRmLmggYWZ0
ZXIgdW5pY29kZS91bWFjaGluZS5oCi0gKiBhbmQgc29tZSBjb21tb24gZGVmaW5pdGlvbnMuCiAg
KgogICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHV0Zi5oIGFuZCB0aGUgSUNVIFVzZXIgR3Vp
ZGUgU3RyaW5ncyBjaGFwdGVyCi0gKiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUv
c3RyaW5ncy5odG1sKS4KKyAqIChodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9zdHJp
bmdzKS4KICAqCiAgKiA8ZW0+VXNhZ2U6PC9lbT4KICAqIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBm
b3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBmb2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1h
Y3Jvcy4KQEAgLTM0LDcgKzMyLDcgQEAKICNpZm5kZWYgX19VVEY4X0hfXwogI2RlZmluZSBfX1VU
RjhfSF9fCiAKLS8qIHV0Zi5oIG11c3QgYmUgaW5jbHVkZWQgZmlyc3QuICovCisjaW5jbHVkZSAi
dW5pY29kZS91bWFjaGluZS5oIgogI2lmbmRlZiBfX1VURl9IX18KICMgICBpbmNsdWRlICJ1bmlj
b2RlL3V0Zi5oIgogI2VuZGlmCkBAIC02MiwxMyArNjAsNDEgQEAgVV9DRlVOQyBVX0lNUE9SVCBj
b25zdCB1aW50OF90IC8qIFVfSU1QT1JUMj8gKi8gLypVX0lNUE9SVCovCiB1dGY4X2NvdW50VHJh
aWxCeXRlc1syNTZdOwogCiAvKioKLSAqIENvdW50IHRoZSB0cmFpbCBieXRlcyBmb3IgYSBVVEYt
OCBsZWFkIGJ5dGUuCisgKiBDb3VudHMgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQg
Ynl0ZS4KKyAqIFJldHVybnMgMCBmb3IgMC4uMHhiZiBhcyB3ZWxsIGFzIGZvciAweGZlIGFuZCAw
eGZmLgogICoKICAqIFRoaXMgaXMgaW50ZXJuYWwgc2luY2UgaXQgaXMgbm90IG1lYW50IHRvIGJl
IGNhbGxlZCBkaXJlY3RseSBieSBleHRlcm5hbCBjbGllbnRzOwogICogaG93ZXZlciBpdCBpcyBj
YWxsZWQgYnkgcHVibGljIG1hY3JvcyBpbiB0aGlzIGZpbGUgYW5kIHRodXMgbXVzdCByZW1haW4g
c3RhYmxlLgorICoKKyAqIE5vdGU6IEJlZ2lubmluZyB3aXRoIElDVSA1MCwgdGhlIGltcGxlbWVu
dGF0aW9uIHVzZXMgYSBtdWx0aS1jb25kaXRpb24gZXhwcmVzc2lvbgorICogd2hpY2ggd2FzIHNo
b3duIGluIDIwMTIgKG9uIHg4Ni02NCkgdG8gY29tcGlsZSB0byBmYXN0LCBicmFuY2gtZnJlZSBj
b2RlLgorICogbGVhZEJ5dGUgaXMgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzLgorICoKKyAqIFRo
ZSBwcmUtSUNVIDUwIGltcGxlbWVudGF0aW9uIHVzZWQgdGhlIGV4cG9ydGVkIGFycmF5IHV0Zjhf
Y291bnRUcmFpbEJ5dGVzOgorICogI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0
ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzW2xlYWRCeXRlXSkKKyAqIGxlYWRCeXRlIHdhcyBldmFs
dWF0ZWQgZXhhY3RseSBvbmNlLgorICoKKyAqIEBwYXJhbSBsZWFkQnl0ZSBUaGUgZmlyc3QgYnl0
ZSBvZiBhIFVURi04IHNlcXVlbmNlLiBNdXN0IGJlIDAuLjB4ZmYuCiAgKiBAaW50ZXJuYWwKICAq
LwotI2RlZmluZSBVOF9DT1VOVF9UUkFJTF9CWVRFUyhsZWFkQnl0ZSkgKHV0ZjhfY291bnRUcmFp
bEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVMo
bGVhZEJ5dGUpIFwKKyAgICAoKGxlYWRCeXRlKTwweGYwID8gXAorICAgICAgICAoKGxlYWRCeXRl
KT49MHhjMCkrKChsZWFkQnl0ZSk+PTB4ZTApIDogXAorICAgICAgICAobGVhZEJ5dGUpPDB4ZmUg
PyAzKygobGVhZEJ5dGUpPj0weGY4KSsoKGxlYWRCeXRlKT49MHhmYykgOiAwKQorCisvKioKKyAq
IENvdW50cyB0aGUgdHJhaWwgYnl0ZXMgZm9yIGEgVVRGLTggbGVhZCBieXRlIG9mIGEgdmFsaWQg
VVRGLTggc2VxdWVuY2UuCisgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgbGVhZCBieXRlIGlzIDB4
ZjQgY29ycmVzcG9uZGluZyB0byBVKzEwRkZGRi4KKyAqIGxlYWRCeXRlIG1pZ2h0IGJlIGV2YWx1
YXRlZCBtdWx0aXBsZSB0aW1lcy4KKyAqCisgKiBUaGlzIGlzIGludGVybmFsIHNpbmNlIGl0IGlz
IG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgZXh0ZXJuYWwgY2xpZW50czsKKyAq
IGhvd2V2ZXIgaXQgaXMgY2FsbGVkIGJ5IHB1YmxpYyBtYWNyb3MgaW4gdGhpcyBmaWxlIGFuZCB0
aHVzIG11c3QgcmVtYWluIHN0YWJsZS4KKyAqCisgKiBAcGFyYW0gbGVhZEJ5dGUgVGhlIGZpcnN0
IGJ5dGUgb2YgYSBVVEYtOCBzZXF1ZW5jZS4gTXVzdCBiZSAwLi4weGZmLgorICogQGludGVybmFs
CisgKi8KKyNkZWZpbmUgVThfQ09VTlRfVFJBSUxfQllURVNfVU5TQUZFKGxlYWRCeXRlKSBcCisg
ICAgKCgobGVhZEJ5dGUpPj0weGMwKSsoKGxlYWRCeXRlKT49MHhlMCkrKChsZWFkQnl0ZSk+PTB4
ZjApKQogCiAvKioKICAqIE1hc2sgYSBVVEYtOCBsZWFkIGJ5dGUsIGxlYXZlIG9ubHkgdGhlIGxv
d2VyIGJpdHMgdGhhdCBmb3JtIHBhcnQgb2YgdGhlIGNvZGUgcG9pbnQgdmFsdWUuCkBAIC0yMDYs
MjQgKzIzMiw2MCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJf
dCBzdGFydCwgaW50MzJfdCBpKTsKICAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0
aGUgbGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKICAqIGZvciBhIGNvZGUgcG9p
bnQsIGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwgb2YgdGhlIGJ5dGVzCiAg
KiBmb3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUg
Zm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIElmIHRoZSBvZmZzZXQgcG9pbnRz
IHRvIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgogICogYyBpcyBzZXQgdG8g
YSBuZWdhdGl2ZSB2YWx1ZS4KICAqIEl0ZXJhdGlvbiB0aHJvdWdoIGEgc3RyaW5nIGlzIG1vcmUg
ZWZmaWNpZW50IHdpdGggVThfTkVYVF9VTlNBRkUgb3IgVThfTkVYVC4KICAqCiAgKiBAcGFyYW0g
cyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0gKiBAcGFyYW0gc3RhcnQgc3RhcnRpbmcgc3RyaW5n
IG9mZnNldAotICogQHBhcmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDw9aTxsZW5n
dGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMy
X3Qgc3RhcnRpbmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zm
c2V0LCBtdXN0IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0
cmluZyBsZW5ndGgKICAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8g
PDAgaW4gY2FzZSBvZiBhbiBlcnJvcgogICogQHNlZSBVOF9HRVRfVU5TQUZFCiAgKiBAc3RhYmxl
IElDVSAyLjQKICAqLwogI2RlZmluZSBVOF9HRVQocywgc3RhcnQsIGksIGxlbmd0aCwgYykgeyBc
Ci0gICAgaW50MzJfdCBfdThfZ2V0X2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIGludDMyX3Qg
X3U4X2dldF9pbmRleD0oaSk7IFwKICAgICBVOF9TRVRfQ1BfU1RBUlQocywgc3RhcnQsIF91OF9n
ZXRfaW5kZXgpOyBcCiAgICAgVThfTkVYVChzLCBfdThfZ2V0X2luZGV4LCBsZW5ndGgsIGMpOyBc
CiB9CiAKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2RlIHBvaW50
IGZyb20gYSBzdHJpbmcgYXQgYSByYW5kb20tYWNjZXNzIG9mZnNldCwKKyAqIHdpdGhvdXQgY2hh
bmdpbmcgdGhlIG9mZnNldC4KKyAqIFRoZSBvZmZzZXQgbWF5IHBvaW50IHRvIGVpdGhlciB0aGUg
bGVhZCBieXRlIG9yIG9uZSBvZiB0aGUgdHJhaWwgYnl0ZXMKKyAqIGZvciBhIGNvZGUgcG9pbnQs
IGluIHdoaWNoIGNhc2UgdGhlIG1hY3JvIHdpbGwgcmVhZCBhbGwgb2YgdGhlIGJ5dGVzCisgKiBm
b3IgdGhlIGNvZGUgcG9pbnQuCisgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9y
IGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoKKyAqIElmIHRoZSBvZmZzZXQgcG9pbnRzIHRv
IGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZSwgdGhlbgorICogYyBpcyBzZXQgdG8gVStG
RkZELgorICogSXRlcmF0aW9uIHRocm91Z2ggYSBzdHJpbmcgaXMgbW9yZSBlZmZpY2llbnQgd2l0
aCBVOF9ORVhUX1VOU0FGRSBvciBVOF9ORVhUX09SX0ZGRkQuCisgKgorICogVGhpcyBtYWNybyBk
b2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVhbCBVK0ZGRkQgaW4gdGhlIHRleHQKKyAq
IGFuZCBVK0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGlsbC1mb3JtZWQgc2VxdWVuY2UuCisgKiBVc2Ug
VThfR0VUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisgKgorICogQHBhcmFt
IHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRp
bmcgc3RyaW5nIG9mZnNldAorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0
IGJlIHN0YXJ0PD1pPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5n
dGgKKyAqIEBwYXJhbSBjIG91dHB1dCBVQ2hhcjMyIHZhcmlhYmxlLCBzZXQgdG8gVStGRkZEIGlu
IGNhc2Ugb2YgYW4gZXJyb3IKKyAqIEBzZWUgVThfR0VUCisgKiBAZHJhZnQgSUNVIDUxCisgKi8K
KyNkZWZpbmUgVThfR0VUX09SX0ZGRkQocywgc3RhcnQsIGksIGxlbmd0aCwgYykgeyBcCisgICAg
aW50MzJfdCBfdThfZ2V0X2luZGV4PShpKTsgXAorICAgIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFy
dCwgX3U4X2dldF9pbmRleCk7IFwKKyAgICBVOF9ORVhUX09SX0ZGRkQocywgX3U4X2dldF9pbmRl
eCwgbGVuZ3RoLCBjKTsgXAorfQorI2VuZGlmIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKwogLyog
ZGVmaW5pdGlvbnMgd2l0aCBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyoqCkBAIC0yNDUsMTkgKzMwNywxNiBAQCB1dGY4X2Jh
Y2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsK
ICAqLwogI2RlZmluZSBVOF9ORVhUX1VOU0FGRShzLCBpLCBjKSB7IFwKICAgICAoYyk9KHVpbnQ4
X3QpKHMpWyhpKSsrXTsgXAotICAgIGlmKCh1aW50OF90KSgoYyktMHhjMCk8MHgzNSkgeyBcCi0g
ICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJTF9CWVRFUyhjKTsgXAotICAgICAg
ICBVOF9NQVNLX0xFQURfQllURShjLCBfX2NvdW50KTsgXAotICAgICAgICBzd2l0Y2goX19jb3Vu
dCkgeyBcCi0gICAgICAgIC8qIGVhY2ggZm9sbG93aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRv
IHRoZSBuZXh0IG9uZSAqLyBcCi0gICAgICAgIGNhc2UgMzogXAotICAgICAgICAgICAgKGMpPSgo
Yyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIGNhc2UgMjogXAotICAgICAgICAg
ICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIGNhc2UgMTogXAot
ICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCi0gICAgICAgIC8q
IG5vIG90aGVyIGJyYW5jaGVzIHRvIG9wdGltaXplIHN3aXRjaCgpICovIFwKLSAgICAgICAgICAg
IGJyZWFrOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgaWYoKGMpPDB4ZTApIHsg
XAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXwoKHMpWyhpKSsrXSYweDNmKTsgXAor
ICAgICAgICB9IGVsc2UgaWYoKGMpPDB4ZjApIHsgXAorICAgICAgICAgICAgLyogbm8gbmVlZCBm
b3IgKGMmMHhmKSBiZWNhdXNlIHRoZSB1cHBlciBiaXRzIGFyZSB0cnVuY2F0ZWQgYWZ0ZXIgPDwx
MiBpbiB0aGUgY2FzdCB0byAoVUNoYXIpICovIFwKKyAgICAgICAgICAgIChjKT0oVUNoYXIpKCgo
Yyk8PDEyKXwoKChzKVtpXSYweDNmKTw8Nil8KChzKVsoaSkrMV0mMHgzZikpOyBcCisgICAgICAg
ICAgICAoaSkrPTI7IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgKGMpPSgoKGMp
JjcpPDwxOCl8KCgocylbaV0mMHgzZik8PDEyKXwoKChzKVsoaSkrMV0mMHgzZik8PDYpfCgocylb
KGkpKzJdJjB4M2YpOyBcCisgICAgICAgICAgICAoaSkrPTM7IFwKICAgICAgICAgfSBcCiAgICAg
fSBcCiB9CkBAIC0yNjgsMTQgKzMyNywxNiBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWlu
dDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQb3N0LWluY3JlbWVudGlu
ZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCiAgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdh
bCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KICAqCisgKiBUaGUgbGVuZ3Ro
IGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgogICogVGhl
IG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11bHRpLWJ5dGUgc2VxdWVu
Y2UsCiAgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQgdGhlIHdob2xlIHNlcXVl
bmNlLgogICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBieXRlIG9yIGFuIGlsbGVn
YWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KICAqIGMgaXMgc2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUu
CiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZwotICogQHBhcmFtIGkgc3Ry
aW5nIG9mZnNldCwgbXVzdCBiZSBpPGxlbmd0aAotICogQHBhcmFtIGxlbmd0aCBzdHJpbmcgbGVu
Z3RoCisgKiBAcGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgK
KyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBzdHJpbmcgbGVuZ3RoCiAgKiBAcGFyYW0gYyBvdXRw
dXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ugb2YgYW4gZXJyb3IKICAqIEBz
ZWUgVThfTkVYVF9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAtMjg2LDcgKzM0Nyw3IEBA
IHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQz
Ml90IGkpOwogICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKICAgICAgICAgaWYoIC8qIGhh
bmRsZSBVKzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAogICAgICAgICAgICAgKDB4ZTA8KGMpICYm
IChjKTw9MHhlYykgJiYgXAotICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkpICYmIFwKKyAg
ICAgICAgICAgICgoKGkpKzEpPChsZW5ndGgpIHx8IChsZW5ndGgpPDApICYmIFwKICAgICAgICAg
ICAgIChfX3QxPSh1aW50OF90KSgocylbaV0tMHg4MCkpPD0weDNmICYmIFwKICAgICAgICAgICAg
IChfX3QyPSh1aW50OF90KSgocylbKGkpKzFdLTB4ODApKTw9IDB4M2YgXAogICAgICAgICApIHsg
XApAQCAtMjk1LDE5ICszNTYsNzAgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3Qg
KnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAgICAgICAgICAgICAoaSkrPTI7IFwKICAg
ICAgICAgfSBlbHNlIGlmKCAvKiBoYW5kbGUgVSswMDgwLi5VKzA3RkYgaW5saW5lICovIFwKICAg
ICAgICAgICAgICgoYyk8MHhlMCAmJiAoYyk+PTB4YzIpICYmIFwKLSAgICAgICAgICAgICgoaSk8
KGxlbmd0aCkpICYmIFwKKyAgICAgICAgICAgICgoaSkhPShsZW5ndGgpKSAmJiBcCiAgICAgICAg
ICAgICAoX190MT0odWludDhfdCkoKHMpW2ldLTB4ODApKTw9MHgzZiBcCiAgICAgICAgICkgeyBc
Ci0gICAgICAgICAgICAoYyk9KFVDaGFyKSgoKChjKSYweDFmKTw8Nil8X190MSk7IFwKKyAgICAg
ICAgICAgIChjKT0oKChjKSYweDFmKTw8Nil8X190MTsgXAogICAgICAgICAgICAgKysoaSk7IFwK
LSAgICAgICAgfSBlbHNlIGlmKFU4X0lTX0xFQUQoYykpIHsgXAorICAgICAgICB9IGVsc2UgeyBc
CiAgICAgICAgICAgICAvKiBmdW5jdGlvbiBjYWxsIGZvciAiY29tcGxpY2F0ZWQiIGFuZCBlcnJv
ciBjYXNlcyAqLyBcCi0gICAgICAgICAgICAoYyk9dXRmOF9uZXh0Q2hhclNhZmVCb2R5KChjb25z
dCB1aW50OF90ICopcywgJihpKSwgKGludDMyX3QpKGxlbmd0aCksIGMsIC0xKTsgXAorICAgICAg
ICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsICYoaSks
IChsZW5ndGgpLCBjLCAtMSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKyNpZm5kZWYg
VV9ISURFX0RSQUZUX0FQSQorLyoqCisgKiBHZXQgYSBjb2RlIHBvaW50IGZyb20gYSBzdHJpbmcg
YXQgYSBjb2RlIHBvaW50IGJvdW5kYXJ5IG9mZnNldCwKKyAqIGFuZCBhZHZhbmNlIHRoZSBvZmZz
ZXQgdG8gdGhlIG5leHQgY29kZSBwb2ludCBib3VuZGFyeS4KKyAqIChQb3N0LWluY3JlbWVudGlu
ZyBmb3J3YXJkIGl0ZXJhdGlvbi4pCisgKiAiU2FmZSIgbWFjcm8sIGNoZWNrcyBmb3IgaWxsZWdh
bCBzZXF1ZW5jZXMgYW5kIGZvciBzdHJpbmcgYm91bmRhcmllcy4KKyAqCisgKiBUaGUgbGVuZ3Ro
IGNhbiBiZSBuZWdhdGl2ZSBmb3IgYSBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisgKgorICogVGhl
IG9mZnNldCBtYXkgcG9pbnQgdG8gdGhlIGxlYWQgYnl0ZSBvZiBhIG11bHRpLWJ5dGUgc2VxdWVu
Y2UsCisgKiBpbiB3aGljaCBjYXNlIHRoZSBtYWNybyB3aWxsIHJlYWQgdGhlIHdob2xlIHNlcXVl
bmNlLgorICogSWYgdGhlIG9mZnNldCBwb2ludHMgdG8gYSB0cmFpbCBieXRlIG9yIGFuIGlsbGVn
YWwgVVRGLTggc2VxdWVuY2UsIHRoZW4KKyAqIGMgaXMgc2V0IHRvIFUrRkZGRC4KKyAqCisgKiBU
aGlzIG1hY3JvIGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gYSByZWFsIFUrRkZGRCBpbiB0
aGUgdGV4dAorICogYW5kIFUrRkZGRCByZXR1cm5lZCBmb3IgYW4gaWxsLWZvcm1lZCBzZXF1ZW5j
ZS4KKyAqIFVzZSBVOF9ORVhUKCkgaWYgdGhhdCBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQuCisg
KgorICogQHBhcmFtIHMgY29uc3QgdWludDhfdCAqIHN0cmluZworICogQHBhcmFtIGkgaW50MzJf
dCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBAcGFyYW0gbGVuZ3RoIGludDMy
X3Qgc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIGMgb3V0cHV0IFVDaGFyMzIgdmFyaWFibGUsIHNl
dCB0byBVK0ZGRkQgaW4gY2FzZSBvZiBhbiBlcnJvcgorICogQHNlZSBVOF9ORVhUCisgKiBAZHJh
ZnQgSUNVIDUxCisgKi8KKyNkZWZpbmUgVThfTkVYVF9PUl9GRkZEKHMsIGksIGxlbmd0aCwgYykg
eyBcCisgICAgKGMpPSh1aW50OF90KShzKVsoaSkrK107IFwKKyAgICBpZigoYyk+PTB4ODApIHsg
XAorICAgICAgICB1aW50OF90IF9fdDEsIF9fdDI7IFwKKyAgICAgICAgaWYoIC8qIGhhbmRsZSBV
KzEwMDAuLlUrQ0ZGRiBpbmxpbmUgKi8gXAorICAgICAgICAgICAgKDB4ZTA8KGMpICYmIChjKTw9
MHhlYykgJiYgXAorICAgICAgICAgICAgKCgoaSkrMSk8KGxlbmd0aCkgfHwgKGxlbmd0aCk8MCkg
JiYgXAorICAgICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2YgJiYg
XAorICAgICAgICAgICAgKF9fdDI9KHVpbnQ4X3QpKChzKVsoaSkrMV0tMHg4MCkpPD0gMHgzZiBc
CisgICAgICAgICkgeyBcCisgICAgICAgICAgICAvKiBubyBuZWVkIGZvciAoYyYweGYpIGJlY2F1
c2UgdGhlIHVwcGVyIGJpdHMgYXJlIHRydW5jYXRlZCBhZnRlciA8PDEyIGluIHRoZSBjYXN0IHRv
IChVQ2hhcikgKi8gXAorICAgICAgICAgICAgKGMpPShVQ2hhcikoKChjKTw8MTIpfChfX3QxPDw2
KXxfX3QyKTsgXAorICAgICAgICAgICAgKGkpKz0yOyBcCisgICAgICAgIH0gZWxzZSBpZiggLyog
aGFuZGxlIFUrMDA4MC4uVSswN0ZGIGlubGluZSAqLyBcCisgICAgICAgICAgICAoKGMpPDB4ZTAg
JiYgKGMpPj0weGMyKSAmJiBcCisgICAgICAgICAgICAoKGkpIT0obGVuZ3RoKSkgJiYgXAorICAg
ICAgICAgICAgKF9fdDE9KHVpbnQ4X3QpKChzKVtpXS0weDgwKSk8PTB4M2YgXAorICAgICAgICAp
IHsgXAorICAgICAgICAgICAgKGMpPSgoKGMpJjB4MWYpPDw2KXxfX3QxOyBcCisgICAgICAgICAg
ICArKyhpKTsgXAogICAgICAgICB9IGVsc2UgeyBcCi0gICAgICAgICAgICAoYyk9VV9TRU5USU5F
TDsgXAorICAgICAgICAgICAgLyogZnVuY3Rpb24gY2FsbCBmb3IgImNvbXBsaWNhdGVkIiBhbmQg
ZXJyb3IgY2FzZXMgKi8gXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keSgo
Y29uc3QgdWludDhfdCAqKXMsICYoaSksIChsZW5ndGgpLCBjLCAtMyk7IFwKICAgICAgICAgfSBc
CiAgICAgfSBcCiB9CisjZW5kaWYgLyogVV9ISURFX0RSQUZUX0FQSSAqLwogCiAvKioKICAqIEFw
cGVuZCBhIGNvZGUgcG9pbnQgdG8gYSBzdHJpbmcsIG92ZXJ3cml0aW5nIDEgdG8gNCBieXRlcy4K
QEAgLTM1MSw5ICs0NjMsOSBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywg
aW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIHRoZW4gaXNFcnJvciBpcyBzZXQgdG8gVFJV
RS4KICAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nIGJ1ZmZlcgotICogQHBh
cmFtIGkgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFjaXR5Ci0gKiBAcGFyYW0gY2FwYWNp
dHkgc2l6ZSBvZiB0aGUgc3RyaW5nIGJ1ZmZlcgotICogQHBhcmFtIGMgY29kZSBwb2ludCB0byBh
cHBlbmQKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBpPGNhcGFj
aXR5CisgKiBAcGFyYW0gY2FwYWNpdHkgaW50MzJfdCBzaXplIG9mIHRoZSBzdHJpbmcgYnVmZmVy
CisgKiBAcGFyYW0gYyBVQ2hhcjMyIGNvZGUgcG9pbnQgdG8gYXBwZW5kCiAgKiBAcGFyYW0gaXNF
cnJvciBvdXRwdXQgVUJvb2wgc2V0IHRvIFRSVUUgaWYgYW4gZXJyb3Igb2NjdXJzLCBvdGhlcndp
c2Ugbm90IG1vZGlmaWVkCiAgKiBAc2VlIFU4X0FQUEVORF9VTlNBRkUKICAqIEBzdGFibGUgSUNV
IDIuNApAQCAtMzY5LDcgKzQ4MSw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90
ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICAgICAgICAocylbKGkpKytdPSh1aW50
OF90KSgoKChjKT4+NikmMHgzZil8MHg4MCk7IFwKICAgICAgICAgKHMpWyhpKSsrXT0odWludDhf
dCkoKChjKSYweDNmKXwweDgwKTsgXAogICAgIH0gZWxzZSB7IFwKLSAgICAgICAgKGkpPXV0Zjhf
YXBwZW5kQ2hhclNhZmVCb2R5KHMsIChpbnQzMl90KShpKSwgKGludDMyX3QpKGNhcGFjaXR5KSwg
YywgJihpc0Vycm9yKSk7IFwKKyAgICAgICAgKGkpPXV0ZjhfYXBwZW5kQ2hhclNhZmVCb2R5KHMs
IChpKSwgKGNhcGFjaXR5KSwgYywgJihpc0Vycm9yKSk7IFwKICAgICB9IFwKIH0KIApAQCAtMzg0
LDcgKzQ5Niw3IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90
IHN0YXJ0LCBpbnQzMl90IGkpOwogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThf
RldEXzFfVU5TQUZFKHMsIGkpIHsgXAotICAgIChpKSs9MStVOF9DT1VOVF9UUkFJTF9CWVRFUygo
cylbaV0pOyBcCisgICAgKGkpKz0xK1U4X0NPVU5UX1RSQUlMX0JZVEVTX1VOU0FGRSgodWludDhf
dCkocylbaV0pOyBcCiB9CiAKIC8qKgpAQCAtMzkyLDkgKzUwNCwxMSBAQCB1dGY4X2JhY2sxU2Fm
ZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIChQ
b3N0LWluY3JlbWVudGluZyBpdGVyYXRpb24uKQogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9y
IGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgorICogVGhl
IGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLgorICoK
ICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBpIHN0cmluZyBv
ZmZzZXQsIG11c3QgYmUgaTxsZW5ndGgKLSAqIEBwYXJhbSBsZW5ndGggc3RyaW5nIGxlbmd0aAor
ICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCisgKiBA
cGFyYW0gbGVuZ3RoIGludDMyX3Qgc3RyaW5nIGxlbmd0aAogICogQHNlZSBVOF9GV0RfMV9VTlNB
RkUKICAqIEBzdGFibGUgSUNVIDIuNAogICovCkBAIC00MDIsNyArNTE2LDcgQEAgdXRmOF9iYWNr
MVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgaSk7CiAg
ICAgdWludDhfdCBfX2I9KHVpbnQ4X3QpKHMpWyhpKSsrXTsgXAogICAgIGlmKFU4X0lTX0xFQUQo
X19iKSkgeyBcCiAgICAgICAgIHVpbnQ4X3QgX19jb3VudD1VOF9DT1VOVF9UUkFJTF9CWVRFUyhf
X2IpOyBcCi0gICAgICAgIGlmKChpKStfX2NvdW50PihsZW5ndGgpKSB7IFwKKyAgICAgICAgaWYo
KGkpK19fY291bnQ+KGxlbmd0aCkgJiYgKGxlbmd0aCk+PTApIHsgXAogICAgICAgICAgICAgX19j
b3VudD0odWludDhfdCkoKGxlbmd0aCktKGkpKTsgXAogICAgICAgICB9IFwKICAgICAgICAgd2hp
bGUoX19jb3VudD4wICYmIFU4X0lTX1RSQUlMKChzKVtpXSkpIHsgXApAQCAtNDM4LDE2ICs1NTIs
MTggQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQs
IGludDMyX3QgaSk7CiAgKiAoUG9zdC1pbmNyZW1lbnRpbmcgaXRlcmF0aW9uLikKICAqICJTYWZl
IiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3Vu
ZGFyaWVzLgogICoKKyAqIFRoZSBsZW5ndGggY2FuIGJlIG5lZ2F0aXZlIGZvciBhIE5VTC10ZXJt
aW5hdGVkIHN0cmluZy4KKyAqCiAgKiBAcGFyYW0gcyBjb25zdCB1aW50OF90ICogc3RyaW5nCi0g
KiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIGk8bGVuZ3RoCi0gKiBAcGFyYW0gbGVu
Z3RoIHN0cmluZyBsZW5ndGgKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVz
dCBiZSBpPGxlbmd0aAorICogQHBhcmFtIGxlbmd0aCBpbnQzMl90IHN0cmluZyBsZW5ndGgKICAq
IEBwYXJhbSBuIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBza2lwCiAgKiBAc2VlIFU4X0ZXRF9O
X1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUgVThfRldEX04ocywgaSwg
bGVuZ3RoLCBuKSB7IFwKICAgICBpbnQzMl90IF9fTj0obik7IFwKLSAgICB3aGlsZShfX04+MCAm
JiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIHdoaWxlKF9fTj4wICYmICgoaSk8KGxlbmd0aCkgfHwg
KChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkpIHsgXAogICAgICAgICBVOF9GV0RfMShzLCBpLCBs
ZW5ndGgpOyBcCiAgICAgICAgIC0tX19OOyBcCiAgICAgfSBcCkBAIC00NzksMTQgKzU5NSwxNCBA
QCB1dGY4X2JhY2sxU2FmZUJvZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50
MzJfdCBpKTsKICAqICJTYWZlIiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBh
bmQgZm9yIHN0cmluZyBib3VuZGFyaWVzLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3Qg
KiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5
IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pCisgKiBAcGFy
YW0gc3RhcnQgaW50MzJfdCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCisgKiBA
cGFyYW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8PWkKICAqIEBzZWUg
VThfU0VUX0NQX1NUQVJUX1VOU0FGRQogICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KICNkZWZpbmUg
VThfU0VUX0NQX1NUQVJUKHMsIHN0YXJ0LCBpKSB7IFwKICAgICBpZihVOF9JU19UUkFJTCgocylb
KGkpXSkpIHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNhZmVCb2R5KHMsIHN0YXJ0LCAoaW50
MzJfdCkoaSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sxU2FmZUJvZHkocywgc3RhcnQsIChp
KSk7IFwKICAgICB9IFwKIH0KIApAQCAtNTQ3LDggKzY2Myw4IEBAIHV0ZjhfYmFjazFTYWZlQm9k
eShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGkpOwogICogSWYgdGhl
IG9mZnNldCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbiBjIGlzIHNl
dCB0byBhIG5lZ2F0aXZlIHZhbHVlLgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBz
dHJpbmcKLSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDAp
Ci0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBz
dGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJh
bSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAcGFyYW0gYyBv
dXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIDwwIGluIGNhc2Ugb2YgYW4gZXJyb3IKICAq
IEBzZWUgVThfUFJFVl9VTlNBRkUKICAqIEBzdGFibGUgSUNVIDIuNApAQCAtNTU2LDEzICs2NzIs
NDIgQEAgdXRmOF9iYWNrMVNhZmVCb2R5KGNvbnN0IHVpbnQ4X3QgKnMsIGludDMyX3Qgc3RhcnQs
IGludDMyX3QgaSk7CiAjZGVmaW5lIFU4X1BSRVYocywgc3RhcnQsIGksIGMpIHsgXAogICAgIChj
KT0odWludDhfdCkocylbLS0oaSldOyBcCiAgICAgaWYoKGMpPj0weDgwKSB7IFwKLSAgICAgICAg
aWYoKGMpPD0weGJmKSB7IFwKLSAgICAgICAgICAgIChjKT11dGY4X3ByZXZDaGFyU2FmZUJvZHko
KGNvbnN0IHVpbnQ4X3QgKilzLCBzdGFydCwgJihpKSwgYywgLTEpOyBcCi0gICAgICAgIH0gZWxz
ZSB7IFwKLSAgICAgICAgICAgIChjKT1VX1NFTlRJTkVMOyBcCi0gICAgICAgIH0gXAorICAgICAg
ICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KChjb25zdCB1aW50OF90ICopcywgc3RhcnQsICYo
aSksIGMsIC0xKTsgXAorICAgIH0gXAorfQorCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKy8q
KgorICogTW92ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBvaW50IGJvdW5kYXJ5
IHRvIHRoZSBwcmV2aW91cyBvbmUKKyAqIGFuZCBnZXQgdGhlIGNvZGUgcG9pbnQgYmV0d2VlbiB0
aGVtLgorICogKFByZS1kZWNyZW1lbnRpbmcgYmFja3dhcmQgaXRlcmF0aW9uLikKKyAqICJTYWZl
IiBtYWNybywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3Vu
ZGFyaWVzLgorICoKKyAqIFRoZSBpbnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBz
dHJpbmcgbGVuZ3RoLgorICogSWYgdGhlIG9mZnNldCBpcyBiZWhpbmQgYSBtdWx0aS1ieXRlIHNl
cXVlbmNlLCB0aGVuIHRoZSBtYWNybyB3aWxsIHJlYWQKKyAqIHRoZSB3aG9sZSBzZXF1ZW5jZS4K
KyAqIElmIHRoZSBvZmZzZXQgaXMgYmVoaW5kIGEgbGVhZCBieXRlLCB0aGVuIHRoYXQgaXRzZWxm
CisgKiB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBjb2RlIHBvaW50LgorICogSWYgdGhlIG9mZnNl
dCBpcyBiZWhpbmQgYW4gaWxsZWdhbCBVVEYtOCBzZXF1ZW5jZSwgdGhlbiBjIGlzIHNldCB0byBV
K0ZGRkQuCisgKgorICogVGhpcyBtYWNybyBkb2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEg
cmVhbCBVK0ZGRkQgaW4gdGhlIHRleHQKKyAqIGFuZCBVK0ZGRkQgcmV0dXJuZWQgZm9yIGFuIGls
bC1mb3JtZWQgc2VxdWVuY2UuCisgKiBVc2UgVThfUFJFVigpIGlmIHRoYXQgZGlzdGluY3Rpb24g
aXMgaW1wb3J0YW50LgorICoKKyAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKKyAq
IEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5nIHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkK
KyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9mZnNldCwgbXVzdCBiZSBzdGFydDxpCisgKiBA
cGFyYW0gYyBvdXRwdXQgVUNoYXIzMiB2YXJpYWJsZSwgc2V0IHRvIFUrRkZGRCBpbiBjYXNlIG9m
IGFuIGVycm9yCisgKiBAc2VlIFU4X1BSRVYKKyAqIEBkcmFmdCBJQ1UgNTEKKyAqLworI2RlZmlu
ZSBVOF9QUkVWX09SX0ZGRkQocywgc3RhcnQsIGksIGMpIHsgXAorICAgIChjKT0odWludDhfdCko
cylbLS0oaSldOyBcCisgICAgaWYoKGMpPj0weDgwKSB7IFwKKyAgICAgICAgKGMpPXV0ZjhfcHJl
dkNoYXJTYWZlQm9keSgoY29uc3QgdWludDhfdCAqKXMsIHN0YXJ0LCAmKGkpLCBjLCAtMyk7IFwK
ICAgICB9IFwKIH0KKyNlbmRpZiAvKiBVX0hJREVfRFJBRlRfQVBJICovCiAKIC8qKgogICogTW92
ZSB0aGUgc3RyaW5nIG9mZnNldCBmcm9tIG9uZSBjb2RlIHBvaW50IGJvdW5kYXJ5IHRvIHRoZSBw
cmV2aW91cyBvbmUuCkBAIC01ODYsMTQgKzczMSwxNCBAQCB1dGY4X2JhY2sxU2FmZUJvZHkoY29u
c3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqICJTYWZlIiBtYWNy
bywgY2hlY2tzIGZvciBpbGxlZ2FsIHNlcXVlbmNlcyBhbmQgZm9yIHN0cmluZyBib3VuZGFyaWVz
LgogICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcKLSAqIEBwYXJhbSBzdGFy
dCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBAcGFyYW0gaSBzdHJpbmcg
b2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJhbSBzdGFydCBpbnQzMl90IHN0YXJ0aW5n
IHN0cmluZyBvZmZzZXQgKHVzdWFsbHkgMCkKKyAqIEBwYXJhbSBpIGludDMyX3Qgc3RyaW5nIG9m
ZnNldCwgbXVzdCBiZSBzdGFydDxpCiAgKiBAc2VlIFU4X0JBQ0tfMV9VTlNBRkUKICAqIEBzdGFi
bGUgSUNVIDIuNAogICovCiAjZGVmaW5lIFU4X0JBQ0tfMShzLCBzdGFydCwgaSkgeyBcCiAgICAg
aWYoVThfSVNfVFJBSUwoKHMpWy0tKGkpXSkpIHsgXAotICAgICAgICAoaSk9dXRmOF9iYWNrMVNh
ZmVCb2R5KHMsIHN0YXJ0LCAoaW50MzJfdCkoaSkpOyBcCisgICAgICAgIChpKT11dGY4X2JhY2sx
U2FmZUJvZHkocywgc3RhcnQsIChpKSk7IFwKICAgICB9IFwKIH0KIApAQCAtNjI2LDggKzc3MSw4
IEBAIHV0ZjhfYmFjazFTYWZlQm9keShjb25zdCB1aW50OF90ICpzLCBpbnQzMl90IHN0YXJ0LCBp
bnQzMl90IGkpOwogICogIlNhZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2Vz
IGFuZCBmb3Igc3RyaW5nIGJvdW5kYXJpZXMuCiAgKgogICogQHBhcmFtIHMgY29uc3QgdWludDhf
dCAqIHN0cmluZwotICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgc3Ry
aW5nCi0gKiBAcGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PGkKKyAqIEBwYXJh
bSBzdGFydCBpbnQzMl90IGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nCisgKiBAcGFy
YW0gaSBpbnQzMl90IHN0cmluZyBvZmZzZXQsIG11c3QgYmUgc3RhcnQ8aQogICogQHBhcmFtIG4g
bnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRvIHNraXAKICAqIEBzZWUgVThfQkFDS19OX1VOU0FGRQog
ICogQHN0YWJsZSBJQ1UgMi40CkBAIC02NjYsMTUgKzgxMSwxNyBAQCB1dGY4X2JhY2sxU2FmZUJv
ZHkoY29uc3QgdWludDhfdCAqcywgaW50MzJfdCBzdGFydCwgaW50MzJfdCBpKTsKICAqIFRoZSBp
bnB1dCBvZmZzZXQgbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBzdHJpbmcgbGVuZ3RoLgogICogIlNh
ZmUiIG1hY3JvLCBjaGVja3MgZm9yIGlsbGVnYWwgc2VxdWVuY2VzIGFuZCBmb3Igc3RyaW5nIGJv
dW5kYXJpZXMuCiAgKgorICogVGhlIGxlbmd0aCBjYW4gYmUgbmVnYXRpdmUgZm9yIGEgTlVMLXRl
cm1pbmF0ZWQgc3RyaW5nLgorICoKICAqIEBwYXJhbSBzIGNvbnN0IHVpbnQ4X3QgKiBzdHJpbmcK
LSAqIEBwYXJhbSBzdGFydCBzdGFydGluZyBzdHJpbmcgb2Zmc2V0ICh1c3VhbGx5IDApCi0gKiBA
cGFyYW0gaSBzdHJpbmcgb2Zmc2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKLSAqIEBwYXJh
bSBsZW5ndGggc3RyaW5nIGxlbmd0aAorICogQHBhcmFtIHN0YXJ0IGludDMyX3Qgc3RhcnRpbmcg
c3RyaW5nIG9mZnNldCAodXN1YWxseSAwKQorICogQHBhcmFtIGkgaW50MzJfdCBzdHJpbmcgb2Zm
c2V0LCBtdXN0IGJlIHN0YXJ0PD1pPD1sZW5ndGgKKyAqIEBwYXJhbSBsZW5ndGggaW50MzJfdCBz
dHJpbmcgbGVuZ3RoCiAgKiBAc2VlIFU4X1NFVF9DUF9MSU1JVF9VTlNBRkUKICAqIEBzdGFibGUg
SUNVIDIuNAogICovCiAjZGVmaW5lIFU4X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3Ro
KSB7IFwKLSAgICBpZigoc3RhcnQpPChpKSAmJiAoaSk8KGxlbmd0aCkpIHsgXAorICAgIGlmKChz
dGFydCk8KGkpICYmICgoaSk8KGxlbmd0aCkgfHwgKChsZW5ndGgpPDAgJiYgKHMpW2ldIT0wKSkp
IHsgXAogICAgICAgICBVOF9CQUNLXzEocywgc3RhcnQsIGkpOyBcCiAgICAgICAgIFU4X0ZXRF8x
KHMsIGksIGxlbmd0aCk7IFwKICAgICB9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L2ljdS91bmljb2RlL3V0Zl9vbGQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V0
Zl9vbGQuaAppbmRleCA4NTA0YTAzMGRkZmM0ZGJhZTM2M2U1YjVmYTZjNWQxNThiYjdjY2UzLi5m
OTEyNWIxZGQyZWQ3ZTFjNjg0ZGExNjU0ZjVlNDdkZDdjZDVmYjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dGZfb2xkLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvaWN1L3VuaWNvZGUvdXRmX29sZC5oCkBAIC0xICsxLDExNjkgQEAKLS8qIFRoaXMgZmlsZSBp
cyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsuICovCisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdXRmX29sZC5o
CisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkK
KyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMnNlcDIxCisqICAgY3Jl
YXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJp
ZWYgQyBBUEk6IERlcHJlY2F0ZWQgbWFjcm9zIGZvciBVbmljb2RlIHN0cmluZyBoYW5kbGluZwor
ICovCisKKy8qKgorICogCisgKiBUaGUgbWFjcm9zIGluIHV0Zl9vbGQuaCBhcmUgYWxsIGRlcHJl
Y2F0ZWQgYW5kIHRoZWlyIHVzZSBkaXNjb3VyYWdlZC4KKyAqIFNvbWUgb2YgdGhlIGRlc2lnbiBw
cmluY2lwbGVzIGJlaGluZCB0aGUgc2V0IG9mIFVURiBtYWNyb3MKKyAqIGhhdmUgY2hhbmdlZCBv
ciBwcm92ZWQgaW1wcmFjdGljYWwuCisgKiBBbG1vc3QgYWxsIG9mIHRoZSBvbGQgIlVURiBtYWNy
b3MiIGFyZSBhdCBsZWFzdCByZW5hbWVkLgorICogSWYgeW91IGFyZSBsb29raW5nIGZvciBhIG5l
dyBlcXVpdmFsZW50IHRvIGFuIG9sZCBtYWNybywgcGxlYXNlIHNlZSB0aGUKKyAqIGNvbW1lbnQg
YXQgdGhlIG9sZCBvbmUuCisgKgorICogQnJpZWYgc3VtbWFyeSBvZiByZWFzb25zIGZvciBkZXBy
ZWNhdGlvbjoKKyAqIC0gU3dpdGNoIG9uIFVURl9TSVpFIChzZWxlY3Rpb24gb2YgVVRGLTgvMTYv
MzIgZGVmYXVsdCBzdHJpbmcgcHJvY2Vzc2luZykKKyAqICAgd2FzIGltcHJhY3RpY2FsLgorICog
LSBTd2l0Y2ggb24gVVRGX1NBRkUgZXRjLiAoc2VsZWN0aW9uIG9mIHVuc2FmZS9zYWZlL3N0cmlj
dCBkZWZhdWx0IHN0cmluZyBwcm9jZXNzaW5nKQorICogICB3YXMgb2YgbGl0dGxlIHVzZSBhbmQg
aW1wcmFjdGljYWwuCisgKiAtIFdob2xlIGNsYXNzZXMgb2YgbWFjcm9zIGJlY2FtZSBvYnNvbGV0
ZSBvdXRzaWRlIG9mIHRoZSBVVEZfU0laRS9VVEZfU0FGRQorICogICBzZWxlY3Rpb24gZnJhbWV3
b3JrOiBVVEYzMl8gbWFjcm9zIChhbGwgdHJpdmlhbCkKKyAqICAgYW5kIFVURl8gZGVmYXVsdCBh
bmQgaW50ZXJtZWRpYXRlIG1hY3JvcyAoYWxsIGFsaWFzZXMpLgorICogLSBUaGUgc2VsZWN0aW9u
IGZyYW1ld29yayBhbHNvIGNhdXNlZCBtYW55IG1hY3JvIGFsaWFzZXMuCisgKiAtIENoYW5nZSBp
biBVbmljb2RlIHN0YW5kYXJkOiAiaXJyZWd1bGFyIiBzZXF1ZW5jZXMgKDMuMCkgYmVjYW1lIGls
bGVnYWwgKDMuMikuCisgKiAtIENoYW5nZSBvZiBsYW5ndWFnZSBpbiBVbmljb2RlIHN0YW5kYXJk
OgorICogICBHcm93aW5nIGRpc3RpbmN0aW9uIGJldHdlZW4gaW50ZXJuYWwgeC1iaXQgVW5pY29k
ZSBzdHJpbmdzIGFuZCBleHRlcm5hbCBVVEYteAorICogICBmb3Jtcywgd2l0aCB0aGUgZm9ybWVy
IG1vcmUgbGVuaWVudC4KKyAqICAgU3VnZ2VzdHMgcmVuYW1pbmcgb2YgVVRGMTZfIG1hY3JvcyB0
byBVMTZfLgorICogLSBUaGUgcHJlZml4ICJVVEZfIiB3aXRob3V0IGEgd2lkdGggbnVtYmVyIGNv
bmZ1c2VkIHNvbWUgdXNlcnMuCisgKiAtICJTYWZlIiBhcHBlbmQgbWFjcm9zIG5lZWRlZCB0aGUg
YWRkaXRpb24gb2YgYW4gZXJyb3IgaW5kaWNhdG9yIG91dHB1dC4KKyAqIC0gIlNhZmUiIFVURi04
IG1hY3JvcyB1c2VkIGxlZ2l0aW1hdGUgKGlmIHJhcmVseSB1c2VkKSBjb2RlIHBvaW50IHZhbHVl
cworICogICB0byBpbmRpY2F0ZSBlcnJvciBjb25kaXRpb25zLgorICogLSBUaGUgdXNlIG9mIHRo
ZSAiX0NIQVIiIGluZml4IGZvciBjb2RlIHBvaW50IG9wZXJhdGlvbnMgY29uZnVzZWQgc29tZSB1
c2Vycy4KKyAqCisgKiBNb3JlIGRldGFpbHM6CisgKgorICogVW50aWwgSUNVIDIuMiwgdXRmLmgg
dGhlb3JldGljYWxseSBhbGxvd2VkIHRvIGNob29zZSBhbW9uZyBVVEYtOC8xNi8zMgorICogZm9y
IHN0cmluZyBwcm9jZXNzaW5nLCBhbmQgYW1vbmcgdW5zYWZlL3NhZmUvc3RyaWN0IGRlZmF1bHQg
bWFjcm9zIGZvciB0aGF0LgorICoKKyAqIEl0IHByb3ZlZCBuZWFybHkgaW1wb3NzaWJsZSB0byB3
cml0ZSBub24tdHJpdmlhbCwgaGlnaC1wZXJmb3JtYW5jZSBjb2RlCisgKiB0aGF0IGlzIFVURi1n
ZW5lcmljLgorICogVW5zYWZlIGRlZmF1bHQgbWFjcm9zIHdvdWxkIGJlIGRhbmdlcm91cyBmb3Ig
ZGVmYXVsdCBzdHJpbmcgcHJvY2Vzc2luZywKKyAqIGFuZCB0aGUgbWFpbiByZWFzb24gZm9yIHRo
ZSAic3RyaWN0IiB2ZXJzaW9ucyBkaXNhcHBlYXJlZDoKKyAqIEJldHdlZW4gVW5pY29kZSAzLjAg
YW5kIDMuMiBhbGwgImlycmVndWxhciIgVVRGLTggc2VxdWVuY2VzIGJlY2FtZSBpbGxlZ2FsLgor
ICogVGhlIG9ubHkgb3RoZXIgY29uZGl0aW9ucyB0aGF0ICJzdHJpY3QiIGNoZWNrZWQgZm9yIHdl
cmUgbm9uLWNoYXJhY3RlcnMsCisgKiB3aGljaCBhcmUgdmFsaWQgZHVyaW5nIHByb2Nlc3Npbmcu
IE9ubHkgZHVyaW5nIHRleHQgaW5wdXQvb3V0cHV0IHNob3VsZCB0aGV5CisgKiBiZSBjaGVja2Vk
LCBhbmQgYXQgdGhhdCB0aW1lIG90aGVyIHdlbGwtZm9ybWVkbmVzcyBjaGVja3MgbWF5IGJlCisg
KiBuZWNlc3Nhcnkgb3IgdXNlZnVsIGFzIHdlbGwuCisgKiBUaGlzIGNhbiBzdGlsbCBiZSBkb25l
IGJ5IHVzaW5nIFUxNl9ORVhUIGFuZCBVX0lTX1VOSUNPREVfTk9OQ0hBUgorICogb3IgVV9JU19V
TklDT0RFX0NIQVIuCisgKgorICogVGhlIG9sZCBVVEY4Xy4uLl9TQUZFIG1hY3JvcyBhbHNvIHVz
ZWQgc29tZSBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cworICogdG8gaW5kaWNhdGUgbWFsZm9y
bWVkIHNlcXVlbmNlcy4KKyAqIFRoZSBuZXcgVVRGOF8gbWFjcm9zIHdpdGhvdXQgc3VmZml4IHVz
ZSBuZWdhdGl2ZSB2YWx1ZXMgaW5zdGVhZC4KKyAqCisgKiBUaGUgZW50aXJlIGNvbnRlbnRzIG9m
IHV0ZjMyLmggd2FzIG1vdmVkIGhlcmUgd2l0aG91dCByZXBsYWNlbWVudAorICogYmVjYXVzZSBh
bGwgdGhvc2UgbWFjcm9zIHdlcmUgdHJpdmlhbCBhbmQKKyAqIHdlcmUgbWVhbmluZ2Z1bCBvbmx5
IGluIHRoZSBmcmFtZXdvcmsgb2YgY2hvb3NpbmcgdGhlIFVURiBzaXplLgorICoKKyAqIFNlZSBK
aXR0ZXJidWcgMjE1MCBhbmQgaXRzIGRpc2N1c3Npb24gb24gdGhlIElDVSBtYWlsaW5nIGxpc3QK
KyAqIGluIFNlcHRlbWJlciAyMDAyLgorICoKKyAqIDxocj4KKyAqCisgKiA8ZW0+T2Jzb2xldGUg
cGFydDwvZW0+IG9mIHByZS1JQ1UgMi40IHV0Zi5oIGZpbGUgZG9jdW1lbnRhdGlvbjoKKyAqCisg
KiA8cD5UaGUgb3JpZ2luYWwgY29uY2VwdCBmb3IgdGhlc2UgZmlsZXMgd2FzIGZvciBJQ1UgdG8g
YWxsb3cKKyAqIGluIHByaW5jaXBsZSB0byBzZXQgd2hpY2ggVVRGIChVVEYtOC8xNi8zMikgaXMg
dXNlZCBpbnRlcm5hbGx5CisgKiBieSBkZWZpbmluZyBVVEZfU0laRSB0byBlaXRoZXIgOCwgMTYs
IG9yIDMyLiB1dGYuaCB3b3VsZCB0aGVuIGRlZmluZSB0aGUgVUNoYXIgdHlwZQorICogYWNjb3Jk
aW5nbHkuIFVURi0xNiB3YXMgdGhlIGRlZmF1bHQuPC9wPgorICoKKyAqIDxwPlRoaXMgY29uY2Vw
dCBoYXMgYmVlbiBhYmFuZG9uZWQuCisgKiBBIGxvdCBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFz
c3VtZXMgVUNoYXIgc3RyaW5ncyBhcmUgaW4gVVRGLTE2LgorICogVGhpcyBpcyBlc3BlY2lhbGx5
IHRydWUgZm9yIGxvdy1sZXZlbCBjb2RlIGxpa2UKKyAqIGNvbnZlcnNpb24sIG5vcm1hbGl6YXRp
b24sIGFuZCBjb2xsYXRpb24uCisgKiBUaGUgdXRmLmggaGVhZGVyIGVuZm9yY2VzIHRoZSBkZWZh
dWx0IG9mIFVURi0xNi4KKyAqIFRoZSBVVEYtOCBhbmQgVVRGLTMyIG1hY3JvcyByZW1haW4gZm9y
IG5vdyBmb3IgY29tcGxldGVuZXNzIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LjwvcD4KKyAq
CisgKiA8cD5BY2NvcmRpbmdseSwgdXRmLmggZGVmaW5lcyBVQ2hhciB0byBiZSBhbiB1bnNpZ25l
ZCAxNi1iaXQgaW50ZWdlci4gSWYgdGhpcyBtYXRjaGVzIHdjaGFyX3QsIHRoZW4KKyAqIFVDaGFy
IGlzIGRlZmluZWQgdG8gYmUgZXhhY3RseSB3Y2hhcl90LCBvdGhlcndpc2UgdWludDE2X3QuPC9w
PgorICoKKyAqIDxwPlVDaGFyMzIgaXMgZGVmaW5lZCB0byBiZSBhIHNpZ25lZCAzMi1iaXQgaW50
ZWdlciAoaW50MzJfdCksIGxhcmdlIGVub3VnaCBmb3IgYSAyMS1iaXQKKyAqIFVuaWNvZGUgY29k
ZSBwb2ludCAoVW5pY29kZSBzY2FsYXIgdmFsdWUsIDAuLjB4MTBmZmZmKS4KKyAqIEJlZm9yZSBJ
Q1UgMi40LCB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhcjMyIHdhcyBzaW1pbGFybHkgcGxhdGZvcm0t
ZGVwZW5kZW50IGFzCisgKiB0aGUgZGVmaW5pdGlvbiBvZiBVQ2hhci4gRm9yIGRldGFpbHMgc2Vl
IHRoZSBkb2N1bWVudGF0aW9uIGZvciBVQ2hhcjMyIGl0c2VsZi48L3A+CisgKgorICogPHA+dXRm
LmggYWxzbyBkZWZpbmVzIGEgbnVtYmVyIG9mIEMgbWFjcm9zIGZvciBoYW5kbGluZyBzaW5nbGUg
VW5pY29kZSBjb2RlIHBvaW50cyBhbmQKKyAqIGZvciB1c2luZyBVVEYgVW5pY29kZSBzdHJpbmdz
LiBJdCBpbmNsdWRlcyB1dGY4LmgsIHV0ZjE2LmgsIGFuZCB1dGYzMi5oIGZvciB0aGUgYWN0dWFs
CisgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdGhvc2UgbWFjcm9zIGFuZCB0aGVuIGFsaWFzZXMgb25l
IHNldCBvZiB0aGVtIChmb3IgVVRGLTE2KSBmb3IgZ2VuZXJhbCB1c2UuCisgKiBUaGUgVVRGLXNw
ZWNpZmljIG1hY3JvcyBoYXZlIHRoZSBVVEYgc2l6ZSBpbiB0aGUgbWFjcm8gbmFtZSBwcmVmaXhl
cyAoVVRGMTZfLi4uKSwgd2hpbGUKKyAqIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyBhbHdheXMg
YmVnaW4gd2l0aCBVVEZfLi4uPC9wPgorICoKKyAqIDxwPk1hbnkgc3RyaW5nIG9wZXJhdGlvbnMg
Y2FuIGJlIGRvbmUgd2l0aCBvciB3aXRob3V0IGVycm9yIGNoZWNraW5nLgorICogV2hlcmUgc3Vj
aCBhIGRpc3RpbmN0aW9uIGlzIHVzZWZ1bCwgdGhlcmUgYXJlIHR3byB2ZXJzaW9ucyBvZiB0aGUg
bWFjcm9zLCAidW5zYWZlIiBhbmQgInNhZmUiCisgKiBvbmVzIHdpdGggLi4uX1VOU0FGRSBhbmQg
Li4uX1NBRkUgc3VmZml4ZXMuIFRoZSB1bnNhZmUgbWFjcm9zIGFyZSBmYXN0IGJ1dCBtYXkgY2F1
c2UKKyAqIHByb2dyYW0gZmFpbHVyZXMgaWYgdGhlIHN0cmluZ3MgYXJlIG5vdCB3ZWxsLWZvcm1l
ZC4gVGhlIHNhZmUgbWFjcm9zIGhhdmUgYW4gYWRkaXRpb25hbCwgYm9vbGVhbgorICogcGFyYW1l
dGVyICJzdHJpY3QiLiBJZiBzdHJpY3QgaXMgRkFMU0UsIHRoZW4gb25seSBpbGxlZ2FsIHNlcXVl
bmNlcyBhcmUgZGV0ZWN0ZWQuCisgKiBPdGhlcndpc2UsIGlycmVndWxhciBzZXF1ZW5jZXMgYW5k
IG5vbi1jaGFyYWN0ZXJzIGFyZSBkZXRlY3RlZCBhcyB3ZWxsIChsaWtlIHNpbmdsZSBzdXJyb2dh
dGVzKS4KKyAqIFNhZmUgbWFjcm9zIHJldHVybiBzcGVjaWFsIGVycm9yIGNvZGUgcG9pbnRzIGZv
ciBpbGxlZ2FsL2lycmVndWxhciBzZXF1ZW5jZXM6CisgKiBUeXBpY2FsbHksIFUrZmZmZiwgb3Ig
dmFsdWVzIHRoYXQgd291bGQgcmVzdWx0IGluIGEgY29kZSB1bml0IHNlcXVlbmNlIG9mIHRoZSBz
YW1lIGxlbmd0aAorICogYXMgdGhlIGVycm9uZW91cyBpbnB1dCBzZXF1ZW5jZS48YnI+CisgKiBO
b3RlIHRoYXQgX1VOU0FGRSBtYWNyb3MgaGF2ZSBmZXdlciBwYXJhbWV0ZXJzOiBUaGV5IGRvIG5v
dCBoYXZlIHRoZSBzdHJpY3RuZXNzIHBhcmFtZXRlciwgYW5kCisgKiB0aGV5IGRvIG5vdCBoYXZl
IHN0YXJ0L2xlbmd0aCBwYXJhbWV0ZXJzIGZvciBib3VuZGFyeSBjaGVja2luZy48L3A+CisgKgor
ICogPHA+SGVyZSwgdGhlIG1hY3JvcyBhcmUgYWxpYXNlZCBpbiB0d28gc3RlcHM6CisgKiBJbiB0
aGUgZmlyc3Qgc3RlcCwgdGhlIFVURi1zcGVjaWZpYyBtYWNyb3Mgd2l0aCBVVEYxNl8gcHJlZml4
IGFuZCBfVU5TQUZFIGFuZCBfU0FGRSBzdWZmaXhlcyBhcmUKKyAqIGFsaWFzZWQgYWNjb3JkaW5n
IHRvIHRoZSBVVEZfU0laRSB0byBtYWNyb3Mgd2l0aCBVVEZfIHByZWZpeCBhbmQgdGhlIHNhbWUg
c3VmZml4ZXMgYW5kIHNpZ25hdHVyZXMuCisgKiBUaGVuLCBpbiBhIHNlY29uZCBzdGVwLCB0aGUg
ZGVmYXVsdCwgZ2VuZXJhbCBhbGlhcyBtYWNyb3MgYXJlIHNldCB0byB1c2UgZWl0aGVyIHRoZSB1
bnNhZmUgb3IKKyAqIHRoZSBzYWZlL25vdCBzdHJpY3QgKGRlZmF1bHQpIG9yIHRoZSBzYWZlL3N0
cmljdCBtYWNybzsKKyAqIHRoZXNlIGdlbmVyYWwgbWFjcm9zIGRvIG5vdCBoYXZlIGEgc3RyaWN0
bmVzcyBwYXJhbWV0ZXIuPC9wPgorICoKKyAqIDxwPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0
aGUgZGVmYXVsdCBjaG9pY2UgZm9yIHRoZSBnZW5lcmFsIGFsaWFzIG1hY3JvcyB0byBiZSB1bnNh
ZmUsIHNhZmUvbm90IHN0cmljdCBvciBzYWZlL3N0cmljdC4KKyAqIFRoZSBkZWZhdWx0IGlzIHNh
ZmUvbm90IHN0cmljdC4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHNlbGVjdCB0aGUgdW5zYWZl
IG1hY3JvcyBhcyB0aGUgYmFzaXMgZm9yCisgKiBVbmljb2RlIHN0cmluZyBoYW5kbGluZyBpbiBJ
Q1UhIFRvIHNlbGVjdCB0aGlzLCBkZWZpbmUgVVRGX1NBRkUsIFVURl9TVFJJQ1QsIG9yIFVURl9V
TlNBRkUuPC9wPgorICoKKyAqIDxwPkZvciBnZW5lcmFsIHVzZSwgb25lIHNob3VsZCB1c2UgdGhl
IGRlZmF1bHQsIGdlbmVyYWwgbWFjcm9zIHdpdGggVVRGXyBwcmVmaXggYW5kIG5vIF9TQUZFL19V
TlNBRkUgc3VmZml4LgorICogT25seSBpbiBzb21lIGNhc2VzIGl0IG1heSBiZSBuZWNlc3Nhcnkg
dG8gY29udHJvbCB0aGUgY2hvaWNlIG9mIG1hY3JvIGRpcmVjdGx5IGFuZCB1c2UgYSBsZXNzIGdl
bmVyaWMgYWxpYXMuCisgKiBGb3IgZXhhbXBsZSwgaWYgaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCBh
IHN0cmluZyBpcyB3ZWxsLWZvcm1lZCBhbmQgdGhlIGluZGV4IHdpbGwgc3RheSB3aXRoaW4gdGhl
IGJvdW5kcywKKyAqIHRoZW4gdGhlIF9VTlNBRkUgdmVyc2lvbiBtYXkgYmUgdXNlZC4KKyAqIElm
IGEgVVRGLTggc3RyaW5nIGlzIHRvIGJlIHByb2Nlc3NlZCwgdGhlbiB0aGUgbWFjcm9zIHdpdGgg
VVRGOF8gcHJlZml4ZXMgbmVlZCB0byBiZSB1c2VkLjwvcD4KKyAqCisgKiA8aHI+CisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIHRoZSBtYWNyb3MgaW4gdXRmLmgsIHV0ZjE2LmgsIHV0
ZjguaCBpbnN0ZWFkLgorICovCisKKyNpZm5kZWYgX19VVEZfT0xEX0hfXworI2RlZmluZSBfX1VU
Rl9PTERfSF9fCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0Zi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRmOC5oIgorI2luY2x1ZGUgInVuaWNv
ZGUvdXRmMTYuaCIKKworLyogRm9ybWVybHkgdXRmLmgsIHBhcnQgMSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworI2lmZGVmIFVfVVNFX1VU
Rl9ERVBSRUNBVEVTCisvKioKKyAqIFVuaWNvZGUgc3RyaW5nIGFuZCBhcnJheSBvZmZzZXQgYW5k
IGluZGV4IHR5cGUuCisgKiBJQ1UgYWx3YXlzIGNvdW50cyBVbmljb2RlIGNvZGUgdW5pdHMgKFVD
aGFycykgZm9yCisgKiBzdHJpbmcgb2Zmc2V0cywgaW5kZXhlcywgYW5kIGxlbmd0aHMsIG5vdCBV
bmljb2RlIGNvZGUgcG9pbnRzLgorICoKKyAqIEBvYnNvbGV0ZSBJQ1UgMi42LiBVc2UgaW50MzJf
dCBkaXJlY3RseSBpbnN0ZWFkIHNpbmNlIHRoaXMgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGF0
IHJlbGVhc2UuCisgKi8KK3R5cGVkZWYgaW50MzJfdCBVVGV4dE9mZnNldDsKKyNlbmRpZgorCisv
KiogTnVtYmVyIG9mIGJpdHMgaW4gYSBVbmljb2RlIHN0cmluZyBjb2RlIHVuaXQgLSBJQ1UgdXNl
cyAxNi1iaXQgVW5pY29kZS4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURl9TSVpFIDE2CisKKy8qKgorICogVGhlIGRlZmF1bHQgY2hv
aWNlIGZvciBnZW5lcmFsIFVuaWNvZGUgc3RyaW5nIG1hY3JvcyBpcyB0byB1c2UgdGhlIC4uLl9T
QUZFIG1hY3JvIGltcGxlbWVudGF0aW9ucworICogd2l0aCBzdHJpY3Q9RkFMU0UuCisgKgorICog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX1NBRkUKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyN1bmRlZiBVVEZfVU5TQUZFCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jz
b2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjdW5kZWYgVVRGX1NUUklDVAorCisvKioKKyAqIFVU
RjhfRVJST1JfVkFMVUVfMSBhbmQgVVRGOF9FUlJPUl9WQUxVRV8yIGFyZSBzcGVjaWFsIGVycm9y
IHZhbHVlcyBmb3IgVVRGLTgsCisgKiB3aGljaCBuZWVkIDEgb3IgMiBieXRlcyBpbiBVVEYtODoK
KyAqIFxjb2RlCisgKiBVKzAwMTUgPSBOQUsgPSBOZWdhdGl2ZSBBY2tub3dsZWRnZSwgQzAgY29u
dHJvbCBjaGFyYWN0ZXIKKyAqIFUrMDA5ZiA9IGhpZ2hlc3QgQzEgY29udHJvbCBjaGFyYWN0ZXIK
KyAqIFxlbmRjb2RlCisgKgorICogVGhlc2UgYXJlIHVzZWQgYnkgVVRGOF8uLi5fU0FGRSBtYWNy
b3Mgc28gdGhhdCB0aGV5IGNhbiByZXR1cm4gYW4gZXJyb3IgdmFsdWUKKyAqIHRoYXQgbmVlZHMg
dGhlIHNhbWUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgKGJ5dGVzKSBhcyB3ZXJlIHNlZW4gYnkKKyAq
IGEgbWFjcm8uIFRoZXkgc2hvdWxkIGJlIHRlc3RlZCB3aXRoIFVURl9JU19FUlJPUigpIG9yIFVU
Rl9JU19WQUxJRCgpLgorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUg
dXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURjhfRVJST1JfVkFMVUVfMSAweDE1CisKKy8qKgor
ICogU2VlIGRvY3VtZW50YXRpb24gb24gVVRGOF9FUlJPUl9WQUxVRV8xIGZvciBkZXRhaWxzLgor
ICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURjhfRVJST1JfVkFMVUVfMiAweDlmCisKKy8qKgorICogRXJyb3IgdmFsdWUg
Zm9yIGFsbCBVVEZzLiBUaGlzIGNvZGUgcG9pbnQgdmFsdWUgd2lsbCBiZSBzZXQgYnkgbWFjcm9z
IHdpdGggZXJyb3IKKyAqIGNoZWNraW5nIGlmIGFuIGVycm9yIGlzIGRldGVjdGVkLgorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVm
aW5lIFVURl9FUlJPUl9WQUxVRSAweGZmZmYKKworLyoqCisgKiBJcyBhIGdpdmVuIDMyLWJpdCBj
b2RlIGFuIGVycm9yIHZhbHVlCisgKiBhcyByZXR1cm5lZCBieSBvbmUgb2YgdGhlIG1hY3JvcyBm
b3IgYW55IFVURj8KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0
Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfSVNfRVJST1IoYykgXAorICAgICgoKGMpJjB4ZmZm
ZSk9PTB4ZmZmZSB8fCAoYyk9PVVURjhfRVJST1JfVkFMVUVfMSB8fCAoYyk9PVVURjhfRVJST1Jf
VkFMVUVfMikKKworLyoqCisgKiBUaGlzIGlzIGEgY29tYmluZWQgbWFjcm86IElzIGMgYSB2YWxp
ZCBVbmljb2RlIHZhbHVlIF9hbmRfIG5vdCBhbiBlcnJvciBjb2RlPworICoKKyAqIEBkZXByZWNh
dGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9J
U19WQUxJRChjKSBcCisgICAgKFVURl9JU19VTklDT0RFX0NIQVIoYykgJiYgXAorICAgICAoYykh
PVVURjhfRVJST1JfVkFMVUVfMSAmJiAoYykhPVVURjhfRVJST1JfVkFMVUVfMikKKworLyoqCisg
KiBJcyB0aGlzIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGEgc3Vycm9nYXRlIChVK2Q4MDAuLlUr
ZGZmZik/CisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfU1VSUk9HQVRF
IGFuZCBVMTZfSVNfU1VSUk9HQVRFLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9J
U19TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmODAwKT09MHhkODAwKQorCisvKioK
KyAqIElzIGEgZ2l2ZW4gMzItYml0IGNvZGUgcG9pbnQgYSBVbmljb2RlIG5vbmNoYXJhY3Rlcj8K
KyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09ERV9OT05D
SEFSLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX05PTkNIQVIo
YykgXAorICAgICgoYyk+PTB4ZmRkMCAmJiBcCisgICAgICgodWludDMyX3QpKGMpPD0weGZkZWYg
fHwgKChjKSYweGZmZmUpPT0weGZmZmUpICYmIFwKKyAgICAgKHVpbnQzMl90KShjKTw9MHgxMGZm
ZmYpCisKKy8qKgorICogSXMgYSBnaXZlbiAzMi1iaXQgdmFsdWUgYSBVbmljb2RlIGNvZGUgcG9p
bnQgdmFsdWUgKDAuLlUrMTBmZmZmKQorICogdGhhdCBjYW4gYmUgYXNzaWduZWQgYSBjaGFyYWN0
ZXI/CisgKgorICogQ29kZSBwb2ludHMgdGhhdCBhcmUgbm90IGNoYXJhY3RlcnMgaW5jbHVkZToK
KyAqIC0gc2luZ2xlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyAoVStkODAwLi5VK2RmZmYsIDIwNDgg
Y29kZSBwb2ludHMpCisgKiAtIHRoZSBsYXN0IHR3byBjb2RlIHBvaW50cyBvbiBlYWNoIHBsYW5l
IChVK19fZmZmZSBhbmQgVStfX2ZmZmYsIDM0IGNvZGUgcG9pbnRzKQorICogLSBVK2ZkZDAuLlUr
ZmRlZiAobmV3IHdpdGggVW5pY29kZSAzLjEsIDMyIGNvZGUgcG9pbnRzKQorICogLSB0aGUgaGln
aGVzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgaXMgVSsxMGZmZmYKKyAqCisgKiBUaGlzIG1l
YW5zIHRoYXQgYWxsIGNvZGUgcG9pbnRzIGJlbG93IFUrZDgwMCBhcmUgY2hhcmFjdGVyIGNvZGUg
cG9pbnRzLAorICogYW5kIHRoYXQgYm91bmRhcnkgaXMgdGVzdGVkIGZpcnN0IGZvciBwZXJmb3Jt
YW5jZS4KKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVU5JQ09E
RV9DSEFSLCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9JU19VTklDT0RFX0NIQVIo
YykgXAorICAgICgodWludDMyX3QpKGMpPDB4ZDgwMCB8fCBcCisgICAgICAgICgodWludDMyX3Qp
KGMpPjB4ZGZmZiAmJiBcCisgICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiAmJiBcCisg
ICAgICAgICAhVVRGX0lTX1VOSUNPREVfTk9OQ0hBUihjKSkpCisKKy8qIEZvcm1lcmx5IHV0Zjgu
aCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICovCisKKy8qKgorICogQ291bnQgdGhlIHRyYWlsIGJ5dGVzIGZvciBhIFVURi04IGxlYWQg
Ynl0ZS4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfQ09VTlRfVFJBSUxf
QllURVMsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGOF9DT1VOVF9UUkFJTF9CWVRF
UyhsZWFkQnl0ZSkgKHV0ZjhfY291bnRUcmFpbEJ5dGVzWyh1aW50OF90KWxlYWRCeXRlXSkKKwor
LyoqCisgKiBNYXNrIGEgVVRGLTggbGVhZCBieXRlLCBsZWF2ZSBvbmx5IHRoZSBsb3dlciBiaXRz
IHRoYXQgZm9ybSBwYXJ0IG9mIHRoZSBjb2RlIHBvaW50IHZhbHVlLgorICogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVOF9NQVNLX0xFQURfQllURSwgc2VlIHV0Zl9vbGQuaC4KKyAq
LworI2RlZmluZSBVVEY4X01BU0tfTEVBRF9CWVRFKGxlYWRCeXRlLCBjb3VudFRyYWlsQnl0ZXMp
ICgobGVhZEJ5dGUpJj0oMTw8KDYtKGNvdW50VHJhaWxCeXRlcykpKS0xKQorCisvKiogSXMgdGhp
cyB0aGlzIGNvZGUgcG9pbnQgYSBzaW5nbGUgY29kZSB1bml0IChieXRlKT8gQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjhfSVNfU0lOR0xFKHVjaGFyKSAoKCh1Y2hhcikmMHg4MCk9PTApCisvKiogSXMgdGhp
cyB0aGlzIGNvZGUgdW5pdCB0aGUgbGVhZCBjb2RlIHVuaXQgKGJ5dGUpIG9mIGEgY29kZSBwb2lu
dD8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9JU19MRUFELCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEY4X0lTX0xFQUQodWNoYXIpICgodWludDhfdCkoKHVjaGFyKS0w
eGMwKTwweDNlKQorLyoqIElzIHRoaXMgdGhpcyBjb2RlIHVuaXQgYSB0cmFpbGluZyBjb2RlIHVu
aXQgKGJ5dGUpIG9mIGEgY29kZSBwb2ludD8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0
byBVOF9JU19UUkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9JU19UUkFJTCh1
Y2hhcikgKCgodWNoYXIpJjB4YzApPT0weDgwKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBVbmlj
b2RlIHZhbHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gVXNlIFU4X0xFTkdUSCBvciB0ZXN0ICgodWludDMyX3QpKGMpPjB4N2YpIGlu
c3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfTkVFRF9NVUxUSVBMRV9VQ0hB
UihjKSAoKHVpbnQzMl90KShjKT4weDdmKQorCisvKioKKyAqIEdpdmVuIHRoZSBsZWFkIGNoYXJh
Y3RlciwgaG93IG1hbnkgYnl0ZXMgYXJlIHRha2VuIGJ5IHRoaXMgY29kZSBwb2ludC4KKyAqIElD
VSBkb2VzIG5vdCBkZWFsIHdpdGggY29kZSBwb2ludHMgPjB4MTBmZmZmCisgKiB1bmxlc3MgbmVj
ZXNzYXJ5IGZvciBhZHZhbmNpbmcgaW4gdGhlIGJ5dGUgc3RyZWFtLgorICoKKyAqIFRoZXNlIGxl
bmd0aCBtYWNyb3MgdGFrZSBpbnRvIGFjY291bnQgdGhhdCBmb3IgdmFsdWVzID4weDEwZmZmZgor
ICogdGhlIFVURjhfQVBQRU5EX0NIQVJfU0FGRSBtYWNyb3Mgd291bGQgd3JpdGUgdGhlIGVycm9y
IGNvZGUgcG9pbnQgMHhmZmZmCisgKiB3aXRoIDMgYnl0ZXMuCisgKiBDb2RlIHBvaW50IGNvbXBh
cmlzb25zIG5lZWQgdG8gYmUgaW4gdWludDMyX3QgYmVjYXVzZSBVQ2hhcjMyCisgKiBtYXkgYmUg
YSBzaWduZWQgdHlwZSwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBtdXN0IGJlIHJlY29nbml6ZWQuCisg
KgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0xFTkdUSCBpbnN0ZWFkLCBzZWUgdXRm
LmguCisgKi8KKyNpZiAxCisjICAgZGVmaW5lIFVURjhfQ0hBUl9MRU5HVEgoYykgXAorICAgICAg
ICAoKHVpbnQzMl90KShjKTw9MHg3ZiA/IDEgOiBcCisgICAgICAgICAgICAoKHVpbnQzMl90KShj
KTw9MHg3ZmYgPyAyIDogXAorICAgICAgICAgICAgICAgICgodWludDMyX3QpKChjKS0weDEwMDAw
KT4weGZmZmZmID8gMyA6IDQpIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZWxzZQor
IyAgIGRlZmluZSBVVEY4X0NIQVJfTEVOR1RIKGMpIFwKKyAgICAgICAgKCh1aW50MzJfdCkoYyk8
PTB4N2YgPyAxIDogXAorICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4N2ZmID8gMiA6IFwK
KyAgICAgICAgICAgICAgICAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMyA6IFwKKyAgICAgICAg
ICAgICAgICAgICAgKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmID8gNCA6IFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDNmZmZmZmYgPyA1IDogXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpKGMpPD0weDdmZmZmZmZmID8gNiA6IDMpIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICkgXAorICAgICAgICAgICAgICAgICAgICApIFwKKyAg
ICAgICAgICAgICAgICApIFwKKyAgICAgICAgICAgICkgXAorICAgICAgICApCisjZW5kaWYKKwor
LyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBwZXIgY29kZSBwb2ludC4gQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9NQVhfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X01BWF9DSEFSX0xFTkdUSCA0CisKKy8qKiBBdmVyYWdlIG51bWJlciBvZiBj
b2RlIHVuaXRzIGNvbXBhcmVkIHRvIFVURi0xNi4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQVJSQVlfU0laRShzaXplKSAoKDUq
KHNpemUpKS8yKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9HRVRf
VU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0dFVF9DSEFSX1VOU0FGRShz
LCBpLCBjKSB7IFwKKyAgICBpbnQzMl90IF91dGY4X2dldF9jaGFyX3Vuc2FmZV9pbmRleD0oaW50
MzJfdCkoaSk7IFwKKyAgICBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBfdXRmOF9nZXRf
Y2hhcl91bnNhZmVfaW5kZXgpOyBcCisgICAgVVRGOF9ORVhUX0NIQVJfVU5TQUZFKHMsIF91dGY4
X2dldF9jaGFyX3Vuc2FmZV9pbmRleCwgYyk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIFVzZSBVOF9HRVQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9H
RVRfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgaW50
MzJfdCBfdXRmOF9nZXRfY2hhcl9zYWZlX2luZGV4PShpbnQzMl90KShpKTsgXAorICAgIFVURjhf
U0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgX3V0ZjhfZ2V0X2NoYXJfc2FmZV9pbmRleCk7
IFwKKyAgICBVVEY4X05FWFRfQ0hBUl9TQUZFKHMsIF91dGY4X2dldF9jaGFyX3NhZmVfaW5kZXgs
IGxlbmd0aCwgYywgc3RyaWN0KTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVu
YW1lZCB0byBVOF9ORVhUX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGOF9O
RVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAg
aWYoKHVpbnQ4X3QpKChjKS0weGMwKTwweDM1KSB7IFwKKyAgICAgICAgdWludDhfdCBfX2NvdW50
PVVURjhfQ09VTlRfVFJBSUxfQllURVMoYyk7IFwKKyAgICAgICAgVVRGOF9NQVNLX0xFQURfQllU
RShjLCBfX2NvdW50KTsgXAorICAgICAgICBzd2l0Y2goX19jb3VudCkgeyBcCisgICAgICAgIC8q
IGVhY2ggZm9sbG93aW5nIGJyYW5jaCBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0IG9uZSAqLyBc
CisgICAgICAgIGNhc2UgMzogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgocylbKGkpKytd
JjB4M2YpOyBcCisgICAgICAgIGNhc2UgMjogXAorICAgICAgICAgICAgKGMpPSgoYyk8PDYpfCgo
cylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIGNhc2UgMTogXAorICAgICAgICAgICAgKGMpPSgo
Yyk8PDYpfCgocylbKGkpKytdJjB4M2YpOyBcCisgICAgICAgIC8qIG5vIG90aGVyIGJyYW5jaGVz
IHRvIG9wdGltaXplIHN3aXRjaCgpICovIFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAg
IH0gXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
OF9BUFBFTkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9D
SEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICBpZigodWludDMyX3QpKGMpPD0weDdmKSB7IFwK
KyAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoYyk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAg
ICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4N2ZmKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109
KHVpbnQ4X3QpKCgoYyk+PjYpfDB4YzApOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAg
ICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgICAgICAgICAgKHMpWyhp
KSsrXT0odWludDhfdCkoKChjKT4+MTIpfDB4ZTApOyBcCisgICAgICAgICAgICB9IGVsc2UgeyBc
CisgICAgICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKChjKT4+MTgpfDB4ZjApOyBc
CisgICAgICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDhfdCkoKCgoYyk+PjEyKSYweDNmKXww
eDgwKTsgXAorICAgICAgICAgICAgfSBcCisgICAgICAgICAgICAocylbKGkpKytdPSh1aW50OF90
KSgoKChjKT4+NikmMHgzZil8MHg4MCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIChzKVsoaSkr
K109KHVpbnQ4X3QpKCgoYykmMHgzZil8MHg4MCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfRldEXzFfVU5TQUZFLCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKSB7IFwKKyAgICAoaSkrPTErVVRG
OF9DT1VOVF9UUkFJTF9CWVRFUygocylbaV0pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFU4X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGOF9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50MzJfdCBfX049KG4pOyBc
CisgICAgd2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsg
XAorICAgICAgICAtLV9fTjsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIu
NC4gUmVuYW1lZCB0byBVOF9TRVRfQ1BfU1RBUlRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShV
VEY4X0lTX1RSQUlMKChzKVtpXSkpIHsgLS0oaSk7IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFU4X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGOF9ORVhUX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMp
PShzKVsoaSkrK107IFwKKyAgICBpZigoYyk+PTB4ODApIHsgXAorICAgICAgICBpZihVVEY4X0lT
X0xFQUQoYykpIHsgXAorICAgICAgICAgICAgKGMpPXV0ZjhfbmV4dENoYXJTYWZlQm9keShzLCAm
KGkpLCAoaW50MzJfdCkobGVuZ3RoKSwgYywgc3RyaWN0KTsgXAorICAgICAgICB9IGVsc2UgeyBc
CisgICAgICAgICAgICAoYyk9VVRGOF9FUlJPUl9WQUxVRV8xOyBcCisgICAgICAgIH0gXAorICAg
IH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFU4X0FQUEVORCBpbnN0ZWFk
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X0FQUEVORF9DSEFSX1NBRkUocywgaSwg
bGVuZ3RoLCBjKSAgeyBcCisgICAgaWYoKHVpbnQzMl90KShjKTw9MHg3ZikgeyBcCisgICAgICAg
IChzKVsoaSkrK109KHVpbnQ4X3QpKGMpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAoaSk9
dXRmOF9hcHBlbmRDaGFyU2FmZUJvZHkocywgKGludDMyX3QpKGkpLCAoaW50MzJfdCkobGVuZ3Ro
KSwgYywgTlVMTCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVThfRldEXzEsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfRldEXzFf
U0FGRShzLCBpLCBsZW5ndGgpIFU4X0ZXRF8xKHMsIGksIGxlbmd0aCkKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfRldEX04sIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjhfRldEX05fU0FGRShzLCBpLCBsZW5ndGgsIG4pIFU4X0ZXRF9OKHMsIGksIGxlbmd0
aCwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfU0VUX0NQX1NU
QVJULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9DSEFSX1NUQVJUX1NBRkUo
cywgc3RhcnQsIGkpIFU4X1NFVF9DUF9TVEFSVChzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVThfUFJFVl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICov
CisjZGVmaW5lIFVURjhfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMp
Wy0tKGkpXTsgXAorICAgIGlmKFVURjhfSVNfVFJBSUwoYykpIHsgXAorICAgICAgICB1aW50OF90
IF9fYiwgX19jb3VudD0xLCBfX3NoaWZ0PTY7IFwKK1wKKyAgICAgICAgLyogYyBpcyBhIHRyYWls
IGJ5dGUgKi8gXAorICAgICAgICAoYykmPTB4M2Y7IFwKKyAgICAgICAgZm9yKDs7KSB7IFwKKyAg
ICAgICAgICAgIF9fYj0ocylbLS0oaSldOyBcCisgICAgICAgICAgICBpZihfX2I+PTB4YzApIHsg
XAorICAgICAgICAgICAgICAgIFVURjhfTUFTS19MRUFEX0JZVEUoX19iLCBfX2NvdW50KTsgXAor
ICAgICAgICAgICAgICAgIChjKXw9KFVDaGFyMzIpX19iPDxfX3NoaWZ0OyBcCisgICAgICAgICAg
ICAgICAgYnJlYWs7IFwKKyAgICAgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgICAgICAo
Yyl8PShVQ2hhcjMyKShfX2ImMHgzZik8PF9fc2hpZnQ7IFwKKyAgICAgICAgICAgICAgICArK19f
Y291bnQ7IFwKKyAgICAgICAgICAgICAgICBfX3NoaWZ0Kz02OyBcCisgICAgICAgICAgICB9IFwK
KyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFU4X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhf
QkFDS18xX1VOU0FGRShzLCBpKSB7IFwKKyAgICB3aGlsZShVVEY4X0lTX1RSQUlMKChzKVstLShp
KV0pKSB7fSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JB
Q0tfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1VOU0FG
RShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkg
eyBcCisgICAgICAgIFVURjhfQkFDS18xX1VOU0FGRShzLCBpKTsgXAorICAgICAgICAtLV9fTjsg
XAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9T
RVRfQ1BfTElNSVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4X1NFVF9D
SEFSX0xJTUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBVVEY4X0JBQ0tfMV9VTlNBRkUocywgaSk7
IFwKKyAgICBVVEY4X0ZXRF8xX1VOU0FGRShzLCBpKTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gVXNlIFU4X1BSRVYgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGOF9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9
KHMpWy0tKGkpXTsgXAorICAgIGlmKChjKT49MHg4MCkgeyBcCisgICAgICAgIGlmKChjKTw9MHhi
ZikgeyBcCisgICAgICAgICAgICAoYyk9dXRmOF9wcmV2Q2hhclNhZmVCb2R5KHMsIHN0YXJ0LCAm
KGkpLCBjLCBzdHJpY3QpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAgICAgICAgICAgIChjKT1V
VEY4X0VSUk9SX1ZBTFVFXzE7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCit9CisKKy8qKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFU4X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGOF9CQUNLXzFfU0FGRShzLCBzdGFydCwgaSkgVThfQkFDS18xKHMsIHN0YXJ0
LCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVOF9CQUNLX04sIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjhfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4p
IFU4X0JBQ0tfTihzLCBzdGFydCwgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVThfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEY4
X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCkgVThfU0VUX0NQX0xJTUlU
KHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKy8qIEZvcm1lcmx5IHV0ZjE2LmggLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBJ
cyB1Y2hhciBhIGZpcnN0L2xlYWQgc3Vycm9nYXRlPyBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFVfSVNfTEVBRCBhbmQgVTE2X0lTX0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURl9JU19GSVJTVF9TVVJST0dBVEUodWNoYXIpICgoKHVjaGFyKSYweGZmZmZmYzAwKT09
MHhkODAwKQorCisvKiogSXMgdWNoYXIgYSBzZWNvbmQvdHJhaWwgc3Vycm9nYXRlPyBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19UUkFJTCwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0lTX1NFQ09ORF9TVVJST0dBVEUodWNoYXIpICgo
KHVjaGFyKSYweGZmZmZmYzAwKT09MHhkYzAwKQorCisvKiogQXNzdW1pbmcgYyBpcyBhIHN1cnJv
Z2F0ZSwgaXMgaXQgYSBmaXJzdC9sZWFkIHN1cnJvZ2F0ZT8gQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
UmVuYW1lZCB0byBVX0lTX1NVUlJPR0FURV9MRUFEIGFuZCBVMTZfSVNfU1VSUk9HQVRFX0xFQUQs
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9JU19TVVJST0dBVEVfRklSU1QoYykgKCgo
YykmMHg0MDApPT0wKQorCisvKiogSGVscGVyIGNvbnN0YW50IGZvciBVVEYxNl9HRVRfUEFJUl9W
QUxVRS4gQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU1VSUk9HQVRFX09GRlNF
VCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1NVUlJPR0FURV9PRkZTRVQgKCgweGQ4
MDA8PDEwVUwpKzB4ZGMwMC0weDEwMDAwKQorCisvKiogR2V0IHRoZSBVVEYtMzIgdmFsdWUgZnJv
bSB0aGUgc3Vycm9nYXRlIGNvZGUgdW5pdHMuIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X0dFVF9TVVBQTEVNRU5UQVJZLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYx
Nl9HRVRfUEFJUl9WQUxVRShmaXJzdCwgc2Vjb25kKSBcCisgICAgKCgoZmlyc3QpPDwxMFVMKSso
c2Vjb25kKS1VVEZfU1VSUk9HQVRFX09GRlNFVCkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X0xFQUQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9GSVJT
VF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkgKFVDaGFyKSgoKHN1cHBsZW1lbnRhcnkpPj4xMCkr
MHhkN2MwKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfVFJBSUws
IHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRUNPTkRfU1VSUk9HQVRFKHN1cHBsZW1l
bnRhcnkpIChVQ2hhcikoKChzdXBwbGVtZW50YXJ5KSYweDNmZil8MHhkYzAwKQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVBRCwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGMTZfTEVBRChzdXBwbGVtZW50YXJ5KSBVVEZfRklSU1RfU1VSUk9HQVRFKHN1
cHBsZW1lbnRhcnkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9U
UkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfVFJBSUwoc3VwcGxlbWVudGFy
eSkgVVRGX1NFQ09ORF9TVVJST0dBVEUoc3VwcGxlbWVudGFyeSkKKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX1NJTkdMRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMTZfSVNfU0lOR0xFKHVjaGFyKSAhVVRGX0lTX1NVUlJPR0FURSh1Y2hhcikKKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0lTX0xFQUQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURjE2X0lTX0xFQUQodWNoYXIpIFVURl9JU19GSVJTVF9TVVJS
T0dBVEUodWNoYXIpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9J
U19UUkFJTCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfSVNfVFJBSUwodWNoYXIp
IFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKHVjaGFyKQorCisvKiogRG9lcyB0aGlzIHNjYWxhciBV
bmljb2RlIHZhbHVlIG5lZWQgbXVsdGlwbGUgY29kZSB1bml0cyBmb3Igc3RvcmFnZT8gQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9MRU5HVEggb3IgdGVzdCAoKHVpbnQzMl90KShjKT4weGZm
ZmYpIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X05FRURfTVVMVElQ
TEVfVUNIQVIoYykgKCh1aW50MzJfdCkoYyk+MHhmZmZmKQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVMTZfTEVOR1RILCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBV
VEYxNl9DSEFSX0xFTkdUSChjKSAoKHVpbnQzMl90KShjKTw9MHhmZmZmID8gMSA6IDIpCisKKy8q
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9NQVhfTEVOR1RILCBzZWUgdXRm
X29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9NQVhfQ0hBUl9MRU5HVEggMgorCisvKiogQXZlcmFn
ZSBudW1iZXIgb2YgY29kZSB1bml0cyBjb21wYXJlZCB0byBVVEYtMTYuIEBkZXByZWNhdGVkIElD
VSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9BUlJBWV9T
SVpFKHNpemUpIChzaXplKQorCisvKioKKyAqIEdldCBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20g
YW4gb2Zmc2V0IHRoYXQgcG9pbnRzIHRvIGFueQorICogb2YgdGhlIGNvZGUgdW5pdHMgdGhhdCBi
ZWxvbmcgdG8gdGhhdCBjb2RlIHBvaW50LgorICogQXNzdW1lIDA8PWk8bGVuZ3RoLgorICoKKyAq
IFRoaXMgY291bGQgYmUgdXNlZCBmb3IgaXRlcmF0aW9uIHRvZ2V0aGVyIHdpdGgKKyAqIFVURjE2
X0NIQVJfTEVOR1RIKCkgYW5kIFVURl9JU19FUlJPUigpLAorICogYnV0IHRoZSB1c2Ugb2YgVVRG
MTZfTkVYVF9DSEFSW19VTlNBRkVdKCkgYW5kCisgKiBVVEYxNl9QUkVWX0NIQVJbX1VOU0FGRV0o
KSBpcyBtb3JlIGVmZmljaWVudCBmb3IgdGhhdC4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0dFVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRG
MTZfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbaV07IFwKKyAgICBp
ZihVVEZfSVNfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgaWYoVVRGX0lTX1NVUlJPR0FURV9G
SVJTVChjKSkgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCAo
cylbKGkpKzFdKTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAgICAoYyk9VVRGMTZf
R0VUX1BBSVJfVkFMVUUoKHMpWyhpKS0xXSwgKGMpKTsgXAorICAgICAgICB9IFwKKyAgICB9IFwK
K30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfR0VUIGluc3RlYWQsIHNlZSB1
dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X0dFVF9DSEFSX1NBRkUocywgc3RhcnQsIGksIGxl
bmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpW2ldOyBcCisgICAgaWYoVVRGX0lTX1NV
UlJPR0FURShjKSkgeyBcCisgICAgICAgIHVpbnQxNl90IF9fYzI7IFwKKyAgICAgICAgaWYoVVRG
X0lTX1NVUlJPR0FURV9GSVJTVChjKSkgeyBcCisgICAgICAgICAgICBpZigoaSkrMTwobGVuZ3Ro
KSAmJiBVVEZfSVNfU0VDT05EX1NVUlJPR0FURShfX2MyPShzKVsoaSkrMV0pKSB7IFwKKyAgICAg
ICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoKGMpLCBfX2MyKTsgXAorICAgICAg
ICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0IGJ5IFVU
Rl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAgICAgICAg
fSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQgZmlyc3Qg
c3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVFOyBcCisg
ICAgICAgICAgICB9IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgaWYoKGkpLTE+
PShzdGFydCkgJiYgVVRGX0lTX0ZJUlNUX1NVUlJPR0FURShfX2MyPShzKVsoaSktMV0pKSB7IFwK
KyAgICAgICAgICAgICAgICAoYyk9VVRGMTZfR0VUX1BBSVJfVkFMVUUoX19jMiwgKGMpKTsgXAor
ICAgICAgICAgICAgICAgIC8qIHN0cmljdDogKChjKSYweGZmZmUpPT0weGZmZmUgaXMgY2F1Z2h0
IGJ5IFVURl9JU19FUlJPUigpIGFuZCBVVEZfSVNfVU5JQ09ERV9DSEFSKCkgKi8gXAorICAgICAg
ICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgICAgICAvKiB1bm1hdGNoZWQg
c2Vjb25kIHN1cnJvZ2F0ZSAqLyBcCisgICAgICAgICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxV
RTsgXAorICAgICAgICAgICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSBpZigoc3RyaWN0
KSAmJiAhVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1Jf
VkFMVUU7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQg
dG8gVTE2X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhU
X0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0ocylbKGkpKytdOyBcCisgICAgaWYo
VVRGX0lTX0ZJUlNUX1NVUlJPR0FURShjKSkgeyBcCisgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJ
Ul9WQUxVRSgoYyksIChzKVsoaSkrK10pOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRl
ZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9BUFBFTkRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYxNl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgeyBcCisgICAgaWYo
KHVpbnQzMl90KShjKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3Qp
KGMpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAocylbKGkpKytdPSh1aW50MTZfdCkoKChj
KT4+MTApKzB4ZDdjMCk7IFwKKyAgICAgICAgKHMpWyhpKSsrXT0odWludDE2X3QpKCgoYykmMHgz
ZmYpfDB4ZGMwMCk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0ZXRF8xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRG
MTZfRldEXzFfVU5TQUZFKHMsIGkpIHsgXAorICAgIGlmKFVURl9JU19GSVJTVF9TVVJST0dBVEUo
KHMpWyhpKSsrXSkpIHsgXAorICAgICAgICArKyhpKTsgXAorICAgIH0gXAorfQorCisvKiogQGRl
cHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfRldEX05fVU5TQUZFLCBzZWUgdXRmX29s
ZC5oLiAqLworI2RlZmluZSBVVEYxNl9GV0RfTl9VTlNBRkUocywgaSwgbikgeyBcCisgICAgaW50
MzJfdCBfX049KG4pOyBcCisgICAgd2hpbGUoX19OPjApIHsgXAorICAgICAgICBVVEYxNl9GV0Rf
MV9VTlNBRkUocywgaSk7IFwKKyAgICAgICAgLS1fX047IFwKKyAgICB9IFwKK30KKworLyoqIEBk
ZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9TVEFSVF9VTlNBRkUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VOU0FGRShzLCBp
KSB7IFwKKyAgICBpZihVVEZfSVNfU0VDT05EX1NVUlJPR0FURSgocylbaV0pKSB7IFwKKyAgICAg
ICAgLS0oaSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBV
MTZfTkVYVCBpbnN0ZWFkLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9ORVhUX0NI
QVJfU0FGRShzLCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgeyBcCisgICAgKGMpPShzKVsoaSkrK107
IFwKKyAgICBpZihVVEZfSVNfRklSU1RfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2
X3QgX19jMjsgXAorICAgICAgICBpZigoaSk8KGxlbmd0aCkgJiYgVVRGX0lTX1NFQ09ORF9TVVJS
T0dBVEUoX19jMj0ocylbKGkpXSkpIHsgXAorICAgICAgICAgICAgKysoaSk7IFwKKyAgICAgICAg
ICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRSgoYyksIF9fYzIpOyBcCisgICAgICAgICAgICAv
KiBzdHJpY3Q6ICgoYykmMHhmZmZlKT09MHhmZmZlIGlzIGNhdWdodCBieSBVVEZfSVNfRVJST1Io
KSBhbmQgVVRGX0lTX1VOSUNPREVfQ0hBUigpICovIFwKKyAgICAgICAgfSBlbHNlIGlmKHN0cmlj
dCkge1wKKyAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBmaXJzdCBzdXJyb2dhdGUgKi8gXAorICAg
ICAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2Ug
aWYoKHN0cmljdCkgJiYgIVVURl9JU19VTklDT0RFX0NIQVIoYykpIHsgXAorICAgICAgICAvKiB1
bm1hdGNoZWQgc2Vjb25kIHN1cnJvZ2F0ZSBvciBvdGhlciBub24tY2hhcmFjdGVyICovIFwKKyAg
ICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAorICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0
ZWQgSUNVIDIuNC4gVXNlIFUxNl9BUFBFTkQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5ndGgsIGMpIHsgXAorICAgIGlm
KCh1aW50MzJfdCkoYyk8PTB4ZmZmZikgeyBcCisgICAgICAgIChzKVsoaSkrK109KHVpbnQxNl90
KShjKTsgXAorICAgIH0gZWxzZSBpZigodWludDMyX3QpKGMpPD0weDEwZmZmZikgeyBcCisgICAg
ICAgIGlmKChpKSsxPChsZW5ndGgpKSB7IFwKKyAgICAgICAgICAgIChzKVsoaSkrK109KHVpbnQx
Nl90KSgoKGMpPj4xMCkrMHhkN2MwKTsgXAorICAgICAgICAgICAgKHMpWyhpKSsrXT0odWludDE2
X3QpKCgoYykmMHgzZmYpfDB4ZGMwMCk7IFwKKyAgICAgICAgfSBlbHNlIC8qIG5vdCBlbm91Z2gg
c3BhY2UgKi8geyBcCisgICAgICAgICAgICAocylbKGkpKytdPVVURl9FUlJPUl9WQUxVRTsgXAor
ICAgICAgICB9IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgZXJyb3IgdmFsdWUg
Ki8geyBcCisgICAgICAgIChzKVsoaSkrK109VVRGX0VSUk9SX1ZBTFVFOyBcCisgICAgfSBcCit9
CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0
Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpIFUxNl9G
V0RfMShzLCBpLCBsZW5ndGgpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRv
IFUxNl9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfRldEX05fU0FGRShz
LCBpLCBsZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmgu
ICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX1NUQVJUX1NBRkUocywgc3RhcnQsIGkpIFUxNl9T
RVRfQ1BfU1RBUlQocywgc3RhcnQsIGkpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFUxNl9QUkVWX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZf
UFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAg
IGlmKFVURl9JU19TRUNPTkRfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMpPVVURjE2X0dF
VF9QQUlSX1ZBTFVFKChzKVstLShpKV0sIChjKSk7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkgeyBcCisgICAgaWYoVVRG
X0lTX1NFQ09ORF9TVVJST0dBVEUoKHMpWy0tKGkpXSkpIHsgXAorICAgICAgICAtLShpKTsgXAor
ICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFD
S19OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZfQkFDS19OX1VOU0FG
RShzLCBpLCBuKSB7IFwKKyAgICBpbnQzMl90IF9fTj0obik7IFwKKyAgICB3aGlsZShfX04+MCkg
eyBcCisgICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSk7IFwKKyAgICAgICAgLS1fX047
IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X1NFVF9DUF9MSU1JVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NF
VF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKSB7IFwKKyAgICBpZihVVEZfSVNfRklSU1RfU1VSUk9H
QVRFKChzKVsoaSktMV0pKSB7IFwKKyAgICAgICAgKysoaSk7IFwKKyAgICB9IFwKK30KKworLyoq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBVMTZfUFJFViBpbnN0ZWFkLCBzZWUgdXRmX29sZC5o
LiAqLworI2RlZmluZSBVVEYxNl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3RyaWN0
KSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorICAgIGlmKFVURl9JU19TRUNPTkRfU1VSUk9H
QVRFKGMpKSB7IFwKKyAgICAgICAgdWludDE2X3QgX19jMjsgXAorICAgICAgICBpZigoaSk+KHN0
YXJ0KSAmJiBVVEZfSVNfRklSU1RfU1VSUk9HQVRFKF9fYzI9KHMpWyhpKS0xXSkpIHsgXAorICAg
ICAgICAgICAgLS0oaSk7IFwKKyAgICAgICAgICAgIChjKT1VVEYxNl9HRVRfUEFJUl9WQUxVRShf
X2MyLCAoYykpOyBcCisgICAgICAgICAgICAvKiBzdHJpY3Q6ICgoYykmMHhmZmZlKT09MHhmZmZl
IGlzIGNhdWdodCBieSBVVEZfSVNfRVJST1IoKSBhbmQgVVRGX0lTX1VOSUNPREVfQ0hBUigpICov
IFwKKyAgICAgICAgfSBlbHNlIGlmKHN0cmljdCkge1wKKyAgICAgICAgICAgIC8qIHVubWF0Y2hl
ZCBzZWNvbmQgc3Vycm9nYXRlICovIFwKKyAgICAgICAgICAgIChjKT1VVEZfRVJST1JfVkFMVUU7
IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIGlmKChzdHJpY3QpICYmICFVVEZfSVNfVU5JQ09E
RV9DSEFSKGMpKSB7IFwKKyAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZSBvciBv
dGhlciBub24tY2hhcmFjdGVyICovIFwKKyAgICAgICAgKGMpPVVURl9FUlJPUl9WQUxVRTsgXAor
ICAgIH0gXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfQkFD
S18xLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYxNl9CQUNLXzFfU0FGRShzLCBzdGFy
dCwgaSkgVTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMTZf
QkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pIFUxNl9CQUNLX04ocywgc3RhcnQsIGksIG4pCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfTElNSVQsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjE2X1NFVF9DSEFSX0xJTUlUX1NBRkUocywgc3Rh
cnQsIGksIGxlbmd0aCkgVTE2X1NFVF9DUF9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKQorCisv
KiBGb3JtZXJseSB1dGYzMi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKgorKiBPbGQgZG9jdW1lbnRhdGlvbjoKKyoKKyog
ICBUaGlzIGZpbGUgZGVmaW5lcyBtYWNyb3MgdG8gZGVhbCB3aXRoIFVURi0zMiBjb2RlIHVuaXRz
IGFuZCBjb2RlIHBvaW50cy4KKyogICBTaWduYXR1cmVzIGFuZCBzZW1hbnRpY3MgYXJlIHRoZSBz
YW1lIGFzIGZvciB0aGUgc2ltaWxhcmx5IG5hbWVkIG1hY3JvcworKiAgIGluIHV0ZjE2LmguCisq
ICAgdXRmMzIuaCBpcyBpbmNsdWRlZCBieSB1dGYuaCBhZnRlciB1bmljb2RlL3VtYWNoaW5lLmg8
L3A+CisqICAgYW5kIHNvbWUgY29tbW9uIGRlZmluaXRpb25zLgorKiAgIDxwPjxiPlVzYWdlOjwv
Yj4gIElDVSBjb2RpbmcgZ3VpZGVsaW5lcyBmb3IgaWYoKSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBm
b2xsb3dlZCB3aGVuIHVzaW5nIHRoZXNlIG1hY3Jvcy4KKyogICAgICAgICAgICAgICAgICBDb21w
b3VuZCBzdGF0ZW1lbnRzIChjdXJseSBicmFjZXMge30pIG11c3QgYmUgdXNlZCAgZm9yIGlmLWVs
c2Utd2hpbGUuLi4KKyogICAgICAgICAgICAgICAgICBib2RpZXMgYW5kIGFsbCBtYWNybyBzdGF0
ZW1lbnRzIHNob3VsZCBiZSB0ZXJtaW5hdGVkIHdpdGggc2VtaWNvbG9uLjwvcD4KKyovCisKKy8q
IGludGVybmFsIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfU0FGRShjLCBzdHJpY3QpIFwK
KyAgICAoIShzdHJpY3QpID8gXAorICAgICAgICAodWludDMyX3QpKGMpPD0weDEwZmZmZiA6IFwK
KyAgICAgICAgVVRGX0lTX1VOSUNPREVfQ0hBUihjKSkKKworLyoKKyAqIEZvciB0aGUgc2VtYW50
aWNzIG9mIGFsbCBvZiB0aGVzZSBtYWNyb3MsIHNlZSB1dGYxNi5oLgorICogVGhlIFVURi0zMiB2
ZXJzaW9ucyBhcmUgdHJpdmlhbCBiZWNhdXNlIGFueSBjb2RlIHBvaW50IGlzCisgKiBlbmNvZGVk
IHVzaW5nIGV4YWN0bHkgb25lIGNvZGUgdW5pdC4KKyAqLworCisvKiBzaW5nbGUtY29kZSBwb2lu
dCBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqLworCisvKiBjbGFzc2VzIG9mIGNvZGUgdW5pdCB2YWx1ZXMgKi8KKworLyoqIEBkZXByZWNh
dGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9J
U19TSU5HTEUodWNoYXIpIDEKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfSVNfTEVBRCh1Y2hhcikgMAorLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYz
Ml9JU19UUkFJTCh1Y2hhcikgMAorCisvKiBudW1iZXIgb2YgY29kZSB1bml0cyBwZXIgY29kZSBw
b2ludCAqLworCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xk
LmguICovCisjZGVmaW5lIFVURjMyX05FRURfTVVMVElQTEVfVUNIQVIoYykgMAorLyoqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYz
Ml9DSEFSX0xFTkdUSChjKSAxCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX01BWF9DSEFSX0xFTkdUSCAxCisKKy8qIGF2
ZXJhZ2UgbnVtYmVyIG9mIGNvZGUgdW5pdHMgY29tcGFyZWQgdG8gVVRGLTE2ICovCisKKy8qKiBA
ZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUg
VVRGMzJfQVJSQVlfU0laRShzaXplKSAoc2l6ZSkKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9HRVRfQ0hBUl9VTlNB
RkUocywgaSwgYykgeyBcCisgICAgKGMpPShzKVtpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQg
SUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0dFVF9D
SEFSX1NBRkUocywgc3RhcnQsIGksIGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMp
W2ldOyBcCisgICAgaWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChj
KT1VVEZfRVJST1JfVkFMVUU7IFwKKyAgICB9IFwKK30KKworLyogZGVmaW5pdGlvbnMgd2l0aCBm
b3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Ki8KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEYzMl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpIHsgXAorICAgIChjKT0o
cylbKGkpKytdOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfVU5TQUZFKHMsIGksIGMp
IHsgXAorICAgIChzKVsoaSkrK109KGMpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEXzFfVU5TQUZF
KHMsIGkpIHsgXAorICAgICsrKGkpOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBP
YnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfRldEX05fVU5TQUZFKHMs
IGksIG4pIHsgXAorICAgIChpKSs9KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40
LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJfU1RB
UlRfVU5TQUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xl
dGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX05FWFRfQ0hBUl9TQUZFKHMsIGks
IGxlbmd0aCwgYywgc3RyaWN0KSB7IFwKKyAgICAoYyk9KHMpWyhpKSsrXTsgXAorICAgIGlmKCFV
VEYzMl9JU19TQUZFKGMsIHN0cmljdCkpIHsgXAorICAgICAgICAoYyk9VVRGX0VSUk9SX1ZBTFVF
OyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2Vl
IHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfQVBQRU5EX0NIQVJfU0FGRShzLCBpLCBsZW5n
dGgsIGMpIHsgXAorICAgIGlmKCh1aW50MzJfdCkoYyk8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAg
KHMpWyhpKSsrXT0oYyk7IFwKKyAgICB9IGVsc2UgLyogYz4weDEwZmZmZiwgd3JpdGUgMHhmZmZk
ICovIHsgXAorICAgICAgICAocylbKGkpKytdPTB4ZmZmZDsgXAorICAgIH0gXAorfQorCisvKiog
QGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5l
IFVURjMyX0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSB7IFwKKyAgICArKyhpKTsgXAorfQorCisv
KiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVm
aW5lIFVURjMyX0ZXRF9OX1NBRkUocywgaSwgbGVuZ3RoLCBuKSB7IFwKKyAgICBpZigoKGkpKz0o
bikpPihsZW5ndGgpKSB7IFwKKyAgICAgICAgKGkpPShsZW5ndGgpOyBcCisgICAgfSBcCit9CisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNk
ZWZpbmUgVVRGMzJfU0VUX0NIQVJfU1RBUlRfU0FGRShzLCBzdGFydCwgaSkgeyBcCit9CisKKy8q
IGRlZmluaXRpb25zIHdpdGggYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0
ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfUFJFVl9DSEFSX1VOU0FGRShzLCBp
LCBjKSB7IFwKKyAgICAoYyk9KHMpWy0tKGkpXTsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gT2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX0JBQ0tfMV9V
TlNBRkUocywgaSkgeyBcCisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAy
LjQuIE9ic29sZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fVU5T
QUZFKHMsIGksIG4pIHsgXAorICAgIChpKS09KG4pOyBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJ
Q1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NI
QVJfTElNSVRfVU5TQUZFKHMsIGkpIHsgXAorfQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4g
T2Jzb2xldGUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURjMyX1BSRVZfQ0hBUl9TQUZF
KHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpIHsgXAorICAgIChjKT0ocylbLS0oaSldOyBcCisgICAg
aWYoIVVURjMyX0lTX1NBRkUoYywgc3RyaWN0KSkgeyBcCisgICAgICAgIChjKT1VVEZfRVJST1Jf
VkFMVUU7IFwKKyAgICB9IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29sZXRl
LCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLXzFfU0FGRShzLCBzdGFydCwg
aSkgeyBcCisgICAgLS0oaSk7IFwKK30KKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIE9ic29s
ZXRlLCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEYzMl9CQUNLX05fU0FGRShzLCBzdGFy
dCwgaSwgbikgeyBcCisgICAgKGkpLT0obik7IFwKKyAgICBpZigoaSk8KHN0YXJ0KSkgeyBcCisg
ICAgICAgIChpKT0oc3RhcnQpOyBcCisgICAgfSBcCit9CisKKy8qKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGMzJfU0VUX0NIQVJf
TElNSVRfU0FGRShzLCBpLCBsZW5ndGgpIHsgXAorfQorCisvKiBGb3JtZXJseSB1dGYuaCwgcGFy
dCAyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LworCisvKioKKyAqIEVzdGltYXRlIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBmb3IgYSBzdHJp
bmcgYmFzZWQgb24gdGhlIG51bWJlciBvZiBVVEYtMTYgY29kZSB1bml0cy4KKyAqCisgKiBAZGVw
cmVjYXRlZCBJQ1UgMi40LiBPYnNvbGV0ZSwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBV
VEZfQVJSQVlfU0laRShzaXplKSBVVEYxNl9BUlJBWV9TSVpFKHNpemUpCisKKy8qKiBAZGVwcmVj
YXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9HRVRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAq
LworI2RlZmluZSBVVEZfR0VUX0NIQVJfVU5TQUZFKHMsIGksIGMpICAgICAgICAgICAgICAgICBV
VEYxNl9HRVRfQ0hBUl9VTlNBRkUocywgaSwgYykKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQu
IFVzZSBVMTZfR0VUIGluc3RlYWQsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9HRVRf
Q0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5ndGgsIGMsIHN0cmljdCkgVVRGMTZfR0VUX0NIQVJf
U0FGRShzLCBzdGFydCwgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X05FWFRfVU5TQUZFLCBzZWUgdXRmX29sZC5oLiAqLwor
I2RlZmluZSBVVEZfTkVYVF9DSEFSX1VOU0FGRShzLCBpLCBjKSAgICAgICAgICAgICAgICBVVEYx
Nl9ORVhUX0NIQVJfVU5TQUZFKHMsIGksIGMpCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBV
c2UgVTE2X05FWFQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX05FWFRf
Q0hBUl9TQUZFKHMsIGksIGxlbmd0aCwgYywgc3RyaWN0KSAgVVRGMTZfTkVYVF9DSEFSX1NBRkUo
cywgaSwgbGVuZ3RoLCBjLCBzdHJpY3QpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJl
bmFtZWQgdG8gVTE2X0FQUEVORF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVU
Rl9BUFBFTkRfQ0hBUl9VTlNBRkUocywgaSwgYykgICAgICAgICAgICAgIFVURjE2X0FQUEVORF9D
SEFSX1VOU0FGRShzLCBpLCBjKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9B
UFBFTkQgaW5zdGVhZCwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0FQUEVORF9DSEFS
X1NBRkUocywgaSwgbGVuZ3RoLCBjKSAgICAgICAgVVRGMTZfQVBQRU5EX0NIQVJfU0FGRShzLCBp
LCBsZW5ndGgsIGMpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2
X0ZXRF8xX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF8xX1VOU0FG
RShzLCBpKSAgICAgICAgICAgICAgICAgICAgICAgVVRGMTZfRldEXzFfVU5TQUZFKHMsIGkpCisK
Ky8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9GV0RfMSwgc2VlIHV0Zl9v
bGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF8xX1NBRkUocywgaSwgbGVuZ3RoKSAgICAgICAgICAg
ICAgICAgVVRGMTZfRldEXzFfU0FGRShzLCBpLCBsZW5ndGgpCisKKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OX1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8K
KyNkZWZpbmUgVVRGX0ZXRF9OX1VOU0FGRShzLCBpLCBuKSAgICAgICAgICAgICAgICAgICAgVVRG
MTZfRldEX05fVU5TQUZFKHMsIGksIG4pCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5h
bWVkIHRvIFUxNl9GV0RfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0ZXRF9OX1NB
RkUocywgaSwgbGVuZ3RoLCBuKSAgICAgICAgICAgICAgVVRGMTZfRldEX05fU0FGRShzLCBpLCBs
ZW5ndGgsIG4pCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NF
VF9DUF9TVEFSVF9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hB
Ul9TVEFSVF9VTlNBRkUocywgaSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX1NUQVJUX1VO
U0FGRShzLCBpKQorCisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VU
X0NQX1NUQVJULCBzZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfU1RBUlRf
U0FGRShzLCBzdGFydCwgaSkgICAgICAgICBVVEYxNl9TRVRfQ0hBUl9TVEFSVF9TQUZFKHMsIHN0
YXJ0LCBpKQorCisKKy8qKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFUxNl9QUkVW
X1VOU0FGRSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX1BSRVZfQ0hBUl9VTlNBRkUo
cywgaSwgYykgICAgICAgICAgICAgICAgVVRGMTZfUFJFVl9DSEFSX1VOU0FGRShzLCBpLCBjKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIFUxNl9QUkVWIGluc3RlYWQsIHNlZSB1dGZf
b2xkLmguICovCisjZGVmaW5lIFVURl9QUkVWX0NIQVJfU0FGRShzLCBzdGFydCwgaSwgYywgc3Ry
aWN0KSAgIFVURjE2X1BSRVZfQ0hBUl9TQUZFKHMsIHN0YXJ0LCBpLCBjLCBzdHJpY3QpCisKKwor
LyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMV9VTlNBRkUsIHNl
ZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9CQUNLXzFfVU5TQUZFKHMsIGkpICAgICAgICAg
ICAgICAgICAgICAgIFVURjE2X0JBQ0tfMV9VTlNBRkUocywgaSkKKworLyoqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfMSwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZp
bmUgVVRGX0JBQ0tfMV9TQUZFKHMsIHN0YXJ0LCBpKSAgICAgICAgICAgICAgICAgVVRGMTZfQkFD
S18xX1NBRkUocywgc3RhcnQsIGkpCisKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVTE2X0JBQ0tfTl9VTlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9C
QUNLX05fVU5TQUZFKHMsIGksIG4pICAgICAgICAgICAgICAgICAgIFVURjE2X0JBQ0tfTl9VTlNB
RkUocywgaSwgbikKKworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JB
Q0tfTiwgc2VlIHV0Zl9vbGQuaC4gKi8KKyNkZWZpbmUgVVRGX0JBQ0tfTl9TQUZFKHMsIHN0YXJ0
LCBpLCBuKSAgICAgICAgICAgICAgVVRGMTZfQkFDS19OX1NBRkUocywgc3RhcnQsIGksIG4pCisK
KworLyoqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1NFVF9DUF9MSU1JVF9V
TlNBRkUsIHNlZSB1dGZfb2xkLmguICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVF9VTlNB
RkUocywgaSkgICAgICAgICAgICAgIFVURjE2X1NFVF9DSEFSX0xJTUlUX1VOU0FGRShzLCBpKQor
CisvKiogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBz
ZWUgdXRmX29sZC5oLiAqLworI2RlZmluZSBVVEZfU0VUX0NIQVJfTElNSVRfU0FGRShzLCBzdGFy
dCwgaSwgbGVuZ3RoKSBVVEYxNl9TRVRfQ0hBUl9MSU1JVF9TQUZFKHMsIHN0YXJ0LCBpLCBsZW5n
dGgpCisKKy8qIERlZmluZSBkZWZhdWx0IG1hY3JvcyAoVVRGLTE2ICJzYWZlIikgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICogRG9lcyB0aGlzIGNvZGUg
dW5pdCBhbG9uZSBlbmNvZGUgYSBjb2RlIHBvaW50IChCTVAsIG5vdCBhIHN1cnJvZ2F0ZSk/Cisg
KiBTYW1lIGFzIFVURjE2X0lTX1NJTkdMRS4KKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFt
ZWQgdG8gVV9JU19TSU5HTEUgYW5kIFUxNl9JU19TSU5HTEUsIHNlZSB1dGZfb2xkLmguCisgKi8K
KyNkZWZpbmUgVVRGX0lTX1NJTkdMRSh1Y2hhcikgVTE2X0lTX1NJTkdMRSh1Y2hhcikKKworLyoq
CisgKiBJcyB0aGlzIGNvZGUgdW5pdCB0aGUgZmlyc3Qgb25lIG9mIHNldmVyYWwgKGEgbGVhZCBz
dXJyb2dhdGUpPworICogU2FtZSBhcyBVVEYxNl9JU19MRUFELgorICogQGRlcHJlY2F0ZWQgSUNV
IDIuNC4gUmVuYW1lZCB0byBVX0lTX0xFQUQgYW5kIFUxNl9JU19MRUFELCBzZWUgdXRmX29sZC5o
LgorICovCisjZGVmaW5lIFVURl9JU19MRUFEKHVjaGFyKSBVMTZfSVNfTEVBRCh1Y2hhcikKKwor
LyoqCisgKiBJcyB0aGlzIGNvZGUgdW5pdCBvbmUgb2Ygc2V2ZXJhbCBidXQgbm90IHRoZSBmaXJz
dCBvbmUgKGEgdHJhaWwgc3Vycm9nYXRlKT8KKyAqIFNhbWUgYXMgVVRGMTZfSVNfVFJBSUwuCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVkIHRvIFVfSVNfVFJBSUwgYW5kIFUxNl9JU19U
UkFJTCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfSVNfVFJBSUwodWNoYXIpIFUx
Nl9JU19UUkFJTCh1Y2hhcikKKworLyoqCisgKiBEb2VzIHRoaXMgY29kZSBwb2ludCByZXF1aXJl
IG11bHRpcGxlIGNvZGUgdW5pdHMgKGlzIGl0IGEgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50KT8K
KyAqIFNhbWUgYXMgVVRGMTZfTkVFRF9NVUxUSVBMRV9VQ0hBUi4KKyAqIEBkZXByZWNhdGVkIElD
VSAyLjQuIFVzZSBVMTZfTEVOR1RIIG9yIHRlc3QgKCh1aW50MzJfdCkoYyk+MHhmZmZmKSBpbnN0
ZWFkLgorICovCisjZGVmaW5lIFVURl9ORUVEX01VTFRJUExFX1VDSEFSKGMpIFVURjE2X05FRURf
TVVMVElQTEVfVUNIQVIoYykKKworLyoqCisgKiBIb3cgbWFueSBjb2RlIHVuaXRzIGFyZSB1c2Vk
IHRvIGVuY29kZSB0aGlzIGNvZGUgcG9pbnQgKDEgb3IgMik/CisgKiBTYW1lIGFzIFVURjE2X0NI
QVJfTEVOR1RILgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTEVOR1RI
LCBzZWUgdXRmX29sZC5oLgorICovCisjZGVmaW5lIFVURl9DSEFSX0xFTkdUSChjKSBVMTZfTEVO
R1RIKGMpCisKKy8qKgorICogSG93IG1hbnkgY29kZSB1bml0cyBhcmUgdXNlZCBhdCBtb3N0IGZv
ciBhbnkgVW5pY29kZSBjb2RlIHBvaW50ICgyKT8KKyAqIFNhbWUgYXMgVVRGMTZfTUFYX0NIQVJf
TEVOR1RILgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfTUFYX0xFTkdU
SCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTUFYX0NIQVJfTEVOR1RIIFUxNl9N
QVhfTEVOR1RICisKKy8qKgorICogU2V0IGMgdG8gdGhlIGNvZGUgcG9pbnQgdGhhdCBjb250YWlu
cyB0aGUgY29kZSB1bml0IGkuCisgKiBpIGNvdWxkIHBvaW50IHRvIHRoZSBsZWFkIG9yIHRoZSB0
cmFpbCBzdXJyb2dhdGUgZm9yIHRoZSBjb2RlIHBvaW50LgorICogaSBpcyBub3QgbW9kaWZpZWQu
CisgKiBTYW1lIGFzIFVURjE2X0dFVF9DSEFSLgorICogXHByZSAwPD1pPGxlbmd0aAorICoKKyAq
IEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0dFVCwgc2VlIHV0Zl9vbGQuaC4K
KyAqLworI2RlZmluZSBVVEZfR0VUX0NIQVIocywgc3RhcnQsIGksIGxlbmd0aCwgYykgVTE2X0dF
VChzLCBzdGFydCwgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBv
aW50IHRoYXQgc3RhcnRzIGF0IGNvZGUgdW5pdCBpCisgKiBhbmQgYWR2YW5jZSBpIHRvIGJleW9u
ZCB0aGUgY29kZSB1bml0cyBvZiB0aGlzIGNvZGUgcG9pbnQgKHBvc3QtaW5jcmVtZW50KS4KKyAq
IGkgbXVzdCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9mIGEgY29kZSBwb2ludC4KKyAq
IE90aGVyd2lzZSBjIGlzIHNldCB0byB0aGUgdHJhaWwgdW5pdCAoc3Vycm9nYXRlKSBpdHNlbGYu
CisgKiBTYW1lIGFzIFVURjE2X05FWFRfQ0hBUi4KKyAqIFxwcmUgMDw9aTxsZW5ndGgKKyAqIFxw
b3N0IDA8aTw9bGVuZ3RoCisgKgorICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBV
MTZfTkVYVCwgc2VlIHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfTkVYVF9DSEFSKHMsIGks
IGxlbmd0aCwgYykgVTE2X05FWFQocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFwcGVuZCB0
aGUgY29kZSB1bml0cyBvZiBjb2RlIHBvaW50IGMgdG8gdGhlIHN0cmluZyBhdCBpbmRleCBpCisg
KiBhbmQgYWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgbmV3IGNvZGUgdW5pdHMgKHBvc3QtaW5jcmVt
ZW50KS4KKyAqIFRoZSBjb2RlIHVuaXRzIGJlZ2lubmluZyBhdCBpbmRleCBpIHdpbGwgYmUgb3Zl
cndyaXR0ZW4uCisgKiBTYW1lIGFzIFVURjE2X0FQUEVORF9DSEFSLgorICogXHByZSAwPD1jPD0w
eDEwZmZmZgorICogXHByZSAwPD1pPGxlbmd0aAorICogXHBvc3QgMDxpPD1sZW5ndGgKKyAqCisg
KiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgVTE2X0FQUEVORCBpbnN0ZWFkLCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9BUFBFTkRfQ0hBUihzLCBpLCBsZW5ndGgsIGMpIFVURjE2
X0FQUEVORF9DSEFSX1NBRkUocywgaSwgbGVuZ3RoLCBjKQorCisvKioKKyAqIEFkdmFuY2UgaSB0
byBiZXlvbmQgdGhlIGNvZGUgdW5pdHMgb2YgdGhlIGNvZGUgcG9pbnQgdGhhdCBiZWdpbnMgYXQg
aS4KKyAqIEkuZS4sIGFkdmFuY2UgaSBieSBvbmUgY29kZSBwb2ludC4KKyAqIFNhbWUgYXMgVVRG
MTZfRldEXzEuCisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoK
KyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF8xLCBzZWUgdXRmX29s
ZC5oLgorICovCisjZGVmaW5lIFVURl9GV0RfMShzLCBpLCBsZW5ndGgpIFUxNl9GV0RfMShzLCBp
LCBsZW5ndGgpCisKKy8qKgorICogQWR2YW5jZSBpIHRvIGJleW9uZCB0aGUgY29kZSB1bml0cyBv
ZiB0aGUgbiBjb2RlIHBvaW50cyB3aGVyZSB0aGUgZmlyc3Qgb25lIGJlZ2lucyBhdCBpLgorICog
SS5lLiwgYWR2YW5jZSBpIGJ5IG4gY29kZSBwb2ludHMuCisgKiBTYW1lIGFzIFVUMTZfRldEX04u
CisgKiBccHJlIDA8PWk8bGVuZ3RoCisgKiBccG9zdCAwPGk8PWxlbmd0aAorICoKKyAqIEBkZXBy
ZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0ZXRF9OLCBzZWUgdXRmX29sZC5oLgorICov
CisjZGVmaW5lIFVURl9GV0RfTihzLCBpLCBsZW5ndGgsIG4pIFUxNl9GV0RfTihzLCBpLCBsZW5n
dGgsIG4pCisKKy8qKgorICogVGFrZSB0aGUgcmFuZG9tLWFjY2VzcyBpbmRleCBpIGFuZCBhZGp1
c3QgaXQgc28gdGhhdCBpdCBwb2ludHMgdG8gdGhlIGJlZ2lubmluZworICogb2YgYSBjb2RlIHBv
aW50LgorICogVGhlIGlucHV0IGluZGV4IHBvaW50cyB0byBhbnkgY29kZSB1bml0IG9mIGEgY29k
ZSBwb2ludCBhbmQgaXMgbW92ZWQgdG8gcG9pbnQgdG8KKyAqIHRoZSBmaXJzdCBjb2RlIHVuaXQg
b2YgdGhlIHNhbWUgY29kZSBwb2ludC4gaSBpcyBuZXZlciBpbmNyZW1lbnRlZC4KKyAqIEluIG90
aGVyIHdvcmRzLCBpZiBpIHBvaW50cyB0byBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGlzIHByZWNl
ZGVkIGJ5IGEgbWF0Y2hpbmcKKyAqIGxlYWQgc3Vycm9nYXRlLCB0aGVuIGkgaXMgZGVjcmVtZW50
ZWQuIE90aGVyd2lzZSBpdCBpcyBub3QgbW9kaWZpZWQuCisgKiBUaGlzIGNhbiBiZSB1c2VkIHRv
IHN0YXJ0IGFuIGl0ZXJhdGlvbiB3aXRoIFVURl9ORVhUX0NIQVIoKSBmcm9tIGEgcmFuZG9tIGlu
ZGV4LgorICogU2FtZSBhcyBVVEYxNl9TRVRfQ0hBUl9TVEFSVC4KKyAqIFxwcmUgc3RhcnQ8PWk8
bGVuZ3RoCisgKiBccG9zdCBzdGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1Ug
Mi40LiBSZW5hbWVkIHRvIFUxNl9TRVRfQ1BfU1RBUlQsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNk
ZWZpbmUgVVRGX1NFVF9DSEFSX1NUQVJUKHMsIHN0YXJ0LCBpKSBVMTZfU0VUX0NQX1NUQVJUKHMs
IHN0YXJ0LCBpKQorCisvKioKKyAqIFNldCBjIHRvIHRoZSBjb2RlIHBvaW50IHRoYXQgaGFzIGNv
ZGUgdW5pdHMgYmVmb3JlIGkKKyAqIGFuZCBtb3ZlIGkgYmFja3dhcmQgKHRvd2FyZHMgdGhlIGJl
Z2lubmluZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvZiB0aGlz
IGNvZGUgcG9pbnQgKHByZS1pbmNyZW1lbnQpLgorICogaSBtdXN0IHBvaW50IHRvIHRoZSBmaXJz
dCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBvZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0
aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZfUFJFVl9DSEFSLgorICogXHByZSBzdGFy
dDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0aAorICoKKyAqIEBkZXByZWNhdGVk
IElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X1BSRVYsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZp
bmUgVVRGX1BSRVZfQ0hBUihzLCBzdGFydCwgaSwgYykgVTE2X1BSRVYocywgc3RhcnQsIGksIGMp
CisKKy8qKgorICogTW92ZSBpIGJhY2t3YXJkICh0b3dhcmRzIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHN0cmluZykKKyAqIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb2YgdGhlIGNvZGUgcG9pbnQgdGhh
dCBoYXMgY29kZSB1bml0cyBiZWZvcmUgaS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBv
bmUgY29kZSBwb2ludC4KKyAqIGkgbXVzdCBwb2ludCB0byB0aGUgZmlyc3QgY29kZSB1bml0IGFm
dGVyIHRoZSBsYXN0IHVuaXQgb2YgYSBjb2RlIHBvaW50IChpPT1sZW5ndGggaXMgYWxsb3dlZCku
CisgKiBTYW1lIGFzIFVURjE2X0JBQ0tfMS4KKyAqIFxwcmUgc3RhcnQ8aTw9bGVuZ3RoCisgKiBc
cG9zdCBzdGFydDw9aTxsZW5ndGgKKyAqCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBSZW5hbWVk
IHRvIFUxNl9CQUNLXzEsIHNlZSB1dGZfb2xkLmguCisgKi8KKyNkZWZpbmUgVVRGX0JBQ0tfMShz
LCBzdGFydCwgaSkgVTE2X0JBQ0tfMShzLCBzdGFydCwgaSkKKworLyoqCisgKiBNb3ZlIGkgYmFj
a3dhcmQgKHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nKQorICogdG8gdGhlIGZp
cnN0IGNvZGUgdW5pdCBvZiB0aGUgbiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgY29kZSB1bml0cyBi
ZWZvcmUgaS4KKyAqIEkuZS4sIG1vdmUgaSBiYWNrd2FyZCBieSBuIGNvZGUgcG9pbnRzLgorICog
aSBtdXN0IHBvaW50IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgYWZ0ZXIgdGhlIGxhc3QgdW5pdCBv
ZiBhIGNvZGUgcG9pbnQgKGk9PWxlbmd0aCBpcyBhbGxvd2VkKS4KKyAqIFNhbWUgYXMgVVRGMTZf
QkFDS19OLgorICogXHByZSBzdGFydDxpPD1sZW5ndGgKKyAqIFxwb3N0IHN0YXJ0PD1pPGxlbmd0
aAorICoKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFJlbmFtZWQgdG8gVTE2X0JBQ0tfTiwgc2Vl
IHV0Zl9vbGQuaC4KKyAqLworI2RlZmluZSBVVEZfQkFDS19OKHMsIHN0YXJ0LCBpLCBuKSBVMTZf
QkFDS19OKHMsIHN0YXJ0LCBpLCBuKQorCisvKioKKyAqIFRha2UgdGhlIHJhbmRvbS1hY2Nlc3Mg
aW5kZXggaSBhbmQgYWRqdXN0IGl0IHNvIHRoYXQgaXQgcG9pbnRzIGJleW9uZAorICogYSBjb2Rl
IHBvaW50LiBUaGUgaW5wdXQgaW5kZXggcG9pbnRzIGJleW9uZCBhbnkgY29kZSB1bml0CisgKiBv
ZiBhIGNvZGUgcG9pbnQgYW5kIGlzIG1vdmVkIHRvIHBvaW50IGJleW9uZCB0aGUgbGFzdCBjb2Rl
IHVuaXQgb2YgdGhlIHNhbWUKKyAqIGNvZGUgcG9pbnQuIGkgaXMgbmV2ZXIgZGVjcmVtZW50ZWQu
CisgKiBJbiBvdGhlciB3b3JkcywgaWYgaSBwb2ludHMgdG8gYSB0cmFpbCBzdXJyb2dhdGUgdGhh
dCBpcyBwcmVjZWRlZCBieSBhIG1hdGNoaW5nCisgKiBsZWFkIHN1cnJvZ2F0ZSwgdGhlbiBpIGlz
IGluY3JlbWVudGVkLiBPdGhlcndpc2UgaXQgaXMgbm90IG1vZGlmaWVkLgorICogVGhpcyBjYW4g
YmUgdXNlZCB0byBzdGFydCBhbiBpdGVyYXRpb24gd2l0aCBVVEZfUFJFVl9DSEFSKCkgZnJvbSBh
IHJhbmRvbSBpbmRleC4KKyAqIFNhbWUgYXMgVVRGMTZfU0VUX0NIQVJfTElNSVQuCisgKiBccHJl
IHN0YXJ0PGk8PWxlbmd0aAorICogXHBvc3Qgc3RhcnQ8aTw9bGVuZ3RoCisgKgorICogQGRlcHJl
Y2F0ZWQgSUNVIDIuNC4gUmVuYW1lZCB0byBVMTZfU0VUX0NQX0xJTUlULCBzZWUgdXRmX29sZC5o
LgorICovCisjZGVmaW5lIFVURl9TRVRfQ0hBUl9MSU1JVChzLCBzdGFydCwgaSwgbGVuZ3RoKSBV
MTZfU0VUX0NQX0xJTUlUKHMsIHN0YXJ0LCBpLCBsZW5ndGgpCisKKyNlbmRpZiAvKiBVX0hJREVf
REVQUkVDQVRFRF9BUEkgKi8KKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL2ljdS91bmljb2RlL3V0eXBlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUv
dXR5cGVzLmgKaW5kZXggMDBiZjE0Y2U4ZTZlNWQ2ZWM4ZWQ4N2Q4ZTk1NjE3MGNhNTc3ODdiMi4u
OGY5MjRjOWQxNDI0MTc5Mjg0NjRiNzk0NDc5NjEyMTc2MDEwMjliNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvaWN1L3VuaWNvZGUvdXR5cGVzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgotKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICoKQEAgLTM0LDkgKzM0LDEzIEBACiAKIAogI2luY2x1ZGUg
InVuaWNvZGUvdW1hY2hpbmUuaCIKLSNpbmNsdWRlICJ1bmljb2RlL3V0Zi5oIgogI2luY2x1ZGUg
InVuaWNvZGUvdXZlcnNpb24uaCIKICNpbmNsdWRlICJ1bmljb2RlL3Vjb25maWcuaCIKKyNpbmNs
dWRlIDxmbG9hdC5oPgorCisjaWYgIVVfTk9fREVGQVVMVF9JTkNMVURFX1VURl9IRUFERVJTCisj
ICAgaW5jbHVkZSAidW5pY29kZS91dGYuaCIKKyNlbmRpZgogCiAvKiEKICAqIFxmaWxlCkBAIC01
Myw5ICs1Nyw5IEBACiAgKiBcZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJCiAgKiBAaW50ZXJuYWwK
ICAqLwotI2lmZGVmIFhQX0NQTFVTUExVUworI2lmZGVmIF9fY3BsdXNwbHVzCiAjICAgaWZuZGVm
IFVfU0hPV19DUExVU1BMVVNfQVBJCi0jICAgICAgIGRlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQ
SSAxCisjICAgICAgIGRlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAwCiAjICAgZW5kaWYKICNl
bHNlCiAjICAgdW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKQEAgLTY3LDYgKzcxLDEyIEBACiAv
KioKICAqIFxkZWYgVV9ISURFX0RSQUZUX0FQSQogICogRGVmaW5lIHRoaXMgdG8gMSB0byByZXF1
ZXN0IHRoYXQgZHJhZnQgQVBJIGJlICJoaWRkZW4iCisgKiBAaW50ZXJuYWwKKyAqLworLyoqCisg
KiBcZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAqIERlZmluZSB0aGlzIHRvIDEgdG8gcmVxdWVz
dCB0aGF0IGludGVybmFsIEFQSSBiZSAiaGlkZGVuIgorICogQGludGVybmFsCiAgKi8KICNpZiAh
VV9ERUZBVUxUX1NIT1dfRFJBRlQgJiYgIWRlZmluZWQoVV9TSE9XX0RSQUZUX0FQSSkKICNkZWZp
bmUgVV9ISURFX0RSQUZUX0FQSSAxCkBAIC03NSwxMTYgKzg1LDggQEAKICNkZWZpbmUgVV9ISURF
X0lOVEVSTkFMX0FQSSAxCiAjZW5kaWYKIAotI2lmZGVmIFVfSElERV9EUkFGVF9BUEkKLSNpbmNs
dWRlICJ1bmljb2RlL3VkcmFmdC5oIgotI2VuZGlmCi0KLSNpZmRlZiBVX0hJREVfREVQUkVDQVRF
RF9BUEkKLSNpbmNsdWRlICJ1bmljb2RlL3VkZXByY3RkLmgiCi0jZW5kaWYKLQotI2lmZGVmIFVf
SElERV9ERVBSRUNBVEVEX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdW9ic2xldGUuaCIKLSNlbmRp
ZgotCi0jaWZkZWYgVV9ISURFX0lOVEVSTkFMX0FQSQotI2luY2x1ZGUgInVuaWNvZGUvdWludHJu
YWwuaCIKLSNlbmRpZgotCi0jaWZkZWYgVV9ISURFX1NZU1RFTV9BUEkKLSNpbmNsdWRlICJ1bmlj
b2RlL3VzeXN0ZW0uaCIKLSNlbmRpZgotCiAvKiogQH0gKi8KIAotCi0vKj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCi0vKiBjaGFyIENoYXJhY3RlciBzZXQgZmFtaWx5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0K
LS8qKgotICogVV9DSEFSU0VUX0ZBTUlMWSBpcyBlcXVhbCB0byB0aGlzIHZhbHVlIHdoZW4gdGhl
IHBsYXRmb3JtIGlzIGFuIEFTQ0lJIGJhc2VkIHBsYXRmb3JtLgotICogQHN0YWJsZSBJQ1UgMi4w
Ci0gKi8KLSNkZWZpbmUgVV9BU0NJSV9GQU1JTFkgMAotCi0vKioKLSAqIFVfQ0hBUlNFVF9GQU1J
TFkgaXMgZXF1YWwgdG8gdGhpcyB2YWx1ZSB3aGVuIHRoZSBwbGF0Zm9ybSBpcyBhbiBFQkNESUMg
YmFzZWQgcGxhdGZvcm0uCi0gKiBAc3RhYmxlIElDVSAyLjAKLSAqLwotI2RlZmluZSBVX0VCQ0RJ
Q19GQU1JTFkgMQotCi0vKioKLSAqIFxkZWYgVV9DSEFSU0VUX0ZBTUlMWQotICoKLSAqIDxwPlRo
ZXNlIGRlZmluaXRpb25zIGFsbG93IHRvIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHRleHQKLSAq
IGluIHRoZSBjaGFyIGRhdGEgdHlwZSBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybSBhbmQgdGhl
IGNvbXBpbGVyLgotICogSXQgaXMgZW5vdWdoIHRvIGRldGVybWluZSB0aGUgY29kZSBwb2ludCB2
YWx1ZXMgb2YgImludmFyaWFudCBjaGFyYWN0ZXJzIiwKLSAqIHdoaWNoIGFyZSB0aGUgb25lcyBz
aGFyZWQgYnkgYWxsIGVuY29kaW5ncyB0aGF0IGFyZSBpbiB1c2UKLSAqIG9uIGEgZ2l2ZW4gcGxh
dGZvcm0uPC9wPgotICoKLSAqIDxwPlRob3NlICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgc2hvdWxk
IGJlIGFsbCB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UKLSAqIGxhdGluIGxldHRlcnMsIHRo
ZSBkaWdpdHMsIHRoZSBzcGFjZSwgYW5kICJiYXNpYyBwdW5jdHVhdGlvbiIuCi0gKiBBbHNvLCAn
XFxuJywgJ1xccicsICdcXHQnIHNob3VsZCBiZSBhdmFpbGFibGUuPC9wPgotICoKLSAqIDxwPlRo
ZSBsaXN0IG9mICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgaXM6PGJyPgotICogXGNvZGUKLSAqICAg
IEEtWiAgYS16ICAwLTkgIFNQQUNFICAiICAlICAmYW1wOyAgJyAgKCAgKSAgKiAgKyAgLCAgLSAg
LiAgLyAgOiAgOyAgPCAgPSAgPiAgPyAgXwotICogXGVuZGNvZGUKLSAqIDxicj4KLSAqICg1MiBs
ZXR0ZXJzICsgMTAgbnVtYmVycyArIDIwIHB1bmMvc3ltL3NwYWNlID0gODIgdG90YWwpPC9wPgot
ICoKLSAqIDxwPlRoaXMgbWF0Y2hlcyB0aGUgSUJNIFN5bnRhY3RpYyBDaGFyYWN0ZXIgU2V0IChD
UyA2NDApLjwvcD4KLSAqCi0gKiA8cD5JbiBvdGhlciB3b3JkcywgYWxsIHRoZSBncmFwaGljIGNo
YXJhY3RlcnMgaW4gNy1iaXQgQVNDSUkgc2hvdWxkCi0gKiBiZSBzYWZlbHkgYWNjZXNzaWJsZSBl
eGNlcHQgdGhlIGZvbGxvd2luZzo8L3A+Ci0gKgotICogXGNvZGUKLSAqICAgICdcJyA8YmFja3Ns
YXNoPgotICogICAgJ1snIDxsZWZ0IGJyYWNrZXQ+Ci0gKiAgICAnXScgPHJpZ2h0IGJyYWNrZXQ+
Ci0gKiAgICAneycgPGxlZnQgYnJhY2U+Ci0gKiAgICAnfScgPHJpZ2h0IGJyYWNlPgotICogICAg
J14nIDxjaXJjdW1mbGV4PgotICogICAgJ34nIDx0aWxkZT4KLSAqICAgICchJyA8ZXhjbGFtYXRp
b24gbWFyaz4KLSAqICAgICcjJyA8bnVtYmVyIHNpZ24+Ci0gKiAgICAnfCcgPHZlcnRpY2FsIGxp
bmU+Ci0gKiAgICAnJCcgPGRvbGxhciBzaWduPgotICogICAgJ0AnIDxjb21tZXJjaWFsIGF0Pgot
ICogICAgJ2AnIDxncmF2ZSBhY2NlbnQ+Ci0gKiBcZW5kY29kZQotICogQHN0YWJsZSBJQ1UgMi4w
Ci0gKi8KLQotI2lmbmRlZiBVX0NIQVJTRVRfRkFNSUxZCi0jICAgZGVmaW5lIFVfQ0hBUlNFVF9G
QU1JTFkgMAotI2VuZGlmCi0KLS8qKgotICogXGRlZiBVX0NIQVJTRVRfSVNfVVRGOAotICoKLSAq
IEhhcmRjb2RlIHRoZSBkZWZhdWx0IGNoYXJzZXQgdG8gVVRGLTguCi0gKgotICogSWYgdGhpcyBp
cyBzZXQgdG8gMSwgdGhlbgotICogLSBJQ1Ugd2lsbCBhc3N1bWUgdGhhdCBhbGwgbm9uLWludmFy
aWFudCBjaGFyKiwgU3RyaW5nUGllY2UsIHN0ZDo6c3RyaW5nIGV0Yy4KLSAqICAgY29udGFpbiBV
VEYtOCB0ZXh0LCByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHN5c3RlbSBBUEkgdXNlcwotICogLSBz
b21lIElDVSBjb2RlIHdpbGwgdXNlIGZhc3QgZnVuY3Rpb25zIGxpa2UgdV9zdHJGcm9tVVRGOCgp
Ci0gKiAgIHJhdGhlciB0aGFuIHRoZSBtb3JlIGdlbmVyYWwgYW5kIG1vcmUgaGVhdnktd2VpZ2h0
IGNvbnZlcnNpb24gQVBJICh1Y252LmgpCi0gKiAtIHVjbnZfZ2V0RGVmYXVsdE5hbWUoKSBhbHdh
eXMgcmV0dXJucyAiVVRGLTgiCi0gKiAtIHVjbnZfc2V0RGVmYXVsdE5hbWUoKSBpcyBkaXNhYmxl
ZCBhbmQgd2lsbCBub3QgY2hhbmdlIHRoZSBkZWZhdWx0IGNoYXJzZXQKLSAqIC0gc3RhdGljIGJ1
aWxkcyBvZiBJQ1UgYXJlIHNtYWxsZXIKLSAqIC0gbW9yZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWls
YWJsZSB3aXRoIHRoZSBVQ09ORklHX05PX0NPTlZFUlNJT04gYnVpbGQtdGltZQotICogICBjb25m
aWd1cmF0aW9uIG9wdGlvbiAoc2VlIHVuaWNvZGUvdWNvbmZpZy5oKQotICogLSB0aGUgVUNPTkZJ
R19OT19DT05WRVJTSU9OIGJ1aWxkIG9wdGlvbiBpbiB1Y29uZmlnLmggaXMgbW9yZSB1c2FibGUK
LSAqCi0gKiBAc3RhYmxlIElDVSA0LjIKLSAqIEBzZWUgVUNPTkZJR19OT19DT05WRVJTSU9OCi0g
Ki8KLSNpZm5kZWYgVV9DSEFSU0VUX0lTX1VURjgKLSMgICBkZWZpbmUgVV9DSEFSU0VUX0lTX1VU
RjggMAotI2VuZGlmCi0KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIElDVURBVEEgbmFtaW5n
IHNjaGVtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTIzMiw5ICsxMzQsMTEgQEAKICAqIElD
VSAxLjgueCBvbiBFQkNESUMsIGV0Yy4uCiAgKiBAc3RhYmxlIElDVSAyLjAKICAqLwotI2RlZmlu
ZSBVX0lDVURBVEFfTkFNRSAgICAiaWN1ZHQiIFVfSUNVX1ZFUlNJT05fU0hPUlQgVV9JQ1VEQVRB
X1RZUEVfTEVUVEVSICAvKio8IEBpbnRlcm5hbCAqLworI2RlZmluZSBVX0lDVURBVEFfTkFNRSAg
ICAiaWN1ZHQiIFVfSUNVX1ZFUlNJT05fU0hPUlQgVV9JQ1VEQVRBX1RZUEVfTEVUVEVSCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKICNkZWZpbmUgVV9VU1JEQVRBX05BTUUgICAgInVzcmR0
IiBVX0lDVV9WRVJTSU9OX1NIT1JUIFVfSUNVREFUQV9UWVBFX0xFVFRFUiAgLyoqPCBAaW50ZXJu
YWwgKi8KLSNkZWZpbmUgVV9VU0VfVVNSREFUQSAgICAgMCAgLyoqPCBAaW50ZXJuYWwgKi8KKyNk
ZWZpbmUgVV9VU0VfVVNSREFUQSAgICAgMSAgLyoqPCBAaW50ZXJuYWwgKi8KKyNlbmRpZiAgLyog
VV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKioKICAqICBVX0lDVV9FTlRSWV9QT0lOVCBpcyB0
aGUgbmFtZSBvZiB0aGUgRExMIGVudHJ5IHBvaW50IHRvIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LgpA
QCAtMjQ3LDM4ICsxNTEsMjggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwjZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UIGljdWR0MTlfZGF0CiAgKiBAc3RhYmxlIElDVSAy
LjQKICAqLwotI2RlZmluZSBVX0lDVURBVEFfRU5UUllfUE9JTlQgIFVfREVGMl9JQ1VEQVRBX0VO
VFJZX1BPSU5UKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNLCBVX0lDVV9WRVJTSU9OX01JTk9SX05V
TSkKKyNkZWZpbmUgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UICBVX0RFRjJfSUNVREFUQV9FTlRSWV9Q
T0lOVChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSxVX0xJQl9TVUZGSVhfQ19OQU1FKQogCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgotICogRG8gbm90IHVzZS4KKyAqIERvIG5vdCB1
c2UuIE5vdGUgdGhhdCBpdCdzIE9LIGZvciB0aGUgMm5kIGFyZ3VtZW50IHRvIGJlIHVuZGVmaW5l
ZCAobGl0ZXJhbCkuCiAgKiBAaW50ZXJuYWwKICAqLwotI2RlZmluZSBVX0RFRjJfSUNVREFUQV9F
TlRSWV9QT0lOVChtYWpvciwgbWlub3IpIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQobWFqb3Is
IG1pbm9yKQorI2RlZmluZSBVX0RFRjJfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvcixzdWZmKSBV
X0RFRl9JQ1VEQVRBX0VOVFJZX1BPSU5UKG1ham9yLHN1ZmYpCisKIC8qKgogICogRG8gbm90IHVz
ZS4KICAqIEBpbnRlcm5hbAogICovCiAjaWZuZGVmIFVfREVGX0lDVURBVEFfRU5UUllfUE9JTlQK
IC8qIGFmZmVjdGVkIGJ5IHN5bWJvbCByZW5hbWluZy4gU2VlIHBsYXRmb3JtLmggKi8KLSNkZWZp
bmUgVV9ERUZfSUNVREFUQV9FTlRSWV9QT0lOVChtYWpvciwgbWlub3IpIGljdWR0IyNtYWpvciMj
bWlub3IjI19kYXQKLSNlbmRpZgotCi0vKioKLSAqIFxkZWYgVV9DQUxMQ09OVgotICogU2ltaWxh
ciB0byBVX0NERUNMX0JFR0lOL1VfQ0RFQ0xfRU5ELCB0aGlzIHF1YWxpZmllciBpcyBuZWNlc3Nh
cnkKLSAqIGluIGNhbGxiYWNrIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBjYWxsaW5nIGNvbnZlbnRpb24KLSAqIGlzIGNvbXBhdGlibGUuCi0gKgotICogVGhpcyBpcyBv
bmx5IHVzZWQgZm9yIG5vbi1JQ1UtQVBJIGZ1bmN0aW9ucy4KLSAqIFdoZW4gYSBmdW5jdGlvbiBp
cyBhIHB1YmxpYyBJQ1UgQVBJLAotICogeW91IG11c3QgdXNlIHRoZSBVX0NBUEkgYW5kIFVfRVhQ
T1JUMiBxdWFsaWZpZXJzLgotICogQHN0YWJsZSBJQ1UgMi4wCi0gKi8KLSNpZiBkZWZpbmVkKE9T
MzkwKSAmJiBkZWZpbmVkKFhQX0NQTFVTUExVUykKLSMgICAgZGVmaW5lIFVfQ0FMTENPTlYgX19j
ZGVjbAorI2lmbmRlZiBVX0xJQl9TVUZGSVhfQ19OQU1FCisjZGVmaW5lIFVfREVGX0lDVURBVEFf
RU5UUllfUE9JTlQobWFqb3IsIHN1ZmYpIGljdWR0IyNtYWpvciMjX2RhdAogI2Vsc2UKLSMgICAg
ZGVmaW5lIFVfQ0FMTENPTlYgVV9FWFBPUlQyCisjZGVmaW5lIFVfREVGX0lDVURBVEFfRU5UUllf
UE9JTlQobWFqb3IsIHN1ZmYpIGljdWR0IyNzdWZmICMjIG1ham9yIyNfZGF0CisjZW5kaWYKICNl
bmRpZgorI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCiAKIC8qKgogICogXGRlZiBO
VUxMCkBAIC0yODYsNyArMTgwLDcgQEAKICAqIEBzdGFibGUgSUNVIDIuMAogICovCiAjaWZuZGVm
IE5VTEwKLSNpZmRlZiBYUF9DUExVU1BMVVMKKyNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBO
VUxMICAgIDAKICNlbHNlCiAjZGVmaW5lIE5VTEwgICAgKCh2b2lkICopMCkKQEAgLTMxNSw1NCAr
MjA5LDE3IEBAIHR5cGVkZWYgZG91YmxlIFVEYXRlOwogLyoqIFRoZSBudW1iZXIgb2YgbWlsbGlz
ZWNvbmRzIHBlciBkYXkgQHN0YWJsZSBJQ1UgMi4wICovCiAjZGVmaW5lIFVfTUlMTElTX1BFUl9E
QVkgICAgICAgKDg2NDAwMDAwKQogCi0KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLS8qIFVDbGFz
c0lELWJhc2VkIFJUVEkgKi8KLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiAKKyAqIE1heGlt
dW0gVURhdGUgdmFsdWUgCisgKiBAc3RhYmxlIElDVSA0LjggCisgKi8gCisjZGVmaW5lIFVfREFU
RV9NQVggREJMX01BWAogCiAvKioKLSAqIFVDbGFzc0lEIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2xh
c3NlcyB3aXRob3V0IHVzaW5nIFJUVEksIHNpbmNlIFJUVEkKLSAqIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkIGJ5IGFsbCBDKysgY29tcGlsZXJzLiAgRWFjaCBjbGFzcyBoaWVyYXJjaHkgd2hpY2ggbmVl
ZHMKLSAqIHRvIGltcGxlbWVudCBwb2x5bW9ycGhpYyBjbG9uZSgpIG9yIG9wZXJhdG9yPT0oKSBk
ZWZpbmVzIHR3byBtZXRob2RzLAotICogZGVzY3JpYmVkIGluIGRldGFpbCBiZWxvdy4gIFVDbGFz
c0lEIHZhbHVlcyBjYW4gYmUgY29tcGFyZWQgdXNpbmcKLSAqIG9wZXJhdG9yPT0oKS4gTm90aGlu
ZyBlbHNlIHNob3VsZCBiZSBkb25lIHdpdGggdGhlbS4KLSAqCi0gKiBccGFyCi0gKiBnZXREeW5h
bWljQ2xhc3NJRCgpIGlzIGRlY2xhcmVkIGluIHRoZSBiYXNlIGNsYXNzIG9mIHRoZSBoaWVyYXJj
aHkgYXMKLSAqIGEgcHVyZSB2aXJ0dWFsLiAgRWFjaCBjb25jcmV0ZSBzdWJjbGFzcyBpbXBsZW1l
bnRzIGl0IGluIHRoZSBzYW1lIHdheToKLSAqCi0gKiBcY29kZQotICogICAgICBjbGFzcyBCYXNl
IHsKLSAqICAgICAgcHVibGljOgotICogICAgICAgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCgpIGNvbnN0ID0gMDsKLSAqICAgICAgfQotICoKLSAqICAgICAgY2xhc3MgRGVy
aXZlZCB7Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAgICAgICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0
RHluYW1pY0NsYXNzSUQoKSBjb25zdAotICogICAgICAgICAgICB7IHJldHVybiBEZXJpdmVkOjpn
ZXRTdGF0aWNDbGFzc0lEKCk7IH0KLSAqICAgICAgfQotICogXGVuZGNvZGUKLSAqCi0gKiBFYWNo
IGNvbmNyZXRlIGNsYXNzIGltcGxlbWVudHMgZ2V0U3RhdGljQ2xhc3NJRCgpIGFzIHdlbGwsIHdo
aWNoIGFsbG93cwotICogY2xpZW50cyB0byB0ZXN0IGZvciBhIHNwZWNpZmljIHR5cGUuCi0gKgot
ICogXGNvZGUKLSAqICAgICAgY2xhc3MgRGVyaXZlZCB7Ci0gKiAgICAgIHB1YmxpYzoKLSAqICAg
ICAgICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCgpOwotICog
ICAgICBwcml2YXRlOgotICogICAgICAgICAgc3RhdGljIGNoYXIgZmdDbGFzc0lEOwotICogICAg
ICB9Ci0gKgotICogICAgICAvLyBJbiBEZXJpdmVkLmNwcDoKLSAqICAgICAgVUNsYXNzSUQgRGVy
aXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpCi0gKiAgICAgICAgeyByZXR1cm4gKFVDbGFzc0lEKSZE
ZXJpdmVkOjpmZ0NsYXNzSUQ7IH0KLSAqICAgICAgY2hhciBEZXJpdmVkOjpmZ0NsYXNzSUQgPSAw
OyAvLyBWYWx1ZSBpcyBpcnJlbGV2YW50Ci0gKiBcZW5kY29kZQotICogQHN0YWJsZSBJQ1UgMi4w
Ci0gKi8KLXR5cGVkZWYgdm9pZCogVUNsYXNzSUQ7CisgKiBNaW5pbXVtIFVEYXRlIHZhbHVlIAor
ICogQHN0YWJsZSBJQ1UgNC44IAorICovIAorI2RlZmluZSBVX0RBVEVfTUlOIC1VX0RBVEVfTUFY
CiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qIFNoYXJlZCBsaWJyYXJ5L0RMTCBpbXBvcnQt
ZXhwb3J0IEFQSSBjb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTM3
Myw3ICsyMzAsNyBAQCB0eXBlZGVmIHZvaWQqIFVDbGFzc0lEOwogICogSUNVIGlzIHNlcGFyYXRl
ZCBpbnRvIHRocmVlIGxpYnJhcmllcy4KICAqLwogCi0vKgorLyoqCiAgKiBcZGVmIFVfQ09NQklO
RURfSU1QTEVNRU5UQVRJT04KICAqIFNldCB0byBleHBvcnQgbGlicmFyeSBzeW1ib2xzIGZyb20g
aW5zaWRlIHRoZSBJQ1UgbGlicmFyeQogICogd2hlbiBhbGwgb2YgSUNVIGlzIGluIGEgc2luZ2xl
IGxpYnJhcnkuCkBAIC01NDAsOSArMzk3LDkgQEAgdHlwZWRlZiB2b2lkKiBVQ2xhc3NJRDsKICAq
CiAgKiBOb3RlOiBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IGRvbmUgb24gV2luZG93cyBiZWNhdXNl
CiAgKiBzb21lIExpbnV4L1VuaXggY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBkZWZpbmlu
ZyBnbG9iYWwgbmV3L2RlbGV0ZS4KLSAqIE9uIFdpbmRvd3MsIFVfV0lORE9XUyBpcyBkZWZpbmVk
LCBhbmQgaXQgaXMgX01TQ19WRVI+PTEyMDAgZm9yIE1TVkMgNi4wIGFuZCBoaWdoZXIuCisgKiBP
biBXaW5kb3dzLCBpdCBpcyBfTVNDX1ZFUj49MTIwMCBmb3IgTVNWQyA2LjAgYW5kIGhpZ2hlci4K
ICAqLwotI2lmIGRlZmluZWQoWFBfQ1BMVVNQTFVTKSAmJiBkZWZpbmVkKFdJTjMyKSAmJiBVX0RF
QlVHICYmIFVfT1ZFUlJJREVfQ1hYX0FMTE9DQVRJT04gJiYgKF9NU0NfVkVSPj0xMjAwKSAmJiAh
ZGVmaW5lZChVX1NUQVRJQ19JTVBMRU1FTlRBVElPTikgJiYgKGRlZmluZWQoVV9DT01NT05fSU1Q
TEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9JMThOX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVk
KFVfSU9fSU1QTEVNRU5UQVRJT04pIHx8IGRlZmluZWQoVV9MQVlPVVRfSU1QTEVNRU5UQVRJT04p
IHx8IGRlZmluZWQoVV9MQVlPVVRFWF9JTVBMRU1FTlRBVElPTikpCisjaWYgZGVmaW5lZChfX2Nw
bHVzcGx1cykgJiYgVV9ERUJVRyAmJiBVX09WRVJSSURFX0NYWF9BTExPQ0FUSU9OICYmIChfTVND
X1ZFUj49MTIwMCkgJiYgIWRlZmluZWQoVV9TVEFUSUNfSU1QTEVNRU5UQVRJT04pICYmIChkZWZp
bmVkKFVfQ09NTU9OX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfSTE4Tl9JTVBMRU1FTlRB
VElPTikgfHwgZGVmaW5lZChVX0lPX0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VU
X0lNUExFTUVOVEFUSU9OKSB8fCBkZWZpbmVkKFVfTEFZT1VURVhfSU1QTEVNRU5UQVRJT04pKQog
CiAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKIC8qKgpAQCAtNzQzLDYgKzYwMCw3IEBAIHR5
cGVkZWYgZW51bSBVRXJyb3JDb2RlIHsKICAgICBVX1VOREVGSU5FRF9LRVlXT1JELCAgICAgICAg
ICAgICAgLyoqPCBVbmRlZmluZWQgUGx1cmFsIGtleXdvcmQgKi8KICAgICBVX0RFRkFVTFRfS0VZ
V09SRF9NSVNTSU5HLCAgICAgICAgLyoqPCBNaXNzaW5nIERFRkFVTFQgcnVsZSBpbiBwbHVyYWwg
cnVsZXMgKi8KICAgICBVX0RFQ0lNQUxfTlVNQkVSX1NZTlRBWF9FUlJPUiwgICAgLyoqPCBEZWNp
bWFsIG51bWJlciBzeW50YXggZXJyb3IgKi8KKyAgICBVX0ZPUk1BVF9JTkVYQUNUX0VSUk9SLCAg
ICAgICAgICAgLyoqPCBDYW5ub3QgZm9ybWF0IGEgbnVtYmVyIGV4YWN0bHkgYW5kIHJvdW5kaW5n
IG1vZGUgaXMgUk9VTkRfVU5ORUNFU1NBUlkgQHN0YWJsZSBJQ1UgNC44ICovCiAgICAgVV9GTVRf
UEFSU0VfRVJST1JfTElNSVQsICAgICAgICAgIC8qKjwgVGhlIGxpbWl0IGZvciBmb3JtYXQgbGli
cmFyeSBlcnJvcnMgKi8KIAogICAgIC8qCkBAIC04MjYsNyArNjg0LDcgQEAgdHlwZWRlZiBlbnVt
IFVFcnJvckNvZGUgewogLyogVXNlIHRoZSBmb2xsb3dpbmcgdG8gZGV0ZXJtaW5lIGlmIGFuIFVF
cnJvckNvZGUgcmVwcmVzZW50cyAqLwogLyogb3BlcmF0aW9uYWwgc3VjY2VzcyBvciBmYWlsdXJl
LiAqLwogCi0jaWZkZWYgWFBfQ1BMVVNQTFVTCisjaWZkZWYgX19jcGx1c3BsdXMKICAgICAvKioK
ICAgICAgKiBEb2VzIHRoZSBlcnJvciBjb2RlIGluZGljYXRlIHN1Y2Nlc3M/CiAgICAgICogQHN0
YWJsZSBJQ1UgMi4wCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91
dmVybnVtLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91dmVybnVtLmgKaW5kZXgg
NzIyMTYxMjkyMDkyZGE2MDYyODljMDZlYzIzNjEzMDg1MzkxYzQxOC4uYmQwYjBjOTg5OGEyMzU3
OWU4ZmI4MTE5ZjZjZDE2MzlhYzJhOGY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
aWN1L3VuaWNvZGUvdXZlcm51bS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2Rl
L3V2ZXJudW0uaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0q
ICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcwogKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgogKgpAQCAtMTIsNTcgKzEyLDY2IEBACiAqICAgQ3Jl
YXRlZCBieTogVmxhZGltaXIgV2VpbnN0ZWluCiAqICAgVXBkYXRlZCBieTogU3RldmVuIFIuIExv
b21pcwogKgotKiAgR2V0cyBpbmNsdWRlZCBieSB1dmVyc2lvbi5oIGFuZCBvdGhlciBmaWxlcy4K
LSoKLSogSU1QT1JUQU5UOiBXaGVuIHVwZGF0aW5nIHZlcnNpb24sIHRoZSBmb2xsb3dpbmcgdGhp
bmdzIG5lZWQgdG8gYmUgZG9uZToKLSogc291cmNlL2NvbW1vbi91bmljb2RlL3V2ZXJudW0uaCAt
IHRoaXMgZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKLSogICAgICAgIHBhdGNobGV2ZWwsIHN1
ZmZpeCwgdmVyc2lvbiwgc2hvcnQgdmVyc2lvbiBjb25zdGFudHMsIG5hbWVzcGFjZSwKLSogICAg
ICAgICAgICAgICAgICAgIHJlbmFtaW5nIG1hY3JvLCBhbmQgY29weXJpZ2h0Ci0qCi0qIFRoZSBm
b2xsb3dpbmcgZmlsZXMgbmVlZCB0byBiZSB1cGRhdGVkIGFzIHdlbGwsIHdoaWNoIGNhbiBiZSBk
b25lCi0qICBieSBydW5uaW5nIHRoZSBVTklYIG1ha2VmaWxlIHRhcmdldCAndXBkYXRlLXdpbmRv
d3MtbWFrZWZpbGVzJyBpbiBpY3Uvc291cmNlLgotKgotKgotKiBzb3VyY2UvY29tbW9uL2NvbW1v
bi52Y3Byb2ogLSB1cGRhdGUgJ091dHB1dCBmaWxlIG5hbWUnIG9uIHRoZSBsaW5rIHRhYiBzbwot
KiAgICAgICAgICAgICAgICAgICB0aGF0IGl0IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3Ig
Y29tYmluYXRpb24KLSogc291cmNlL2kxOG4vaTE4bi52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUg
Y29tbW9uLnZjcHJvagotKiBzb3VyY2UvbGF5b3V0L2xheW91dC52Y3Byb2ogLSBzYW1lIGFzIGZv
ciB0aGUgY29tbW9uLnZjcHJvagotKiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0g
c2FtZQotKiBzb3VyY2Uvc3R1YmRhdGEvc3R1YmRhdGEudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhl
IGNvbW1vbi52Y3Byb2oKLSogc291cmNlL2lvL2lvLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBj
b21tb24udmNwcm9qCi0qIHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURB
VEFfTkFNRSBzbyB0aGF0IGl0IGNvbnRhaW5zCi0qICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24gYW5kIHRoZSBVbmljb2RlIHZlcnNpb24u
CiAqLwogCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IGRlZmluaXRpb25zIG9mIElD
VSB2ZXJzaW9uIG51bWJlcnMKKyAqCisgKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgYnkgdXZlcnNp
b24uaCBhbmQgb3RoZXIgZmlsZXMuIFRoaXMgZmlsZSBjb250YWlucyBvbmx5CisgKiBtYWNyb3Mg
YW5kIGRlZmluaXRpb25zLiBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVycyBhcmUgZGVmaW5lZCBo
ZXJlLgorICovCisKKyAvKgorICAqIElNUE9SVEFOVDogV2hlbiB1cGRhdGluZyB2ZXJzaW9uLCB0
aGUgZm9sbG93aW5nIHRoaW5ncyBuZWVkIHRvIGJlIGRvbmU6CisgICogc291cmNlL2NvbW1vbi91
bmljb2RlL3V2ZXJudW0uaCAtIHRoaXMgZmlsZTogdXBkYXRlIG1ham9yLCBtaW5vciwKKyAgKiAg
ICAgICAgcGF0Y2hsZXZlbCwgc3VmZml4LCB2ZXJzaW9uLCBzaG9ydCB2ZXJzaW9uIGNvbnN0YW50
cywgbmFtZXNwYWNlLAorICAqICAgICAgICAgICAgICAgICAgICByZW5hbWluZyBtYWNybywgYW5k
IGNvcHlyaWdodAorICAqCisgICogVGhlIGZvbGxvd2luZyBmaWxlcyBuZWVkIHRvIGJlIHVwZGF0
ZWQgYXMgd2VsbCwgd2hpY2ggY2FuIGJlIGRvbmUKKyAgKiAgYnkgcnVubmluZyB0aGUgVU5JWCBt
YWtlZmlsZSB0YXJnZXQgJ3VwZGF0ZS13aW5kb3dzLW1ha2VmaWxlcycgaW4gaWN1L3NvdXJjZS4K
KyAgKgorICAqCisgICogc291cmNlL2NvbW1vbi9jb21tb24udmNwcm9qIC0gdXBkYXRlICdPdXRw
dXQgZmlsZSBuYW1lJyBvbiB0aGUgbGluayB0YWIgc28KKyAgKiAgICAgICAgICAgICAgICAgICB0
aGF0IGl0IGNvbnRhaW5zIHRoZSBuZXcgbWFqb3IvbWlub3IgY29tYmluYXRpb24KKyAgKiBzb3Vy
Y2UvaTE4bi9pMThuLnZjcHJvaiAtIHNhbWUgYXMgZm9yIHRoZSBjb21tb24udmNwcm9qCisgICog
c291cmNlL2xheW91dC9sYXlvdXQudmNwcm9qIC0gc2FtZSBhcyBmb3IgdGhlIGNvbW1vbi52Y3By
b2oKKyAgKiBzb3VyY2UvbGF5b3V0ZXgvbGF5b3V0ZXgudmNwcm9qIC0gc2FtZQorICAqIHNvdXJj
ZS9zdHViZGF0YS9zdHViZGF0YS52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJv
agorICAqIHNvdXJjZS9pby9pby52Y3Byb2ogLSBzYW1lIGFzIGZvciB0aGUgY29tbW9uLnZjcHJv
agorICAqIHNvdXJjZS9kYXRhL21ha2VkYXRhLm1hayAtIGNoYW5nZSBVX0lDVURBVEFfTkFNRSBz
byB0aGF0IGl0IGNvbnRhaW5zCisgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5l
dyBtYWpvci9taW5vciBjb21iaW5hdGlvbiBhbmQgdGhlIFVuaWNvZGUgdmVyc2lvbi4KKyAgKi8K
KwogI2lmbmRlZiBVVkVSTlVNX0gKICNkZWZpbmUgVVZFUk5VTV9ICiAKLS8qKiBUaGUgc3RhbmRh
cmQgY29weXJpZ2h0IG5vdGljZSB0aGF0IGdldHMgY29tcGlsZWQgaW50byBlYWNoIGxpYnJhcnku
IAorLyoqIFRoZSBzdGFuZGFyZCBjb3B5cmlnaHQgbm90aWNlIHRoYXQgZ2V0cyBjb21waWxlZCBp
bnRvIGVhY2ggbGlicmFyeS4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJz
ZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCiAjZGVmaW5l
IFVfQ09QWVJJR0hUX1NUUklORyBcCi0gICIgQ29weXJpZ2h0IChDKSAyMDExLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuICIKKyAgIiBDb3B5cmlnaHQgKEMpIDIwMTMsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4g
IgogCi0vKiogVGhlIGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4gCisv
KiogVGhlIGN1cnJlbnQgSUNVIG1ham9yIHZlcnNpb24gYXMgYW4gaW50ZWdlci4KICAqICBUaGlz
IHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICog
IEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNIDQK
KyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gNTIKIAotLyoqIFRoZSBjdXJyZW50IElD
VSBtaW5vciB2ZXJzaW9uIGFzIGFuIGludGVnZXIuIAorLyoqIFRoZSBjdXJyZW50IElDVSBtaW5v
ciB2ZXJzaW9uIGFzIGFuIGludGVnZXIuCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0
aGUgc3Vic2VxdWVudCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwot
I2RlZmluZSBVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA2CisjZGVmaW5lIFVfSUNVX1ZFUlNJT05f
TUlOT1JfTlVNIDEKIAotLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMg
YW4gaW50ZWdlci4gIAorLyoqIFRoZSBjdXJyZW50IElDVSBwYXRjaGxldmVsIHZlcnNpb24gYXMg
YW4gaW50ZWdlci4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50
IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNAogICovCi0jZGVmaW5lIFVfSUNV
X1ZFUlNJT05fUEFUQ0hMRVZFTF9OVU0gMQorI2RlZmluZSBVX0lDVV9WRVJTSU9OX1BBVENITEVW
RUxfTlVNIDAKIAotLyoqIFRoZSBjdXJyZW50IElDVSBidWlsZCBsZXZlbCB2ZXJzaW9uIGFzIGFu
IGludGVnZXIuICAKKy8qKiBUaGUgY3VycmVudCBJQ1UgYnVpbGQgbGV2ZWwgdmVyc2lvbiBhcyBh
biBpbnRlZ2VyLgogICogIFRoaXMgdmFsdWUgaXMgZm9yIHVzZSBieSBJQ1UgY2xpZW50cy4gSXQg
ZGVmYXVsdHMgdG8gMC4KICAqICBAc3RhYmxlIElDVSA0LjAKICAqLwpAQCAtNzAsMzkgKzc5LDU5
IEBACiAjZGVmaW5lIFVfSUNVX1ZFUlNJT05fQlVJTERMRVZFTF9OVU0gMAogI2VuZGlmCiAKLS8q
KiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmb3IgcmVuYW1lcnMgCisvKiogR2x1ZWQgdmVyc2lvbiBz
dWZmaXggZm9yIHJlbmFtZXJzCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vi
c2VxdWVudCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjYKICAqLwotI2RlZmlu
ZSBVX0lDVV9WRVJTSU9OX1NVRkZJWCBfNDYKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTl9TVUZGSVgg
XzUyCiAKLS8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMgCisv
KioKKyAqIFxkZWYgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKKyAqIEBpbnRlcm5hbAor
ICovCisvKioKKyAqIFxkZWYgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQorICogQGludGVy
bmFsCisgKi8KKy8qKiBHbHVlZCB2ZXJzaW9uIHN1ZmZpeCBmdW5jdGlvbiBmb3IgcmVuYW1lcnMK
ICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9m
IElDVS4KICAqICBJZiBhIGN1c3RvbSBzdWZmaXggKHN1Y2ggYXMgbWF0Y2hpbmcgbGlicmFyeSBz
dWZmaXhlcykgaXMgZGVzaXJlZCwgdGhpcyBjYW4gYmUgbW9kaWZpZWQuCiAgKiAgTm90ZSB0aGF0
IGlmIHByZXNlbnQsIHBsYXRmb3JtLmggbWF5IGNvbnRhaW4gYW4gZWFybGllciBkZWZpbml0aW9u
IG9mIHRoaXMgbWFjcm8uCisgKiAgXGRlZiBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUKICAqICBA
c3RhYmxlIElDVSA0LjIKICAqLworCiAjaWZuZGVmIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRQot
I2RlZmluZSBVX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCkgICAgeCAjIyBfNDYKKyNpZmRlZiBV
X0hBVkVfTElCX1NVRkZJWAorI2RlZmluZSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgs
eSx6KSB4ICMjIHkgIyMgIHoKKyNkZWZpbmUgVV9ERUYyX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUo
eCx5LHopIFVfREVGX0lDVV9FTlRSWV9QT0lOVF9SRU5BTUUoeCx5LHopCisjZGVmaW5lIFVfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4
LFVfSUNVX1ZFUlNJT05fU1VGRklYLFVfTElCX1NVRkZJWF9DX05BTUUpCisjZWxzZQorI2RlZmlu
ZSBVX0RFRl9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkgeCAjIyB5CisjZGVmaW5lIFVfREVG
Ml9JQ1VfRU5UUllfUE9JTlRfUkVOQU1FKHgseSkgVV9ERUZfSUNVX0VOVFJZX1BPSU5UX1JFTkFN
RSh4LHkpCisjZGVmaW5lIFVfSUNVX0VOVFJZX1BPSU5UX1JFTkFNRSh4KSAgICBVX0RFRjJfSUNV
X0VOVFJZX1BPSU5UX1JFTkFNRSh4LFVfSUNVX1ZFUlNJT05fU1VGRklYKQorI2VuZGlmCiAjZW5k
aWYKIAogLyoqIFRoZSBjdXJyZW50IElDVSBsaWJyYXJ5IHZlcnNpb24gYXMgYSBkb3R0ZWQtZGVj
aW1hbCBzdHJpbmcuIFRoZSBwYXRjaGxldmVsCi0gKiAgb25seSBhcHBlYXJzIGluIHRoaXMgc3Ry
aW5nIGlmIGl0IG5vbi16ZXJvLiAKKyAqICBvbmx5IGFwcGVhcnMgaW4gdGhpcyBzdHJpbmcgaWYg
aXQgbm9uLXplcm8uCiAgKiAgVGhpcyB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgc3Vic2VxdWVu
dCByZWxlYXNlcyBvZiBJQ1UKICAqICBAc3RhYmxlIElDVSAyLjQKICAqLwotI2RlZmluZSBVX0lD
VV9WRVJTSU9OICI0LjYuMSIKKyNkZWZpbmUgVV9JQ1VfVkVSU0lPTiAiNTIuMSIKIAotLyoqIFRo
ZSBjdXJyZW50IElDVSBsaWJyYXJ5IG1ham9yL21pbm9yIHZlcnNpb24gYXMgYSBzdHJpbmcgd2l0
aG91dCBkb3RzLCBmb3IgbGlicmFyeSBuYW1lIHN1ZmZpeGVzLiAKKy8qKiBUaGUgY3VycmVudCBJ
Q1UgbGlicmFyeSBtYWpvci9taW5vciB2ZXJzaW9uIGFzIGEgc3RyaW5nIHdpdGhvdXQgZG90cywg
Zm9yIGxpYnJhcnkgbmFtZSBzdWZmaXhlcy4KICAqICBUaGlzIHZhbHVlIHdpbGwgY2hhbmdlIGlu
IHRoZSBzdWJzZXF1ZW50IHJlbGVhc2VzIG9mIElDVQogICogIEBzdGFibGUgSUNVIDIuNgogICov
Ci0jZGVmaW5lIFVfSUNVX1ZFUlNJT05fU0hPUlQgIjQ2IgorI2RlZmluZSBVX0lDVV9WRVJTSU9O
X1NIT1JUICI1MiIKIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCiAvKiogRGF0YSB2ZXJz
aW9uIGluIElDVTRDLgogICogQGludGVybmFsIElDVSA0LjQgSW50ZXJuYWwgVXNlIE9ubHkKICAq
Ki8KLSNkZWZpbmUgVV9JQ1VfREFUQV9WRVJTSU9OICI0LjYiCisjZGVmaW5lIFVfSUNVX0RBVEFf
VkVSU0lPTiAiNTIuMSIKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwogCiAvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogICogSUNVIGNvbGxhdGlvbiBmcmFtZXdvcmsgdmVyc2lvbiBpbmZv
cm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvaWN1L3VuaWNvZGUvdXZlcnNp
b24uaCBiL1NvdXJjZS9XZWJLaXQvbWFjL2ljdS91bmljb2RlL3V2ZXJzaW9uLmgKaW5kZXggZTU0
Y2Q1NWE2N2NiYzRjYzY5MmU0ZTM2OTIxZGEyYjM2YWQxNWE1Zi4uNzRlMzA5MTA1NTE0YWRmMzgy
MzdhM2I3YTQwOTgwMWE4MTVhNWQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvaWN1
L3VuaWNvZGUvdXZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9pY3UvdW5pY29kZS91
dmVyc2lvbi5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSog
ICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcHlyaWdodCAoQykgMjAwMC0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCiAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCiAqCkBAIC02Nyw3ICs2Nyw4IEBAIHR5cGVkZWYgdWlu
dDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwogICogV2hlbiBjb21waWxp
bmcgZm9yIEMrKywgaXQgYmVnaW5zIGFuIGV4dGVybiAiQysrIiBsaW5rYWdlIGJsb2NrICh0byBw
cm90ZWN0CiAgKiBhZ2FpbnN0IGNhc2VzIGluIHdoaWNoIGFuIGV4dGVybmFsIGNsaWVudCBpbmNs
dWRlcyBJQ1UgaGVhZGVyIGZpbGVzIGluc2lkZQogICogYW4gZXh0ZXJuICJDIiBsaW5rYWdlIGJs
b2NrKS4KLSAqIElmIHRoZSBDKysgY29tcGlsZXIgc3VwcG9ydHMgbmFtZXNwYWNlcywgaXQgYWxz
byBiZWdpbnMgYSBuYW1lc3BhY2UgYmxvY2suCisgKgorICogSXQgYWxzbyBiZWdpbnMgYSB2ZXJz
aW9uZWQtSUNVLW5hbWVzcGFjZSBibG9jay4KICAqIEBzdGFibGUgSUNVIDIuNAogICovCiAKQEAg
LTc3LDggKzc4LDggQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9O
X0xFTkdUSF07CiAgKiBXaGVuIG5vdCBjb21waWxpbmcgZm9yIEMrKywgaXQgZG9lcyBub3RoaW5n
LgogICogV2hlbiBjb21waWxpbmcgZm9yIEMrKywgaXQgZW5kcyB0aGUgZXh0ZXJuICJDKysiIGJs
b2NrIGJlZ3VuIGJ5CiAgKiBVX05BTUVTUEFDRV9CRUdJTi4KLSAqIElmIHRoZSBDKysgY29tcGls
ZXIgc3VwcG9ydHMgbmFtZXNwYWNlcywgaXQgYWxzbyBlbmRzIHRoZSBuYW1lc3BhY2UgYmxvY2sK
LSAqIGJlZ3VuIGJ5IFVfTkFNRVNQQUNFX0JFR0lOLgorICoKKyAqIEl0IGFsc28gZW5kcyB0aGUg
dmVyc2lvbmVkLUlDVS1uYW1lc3BhY2UgYmxvY2sgYmVndW4gYnkgVV9OQU1FU1BBQ0VfQkVHSU4u
CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogCkBAIC04Niw3ICs4Nyw5IEBAIHR5cGVkZWYgdWlu
dDhfdCBVVmVyc2lvbkluZm9bVV9NQVhfVkVSU0lPTl9MRU5HVEhdOwogICogXGRlZiBVX05BTUVT
UEFDRV9VU0UKICAqIFRoaXMgaXMgdXNlZCB0byBzcGVjaWZ5IHRoYXQgdGhlIHJlc3Qgb2YgdGhl
IGNvZGUgdXNlcyB0aGUKICAqIHB1YmxpYyBJQ1UgQysrIEFQSSBuYW1lc3BhY2UuCi0gKiBJZiB0
aGUgY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzcGFjZXMsIHRoaXMgZG9lcyBub3RoaW5n
LgorICogVGhpcyBpcyBpbnZva2VkIGJ5IGRlZmF1bHQ7IHdlIHJlY29tbWVuZCB0aGF0IHlvdSB0
dXJuIGl0IG9mZjoKKyAqIFNlZSB0aGUgIlJlY29tbWVuZGVkIEJ1aWxkIE9wdGlvbnMiIHNlY3Rp
b24gb2YgdGhlIElDVTRDIHJlYWRtZQorICogKGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3Jn
L3JlcG9zL2ljdS9pY3UvdHJ1bmsvcmVhZG1lLmh0bWwjUmVjQnVpbGQpCiAgKiBAc3RhYmxlIElD
VSAyLjQKICAqLwogCkBAIC05NCwxMyArOTcsMTQgQEAgdHlwZWRlZiB1aW50OF90IFVWZXJzaW9u
SW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgKiBcZGVmIFVfTkFNRVNQQUNFX1FVQUxJRklF
UgogICogVGhpcyBpcyB1c2VkIHRvIHF1YWxpZnkgdGhhdCBhIGZ1bmN0aW9uIG9yIGNsYXNzIGlz
IHBhcnQgb2YKICAqIHRoZSBwdWJsaWMgSUNVIEMrKyBBUEkgbmFtZXNwYWNlLgotICogSWYgdGhl
IGNvbXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBuYW1lc3BhY2VzLCB0aGlzIGRvZXMgbm90aGluZy4K
KyAqCisgKiBUaGlzIG1hY3JvIGlzIHVubmVjZXNzYXJ5IHNpbmNlIElDVSA0OSByZXF1aXJlcyBu
YW1lc3BhY2Ugc3VwcG9ydC4KKyAqIFlvdSBjYW4ganVzdCB1c2UgImljdTo6IiBpbnN0ZWFkLgog
ICogQHN0YWJsZSBJQ1UgMi40CiAgKi8KIAogLyogRGVmaW5lIG5hbWVzcGFjZSBzeW1ib2xzIGlm
IHRoZSBjb21waWxlciBzdXBwb3J0cyBpdC4gKi8KLSNpZmRlZiBYUF9DUExVU1BMVVMKLSNpZiBV
X0hBVkVfTkFNRVNQQUNFCisjaWZkZWYgX19jcGx1c3BsdXMKICMgICBpZiBVX0RJU0FCTEVfUkVO
QU1JTkcKICMgICAgICAgZGVmaW5lIFVfSUNVX05BTUVTUEFDRSBpY3UKICAgICAgICAgbmFtZXNw
YWNlIFVfSUNVX05BTUVTUEFDRSB7IH0KQEAgLTEyMiwxMiArMTI2LDYgQEAgdHlwZWRlZiB1aW50
OF90IFVWZXJzaW9uSW5mb1tVX01BWF9WRVJTSU9OX0xFTkdUSF07CiAgICAgICAgIFVfTkFNRVNQ
QUNFX1VTRQogIyAgIGVuZGlmCiAjZWxzZQotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9CRUdJTiBl
eHRlcm4gIkMrKyIgewotIyAgIGRlZmluZSBVX05BTUVTUEFDRV9FTkQgfQotIyAgIGRlZmluZSBV
X05BTUVTUEFDRV9VU0UKLSMgICBkZWZpbmUgVV9OQU1FU1BBQ0VfUVVBTElGSUVSCi0jZW5kaWYK
LSNlbHNlCiAjICAgZGVmaW5lIFVfTkFNRVNQQUNFX0JFR0lOCiAjICAgZGVmaW5lIFVfTkFNRVNQ
QUNFX0VORAogIyAgIGRlZmluZSBVX05BTUVTUEFDRV9VU0UKQEAgLTE4MCw3ICsxNzgsNyBAQCB1
X3ZlcnNpb25Gcm9tVVN0cmluZyhVVmVyc2lvbkluZm8gdmVyc2lvbkFycmF5LCBjb25zdCBVQ2hh
ciAqdmVyc2lvblN0cmluZyk7CiAgKiBAc3RhYmxlIElDVSAyLjQKICAqLwogVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKLXVfdmVyc2lvblRvU3RyaW5nKFVWZXJzaW9uSW5mbyB2ZXJzaW9uQXJyYXks
IGNoYXIgKnZlcnNpb25TdHJpbmcpOwordV92ZXJzaW9uVG9TdHJpbmcoY29uc3QgVVZlcnNpb25J
bmZvIHZlcnNpb25BcnJheSwgY2hhciAqdmVyc2lvblN0cmluZyk7CiAKIC8qKgogICogR2V0cyB0
aGUgSUNVIHJlbGVhc2UgdmVyc2lvbi4gIFRoZSB2ZXJzaW9uIGFycmF5IHN0b3JlcyB0aGUgdmVy
c2lvbiBpbmZvcm1hdGlvbgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>